{"version":3,"sources":["webpack:///./src/components/Settings/Location/BasicInformation/ModalEditLogo.vue?63e7","webpack:///./src/components/Settings/Location/BasicInformation/ModalEditLogo.vue","webpack:///src/components/Settings/Location/BasicInformation/ModalEditLogo.vue","webpack:///./src/components/Settings/Location/BasicInformation/ModalEditLogo.vue?97eb","webpack:///./src/components/Settings/Location/BasicInformation/ModalEditLogo.vue?9e95"],"names":["render","_vm","this","_c","_self","attrs","$t","onClickCancel","showModal","saveLogo","isSaving","isSavingSuccess","savingSuccessMessage","savingErrorMessage","isSavingError","disableSaveButton","on","scopedSlots","_u","key","fn","staticClass","ref","NaN","val","newImageChosen","hasImageError","proxy","staticRenderFns","components","Message","ImageCropper","props","locationId","type","Number","default","required","Boolean","Function","logoId","data","computed","methods","_this","_asyncToGenerator","_regenerator","m","_callee","NEW_IMAGE","logoResponse","locationImageResponse","t","w","_context","p","n","a","$refs","imageCropper","getCroppedCanvas","uploadProvider","locationLogo","v","status","locationProvider","saveLocationLogo","$emit","setTimeout","clearTimeout","component"],"mappings":"kHAAA,W,oECAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,qBAAqB,CAACE,MAAM,CAAC,WAAaJ,EAAIK,GAC9G,uEACA,cAAgBL,EAAIM,cAAc,UAAYN,EAAIO,UAAU,YAAcP,EAAIQ,SAAS,SAAWR,EAAIS,SAAS,gBAAkBT,EAAIU,gBAAgB,qBAAuBV,EAAIW,qBAAqB,mBAAqBX,EAAIY,mBAAmB,cAAgBZ,EAAIa,cAAc,kBAAoBb,EAAIc,mBAAmBC,GAAG,CAAC,WAAaf,EAAIM,eAAeU,YAAYhB,EAAIiB,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACjB,EAAG,UAAU,CAACE,MAAM,CAAC,QAAUJ,EAAIK,GAAG,oFAAoFH,EAAG,MAAM,CAACkB,YAAY,kCAAkC,CAAClB,EAAG,MAAM,CAACkB,YAAY,eAAe,CAAClB,EAAG,eAAe,CAACmB,IAAI,eAAejB,MAAM,CAAC,YAAckB,IAAI,QAAS,EAAM,SAAW,EAAE,iBAAmB,gBAAgB,SAAW,IAAI,UAAY,IAAI,oBAAsB,WAAWP,GAAG,CAAC,oBAAsB,SAAAQ,GAASvB,EAAIwB,eAAiBD,GAAM,qBAAuB,SAAAA,GAASvB,EAAIyB,cAAgBF,OAAU,GAAGrB,EAAG,MAAM,CAACkB,YAAY,eAAe,CAAClB,EAAG,UAAU,CAACkB,YAAY,gBAAgB,CAAClB,EAAG,MAAM,CAACkB,YAAY,yBAAyBM,OAAM,QAEzjCC,EAAkB,G,oFC+CP,GACfC,WAAA,CACAC,qBACAC,2BAEAC,MAAA,CACAC,WAAA,CACAC,KAAAC,OACAC,QAAA,EACAC,UAAA,GAEA7B,UAAA,CACA0B,KAAAI,QACAF,SAAA,GAEA7B,cAAA,CACA2B,KAAAK,SACAF,UAAA,GAEAG,OAAA,CACAN,KAAAC,OACAC,QAAA,IAIAK,KAAA,WACA,OACA/B,UAAA,EACAI,eAAA,EACAH,iBAAA,EACAc,gBAAA,EACAC,eAAA,EACAd,qBAAA,iBACAC,mBAAA,8BAIA6B,SAAA,CACA3B,kBAAA,WACA,YAAAL,WAAA,KAAAe,gBAAA,KAAAC,gBAIAiB,QAAA,CAMAlC,SAAA,eAAAmC,EAAA,YAAAC,eAAAC,iBAAAC,GAAA,SAAAC,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAN,iBAAAO,GAAA,SAAAC,GAAA,eAAAA,EAAAC,EAAAD,EAAAE,GAAA,UACA,IAAAZ,EAAAX,aAAAW,EAAA7B,kBAAA,CAAAuC,EAAAE,EAAA,eAAAF,EAAAG,EAAA,UAIA,OAHAb,EAAAlC,UAAA,EAAA4C,EAAAC,EAAA,EAGAN,EAAAL,EAAAc,MAAAC,aAAAC,mBAAAN,EAAAE,EAAA,EACAK,OAAAlB,QAAAmB,aAAAlB,EAAAX,WAAAgB,GAAA,UAAAC,EAAAI,EAAAS,EACA,MAAAb,EAAAc,OAAA,CAAAV,EAAAE,EAAA,eAAAF,EAAAE,EAAA,EACAS,OAAAtB,QAAAuB,iBAAAtB,EAAAX,WAAAiB,EAAAT,MAAA,OAAAU,EAAAG,EAAAS,EACAnB,EAAAjC,iBAAA,EAEAiC,EAAAuB,MAAA,WAAAhB,EAAAV,MAEAW,EAAAgB,YAAA,WACAxB,EAAArC,gBACA8D,aAAAjB,KACA,YAAAE,EAAAE,EAAA,eAAAF,EAAAC,EAAA,EAAAD,EAAAS,EAIAnB,EAAAlC,UAAA,gBAAA4C,EAAAG,EAAA,MAAAT,EAAA,iBApBAH,MCpGmY,I,wBCQ/XyB,EAAY,eACd,EACAtE,EACA4B,GACA,EACA,KACA,WACA,MAIa,aAAA0C,E","file":"js/chunk-45a24396.js?id=739412bcd8690d823f76","sourcesContent":["export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalEditLogo.vue?vue&type=style&index=0&id=70b3def9&prod&lang=sass&scoped=true\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ui-component-modal',{attrs:{\"modalTitle\":_vm.$t(\n      'Components.Settings.Location.BasicInformation.Logo.Modal.Main_Title'\n    ),\"onClickCancel\":_vm.onClickCancel,\"showModal\":_vm.showModal,\"onClickSave\":_vm.saveLogo,\"isSaving\":_vm.isSaving,\"isSavingSuccess\":_vm.isSavingSuccess,\"savingSuccessMessage\":_vm.savingSuccessMessage,\"savingErrorMessage\":_vm.savingErrorMessage,\"isSavingError\":_vm.isSavingError,\"disableSaveButton\":_vm.disableSaveButton},on:{\"closeModal\":_vm.onClickCancel},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('Message',{attrs:{\"message\":_vm.$t('Components.Settings.Location.BasicInformation.Logo.Modal.Message_FittingImage')}}),_c('div',{staticClass:\"columns is-mobile is-vcentered\"},[_c('div',{staticClass:\"column is-6\"},[_c('ImageCropper',{ref:\"imageCropper\",attrs:{\"aspectRatio\":NaN,\"guides\":false,\"viewMode\":2,\"previewContainer\":\".imagePreview\",\"minWidth\":200,\"minHeight\":100,\"aspectRatioCssClass\":\"is-3by2\"},on:{\"callbackImageChosen\":val => { _vm.newImageChosen = val },\"errorCallbackInvalid\":val => { _vm.hasImageError = val }}})],1),_c('div',{staticClass:\"column is-5\"},[_c('section',{staticClass:\"preview-area\"},[_c('div',{staticClass:\"imagePreview\"})])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <ui-component-modal\n    :modalTitle=\"\n      $t(\n        'Components.Settings.Location.BasicInformation.Logo.Modal.Main_Title'\n      )\n    \"\n    :onClickCancel=\"onClickCancel\"\n    :showModal=\"showModal\"\n    :onClickSave=\"saveLogo\"\n    :isSaving=\"isSaving\"\n    :isSavingSuccess=\"isSavingSuccess\"\n    :savingSuccessMessage=\"savingSuccessMessage\"\n    :savingErrorMessage=\"savingErrorMessage\"\n    :isSavingError=\"isSavingError\"\n    :disableSaveButton=\"disableSaveButton\"\n    @closeModal=\"onClickCancel\"\n  >\n    <template v-slot:content>\n      <Message :message=\"$t('Components.Settings.Location.BasicInformation.Logo.Modal.Message_FittingImage')\" />\n      <div class=\"columns is-mobile is-vcentered\">\n        <div class=\"column is-6\">\n          <ImageCropper\n            ref=\"imageCropper\"\n            :aspectRatio=\"NaN\"\n            :guides=\"false\"\n            :viewMode=\"2\"\n            previewContainer=\".imagePreview\"\n            :minWidth=\"200\"\n            :minHeight=\"100\"\n            @callbackImageChosen=\"val => { newImageChosen = val }\"\n            @errorCallbackInvalid=\"val => { hasImageError = val }\"\n            aspectRatioCssClass=\"is-3by2\"\n          />\n        </div>\n        <div class=\"column is-5\">\n          <section class=\"preview-area\">\n            <div class=\"imagePreview\" />\n          </section>\n        </div>\n      </div>\n    </template>\n  </ui-component-modal>\n</template>\n\n<script>\nimport Message from '@/components/UI/Message'\nimport ImageCropper from '@/components/UI/ImageCropper'\nimport locationProvider from '@/providers/location'\nimport uploadProvider from '@/providers/upload'\n\nexport default {\n  components: {\n    Message,\n    ImageCropper\n  },\n  props: {\n    locationId: {\n      type: Number,\n      default: 0,\n      required: true\n    },\n    showModal: {\n      type: Boolean,\n      default: false\n    },\n    onClickCancel: {\n      type: Function,\n      required: true\n    },\n    logoId: {\n      type: Number,\n      default: 0\n    }\n  },\n\n  data() {\n    return {\n      isSaving: false,\n      isSavingError: false,\n      isSavingSuccess: false,\n      newImageChosen: false,\n      hasImageError: false,\n      savingSuccessMessage: 'New logo saved',\n      savingErrorMessage: 'Oops something went wrong'\n    }\n  },\n\n  computed: {\n    disableSaveButton() {\n      return this.isSaving || !this.newImageChosen || this.hasImageError\n    },\n  },\n\n  methods: {\n    /**\n     * Save logo\n     * First upload new logo\n     * Then save new logo to location\n     */\n    async saveLogo() {\n      if (this.locationId === 0 || this.disableSaveButton) { return }\n      this.isSaving = true\n\n      try {\n        const NEW_IMAGE = this.$refs.imageCropper.getCroppedCanvas()\n        let logoResponse = await uploadProvider.methods.locationLogo(this.locationId, NEW_IMAGE)\n        if (logoResponse.status === 200) {\n          let locationImageResponse = await locationProvider.methods.saveLocationLogo(this.locationId, logoResponse.data)\n          this.isSavingSuccess = true\n\n          this.$emit('loadLogo', locationImageResponse.data)\n\n          let t = setTimeout(() => {\n            this.onClickCancel()\n            clearTimeout(t)\n          }, 2000)\n\n        }\n      } catch {\n        this.isSaving = false\n      }\n    },\n  }\n}\n</script>\n\n<style lang=\"sass\" scoped>\n.imagePreview\n  overflow: hidden\n  aspect-ratio: 1\n  ::v-deep img\n    background-color: transparent !important\n  &:nth-child(1)\n    max-width: 100%\n    width: 100%\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalEditLogo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalEditLogo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalEditLogo.vue?vue&type=template&id=70b3def9&scoped=true\"\nimport script from \"./ModalEditLogo.vue?vue&type=script&lang=js\"\nexport * from \"./ModalEditLogo.vue?vue&type=script&lang=js\"\nimport style0 from \"./ModalEditLogo.vue?vue&type=style&index=0&id=70b3def9&prod&lang=sass&scoped=true\"\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  \"70b3def9\",\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}