"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require("../common/utils"); var component_1 = require("../common/component"); var button_1 = require("../mixins/button"); var open_type_1 = require("../mixins/open-type"); var FIT_MODE_MAP = { none: 'center', fill: 'scaleToFill', cover: 'aspectFill', contain: 'aspectFit' }; component_1.VantComponent({ mixins: [button_1.button, open_type_1.openType], classes: ['custom-class', 'loading-class', 'error-class', 'image-class'], props: { src: { type: String, observer: function () { this.setData({ error: false, loading: true }); } }, round: Boolean, width: { type: null, observer: 'setStyle' }, height: { type: null, observer: 'setStyle' }, radius: null, lazyLoad: Boolean, useErrorSlot: Boolean, useLoadingSlot: Boolean, showMenuByLongpress: Boolean, fit: { type: String, value: 'fill', observer: 'setMode' }, showError: { type: Boolean, value: true }, showLoading: { type: Boolean, value: true } }, data: { error: false, loading: true }, mounted: function () { this.setMode(); this.setStyle(); }, methods: { setMode: function () { this.setData({ mode: FIT_MODE_MAP[this.data.fit], }); }, setStyle: function () { var _a = this.data, width = _a.width, height = _a.height, radius = _a.radius; var style = ''; if (utils_1.isDef(width)) { style += "width: " + utils_1.addUnit(width) + ";"; } if (utils_1.isDef(height)) { style += "height: " + utils_1.addUnit(height) + ";"; } if (utils_1.isDef(radius)) { style += 'overflow: hidden;'; style += "border-radius: " + utils_1.addUnit(radius) + ";"; } this.setData({ style: style }); }, onLoad: function (event) { this.setData({ loading: false }); this.$emit('load', event.detail); }, onError: function (event) { this.setData({ loading: false, error: true }); this.$emit('error', event.detail); }, onClick: function (event) { this.$emit('click', event.detail); } } });