(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["VueMaterial"] = factory(); else root["VueMaterial"] = factory(); })(this, (function() { 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; /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ // 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 = 459); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports) { /* globals __VUE_SSR_CONTEXT__ */ // this module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle module.exports = function normalizeComponent ( rawScriptExports, compiledTemplate, injectStyles, scopeId, moduleIdentifier /* server only */ ) { var esModule var scriptExports = rawScriptExports = rawScriptExports || {} // ES6 modules interop var type = typeof rawScriptExports.default if (type === 'object' || type === 'function') { esModule = rawScriptExports scriptExports = rawScriptExports.default } // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (compiledTemplate) { options.render = compiledTemplate.render options.staticRenderFns = compiledTemplate.staticRenderFns } // scopedId if (scopeId) { options._scopeId = 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 = injectStyles } if (hook) { var functional = options.functional var existing = functional ? options.render : options.beforeCreate if (!functional) { // inject component registration as beforeCreate hook options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } else { // register for functioal component in vue file options.render = function renderWithStyleInjection (h, context) { hook.call(context) return existing(h, context) } } } return { esModule: esModule, exports: scriptExports, options: options } } /***/ }), /***/ 155: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _getImageLightness = __webpack_require__(65); var _getImageLightness2 = _interopRequireDefault(_getImageLightness); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { name: 'md-image', props: { mdSrc: String }, data: function data() { return { loaded: false, applyBlack: true, imageElement: null }; }, watch: { mdSrc: function mdSrc() { this.createImage(); } }, computed: { classes: function classes() { return { 'md-loaded': this.loaded, 'md-black-output': this.applyBlack }; } }, methods: { analyzeLightness: function analyzeLightness(image) { var _this = this; var applyLoad = function applyLoad() { _this.loaded = true; }; (0, _getImageLightness2.default)(image, (function (lightness) { var limit = 256; var darkness = (Math.abs(limit - lightness) * 100 / limit + 15) / 100; if (darkness >= 0.7) { _this.applyBlack = true; } _this.$nextTick(applyLoad); }), applyLoad); }, createImage: function createImage() { this.loaded = false; this.applyBlack = false; this.imageElement = null; if (this.mdSrc) { this.imageElement = document.createElement('img'); this.imageElement.crossOrigin = ''; this.imageElement.src = this.mdSrc; this.analyzeLightness(this.imageElement); } } }, created: function created() { this.createImage(); } }; // // // // // // module.exports = exports['default']; /***/ }), /***/ 261: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 276: /***/ (function(module, exports) { module.exports = "" /***/ }), /***/ 325: /***/ (function(module, exports, __webpack_require__) { var disposed = false function injectStyle (ssrContext) { if (disposed) return __webpack_require__(261) } var Component = __webpack_require__(0)( /* script */ __webpack_require__(155), /* template */ __webpack_require__(439), /* styles */ injectStyle, /* scopeId */ null, /* moduleIdentifier (server only) */ null ) Component.options.__file = "/Users/pablohpsilva/Code/vue-material/src/components/mdImage/mdImage.vue" if (Component.esModule && Object.keys(Component.esModule).some((function (key) {return key !== "default" && key.substr(0, 2) !== "__"}))) {console.error("named exports are not supported in *.vue files.")} if (Component.options.functional) {console.error("[vue-loader] mdImage.vue: functional components are not supported with templates, they should use render functions.")} /* hot reload */ if (false) {(function () { var hotAPI = require("vue-hot-reload-api") hotAPI.install(require("vue"), false) if (!hotAPI.compatible) return module.hot.accept() if (!module.hot.data) { hotAPI.createRecord("data-v-b0fc1ce4", Component.options) } else { hotAPI.reload("data-v-b0fc1ce4", Component.options) } module.hot.dispose((function (data) { disposed = true })) })()} module.exports = Component.exports /***/ }), /***/ 439: /***/ (function(module, exports, __webpack_require__) { module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; return _c('img', { staticClass: "md-image", class: _vm.classes, attrs: { "src": _vm.mdSrc } }) },staticRenderFns: []} module.exports.render._withStripped = true if (false) { module.hot.accept() if (module.hot.data) { require("vue-hot-reload-api").rerender("data-v-b0fc1ce4", module.exports) } } /***/ }), /***/ 459: /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(92); /***/ }), /***/ 65: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var getImageLightness = function getImageLightness(image, onLoad, onError) { var canvas = document.createElement('canvas'); image.crossOrigin = 'Anonymous'; image.onload = function () { var colorSum = 0; var ctx = void 0; var imageData = void 0; var imageMetadata = void 0; var r = void 0; var g = void 0; var b = void 0; var average = void 0; canvas.width = this.width; canvas.height = this.height; ctx = canvas.getContext('2d'); ctx.drawImage(this, 0, 0); imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); imageMetadata = imageData.data; for (var x = 0, len = imageMetadata.length; x < len; x += 4) { r = imageMetadata[x]; g = imageMetadata[x + 1]; b = imageMetadata[x + 2]; average = Math.floor((r + g + b) / 3); colorSum += average; } onLoad(Math.floor(colorSum / (this.width * this.height))); }; image.onerror = onError; }; exports.default = getImageLightness; module.exports = exports['default']; /***/ }), /***/ 92: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = install; var _mdImage = __webpack_require__(325); var _mdImage2 = _interopRequireDefault(_mdImage); var _mdImage3 = __webpack_require__(276); var _mdImage4 = _interopRequireDefault(_mdImage3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function install(Vue) { Vue.component('md-image', _mdImage2.default); Vue.material.styles.push(_mdImage4.default); } module.exports = exports['default']; /***/ }) /******/ }); }));