UNPKG

vue-eyedrop-tool

Version:
1,088 lines (995 loc) 44.5 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("vue")); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["eyedrop"] = factory(require("vue")); else root["eyedrop"] = factory(root["Vue"]); })((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "167d": /***/ (function(module, exports, __webpack_require__) { "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var vue_property_decorator_1 = __webpack_require__("60a3"); var Eyedrop = /** @class */ (function (_super) { __extends(Eyedrop, _super); function Eyedrop() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.canvas = null; _this.pixel = null; _this.magnifierGlassStyle = {}; _this.magnifierColorStyle = {}; _this.mouseOver = false; return _this; } Eyedrop.prototype.onImageSourceUpdate = function (newImageSource) { this.createCanvas(newImageSource); this.createMagnifyingGlass(newImageSource); }; Object.defineProperty(Eyedrop.prototype, "colorPickerStyle", { get: function () { return { width: this.width, height: this.height, }; }, enumerable: true, configurable: true }); Object.defineProperty(Eyedrop.prototype, "label", { get: function () { if (this.pixel) { var r = this.pixel[0]; var g = this.pixel[1]; var b = this.pixel[2]; return "r:" + r + " g:" + g + " b:" + b + " " + RGBToHex(r, g, b); } return ''; }, enumerable: true, configurable: true }); Object.defineProperty(Eyedrop.prototype, "showMagnifierColor", { get: function () { return this.pixel && this.colorLabel && this.mouseOver; }, enumerable: true, configurable: true }); Object.defineProperty(Eyedrop.prototype, "showMagnifierGlass", { get: function () { return !!this.canvas && this.mouseOver; }, enumerable: true, configurable: true }); Object.defineProperty(Eyedrop.prototype, "magnifierColorSquareStyle", { get: function () { if (this.pixel) { return { backgroundColor: "rgb(" + this.pixel[0] + "," + this.pixel[1] + "," + this.pixel[2] + ")", }; } return {}; }, enumerable: true, configurable: true }); Eyedrop.prototype.mouseleave = function (event) { this.mouseOver = false; }; Eyedrop.prototype.mousemove = function (event) { this.mouseOver = true; if (this.canvas) { this.pixel = this.canvas.getContext('2d').getImageData(event.offsetX, event.offsetY, 1, 1).data; this.$emit('color-update', { r: this.pixel[0], g: this.pixel[1], b: this.pixel[2] }); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'left', event.pageX - (this.magnifierGlassWidth / 2) + "px"); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'top', event.pageY - (this.magnifierGlassHeight / 2) + "px"); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'width', this.magnifierGlassWidth + "px"); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'height', this.magnifierGlassHeight + "px"); vue_property_decorator_1.Vue.set(this.magnifierColorStyle, 'left', event.pageX - (this.magnifierGlassWidth / 2) - 100 + "px"); vue_property_decorator_1.Vue.set(this.magnifierColorStyle, 'top', event.pageY + (this.magnifierGlassHeight / 2) + 5 + "px"); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'backgroundPosition', 0 - ((event.offsetX * this.zoom) - (this.magnifierGlassWidth / 2)) + "px " + (0 - ((event.offsetY * this.zoom) - (this.magnifierGlassHeight / 2))) + "px"); } }; Eyedrop.prototype.createCanvas = function (imageSource) { var _this = this; var canvas = document.createElement('canvas'); canvas.width = this.width; canvas.height = this.height; var context = canvas.getContext('2d'); var img = new Image(); img.src = imageSource; img.onload = function () { context.drawImage(img, 0, 0, _this.width, _this.height); }; this.canvas = canvas; }; Eyedrop.prototype.createMagnifyingGlass = function (imageSource) { vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'backgroundImage', "url('" + imageSource + "')"); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'backgroundRepeat', 'no-repeat'); vue_property_decorator_1.Vue.set(this.magnifierGlassStyle, 'backgroundSize', this.width * this.zoom + "px " + this.height * this.zoom + "px"); }; __decorate([ vue_property_decorator_1.Prop({ default: 4, type: Number }) ], Eyedrop.prototype, "zoom", void 0); __decorate([ vue_property_decorator_1.Prop({ default: 100, type: Number }) ], Eyedrop.prototype, "magnifierGlassWidth", void 0); __decorate([ vue_property_decorator_1.Prop({ default: 100, type: Number }) ], Eyedrop.prototype, "magnifierGlassHeight", void 0); __decorate([ vue_property_decorator_1.Prop({ default: false, type: Boolean }) ], Eyedrop.prototype, "colorLabel", void 0); __decorate([ vue_property_decorator_1.Prop({ required: true, type: String }) ], Eyedrop.prototype, "src", void 0); __decorate([ vue_property_decorator_1.Prop({ required: true, type: Number }) ], Eyedrop.prototype, "width", void 0); __decorate([ vue_property_decorator_1.Prop({ required: true, type: Number }) ], Eyedrop.prototype, "height", void 0); __decorate([ vue_property_decorator_1.Prop({ required: true, type: String }) ], Eyedrop.prototype, "alt", void 0); __decorate([ vue_property_decorator_1.Watch('src', { immediate: true }) ], Eyedrop.prototype, "onImageSourceUpdate", null); Eyedrop = __decorate([ vue_property_decorator_1.Component ], Eyedrop); return Eyedrop; }(vue_property_decorator_1.Vue)); exports.default = Eyedrop; function RGBToHex(r, g, b) { var rString = r.toString(16); var gString = g.toString(16); var bString = b.toString(16); if (rString.length === 1) { rString = '0' + rString; } if (gString.length === 1) { gString = '0' + gString; } if (bString.length === 1) { bString = '0' + bString; } return '#' + rString + gString + bString; } /***/ }), /***/ "1eb2": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // This file is imported into lib/wc client bundles. if (typeof window !== 'undefined') { if (true) { __webpack_require__("f6fd") } var i if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) { __webpack_require__.p = i[1] // eslint-disable-line } } // Indicate to webpack that this file can be concatenated /* unused harmony default export */ var _unused_webpack_default_export = (null); /***/ }), /***/ "2877": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ "37bd": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"73e4c3e1-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./src/eyedrop.html?vue&type=template&id=4913769a& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{attrs:{"width":_vm.width,"height":_vm.height,"src":_vm.src,"alt":_vm.alt},on:{"mousemove":_vm.mousemove,"mouseleave":_vm.mouseleave}}),(_vm.showMagnifierGlass)?_c('div',{staticClass:"magnifier-glass",style:(_vm.magnifierGlassStyle)}):_vm._e(),(_vm.showMagnifierColor)?_c('div',{staticClass:"magnifier-color",style:(_vm.magnifierColorStyle)},[_vm._v(_vm._s(_vm.label)+"\r\n "),_c('div',{staticClass:"magnifier-color-square",style:(_vm.magnifierColorSquareStyle)})]):_vm._e()])} var staticRenderFns = [] // CONCATENATED MODULE: ./src/eyedrop.html?vue&type=template&id=4913769a& /* concated harmony reexport render */__webpack_require__.d(__webpack_exports__, "a", function() { return render; }); /* concated harmony reexport staticRenderFns */__webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; }); /***/ }), /***/ "60a3": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"} var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf"); var external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_); // CONCATENATED MODULE: ./node_modules/vue-class-component/dist/vue-class-component.esm.js /** * vue-class-component v7.1.0 * (c) 2015-present Evan You * @license MIT */ // The rational behind the verbose Reflect-feature check below is the fact that there are polyfills // which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys. // Without this check consumers will encounter hard to track down runtime errors. var reflectionIsSupported = typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys; function copyReflectionMetadata(to, from) { forwardMetadata(to, from); Object.getOwnPropertyNames(from.prototype).forEach(function (key) { forwardMetadata(to.prototype, from.prototype, key); }); Object.getOwnPropertyNames(from).forEach(function (key) { forwardMetadata(to, from, key); }); } function forwardMetadata(to, from, propertyKey) { var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from); metaKeys.forEach(function (metaKey) { var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from); if (propertyKey) { Reflect.defineMetadata(metaKey, metadata, to, propertyKey); } else { Reflect.defineMetadata(metaKey, metadata, to); } }); } var fakeArray = { __proto__: [] }; var hasProto = fakeArray instanceof Array; function createDecorator(factory) { return function (target, key, index) { var Ctor = typeof target === 'function' ? target : target.constructor; if (!Ctor.__decorators__) { Ctor.__decorators__ = []; } if (typeof index !== 'number') { index = undefined; } Ctor.__decorators__.push(function (options) { return factory(options, key, index); }); }; } function mixins() { var Ctors = []; for (var _i = 0; _i < arguments.length; _i++) { Ctors[_i] = arguments[_i]; } return external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({ mixins: Ctors }); } function isPrimitive(value) { var type = typeof value; return value == null || (type !== 'object' && type !== 'function'); } function warn(message) { if (typeof console !== 'undefined') { console.warn('[vue-class-component] ' + message); } } function collectDataFromConstructor(vm, Component) { // override _init to prevent to init as Vue instance var originalInit = Component.prototype._init; Component.prototype._init = function () { var _this = this; // proxy to actual vm var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties) if (vm.$options.props) { for (var key in vm.$options.props) { if (!vm.hasOwnProperty(key)) { keys.push(key); } } } keys.forEach(function (key) { if (key.charAt(0) !== '_') { Object.defineProperty(_this, key, { get: function () { return vm[key]; }, set: function (value) { vm[key] = value; }, configurable: true }); } }); }; // should be acquired class property values var data = new Component(); // restore original _init to avoid memory leak (#209) Component.prototype._init = originalInit; // create plain data object var plainData = {}; Object.keys(data).forEach(function (key) { if (data[key] !== undefined) { plainData[key] = data[key]; } }); if (false) {} return plainData; } var $internalHooks = [ 'data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6 ]; function componentFactory(Component, options) { if (options === void 0) { options = {}; } options.name = options.name || Component._componentTag || Component.name; // prototype props. var proto = Component.prototype; Object.getOwnPropertyNames(proto).forEach(function (key) { if (key === 'constructor') { return; } // hooks if ($internalHooks.indexOf(key) > -1) { options[key] = proto[key]; return; } var descriptor = Object.getOwnPropertyDescriptor(proto, key); if (descriptor.value !== void 0) { // methods if (typeof descriptor.value === 'function') { (options.methods || (options.methods = {}))[key] = descriptor.value; } else { // typescript decorated data (options.mixins || (options.mixins = [])).push({ data: function () { var _a; return _a = {}, _a[key] = descriptor.value, _a; } }); } } else if (descriptor.get || descriptor.set) { // computed properties (options.computed || (options.computed = {}))[key] = { get: descriptor.get, set: descriptor.set }; } }); (options.mixins || (options.mixins = [])).push({ data: function () { return collectDataFromConstructor(this, Component); } }); // decorate options var decorators = Component.__decorators__; if (decorators) { decorators.forEach(function (fn) { return fn(options); }); delete Component.__decorators__; } // find super var superProto = Object.getPrototypeOf(Component.prototype); var Super = superProto instanceof external_commonjs_vue_commonjs2_vue_root_Vue_default.a ? superProto.constructor : external_commonjs_vue_commonjs2_vue_root_Vue_default.a; var Extended = Super.extend(options); forwardStaticMembers(Extended, Component, Super); if (reflectionIsSupported) { copyReflectionMetadata(Extended, Component); } return Extended; } var reservedPropertyNames = [ // Unique id 'cid', // Super Vue constructor 'super', // Component options that will be used by the component 'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets 'component', 'directive', 'filter' ]; var shouldIgnore = { prototype: true, arguments: true, callee: true, caller: true }; function forwardStaticMembers(Extended, Original, Super) { // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable Object.getOwnPropertyNames(Original).forEach(function (key) { // Skip the properties that should not be overwritten if (shouldIgnore[key]) { return; } // Some browsers does not allow reconfigure built-in properties var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key); if (extendedDescriptor && !extendedDescriptor.configurable) { return; } var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10), // the sub class properties may be inherited properties from the super class in TypeScript. // We need to exclude such properties to prevent to overwrite // the component options object which stored on the extended constructor (See #192). // If the value is a referenced value (object or function), // we can check equality of them and exclude it if they have the same reference. // If it is a primitive value, it will be forwarded for safety. if (!hasProto) { // Only `cid` is explicitly exluded from property forwarding // because we cannot detect whether it is a inherited property or not // on the no `__proto__` environment even though the property is reserved. if (key === 'cid') { return; } var superDescriptor = Object.getOwnPropertyDescriptor(Super, key); if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) { return; } } // Warn if the users manually declare reserved properties if (false) {} Object.defineProperty(Extended, key, descriptor); }); } function vue_class_component_esm_Component(options) { if (typeof options === 'function') { return componentFactory(options); } return function (Component) { return componentFactory(Component, options); }; } vue_class_component_esm_Component.registerHooks = function registerHooks(keys) { $internalHooks.push.apply($internalHooks, keys); }; /* harmony default export */ var vue_class_component_esm = (vue_class_component_esm_Component); // CONCATENATED MODULE: ./node_modules/vue-property-decorator/lib/vue-property-decorator.js /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Inject", function() { return Inject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InjectReactive", function() { return InjectReactive; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Provide", function() { return Provide; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProvideReactive", function() { return ProvideReactive; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Model", function() { return Model; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Prop", function() { return Prop; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PropSync", function() { return PropSync; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Watch", function() { return Watch; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Emit", function() { return Emit; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Ref", function() { return Ref; }); /* concated harmony reexport Component */__webpack_require__.d(__webpack_exports__, "Component", function() { return vue_class_component_esm; }); /* concated harmony reexport Vue */__webpack_require__.d(__webpack_exports__, "Vue", function() { return external_commonjs_vue_commonjs2_vue_root_Vue_default.a; }); /* concated harmony reexport Mixins */__webpack_require__.d(__webpack_exports__, "Mixins", function() { return mixins; }); /** vue-property-decorator verson 8.2.1 MIT LICENSE copyright 2019 kaorun343 */ /// <reference types='reflect-metadata'/> /** Used for keying reactive provide/inject properties */ var reactiveInjectKey = '__reactiveInject__'; /** * decorator of an inject * @param from key * @return PropertyDecorator */ function Inject(options) { return createDecorator(function (componentOptions, key) { if (typeof componentOptions.inject === 'undefined') { componentOptions.inject = {}; } if (!Array.isArray(componentOptions.inject)) { componentOptions.inject[key] = options || key; } }); } /** * decorator of a reactive inject * @param from key * @return PropertyDecorator */ function InjectReactive(options) { return createDecorator(function (componentOptions, key) { if (typeof componentOptions.inject === 'undefined') { componentOptions.inject = {}; } if (!Array.isArray(componentOptions.inject)) { var fromKey_1 = !!options ? options.from || options : key; var defaultVal_1 = (!!options && options.default) || undefined; if (!componentOptions.computed) componentOptions.computed = {}; componentOptions.computed[key] = function () { var obj = this[reactiveInjectKey]; return obj ? obj[fromKey_1] : defaultVal_1; }; componentOptions.inject[reactiveInjectKey] = reactiveInjectKey; } }); } /** * decorator of a provide * @param key key * @return PropertyDecorator | void */ function Provide(key) { return createDecorator(function (componentOptions, k) { var provide = componentOptions.provide; if (typeof provide !== 'function' || !provide.managed) { var original_1 = componentOptions.provide; provide = componentOptions.provide = function () { var rv = Object.create((typeof original_1 === 'function' ? original_1.call(this) : original_1) || null); for (var i in provide.managed) rv[provide.managed[i]] = this[i]; return rv; }; provide.managed = {}; } provide.managed[k] = key || k; }); } /** * decorator of a reactive provide * @param key key * @return PropertyDecorator | void */ function ProvideReactive(key) { return createDecorator(function (componentOptions, k) { var provide = componentOptions.provide; if (typeof provide !== 'function' || !provide.managed) { var original_2 = componentOptions.provide; provide = componentOptions.provide = function () { var _this = this; var rv = Object.create((typeof original_2 === 'function' ? original_2.call(this) : original_2) || null); rv[reactiveInjectKey] = {}; var _loop_1 = function (i) { rv[provide.managed[i]] = this_1[i]; // Duplicates the behavior of `@Provide` Object.defineProperty(rv[reactiveInjectKey], provide.managed[i], { enumerable: true, get: function () { return _this[i]; }, }); }; var this_1 = this; for (var i in provide.managed) { _loop_1(i); } return rv; }; provide.managed = {}; } provide.managed[k] = key || k; }); } /** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */ var reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined'; function applyMetadata(options, target, key) { if (reflectMetadataIsSupported) { if (!Array.isArray(options) && typeof options !== 'function' && typeof options.type === 'undefined') { options.type = Reflect.getMetadata('design:type', target, key); } } } /** * decorator of model * @param event event name * @param options options * @return PropertyDecorator */ function Model(event, options) { if (options === void 0) { options = {}; } return function (target, key) { applyMetadata(options, target, key); createDecorator(function (componentOptions, k) { ; (componentOptions.props || (componentOptions.props = {}))[k] = options; componentOptions.model = { prop: k, event: event || k }; })(target, key); }; } /** * decorator of a prop * @param options the options for the prop * @return PropertyDecorator | void */ function Prop(options) { if (options === void 0) { options = {}; } return function (target, key) { applyMetadata(options, target, key); createDecorator(function (componentOptions, k) { ; (componentOptions.props || (componentOptions.props = {}))[k] = options; })(target, key); }; } /** * decorator of a synced prop * @param propName the name to interface with from outside, must be different from decorated property * @param options the options for the synced prop * @return PropertyDecorator | void */ function PropSync(propName, options) { if (options === void 0) { options = {}; } // @ts-ignore return function (target, key) { applyMetadata(options, target, key); createDecorator(function (componentOptions, k) { ; (componentOptions.props || (componentOptions.props = {}))[propName] = options; (componentOptions.computed || (componentOptions.computed = {}))[k] = { get: function () { return this[propName]; }, set: function (value) { // @ts-ignore this.$emit("update:" + propName, value); }, }; })(target, key); }; } /** * decorator of a watch function * @param path the path or the expression to observe * @param WatchOption * @return MethodDecorator */ function Watch(path, options) { if (options === void 0) { options = {}; } var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b; return createDecorator(function (componentOptions, handler) { if (typeof componentOptions.watch !== 'object') { componentOptions.watch = Object.create(null); } var watch = componentOptions.watch; if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) { watch[path] = [watch[path]]; } else if (typeof watch[path] === 'undefined') { watch[path] = []; } watch[path].push({ handler: handler, deep: deep, immediate: immediate }); }); } // Code copied from Vue/src/shared/util.js var hyphenateRE = /\B([A-Z])/g; var hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); }; /** * decorator of an event-emitter function * @param event The name of the event * @return MethodDecorator */ function Emit(event) { return function (_target, key, descriptor) { key = hyphenate(key); var original = descriptor.value; descriptor.value = function emitter() { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var emit = function (returnValue) { if (returnValue !== undefined) args.unshift(returnValue); _this.$emit.apply(_this, [event || key].concat(args)); }; var returnValue = original.apply(this, args); if (isPromise(returnValue)) { returnValue.then(function (returnValue) { emit(returnValue); }); } else { emit(returnValue); } return returnValue; }; }; } /** * decorator of a ref prop * @param refKey the ref key defined in template */ function Ref(refKey) { return createDecorator(function (options, key) { options.computed = options.computed || {}; options.computed[key] = { cache: false, get: function () { return this.$refs[refKey || key]; }, }; }); } function isPromise(obj) { return obj instanceof Promise || (obj && typeof obj.then === 'function'); } /***/ }), /***/ "6605": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _eyedrop_html_vue_type_template_id_4913769a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("37bd"); /* harmony import */ var _eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("aa5e"); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _eyedrop_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("9604"); /* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("2877"); /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])( _eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__["default"], _eyedrop_html_vue_type_template_id_4913769a___WEBPACK_IMPORTED_MODULE_0__[/* render */ "a"], _eyedrop_html_vue_type_template_id_4913769a___WEBPACK_IMPORTED_MODULE_0__[/* staticRenderFns */ "b"], false, null, null, null ) /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), /***/ "786d": /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin /***/ }), /***/ "8bbf": /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__; /***/ }), /***/ "9604": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_eyedrop_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("786d"); /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_eyedrop_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_eyedrop_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_eyedrop_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), /***/ "aa5e": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_ts_loader_index_js_ref_12_2_eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("167d"); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_ts_loader_index_js_ref_12_2_eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_ts_loader_index_js_ref_12_2_eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_ts_loader_index_js_ref_12_2_eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_ts_loader_index_js_ref_12_2_eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_ts_loader_index_js_ref_12_2_eyedrop_ts_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), /***/ "f6fd": /***/ (function(module, exports) { // document.currentScript polyfill by Adam Miller // MIT license (function(document){ var currentScript = "currentScript", scripts = document.getElementsByTagName('script'); // Live NodeList collection // If browser needs currentScript polyfill, add get currentScript() to the document object if (!(currentScript in document)) { Object.defineProperty(document, currentScript, { get: function(){ // IE 6-10 supports script readyState // IE 10+ support stack trace try { throw new Error(); } catch (err) { // Find the second match for the "at" string to get file src url from stack. // Specifically works with the format of stack traces in IE. var i, res = ((/.*at [^\(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1]; // For all scripts on the page, if src matches or if ready state is interactive, return the script tag for(i in scripts){ if(scripts[i].src == res || scripts[i].readyState == "interactive"){ return scripts[i]; } } // If no match, return null return null; } } }); } })(document); /***/ }), /***/ "fb15": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _setPublicPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1eb2"); /* harmony import */ var _entry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("6605"); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _entry__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_entry__WEBPACK_IMPORTED_MODULE_1__["default"]); /***/ }) /******/ })["default"]; }); //# sourceMappingURL=eyedrop.umd.js.map