blob: 237d4139f258064bdd8bca6e0609e8499c8e0e43 [file] [log] [blame]
// Copyright (C) 2018 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
(function() {
'use strict';
Polymer({
is: 'gr-opacity-diff-mode',
properties: {
baseImage: Object,
revisionImage: Object,
opacityValue: Number,
},
attached() {
if (this.revisionImage) {
const srcRevision = this.computeSrcString(this.revisionImage);
this.$.imageRevision.setAttribute('src', srcRevision);
this.resizeDiffContainerHeight();
}
if (this.baseImage) {
const srcBase = this.computeSrcString(this.baseImage);
this.$.imageBase.setAttribute('src', srcBase);
this.resizeDiffContainerHeight();
}
},
handleOpacityChange() {
this.customStyle['--my-opacity-value'] = this.$.opacitySlider.value;
this.updateStyles();
},
computeSrcString(image) {
return 'data:' + image['type'] + ';base64, ' + image['body'];
},
handleScaleSizesToggle() {
let width;
let height;
if (this.$.scaleSizesToggle.checked &&
this.baseImage && this.revisionImage) {
width = Math.max(this.revisionImage._width, this.baseImage._width);
height = Math.max(this.revisionImage._height, this.baseImage._height);
}
this.customStyle['--img-width'] = width ? width + 'px' : null;
this.customStyle['--img-height'] = height ? height + 'px' : null;
this.updateStyles();
},
resizeDiffContainerHeight() {
const maxHeight = Math.max(
this.baseImage ? this.baseImage._height : 0,
this.revisionImage ? this.revisionImage._height : 0);
this.customStyle['--div-height'] = maxHeight + 'px';
this.updateStyles();
},
});
})();