HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/self/cwd/wp-content/new_update/plugins/crop-thumbnails/app/js/app.js.map
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/native/global.cachebreak.js","webpack:///./src/native/global.setup.js","webpack:///./src/components/cropeditor.vue?7b49","webpack:///./src/components/loadingcontainer.vue?3623","webpack:///src/components/loadingcontainer.vue","webpack:///./src/components/loadingcontainer.vue?96c4","webpack:///./src/components/loadingcontainer.vue","webpack:///./src/components/message.vue?e2f5","webpack:///src/components/message.vue","webpack:///./src/components/message.vue?a603","webpack:///./src/components/message.vue","webpack:///src/components/cropeditor.vue","webpack:///./src/components/cropeditor.vue?efd1","webpack:///./src/components/cropeditor.vue","webpack:///./src/native/init.modal.js","webpack:///./src/components/settingsscreen.vue?4654","webpack:///src/components/settingsscreen.vue","webpack:///./src/components/settingsscreen.vue?6759","webpack:///./src/components/settingsscreen.vue","webpack:///./src/native/init.settingsscreen.js","webpack:///./src/native/cpt_wait_for_final_event.js","webpack:///./src/native/init.clickhandler.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","CROP_THUMBNAILS_DO_CACHE_BREAK","elem","$","jQuery","images","img","imageUrl","attr","imageUrlArray","split","Date","getTime","global","CROP_THUMBNAILS_VUE","app","components","render","_vm","this","_h","$createElement","_c","_self","cropData","lang","staticClass","class","loading","cropEditorActive","croppingApi","_v","_s","waiting","_m","_e","cropDisabled","noPermission","hiddenOnPostType","cptImagesAreSelected","selectedImageSizes","message_image_orientation","label_same_ratio_mode","directives","rawName","expression","on","$event","$$selectedVal","Array","filter","target","options","selected","map","val","_value","sameRatioMode","multiple","updateSameRatioMode","_l","option","domProps","text","attrs","makeAllInactive","label_deselect_all","filteredImageSizes","nameLabel","imageSizeClass","toggleActive","isLowRes","lowResWarning","notYetCropped","dimensions","width","height","pixel","ratio","printRatio","isImageInGroupNotYetCropped","url","cacheBreak","style","infoNoImageSizesAvailable","rawImage","sourceImage","full","cropThumbnails","label_crop","ref","cropImage","headline_selected_image_sizes","instructions_header","instructions_step_1","instructions_step_2","instructions_step_3","showDebugClick","debug_data","dataDebug","showDebugType","staticRenderFns","status","staticStyle","image","_t","component","closed","close","modal","that","removeModal","unbind","remove","removeClass","event","$destroy","trigger","document","removeEventListener","closeByEscKey","closeByBackground","getElementById","keyCode","stopPropagation","open","imageId","posttype","title","id","modalHtml","html","prepend","addClass","click","addEventListener","Vue","el","mounted","console","log","cropeditor","settingsData","choose_image_sizes","postType","label","imageSize","isImageSizeHidden","isButtonHiddenOnPostType","hide_on_post_type","cptSettingsscreen","timers","e","preventDefault","undefined","image_id"],"mappings":"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","file":"js/app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","\n/**\n * Provide a global accessable cache-break-function (only available on backend-pages where crop-thumbnail is active --> post-editor, mediathek)\n * Calling this function will add a timestamp on the provided Image-Element.\n * ATTENTION: using this will also delete all other parameters on the images src-attribute.\n * @param {dom-element / jquery-selection} elem\n */\nCROP_THUMBNAILS_DO_CACHE_BREAK = function(elem) {\n\tvar $ = jQuery;\n\tvar images = $(elem);\n\tfor(var i = 0; i<images.length; i++) {\n\t\tvar img = $(images[i]);//select image\n\t\tvar imageUrl = img.attr('src');\n\t\tvar imageUrlArray = imageUrl.split(\"?\");\n\t\t\n\t\timg.attr('src',imageUrlArray[0]+'?&cacheBreak='+(new Date()).getTime());\n\t}\n};\n","global.CROP_THUMBNAILS_VUE = {\n\tapp:null,//will be initialized in modal/modal.js\n\tcomponents : {}\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.cropData && _vm.lang)?_c('div',{staticClass:\"cptEditorInner\",class:{loading:_vm.loading,cropEditorActive:_vm.croppingApi}},[(_vm.loading)?_c('div',{staticClass:\"cptWaitingWindow\"},[_c('div',{staticClass:\"msg\"},[_vm._v(\" \"+_vm._s(_vm.lang.waiting)+\" \"),_vm._m(0)])]):_vm._e(),(_vm.cropData.hiddenOnPostType)?_c('div',{staticClass:\"cptWaitingWindow cptCropDisabledMsg\"},[_c('div',{staticClass:\"msg\"},[_vm._v(_vm._s(_vm.lang.cropDisabled))])]):_vm._e(),(_vm.cropData.noPermission)?_c('div',{staticClass:\"cptWaitingWindow cptNoPermissionMsg\"},[_c('div',{staticClass:\"msg\"},[_vm._v(_vm._s(_vm.lang.noPermission))])]):_vm._e(),(!_vm.cropData.hiddenOnPostType && !_vm.cropData.noPermission)?_c('div',{staticClass:\"mainWindow\"},[_c('div',{staticClass:\"cptSelectionPane\",class:{ cptImagesAreSelected : (_vm.selectedImageSizes.length>0) }},[_c('div',{staticClass:\"cptSelectionPaneInner\"},[(_vm.sourceImageHasOrientation)?_c('message',[_vm._v(_vm._s(_vm.lang.message_image_orientation))]):_vm._e(),_c('div',{staticClass:\"cptToolbar\"},[_c('label',{staticClass:\"cptSameRatioMode\"},[_vm._v(\" \"+_vm._s(_vm.lang.label_same_ratio_mode)+\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sameRatioMode),expression:\"sameRatioMode\"}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.sameRatioMode=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.updateSameRatioMode]}},_vm._l((_vm.sameRatioModeOptions),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.text))])}),0)]),_c('button',{staticClass:\"button cptDeselectAll\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.makeAllInactive()}}},[_vm._v(_vm._s(_vm.lang.label_deselect_all))])]),(_vm.filteredImageSizes.length>0)?_c('ul',{staticClass:\"cptImageSizelist\"},_vm._l((_vm.filteredImageSizes),function(i){return _c('li',{key:i.nameLabel,class:_vm.imageSizeClass(i),on:{\"click\":function($event){return _vm.toggleActive(i)}}},[_c('section',{staticClass:\"cptImageSizeInner\"},[(_vm.sameRatioMode!=='group')?[_c('header',[_vm._v(_vm._s(i.nameLabel))]),(_vm.isLowRes(i))?_c('div',{staticClass:\"lowResWarning\",attrs:{\"title\":_vm.lang.lowResWarning}},[_c('span',[_vm._v(\"!\")])]):_vm._e(),(!_vm.isLowRes(i) && i.notYetCropped)?_c('div',{staticClass:\"notYetCropped\",attrs:{\"title\":_vm.lang.notYetCropped}},[_c('span',{staticClass:\"dashicons dashicons-image-crop\"})]):_vm._e(),_c('div',{staticClass:\"dimensions\"},[_vm._v(_vm._s(_vm.lang.dimensions)+\" \"+_vm._s(i.width)+\" x \"+_vm._s(i.height)+\" \"+_vm._s(_vm.lang.pixel))]),_c('div',{staticClass:\"ratio\"},[_vm._v(_vm._s(_vm.lang.ratio)+\" \"+_vm._s(i.printRatio))])]:[_c('header',[_vm._v(_vm._s(i.printRatio))]),(_vm.isImageInGroupNotYetCropped(i.printRatio))?_c('div',{staticClass:\"notYetCropped\",attrs:{\"title\":_vm.lang.notYetCropped}},[_c('span',{staticClass:\"dashicons dashicons-image-crop\"})]):_vm._e()],_c('loadingcontainer',{attrs:{\"image\":i.url+'?cacheBreak='+i.cacheBreak}},[_c('div',{staticClass:\"cptImageBgContainer\",style:({'background-image': 'url('+i.url+'?cacheBreak='+i.cacheBreak+')'})})])],2)])}),0):_c('div',{staticClass:\"cptImageSizelist\"},[_c('div',{staticClass:\"noImageSizesAvailable\"},[_vm._v(\" \"+_vm._s(_vm.lang.infoNoImageSizesAvailable)+\" \")])])],1)]),_c('div',{staticClass:\"cptCropPane\"},[_c('div',{staticClass:\"info\"},[_c('h3',[_vm._v(_vm._s(_vm.lang.rawImage))]),_c('div',{staticClass:\"dimensions\"},[_vm._v(_vm._s(_vm.lang.dimensions)+\" \"+_vm._s(_vm.cropData.sourceImage.full.width)+\" x \"+_vm._s(_vm.cropData.sourceImage.full.height)+\" \"+_vm._s(_vm.lang.pixel))]),_c('div',{staticClass:\"ratio\"},[_vm._v(_vm._s(_vm.lang.ratio)+\" \"+_vm._s(_vm.cropData.sourceImage.full.printRatio))])]),_c('button',{staticClass:\"button cptGenerate\",class:{'button-primary':_vm.croppingApi},attrs:{\"type\":\"button\",\"disabled\":!_vm.croppingApi},on:{\"click\":function($event){return _vm.cropThumbnails()}}},[_vm._v(_vm._s(_vm.lang.label_crop))]),_c('div',{staticClass:\"cropContainer\"},[_c('img',{ref:\"cptCroppingImage\",staticClass:\"cptCroppingImage\",attrs:{\"src\":_vm.cropImage.url}})]),(_vm.selectedImageSizes.length>0)?_c('div',{staticClass:\"selectionInfo\"},[_c('h4',[_vm._v(_vm._s(_vm.lang.headline_selected_image_sizes))]),_c('ul',_vm._l((_vm.selectedImageSizes),function(i){return _c('li',{key:i.nameLabel},[_c('div',[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(i.nameLabel))]),_vm._v(\" \"),_c('span',{staticClass:\"dimensions\"},[_vm._v(\"(\"+_vm._s(_vm.lang.dimensions)+\" \"+_vm._s(i.width)+\" x \"+_vm._s(i.height)+\" \"+_vm._s(_vm.lang.pixel)+\")\")])]),(_vm.isLowRes(i))?_c('div',{staticClass:\"lowResWarning\"},[_c('span',{staticClass:\"icon\"},[_vm._v(\"!\")]),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.lang.lowResWarning))])]):_vm._e(),(i.notYetCropped)?_c('div',{staticClass:\"notYetCropped\"},[_c('span',{staticClass:\"icon dashicons dashicons-image-crop\"}),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.lang.notYetCropped))])]):_vm._e()])}),0),_c('hr')]):_vm._e(),_c('div',{staticClass:\"instructionInfo\"},[_c('h4',[_vm._v(_vm._s(_vm.lang.instructions_header))]),_c('ul',{staticClass:\"step-info\"},[_c('li',[_vm._v(_vm._s(_vm.lang.instructions_step_1))]),_c('li',[_vm._v(_vm._s(_vm.lang.instructions_step_2))]),_c('li',[_vm._v(_vm._s(_vm.lang.instructions_step_3))])])]),_c('div',[(_vm.cropData.options.debug_js)?_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDebugClick('js')}}},[_vm._v(\"show JS-Debug\")]):_vm._e(),(_vm.cropData.options.debug_data && _vm.dataDebug!==null)?_c('button',{staticClass:\"button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDebugClick('data')}}},[_vm._v(\"show Data-Debug\")]):_vm._e(),(_vm.showDebugType==='data')?_c('pre',[_vm._v(_vm._s(_vm.dataDebug))]):_vm._e(),(_vm.showDebugType==='js')?_c('pre',[_c('br'),_vm._v(\"cropImage:\"+_vm._s(_vm.cropImage)),_c('br'),_vm._v(\"cropData:\"+_vm._s(_vm.cropData))]):_vm._e()])])]):_vm._e()]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"cptLoadingSpinner\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loadingcontainer\",class:_vm.status},[_c('img',{staticStyle:{\"display\":\"none\"},attrs:{\"src\":_vm.image}}),_vm._t(\"default\"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.status==='loading')?_c('div',{staticClass:\"loadingMsg\"},[_c('div',{staticClass:\"cptLoadingSpinner\"})]):_vm._e()])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div class=\"loadingcontainer\" :class=\"status\">\n        <img :src=\"image\" style=\"display:none;\" />\n        <slot></slot>\n        \n        <transition name=\"fade\">\n            <div class=\"loadingMsg\" v-if=\"status==='loading'\">\n                <div class=\"cptLoadingSpinner\"></div>\n            </div>\n        </transition>\n    </div>\n</template>\n\n<script>\nexport default {\n    props:{\n        image : { required: true, type:String }\n    },\n    data: () => ({\n        status:null\n    }),\n    mounted() { this.setup(); },\n    watch:{\n        image() {\n            this.setup();\n        }\n    },\n    methods:{\n        setup() {\n            this.setStart();\n            setTimeout(() => {\n                var imgLoad = imagesLoaded( this.$el );\n                imgLoad\n                    .once('done',() => {\n                        if(this.status!=='failed') {\n                            this.setComplete();\n                        }\n                    })\n                    .once('fail',() => {\n                        this.setFailed();\n                    });\n            },300);\n        },\n        setComplete() {\n            this.status = 'completed';\n        },\n        setStart() {\n            this.status = 'loading';\n        },\n        setFailed() {\n            this.status = 'failed';\n        }\n    }\n}\n</script>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loadingcontainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loadingcontainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./loadingcontainer.vue?vue&type=template&id=4a6b899d&\"\nimport script from \"./loadingcontainer.vue?vue&type=script&lang=js&\"\nexport * from \"./loadingcontainer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.closed)?_c('div',{staticClass:\"notice notice-warning is-dismissible cptMessage\",attrs:{\"aria-role\":\"alert\"}},[_c('p',[_vm._t(\"default\")],2),_c('button',{staticClass:\"notice-dismiss\",attrs:{\"type\":\"button\",\"aria-label\":\"close\"},on:{\"click\":function($event){return _vm.close()}}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div class=\"notice notice-warning is-dismissible cptMessage\" aria-role=\"alert\" v-if=\"!closed\">\n        <p><slot></slot></p>\n        <button type=\"button\" class=\"notice-dismiss\" @click=\"close()\" aria-label=\"close\"></button>\n    </div>\n</template>\n\n<script>\nexport default {\n    props:{},\n    data:() => ({\n        closed:false\n    }),\n    methods:{\n        close() {\n            this.closed = true;\n        }\n    }\n}\n</script>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./message.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./message.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./message.vue?vue&type=template&id=497fb64b&\"\nimport script from \"./message.vue?vue&type=script&lang=js&\"\nexport * from \"./message.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\n    <div class=\"cptEditorInner\" v-if=\"cropData && lang\" :class=\"{loading:loading,cropEditorActive:croppingApi}\">\n        \n        <div class=\"cptWaitingWindow\" v-if=\"loading\">\n            <div class=\"msg\">\n                {{ lang.waiting }}\n                <div>\n                    <div class=\"cptLoadingSpinner\"></div>\n                </div>\n            </div>\n        </div>\n        \n        <div class=\"cptWaitingWindow cptCropDisabledMsg\" v-if=\"cropData.hiddenOnPostType\">\n            <div class=\"msg\">{{lang.cropDisabled}}</div>\n        </div>\n        \n        <div class=\"cptWaitingWindow cptNoPermissionMsg\" v-if=\"cropData.noPermission\">\n            <div class=\"msg\">{{lang.noPermission}}</div>\n        </div>\n\n        <div class=\"mainWindow\" v-if=\"!cropData.hiddenOnPostType && !cropData.noPermission\">\n            \n            <div class=\"cptSelectionPane\" :class=\"{ cptImagesAreSelected : (selectedImageSizes.length>0) }\">\n                <div class=\"cptSelectionPaneInner\">\n                    <message v-if=\"sourceImageHasOrientation\">{{lang.message_image_orientation}}</message>\n                    <div class=\"cptToolbar\">\n                        <label class=\"cptSameRatioMode\">\n                            {{lang.label_same_ratio_mode}}\n                            <select v-model=\"sameRatioMode\" @change=\"updateSameRatioMode\">\n                                <option v-for=\"option in sameRatioModeOptions\" :key=\"option.value\" :value=\"option.value\">{{option.text}}</option>\n                            </select>\n                        </label>\n                        <button type=\"button\" class=\"button cptDeselectAll\" @click=\"makeAllInactive()\">{{lang.label_deselect_all}}</button>\n                    </div>\n\n\n                    <ul class=\"cptImageSizelist\" v-if=\"filteredImageSizes.length>0\">\n                        <li v-for=\"i in filteredImageSizes\" :key=\"i.nameLabel\" :class=\"imageSizeClass(i)\" @click=\"toggleActive(i)\">\n                            <section class=\"cptImageSizeInner\">\n                                <template v-if=\"sameRatioMode!=='group'\">\n                                    <header>{{i.nameLabel}}</header>\n                                    <div class=\"lowResWarning\" v-if=\"isLowRes(i)\" :title=\"lang.lowResWarning\"><span>!</span></div>\n                                    <div class=\"notYetCropped\" v-if=\"!isLowRes(i) && i.notYetCropped\" :title=\"lang.notYetCropped\"><span class=\"dashicons dashicons-image-crop\"></span></div>\n                                    <div class=\"dimensions\">{{ lang.dimensions }} {{i.width}} x {{i.height}} {{ lang.pixel }}</div>\n                                    <div class=\"ratio\">{{ lang.ratio }} {{i.printRatio}}</div>\n                                </template>\n                                <template v-else>\n                                    <header>{{i.printRatio}}</header>\n                                    <div class=\"notYetCropped\" v-if=\"isImageInGroupNotYetCropped(i.printRatio)\" :title=\"lang.notYetCropped\"><span class=\"dashicons dashicons-image-crop\"></span></div>\n                                </template>\n                                \n                                <loadingcontainer :image=\"i.url+'?cacheBreak='+i.cacheBreak\">\n                                    <div class=\"cptImageBgContainer\" :style=\"{'background-image': 'url('+i.url+'?cacheBreak='+i.cacheBreak+')'}\"></div>\n                                </loadingcontainer>\n                            </section>\n                        </li>\n                    </ul>\n\n                    <div class=\"cptImageSizelist\" v-else>\n                        <div class=\"noImageSizesAvailable\">\n                            {{lang.infoNoImageSizesAvailable}}\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"cptCropPane\">\n                <div class=\"info\">\n                    <h3>{{ lang.rawImage }}</h3>\n                    <div class=\"dimensions\">{{ lang.dimensions }} {{cropData.sourceImage.full.width}} x {{cropData.sourceImage.full.height}} {{ lang.pixel }}</div>\n                    <div class=\"ratio\">{{ lang.ratio }} {{cropData.sourceImage.full.printRatio}}</div>\n                </div>\n                <button type=\"button\" class=\"button cptGenerate\" :class=\"{'button-primary':croppingApi}\" @click=\"cropThumbnails()\" :disabled=\"!croppingApi\">{{ lang.label_crop }}</button>\n                \n                <div class=\"cropContainer\">\n                    <img class=\"cptCroppingImage\" ref=\"cptCroppingImage\" :src=\"cropImage.url\" />\n                </div>\n        \n                <div class=\"selectionInfo\" v-if=\"selectedImageSizes.length>0\">\n                    <h4>{{lang.headline_selected_image_sizes}}</h4>\n                    <ul>\n                        <li v-for=\"i in selectedImageSizes\" :key=\"i.nameLabel\">\n                            <div>\n                                <span class=\"name\">{{i.nameLabel}}</span> <span class=\"dimensions\">({{ lang.dimensions }} {{i.width}} x {{i.height}} {{ lang.pixel }})</span>\n                            </div>\n                            <div class=\"lowResWarning\" v-if=\"isLowRes(i)\">\n                                <span class=\"icon\">!</span> \n                                <span class=\"text\">{{lang.lowResWarning}}</span>\n                            </div>\n                            <div class=\"notYetCropped\" v-if=\"i.notYetCropped\">\n                                <span class=\"icon dashicons dashicons-image-crop\"></span>\n                                <span class=\"text\">{{lang.notYetCropped}}</span>\n                            </div>\n                        </li>\n                    </ul>\n                    <hr />\n                </div>\n\n                <div class=\"instructionInfo\">\n                    <h4>{{ lang.instructions_header }}</h4>\n                    <ul class=\"step-info\">\n                        <li>{{ lang.instructions_step_1 }}</li>\n                        <li>{{ lang.instructions_step_2 }}</li>\n                        <li>{{ lang.instructions_step_3 }}</li>\n                    </ul>\n                </div>\n\n                <div>\n                    <button type=\"button\" class=\"button\" v-if=\"cropData.options.debug_js\" @click=\"showDebugClick('js')\">show JS-Debug</button>\n                    <button type=\"button\" class=\"button\" v-if=\"cropData.options.debug_data && dataDebug!==null\" @click=\"showDebugClick('data')\">show Data-Debug</button>\n                    <pre v-if=\"showDebugType==='data'\">{{ dataDebug }}</pre>\n                    <pre v-if=\"showDebugType==='js'\"><br />cropImage:{{cropImage}}<br />cropData:{{ cropData }}</pre>\n                </div>\n\n            </div>\n        </div>\n    </div>\n\n</template>\n\n<script>\nimport loadingcontainer from './loadingcontainer.vue';\nimport message from './message.vue';\nexport default {\n    components: { loadingcontainer, message },\n    props:{\n        imageId : { required: true, type:Number },\n        posttype : { required:false, type:String, default:null },\n    },\n    data:() =>({\n        cropData : null,//\n        loading : false,//will be true as long as the crop-request is running\n        croppingApi : null,//the object of the crop-library\n        currentCropSize : null,//the size of the cropp region (needed for lowResWarning)\n        lang : null,//language-variable (filled after initial request)\n        nonce : null,//the nonce for the crop-request\n        showDebugType : null,//the type of the debug to show: null-> no debug open, 'js' -> show jsDebug, 'data' -> show dataDebug\n        dataDebug : null,//will be filled after the crop request finished\n        \n        sameRatioMode : null,// can be NULL, \"select\" or \"group\"\n        sameRatioModeOptions: []\n    }),\n    mounted() {\n        this.loadCropData();\n    },\n    computed:{\n        cropImage() {\n            if(this.cropData!==undefined) {\n                var result = this.cropData.sourceImage.full;\n                var targetRatio = Math.round(result.ratio * 10);\n                if(this.cropData.sourceImage.large!==null \n                    && this.cropData.sourceImage.large.width>745 \n                    && targetRatio === Math.round(this.cropData.sourceImage.large.ratio * 10)\n                    && this.cropData.sourceImage.full.url !== this.cropData.sourceImage.large.url\n                    ) {\n                    result = this.cropData.sourceImage.large;\n                }\n                if(this.cropData.sourceImage.medium_large!==null\n                    && this.cropData.sourceImage.medium_large.width>745 \n                    && targetRatio === Math.round(this.cropData.sourceImage.medium_large.ratio * 10)\n                    && this.cropData.sourceImage.full.url !== this.cropData.sourceImage.medium_large.url\n                    ) {\n                    result = this.cropData.sourceImage.medium_large;\n                }\n                return result;\n            }\n        },\n        filteredImageSizes() {\n            //let result = JSON.parse(JSON.stringify(this.cropData.imageSizes));\n            let result = this.cropData.imageSizes;\n            \n            if(this.sameRatioMode==='group') {\n                let remember = [];\n                result = result.filter(elem => {\n                    let existingPrintRatioIndex = remember.indexOf(elem.printRatio);\n                    if(existingPrintRatioIndex>-1) {\n                        //notYetCropped is true if in one of the group-entries notYetCropped is true\n                        //result[existingPrintRatioIndex].notYetCropped = result[existingPrintRatioIndex].notYetCropped || elem.notYetCropped;\n                        return false;\n                    }\n                    remember.push(elem.printRatio);\n                    return true;\n                });\n            }\n            return result;\n        },\n        selectedImageSizes() {\n            return this.cropData.imageSizes.filter(elem => elem.active );\n        },\n        sourceImageHasOrientation() {\n            try {\n                if(typeof this.cropData.sourceImageMeta.orientation === 'string' && this.cropData.sourceImageMeta.orientation !== '1' && this.cropData.sourceImageMeta.orientation !== '0') {\n                    return true;\n                }\n            } catch(e) {}\n            return false;\n        }\n    },\n    methods:{\n        isImageInGroupNotYetCropped(printRatio) {\n            return this.cropData.imageSizes.filter(elem => elem.printRatio===printRatio && elem.notYetCropped).length>0;\n        },\n        setupRatioMode() {\n            this.sameRatioModeOptions = [\n                { value: null, text: this.lang.label_same_ratio_mode_nothing },\n                { value: 'select', text: this.lang.label_same_ratio_mode_select },\n                { value: 'group', text: this.lang.label_same_ratio_mode_group },\n            ];\n            \n            try {\n                this.sameRatioMode = localStorage.getItem('cpt_same_ratio_mode');\n            } catch(e) {}\n        },\n        updateSameRatioMode() {\n            try {\n                localStorage.setItem('cpt_same_ratio_mode', this.sameRatioMode);\n            } catch(e) {}\n        },\n        imageSizeClass(imageSize) {\n            var baseClass = { active: imageSize.active };\n            baseClass['cptImageSize-' + imageSize.nameLabel] = true;//add image-size to the class\n            return baseClass;\n        },\n        loadCropData() {\n            let that = this;\n            var getParameter = {\n                action : 'cpt_cropdata',\n                imageId : this.imageId,\n                posttype : this.posttype\n            };\n            that.loading = true;\n            jQuery.get(ajaxurl, getParameter, (responseData) => {\n                that.makeAllInactive(responseData.imageSizes);\n                that.addCacheBreak(responseData.imageSizes);\n                that.cropData = responseData;\n                that.lang = that.cropData.lang;\n                that.nonce = that.cropData.nonce;\n                delete that.cropData.nonce;\n            }).fail((data) => {\n                that.cropData = data.responseJSON;\n                that.lang = that.cropData.lang;\n                that.nonce = that.cropData.nonce;\n                delete that.cropData.nonce;\n                if(data.status===403) {\n                    that.cropData.noPermission = true;\n                }\n            }).always(() => {\n                that.loading = false;\n                that.setupRatioMode();\n                \n                if(that.cropData && that.cropData.imageSizes) {\n                    //remove elements with hideByPostType===true\n                    that.cropData.imageSizes = that.cropData.imageSizes.filter(elem => !elem.hideByPostType);\n\n                    //apply notYetCropped variable\n                    that.cropData.imageSizes.forEach(elem => {\n                        elem.notYetCropped = elem.url === that.cropData.sourceImage.full.url;\n                    });\n                }\n            });\n        },\n        isLowRes(image) {\n            if(!image.active || this.currentCropSize===null) {\n                return false;\n            }\n            if(image.width===0 && this.currentCropSize.height < image.height) {\n                return true;\n            }\n            if(image.height===0 && this.currentCropSize.width < image.width) {\n                return true;\n            }\n            if(image.height===9999) {\n                if(this.currentCropSize.width < image.width) {\n                    return true;\n                }\n                return false;\n            }\n            if(image.width===9999) {\n                if(this.currentCropSize.height < image.height) {\n                    return true;\n                }\n                return false;\n            }\n            if(this.currentCropSize.width < image.width || this.currentCropSize.height < image.height) {\n                return true;\n            }\n            return false;\n        },\n        toggleActive(image) {\n            let newValue = !image.active;\n            \n            if(image.active===false) {\n                this.makeAllInactive();\n            }\n\n            if(this.sameRatioMode === 'select' || this.sameRatioMode === 'group') {\n                //multi select\n                this.cropData.imageSizes.forEach(i => {\n                    if (i.printRatio === image.printRatio) {\n                        i.active = newValue;\n                    }\n                });\n            } else {\n                //single select\n                image.active = newValue;\n            }\n            \n            if(this.selectedImageSizes.length>0) {\n                this.activateCropArea();\n            } else {\n                this.deactivateCropArea();\n            }\n        },\n        makeAllInactive(imageSizes) {\n            if(imageSizes===undefined) {\n                imageSizes = this.cropData.imageSizes;\n            }\n            imageSizes.forEach(i => {\n                i.active = false;\n                i.lowResWarning = false;\n            });\n            this.deactivateCropArea();\n        },\n        addCacheBreak(imageSizes) {\n            if(imageSizes===undefined) {\n                imageSizes = this.cropData.imageSizes;\n            }\n            imageSizes.forEach(i => {\n                i.cacheBreak = Date.now();\n            });\n        },\n        updateCurrentCrop() {\n            let result = null;\n            if(this.croppingApi!==null) {\n                let size = this.croppingApi.tellSelect();\n                result = {\n                    width : Math.round(size.w),\n                    height : Math.round(size.h)\n                };\n            }\n            this.currentCropSize = result;\n        },\n        getPreselect( width, height, targetRatio ) {\n            let x0 = 0;\n            let y0 = 0;\n            let x1 = width;\n            let y1 = height;\n            let sourceRatio = width/height;\n            \n            if(sourceRatio <= targetRatio) {\n                y0 = (height / 2) - ((width / targetRatio) / 2);\n                y1 = height-y0;\n            } else {\n                x0 = (width / 2) - ((height * targetRatio) / 2);\n                x1 = width-x0;\n            }\n            return [x0,y0,x1,y1];\n        },\n        activateCropArea() {\n            let that = this;\n            that.deactivateCropArea();\n            \n            let options = {\n                trueSize: [ that.cropData.sourceImage.full.width , that.cropData.sourceImage.full.height ],\n                aspectRatio: 0,\n                setSelect: [],\n                onSelect:that.updateCurrentCrop\n            };\n\n            //get the options\n            that.selectedImageSizes.forEach(i => {\n                if(options.aspectRatio === 0) {\n                    options.aspectRatio = i.ratio;//initial\n                }\n                if(options.aspectRatio !== i.ratio) {\n                    console.info('Crop Thumbnails: print ratio is different from normal ratio on image size \"'+i.name+'\".');\n                }\n            });\n            \n            options.setSelect = this.getPreselect(that.cropData.sourceImage.full.width , that.cropData.sourceImage.full.height, options.aspectRatio);\n\n            //debug\n            if(that.cropData.options.debug_js) {\n                console.info('Cropping options',options);\n            }\n            \n            jQuery(this.$refs.cptCroppingImage).Jcrop(options, function() {\n                that.croppingApi = this;\n                that.updateCurrentCrop();\n            });\n        },\n        deactivateCropArea() {\n            if(this.croppingApi!==null) {\n                this.croppingApi.destroy();\n                this.croppingApi = null;\n                this.currentCropSize = null;\n            }\n        },\n        showDebugClick(type) {\n            if(this.showDebugType === type) {\n                this.showDebugType = null;\n            } else {\n                this.showDebugType = type;\n            }\n        },\n        cropThumbnails() {\n            let that = this;\n            \n            function getDataOfSelectedImageSizes() {\n                let result = [];\n                that.selectedImageSizes.forEach((i) => {\n                    if(i.active) {\n                        result.push({\n                            name: i.name,\n                            width:i.width,\n                            height:i.height,\n                            ratio:i.ratio,\n                            crop:i.crop\n                        });\n                    }\n                });\n                return result;\n            }\n            \n            if(!that.loading && that.croppingApi!==null) {\n                that.loading = true;\n                \n                const cptRequestParams = {\n                    action : 'cptSaveThumbnail',\n                    _ajax_nonce : that.nonce,\n                    cookie : encodeURIComponent(document.cookie),\n                    crop_thumbnails : JSON.stringify({\n                        'selection' : that.croppingApi.tellSelect(),\n                        'sourceImageId' : that.cropData.sourceImageId,\n                        'activeImageSizes' : getDataOfSelectedImageSizes()\n                    })\n                };\n                \n                jQuery\n                    .post(ajaxurl,cptRequestParams,null,'json')\n                    .done((responseData) => {\n                        if(that.cropData.options.debug_data) {\n                            that.dataDebug = responseData.debug;\n                            console.log('Save Function Debug',responseData.debug);\n                        }\n                        if(responseData.error!==undefined) {\n                            alert(responseData.error);\n                            return;\n                        }\n                        if(responseData.success!==undefined) {\n                            if(responseData.changedImageName!==undefined) {\n                                //update selectedImageSizes with the new URLs\n                                that.selectedImageSizes.forEach((value,key) => {\n                                    if(responseData.changedImageName[value.name]!==undefined) {\n                                        value.url = responseData.changedImageName[value.name];\n                                    }\n                                });\n                            }\n                            that.addCacheBreak(that.selectedImageSizes);\n                            return;\n                        }\n                    })\n                    .fail((response) => {\n                        alert(that.lang.script_connection_error);\n                        let debug = {\n                            status: response.status,\n                            statusText: response.statusText,\n                            requestUrl: ajaxurl,\n                            requestParams: cptRequestParams\n                        };\n                        console.error('crop-thumbnails connection error', debug);\n                    })\n                    .always(() => {\n                        that.loading = false;\n                    });\n            }\n        }\n    }\n}\n</script>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cropeditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cropeditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./cropeditor.vue?vue&type=template&id=28a5b8da&\"\nimport script from \"./cropeditor.vue?vue&type=script&lang=js&\"\nexport * from \"./cropeditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import cropeditor from './../components/cropeditor.vue';\nimport Vue from 'vue';\nCROP_THUMBNAILS_VUE.modal = function() {\n\tvar $ = jQuery;\n\tvar that = this;\n\t\n\tfunction removeModal() {\n\t\t$('#cpt_Modal .cpt_ModalClose, #cpt_Modal').unbind('click');\n\t\t$('#cpt_Modal').remove();\n\t\t$('body').removeClass('cpt_ModalIsOpen');\n\t}\n\t\n\t/**\n\t * Should be called when the close-button is clicked.\n\t * Will trigger the \"cropThumbnailModalClosed\"-event to the body on close,\n\t * so everyone that is up to, could build a cache-breaker on their images.\n\t * HOW-TO cache-break:\n\t * $('body').on('cropThumbnailModalClosed',function() {\n\t *     CROP_THUMBNAILS_DO_CACHE_BREAK( $('.your-image-selector') );\n\t * });\n\t * @var Event\n\t */\n\tthat.close = function(event) {\n\t\tCROP_THUMBNAILS_VUE.app.$destroy();\n\t\tCROP_THUMBNAILS_VUE.app = null;\n\t\tremoveModal();\n\t\t$('body').trigger('cropThumbnailModalClosed');\n\t\tdocument.removeEventListener('keydown', that.closeByEscKey, true);\n\t};\n\t\n\t/**\n\t * Should be called when the background is clicked\n\t * @var Event\n\t */\n\tthat.closeByBackground = function(event) {\n\t\tif(event.target==document.getElementById('cpt_Modal')) {\n\t\t\tthat.close(event);\n\t\t}\n\t};\n\t\n\tthat.closeByEscKey = function(event) {\n\t\tif ( !event.keyCode || event.keyCode === 27 ) {\n\t\t\tevent.stopPropagation();\n\t\t\tthat.close(event);\n\t\t}\n\t}\n\t\n\tthat.open = function(imageId,posttype,title) {\t\n\t\t\n\t\t\n\t\tvar id = imageId;\n\t\tvar modalHtml = '';\n\t\tmodalHtml+= '<div id=\"cpt_Modal\" class=\"cpt_Modal\">';\n\t\tmodalHtml+= '<div class=\"cpt_ModalDialog\" role=\"dialog\" aria-label=\"'+$('<div>').text(title).html()+'\">';\n\t\tmodalHtml+= '<button type=\"button\" class=\"cpt_ModalClose\" aria-label=\"close\">&times;</button>';\n\t\tmodalHtml+= '<div class=\"cpt_ModalHeader\"><div class=\"cpt_ModalTitle\">'+title+'</div></div>';\n\t\t\n\t\tmodalHtml+= '<div class=\"cpt_ModalContent\" id=\"cpt_crop_editor\">';\n\t\tmodalHtml+= '<cropeditor :image-id=\"'+id+'\"';\n\t\tif(typeof posttype === 'string') {\n\t\t\tmodalHtml+= ' posttype=\"'+posttype+'\"';\n\t\t}\n\t\tmodalHtml+= '></cropeditor>'\n\t\tmodalHtml+= '</div>';//end cpt_ModalContent\n\t\tmodalHtml+= '</div>';//end cpt_ModalDialog\n\t\tmodalHtml+= '</div>';//end cpt_Modal;\n\t\t\n\t\t\n\t\t$('body').prepend(modalHtml).addClass('cpt_ModalIsOpen');\n\t\t$('#cpt_Modal .cpt_ModalClose').click(that.close);\n\t\t$('#cpt_Modal').on('touchstart mousedown',that.closeByBackground);\n\t\tdocument.addEventListener('keydown', that.closeByEscKey, true);\n\t\t\n\t\tCROP_THUMBNAILS_VUE.app = new Vue({\n\t\t\tel:'#cpt_crop_editor',\n\t\t\tmounted:function() {\n\t\t\t\tconsole.log('cpt_crop_editor mounted');\n\t\t\t},\n\t\t\tcomponents: { cropeditor }\n\t\t});\n\t};\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.settingsData)?_c('div',[_c('div',{staticClass:\"cptSettingsPostListDescription\"},[_vm._v(_vm._s(_vm.settingsData.lang.choose_image_sizes))]),_c('ul',{staticClass:\"cptSettingsPostList\"},_vm._l((_vm.settingsData.post_types),function(postType){return _c('li',{key:postType.name},[(postType)?_c('section',[_c('header',[_c('h3',[_vm._v(_vm._s(postType.label))])]),_c('ul',{staticClass:\"cptImageSizes\"},[_vm._l((_vm.settingsData.image_sizes),function(imageSize){return [(imageSize.crop)?_c('li',{key:imageSize.id},[_c('label',[_c('input',{attrs:{\"type\":\"checkbox\",\"name\":'crop-post-thumbs[hide_size]['+postType.name+']['+imageSize.id+']'},domProps:{\"value\":imageSize.id,\"checked\":_vm.isImageSizeHidden(postType.name,imageSize.id)}}),_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(imageSize.name))]),(imageSize.name!==imageSize.id)?_c('span',{staticClass:\"defaultName\"},[_vm._v(\"(\"+_vm._s(imageSize.id)+\")\")]):_vm._e()])]):_vm._e()]})],2),_c('label',[_c('input',{attrs:{\"id\":\"cpt_settings_post\",\"type\":\"checkbox\",\"name\":'crop-post-thumbs[hide_post_type]['+postType.name+']',\"value\":\"1\"},domProps:{\"checked\":_vm.isButtonHiddenOnPostType(postType.name)}}),_vm._v(\" \"+_vm._s(_vm.settingsData.lang.hide_on_post_type)+\" \")])]):_vm._e()])}),0)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div v-if=\"settingsData\">\n        <div class=\"cptSettingsPostListDescription\">{{settingsData.lang.choose_image_sizes}}</div>\n\n        <ul class=\"cptSettingsPostList\">\n            \n            <li v-for=\"postType in settingsData.post_types\" :key=\"postType.name\">\n                <section v-if=\"postType\">\n                    <header><h3>{{postType.label}}</h3></header>\n\n                    \n                    <ul class=\"cptImageSizes\">\n                        <template v-for=\"imageSize in settingsData.image_sizes\">\n                            <li v-if=\"imageSize.crop\" :key=\"imageSize.id\">\n                                <label>\n                                    <input type=\"checkbox\" :value=\"imageSize.id\" :name=\"'crop-post-thumbs[hide_size]['+postType.name+']['+imageSize.id+']'\" :checked=\"isImageSizeHidden(postType.name,imageSize.id)\"/>\n                                    <span class=\"name\">{{imageSize.name}}</span>\n                                    <span class=\"defaultName\" v-if=\"imageSize.name!==imageSize.id\">({{imageSize.id}})</span>\n                                </label>\n                            </li>\n                        </template>\n                    </ul>\n                    \n                    <label>\n                        <input id=\"cpt_settings_post\" type=\"checkbox\" :name=\"'crop-post-thumbs[hide_post_type]['+postType.name+']'\" value=\"1\" :checked=\"isButtonHiddenOnPostType(postType.name)\">\n                        {{settingsData.lang.hide_on_post_type}}\n                    </label>\n                </section>\n            </li>\n        </ul>\n    </div>\n</template>\n\n<script>\nexport default {\n    props: {\n        settings: { required: true },\n    },\n    components: {},\n    data:() => ({\n        settingsData: null,\n    }),\n    mounted() { this.settingsData =  JSON.parse(this.settings); },\n    methods: {\n        isButtonHiddenOnPostType(postType) {\n            return (this.settingsData.options && this.settingsData.options.hide_post_type && this.settingsData.options.hide_post_type[postType] === \"1\");\n        },\n        isImageSizeHidden(postType,imageSize) {\n            return (this.settingsData.options && this.settingsData.options.hide_size && this.settingsData.options.hide_size[postType] && this.settingsData.options.hide_size[postType][imageSize] === \"1\");\n        }\n    }\n}\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./settingsscreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./settingsscreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./settingsscreen.vue?vue&type=template&id=813159da&\"\nimport script from \"./settingsscreen.vue?vue&type=script&lang=js&\"\nexport * from \"./settingsscreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","\nimport cptSettingsscreen from './../components/settingsscreen.vue'\nimport Vue from 'vue';\njQuery(function ($) {\n    if($('body.settings_page_page-cpt').length>0) {\n        CROP_THUMBNAILS_VUE.app = new Vue({\n            el: '#cpt_settings_settingsscreen',\n            components: {\n                cptSettingsscreen\n            }\n        });\n    }\n});","/**\n * Waiting x milliseconds for a final event than call the callback.\n * @see http://stackoverflow.com/a/4541963\n */\nvar CPT_waitForFinalEvent = (function () {\n\tvar timers = {};\n\treturn function (callback, ms, uniqueId) {\n\t\tif (!uniqueId) {\n\t\t\tuniqueId = \"Don't call this twice without a uniqueId\";\n\t\t}\n\t\tif (timers[uniqueId]) {\n\t\t\tclearTimeout (timers[uniqueId]);\n\t\t}\n\t\ttimers[uniqueId] = setTimeout(callback, ms);\n\t};\n})();\n\n\n/** USAGE ******************\n$(window).resize(function () {\n\tCPT_waitForFinalEvent(function(){\n\t\talert('Resize...');\n\t}, 500, \"some unique string\");\n});\n***************************/\n","/**\n * Create Listener for click-events with element-class \".cropThumbnailsLink\".\n * Open the modal box.\n */\njQuery(function($) {\n\t$(document).on('click', '.cropThumbnailsLink', function(e) {\n\t\te.preventDefault();\n\n\t\t//get the data from the link\n\t\tvar data = $(this).data('cropthumbnail');\n\n\t\tvar title = $(this).attr('title');\n\t\tvar posttype = null;\n\t\tif(data.posttype!==undefined) {\n\t\t\tposttype = data.posttype;\n\t\t}\n\t\t\n\t\tvar modal = new CROP_THUMBNAILS_VUE.modal();\n\t\tmodal.open(data.image_id, posttype, title);\n\t});\n});\n"],"sourceRoot":""}