diff --git a/dist/index.js b/dist/index.js index 0fbb662..453b611 100644 --- a/dist/index.js +++ b/dist/index.js @@ -592,12 +592,11 @@ exports.default = { default: 1 }, width: { - type: Number, + type: [Number, String], default: [Number, String], validator: function validator(value) { if (typeof value === 'string') { - var reg = new RegExp('^(\d+|\d+[.]\d+)%?$'); - return reg.test(value); + return this.isPercentage(value); } if (typeof value === 'number') { @@ -610,8 +609,8 @@ exports.default = { default: 300, validator: function validator(value) { if (typeof value === 'string') { - var reg = new RegExp('^(\d+|\d+[.]\d+)%?$'); - return value === 'auto' || reg.test(value); + var reg = RegExp('^(\d+|\d+[.]\d+)%?$'); + return value === 'auto' || this.isPercentage(value); } if (typeof value === 'number') { @@ -729,18 +728,6 @@ exports.default = { top: (0, _util.inRange)(0, maxTop, top) }; }, - trueModalWidth: function trueModalWidth() { - var window = this.window, - modal = this.modal; - - return typeof modal.width === 'string' ? window.width * parseFloat(modal.width) / 100.0 : modal.width; - }, - trueModalHeight: function trueModalHeight() { - var window = this.window, - modal = this.modal; - - return typeof modal.height === 'string' ? window.height * parseFloat(modal.height) / 100.0 : modal.height; - }, modalClass: function modalClass() { return ['v--modal-box', this.classes]; }, @@ -774,10 +761,25 @@ exports.default = { }, adaptSize: function adaptSize() { if (this.adaptive) { - this.modal.width = (0, _util.inRange)(0, this.window.width * this.maxAdaptiveWidth, this.trueModalWidth); + this.modal.width = (0, _util.inRange)(0, this.window.width * this.maxAdaptiveWidth, this.trueModalWidth()); this.modal.height = (0, _util.inRange)(0, this.window.height * this.maxAdaptiveHeight, this.trueModalHeight()); } }, + trueModalWidth: function trueModalWidth() { + var window = this.window, + modal = this.modal; + + return typeof modal.width === 'string' ? window.width * parseFloat(modal.width) / 100.0 : modal.width; + }, + trueModalHeight: function trueModalHeight() { + var window = this.window, + modal = this.modal; + + return typeof modal.height === 'string' ? window.height * parseFloat(modal.height) / 100.0 : modal.height; + }, + isPercentage: function isPercentage(string) { + return string.splice(-1) === '%' && !isNaN(parseFloat(string)); + }, resize: function resize(event) { this.modal.width = event.size.width; this.modal.height = event.size.height; @@ -986,7 +988,7 @@ exports = module.exports = __webpack_require__(2)(); // module -exports.push([module.i, "\n.v--modal-overlay {\n position: fixed;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.2);\n z-index: 999;\n opacity: 1;\n}\n.v--modal-overlay .v--modal-box {\n position: relative;\n overflow: hidden;\n box-sizing: border-box;\n}\n.v--modal {\n background-color: white;\n text-align: left;\n border-radius: 3px;\n box-shadow: 0 20px 60px -2px rgba(27, 33, 58, .4);\n padding: 0;\n}\n.v--modal.v--modal-fullscreen {\n width: 100vw;\n height: 100vh;\n margin: 0;\n left: 0;\n top: 0;\n}\n.v--modal-top-right {\n display: block;\n position: absolute;\n right: 0;\n top: 0;\n}\n.overlay-fade-enter-active, .overlay-fade-leave-active {\n transition: all 0.2s;\n}\n.overlay-fade-enter, .overlay-fade-leave-active {\n opacity: 0;\n}\n.nice-modal-fade-enter-active, .nice-modal-fade-leave-active {\n transition: all 0.4s;\n}\n.nice-modal-fade-enter, .nice-modal-fade-leave-active {\n opacity: 0;\n transform: translateY(-20px);\n}\n", "", {"version":3,"sources":["/./src/Modal.vue?aae73fc4"],"names":[],"mappings":";AA2YA;EACA,gBAAA;EACA,QAAA;EACA,OAAA;EACA,aAAA;EACA,cAAA;EACA,+BAAA;EACA,aAAA;EACA,WAAA;CACA;AAEA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;CACA;AAEA;EACA,wBAAA;EACA,iBAAA;EACA,mBAAA;EACA,kDAAA;EACA,WAAA;CACA;AAEA;EACA,aAAA;EACA,cAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA;CACA;AAEA;EACA,eAAA;EACA,mBAAA;EACA,SAAA;EACA,OAAA;CACA;AAEA;EACA,qBAAA;CACA;AAEA;EACA,WAAA;CACA;AAEA;EACA,qBAAA;CACA;AAEA;EACA,WAAA;EACA,6BAAA;CACA","file":"Modal.vue","sourcesContent":["\n\n\n"],"sourceRoot":"webpack://"}]); +exports.push([module.i, "\n.v--modal-overlay {\n position: fixed;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.2);\n z-index: 999;\n opacity: 1;\n}\n.v--modal-overlay .v--modal-box {\n position: relative;\n overflow: hidden;\n box-sizing: border-box;\n}\n.v--modal {\n background-color: white;\n text-align: left;\n border-radius: 3px;\n box-shadow: 0 20px 60px -2px rgba(27, 33, 58, .4);\n padding: 0;\n}\n.v--modal.v--modal-fullscreen {\n width: 100vw;\n height: 100vh;\n margin: 0;\n left: 0;\n top: 0;\n}\n.v--modal-top-right {\n display: block;\n position: absolute;\n right: 0;\n top: 0;\n}\n.overlay-fade-enter-active, .overlay-fade-leave-active {\n transition: all 0.2s;\n}\n.overlay-fade-enter, .overlay-fade-leave-active {\n opacity: 0;\n}\n.nice-modal-fade-enter-active, .nice-modal-fade-leave-active {\n transition: all 0.4s;\n}\n.nice-modal-fade-enter, .nice-modal-fade-leave-active {\n opacity: 0;\n transform: translateY(-20px);\n}\n", "", {"version":3,"sources":["/./src/Modal.vue?5cf11e12"],"names":[],"mappings":";AA8YA;EACA,gBAAA;EACA,QAAA;EACA,OAAA;EACA,aAAA;EACA,cAAA;EACA,+BAAA;EACA,aAAA;EACA,WAAA;CACA;AAEA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;CACA;AAEA;EACA,wBAAA;EACA,iBAAA;EACA,mBAAA;EACA,kDAAA;EACA,WAAA;CACA;AAEA;EACA,aAAA;EACA,cAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA;CACA;AAEA;EACA,eAAA;EACA,mBAAA;EACA,SAAA;EACA,OAAA;CACA;AAEA;EACA,qBAAA;CACA;AAEA;EACA,WAAA;CACA;AAEA;EACA,qBAAA;CACA;AAEA;EACA,WAAA;EACA,6BAAA;CACA","file":"Modal.vue","sourcesContent":["\n\n\n"],"sourceRoot":"webpack://"}]); // exports