{"version":3,"sources":["webpack:///./src/components/Articles/ModalAddEditArticleSource.vue","webpack:///src/components/Articles/ModalAddEditArticleSource.vue","webpack:///./src/components/Articles/ModalAddEditArticleSource.vue?1b6c","webpack:///./src/components/Articles/ModalAddEditArticleSource.vue?f3ca"],"names":["render","_vm","this","_c","_self","attrs","modalTitle","isSaving","isSavingSuccess","isSavingError","onClickCancel","saveLink","showModal","on","scopedSlots","_u","key","fn","ref","sourceType","isNewSource","staticClass","_v","_s","$t","linkTypes","model","value","callback","$$v","expression","_e","isLink","textErrors","$event","$v","newLink","Text","$touch","$set","protocolOptions","protocol","linkErrors","splitUrl","Link","proxy","getComponentType","tag","staticRenderFns","name","components","Modal","Toggle","YoutubeEmbed","VimeoEmbed","props","type","Boolean","default","Function","required","articleId","Number","source","Object","data","_this$source","LinkType","validations","output","computed","_this$newLink","Id","errors","$dirty","push","watch","immediate","handler","val","_this$source2","_this$source3","cleanSource","ArticleId","IsExternal","created","Type","Name","mounted","methods","videoSource","component","_this$newLink2","indexOf","trim","replace","setLinkType","_this","_asyncToGenerator","_regenerator","m","_callee","response","t","_t","w","_context","p","n","a","$invalid","articleProvider","createArticleLink","v","updateArticleLink","$emit","setTimeout","clearTimeout"],"mappings":"uHAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACE,MAAM,CAAC,WAAaJ,EAAIK,WAAW,SAAWL,EAAIM,SAAS,gBAAkBN,EAAIO,gBAAgB,cAAgBP,EAAIQ,cAAc,kBAAoBR,EAAIQ,eAAiBR,EAAIO,gBAAgB,cAAgBP,EAAIS,cAAc,YAAcT,EAAIU,SAAS,UAAYV,EAAIW,WAAWC,GAAG,CAAC,WAAaZ,EAAIS,eAAeI,YAAYb,EAAIc,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACe,IAAI,YAAY,CAAEjB,EAAIkB,WAAY,CAAElB,EAAImB,YAAajB,EAAG,MAAM,CAACkB,YAAY,QAAQ,CAAClB,EAAG,MAAM,CAACkB,YAAY,6BAA6B,CAACpB,EAAIqB,GAAGrB,EAAIsB,GAAGtB,EAAIuB,GAAG,qFAAqF,OAAOrB,EAAG,SAAS,CAACE,MAAM,CAAC,aAAeJ,EAAIwB,UAAU,gBAAkB,OAAO,iBAAmB,OAAO,cAAgB,IAAIC,MAAM,CAACC,MAAO1B,EAAIkB,WAAYS,SAAS,SAAUC,GAAM5B,EAAIkB,WAAWU,GAAKC,WAAW,iBAAiB,GAAG7B,EAAI8B,KAAM9B,EAAI+B,OAAQ,CAAC7B,EAAG,sBAAsB,CAACkB,YAAY,OAAOhB,MAAM,CAAC,MAAQJ,EAAIuB,GAAG,yEAAyE,kBAAmB,EAAK,cAAgB,GAAG,UAAY,MAAM,MAAQvB,EAAIgC,YAAYpB,GAAG,CAAC,MAAQ,SAASqB,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQC,KAAKC,UAAU,KAAO,SAASJ,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQC,KAAKC,WAAWZ,MAAM,CAACC,MAAO1B,EAAImC,QAAQC,KAAMT,SAAS,SAAUC,GAAM5B,EAAIsC,KAAKtC,EAAImC,QAAS,OAAQP,IAAMC,WAAW,kBAAkB3B,EAAG,yBAAyB,CAACE,MAAM,CAAC,MAAQJ,EAAIuB,GAAG,4EAA4EV,YAAYb,EAAIc,GAAG,CAAC,CAACC,IAAI,SAASC,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACkB,YAAY,oBAAoB,CAAClB,EAAG,IAAI,CAACkB,YAAY,WAAW,CAAClB,EAAG,YAAY,CAACE,MAAM,CAAC,QAAUJ,EAAIuC,gBAAgB,cAAgB,IAAId,MAAM,CAACC,MAAO1B,EAAIwC,SAAUb,SAAS,SAAUC,GAAM5B,EAAIwC,SAASZ,GAAKC,WAAW,eAAe,GAAG3B,EAAG,IAAI,CAACkB,YAAY,uBAAuB,CAAClB,EAAG,sBAAsB,CAACE,MAAM,CAAC,kBAAmB,EAAK,cAAgB,GAAG,MAAQJ,EAAIyC,YAAY7B,GAAG,CAAC,MAAQ,WAAQZ,EAAI0C,WAAY1C,EAAIkC,GAAGC,QAAQQ,KAAKN,UAAW,KAAO,SAASJ,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQQ,KAAKN,WAAWZ,MAAM,CAACC,MAAO1B,EAAImC,QAAQQ,KAAMhB,SAAS,SAAUC,GAAM5B,EAAIsC,KAAKtC,EAAImC,QAAS,OAAQP,IAAMC,WAAW,mBAAmB,OAAOe,OAAM,IAAO,MAAK,EAAM,eAAe5C,EAAI8B,KAAM9B,EAAImC,UAAYnC,EAAI+B,OAAQ7B,EAAG,MAAM,CAACkB,YAAY,wBAAwB,CAAClB,EAAG,MAAM,CAACkB,YAAY,UAAU,CAAClB,EAAG,sBAAsB,CAACkB,YAAY,OAAOhB,MAAM,CAAC,eAAgB,EAAM,MAAQJ,EAAIuB,GAAG,yEAAyE,cAAgB,GAAG,UAAY,MAAM,MAAQvB,EAAIgC,YAAYpB,GAAG,CAAC,MAAQ,SAASqB,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQC,KAAKC,UAAU,KAAO,SAASJ,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQC,KAAKC,WAAWZ,MAAM,CAACC,MAAO1B,EAAImC,QAAQC,KAAMT,SAAS,SAAUC,GAAM5B,EAAIsC,KAAKtC,EAAImC,QAAS,OAAQP,IAAMC,WAAW,kBAAkB3B,EAAG,sBAAsB,CAACE,MAAM,CAAC,eAAgB,EAAM,MAAQJ,EAAIuB,GAAG,4EAA4E,cAAgB,GAAG,MAAQvB,EAAIyC,YAAY7B,GAAG,CAAC,MAAQ,SAASqB,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQQ,KAAKN,UAAU,KAAO,SAASJ,GAAQ,OAAOjC,EAAIkC,GAAGC,QAAQQ,KAAKN,WAAWZ,MAAM,CAACC,MAAO1B,EAAImC,QAAQQ,KAAMhB,SAAS,SAAUC,GAAM5B,EAAIsC,KAAKtC,EAAImC,QAAS,OAAQP,IAAMC,WAAW,mBAAmB,GAAG3B,EAAG,MAAM,CAACkB,YAAY,UAAU,CAAClB,EAAGF,EAAI6C,iBAAiB7C,EAAImC,SAAS,CAACW,IAAI,YAAY1C,MAAM,CAAC,IAAMJ,EAAImC,QAAQQ,SAAS,KAAK3C,EAAI8B,MAAM9B,EAAI8B,MAAM,KAAKc,OAAM,QAEv6GG,EAAkB,G,gKCgHP,GACfC,KAAA,4BAEAC,WAAA,CACAC,mBACAC,cACAC,0BACAC,yBAGAC,MAAA,CACA3C,UAAA,CACA4C,KAAAC,QACAC,SAAA,GAGAhD,cAAA,CACA8C,KAAAG,SACAC,UAAA,GAEAC,UAAA,CACAL,KAAAM,OACAF,UAAA,GAEAG,OAAA,CACAP,KAAAQ,OACAN,QAAA,OAIAO,KAAA,eAAAC,EACA,OACA3D,UAAA,EACAC,iBAAA,EACAC,eAAA,EACA2B,QAAA,KACAX,UAAA,GACAN,YAAA,QAAA+C,EAAA,KAAAH,cAAA,IAAAG,OAAA,EAAAA,EAAAC,WAAA,cACA1B,SAAA,WACAD,gBAAA,uBACAlC,WAAA,KAAAyD,OAEA,KAAAvC,GAAA,+EAGA,KAAAA,GAAA,gFAIA4C,YAAA,WACA,IAAAC,EAAA,CACAhC,KAAA,CAAAuB,wBACAhB,KAAA,CAAAgB,yBAEA,OACAxB,QAAAiC,IAIAC,SAAA,CACAlD,YAAA,eAAAmD,EACA,oBAAAA,EAAA,KAAAnC,eAAA,IAAAmC,OAAA,EAAAA,EAAAC,KAGAxC,OAAA,WACA,2BAAAb,YAAA,qBAAAA,YAGAuB,WAAA,WACA,IAAA+B,EAAA,GACA,YAAAtC,GAAAC,QAAAQ,KAAA8B,SACA,KAAAvC,GAAAC,QAAAQ,KAAAgB,UACAa,EAAAE,KAAA,KAAAnD,GAAA,8BACAiD,GAHAA,GAMAxC,WAAA,WACA,IAAAwC,EAAA,GACA,YAAAtC,GAAAC,QAAAC,KAAAqC,SACA,KAAAvC,GAAAC,QAAAC,KAAAuB,UACAa,EAAAE,KAAA,KAAAnD,GAAA,8BACAiD,GAHAA,IAOAG,MAAA,CACAzD,WAAA,CACA0D,WAAA,EACAC,QAAA,SAAAC,GAAA,IAAAC,EAAAC,EACA,GAAAF,KAAA,QAAAC,EAAA,KAAAjB,cAAA,IAAAiB,OAAA,EAAAA,EAAAb,UAGA,OAFA,KAAA/B,QAAA8C,yBAAA,KAAAnB,aACA,KAAApB,WAIA,KAAAP,QAAA,CACAoC,IAAA,QAAAS,EAAA,KAAAlB,cAAA,IAAAkB,OAAA,EAAAA,EAAAT,KAAA,EACAW,UAAA,KAAAtB,UACAxB,KAAA,GACA8B,SAAA,KAAAhD,WACAyB,KAAA,GACAwC,YAAA,GAGA,KAAA3C,SAAA,cAKA4C,QAAA,WACA,KAAA5D,UAAAkD,KAAA,CACAW,KAAA,cACAC,KAAA,KAAA/D,GACA,sFAGA,KAAAC,UAAAkD,KAAA,CAAAH,GAAA,EAAAc,KAAA,eAAAC,KAAA,YACA,KAAA9D,UAAAkD,KAAA,CAAAH,GAAA,EAAAc,KAAA,aAAAC,KAAA,WAGAC,QAAA,WACA,KAAAzB,QACA,KAAA5B,GAAAG,UAIAmD,QAAA,CACA3C,iBAAA,SAAA4C,GACA,IAAAC,EAAA,GAEA,OAAAD,EAAAvB,UACA,mBACAwB,EAAAtC,aACA,MACA,iBACAsC,EAAArC,aACA,MAEA,OAAAqC,GAGAhD,SAAA,eAAAiD,EACA,qBAAAzE,YACA,QAAAyE,EAAA,KAAAxD,eAAA,IAAAwD,MAAAhD,OACA,SAAAR,QAAAQ,KAAAiD,QAAA,sBAAAzD,QAAAQ,KAAAiD,QAAA,eAGA,SAAAzD,QAAAQ,KAAAiD,QAAA,aACA,SAAAzD,QAAAQ,KAAAiD,QAAA,cACA,SAAAzD,QAAAQ,KAAAiD,QAAA,YAEA,KAAApD,SAAA,WAEA,KAAAA,SAAA,UAGA,KAAAL,QAAAQ,KAAA,KAAAR,QAAAQ,KAAAkD,OAAAC,QAAA,uBAGAC,YAAA,SAAAxC,GACA,KAAApB,QAAA+B,SAAAX,EACA,KAAApB,QAAAgD,WAAA,gBAAA5B,GAGA7C,SAAA,eAAAsF,EAAA,YAAAC,eAAAC,iBAAAC,GAAA,SAAAC,IAAA,IAAAC,EAAAC,EAAAC,EAAA,OAAAL,iBAAAM,GAAA,SAAAC,GAAA,eAAAA,EAAAC,EAAAD,EAAAE,GAAA,WACAX,EAAA1F,SAAA,CAAAmG,EAAAE,EAAA,eAAAF,EAAAG,EAAA,iBAAAH,EAAAE,EAAA,EAGAX,EAAA9D,GAAAG,SAAA,WAGA2D,EAAA9D,GAAA2E,SAAA,CAAAJ,EAAAE,EAAA,eAAAF,EAAAG,EAAA,UAMA,GAJAZ,EAAA1F,UAAA,EAEA,gBAAA0F,EAAA7D,QAAA+B,WACA8B,EAAA7D,QAAAQ,KAAAqD,EAAAxD,SAAAwD,EAAA7D,QAAAQ,MACA8D,EAAAC,EAAA,EAGA,IAAAV,EAAA7D,QAAAoC,GAAA,CAAAkC,EAAAE,EAAA,eAAAF,EAAAE,EAAA,EAEAG,OAAAtB,QAAAuB,kBAAAf,EAAA7D,SAAA,OAAAoE,EAAAE,EAAAO,EAAAP,EAAAE,EAAA,sBAAAF,EAAAE,EAAA,EAGAG,OAAAtB,QAAAyB,kBAAAjB,EAAA7D,SAAA,OAAAoE,EAAAE,EAAAO,EAAA,OALAX,EAAAE,EAOAP,EAAAkB,MAAA,UAAAb,EAAArC,MAEAgC,EAAAzF,iBAAA,EACA+F,EAAAa,YAAA,WACAnB,EAAAvF,gBACA2G,aAAAd,KACA,MAAAG,EAAAE,EAAA,gBAAAF,EAAAC,EAAA,EAAAD,EAAAO,EAGAhB,EAAAxF,eAAA,EACAwF,EAAA1F,UAAA,iBAAAmG,EAAAG,EAAA,MAAAR,EAAA,iBAjCAH,MCtRiX,I,YCO7W,EAAY,eACd,EACAlG,EACAgD,GACA,EACA,KACA,KACA,MAIa,e","file":"js/chunk-2d20fcca.js?id=0c5e1d3045edf2b38601","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Modal',{attrs:{\"modalTitle\":_vm.modalTitle,\"isSaving\":_vm.isSaving,\"isSavingSuccess\":_vm.isSavingSuccess,\"isSavingError\":_vm.isSavingError,\"hideFooterButtons\":_vm.isSavingError || _vm.isSavingSuccess,\"onClickCancel\":_vm.onClickCancel,\"onClickSave\":_vm.saveLink,\"showModal\":_vm.showModal},on:{\"closeModal\":_vm.onClickCancel},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{ref:\"baseForm\"},[(_vm.sourceType)?[(_vm.isNewSource)?_c('div',{staticClass:\"mb-5\"},[_c('div',{staticClass:\"has-text-weight-bold mb-1\"},[_vm._v(_vm._s(_vm.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Label_SourceSelection'))+\":\")]),_c('Toggle',{attrs:{\"radioOptions\":_vm.linkTypes,\"objectTextField\":\"Name\",\"objectValueField\":\"Type\",\"inputCssClass\":\"\"},model:{value:(_vm.sourceType),callback:function ($$v) {_vm.sourceType=$$v},expression:\"sourceType\"}})],1):_vm._e(),(_vm.isLink)?[_c('ui-base-input-field',{staticClass:\"mb-4\",attrs:{\"label\":_vm.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_Title'),\"hasFloatingLabel\":true,\"inputCssClass\":\"\",\"maxLength\":\"100\",\"error\":_vm.textErrors},on:{\"input\":function($event){return _vm.$v.newLink.Text.$touch()},\"blur\":function($event){return _vm.$v.newLink.Text.$touch()}},model:{value:(_vm.newLink.Text),callback:function ($$v) {_vm.$set(_vm.newLink, \"Text\", $$v)},expression:\"newLink.Text\"}}),_c('ui-base-field-template',{attrs:{\"label\":_vm.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_LinkUrl')},scopedSlots:_vm._u([{key:\"fields\",fn:function(){return [_c('div',{staticClass:\"field has-addons\"},[_c('p',{staticClass:\"control\"},[_c('ui-select',{attrs:{\"options\":_vm.protocolOptions,\"inputCssClass\":\"\"},model:{value:(_vm.protocol),callback:function ($$v) {_vm.protocol=$$v},expression:\"protocol\"}})],1),_c('p',{staticClass:\"control is-expanded\"},[_c('ui-base-input-field',{attrs:{\"hasFloatingLabel\":true,\"inputCssClass\":\"\",\"error\":_vm.linkErrors},on:{\"input\":() => { _vm.splitUrl(); _vm.$v.newLink.Link.$touch() },\"blur\":function($event){return _vm.$v.newLink.Link.$touch()}},model:{value:(_vm.newLink.Link),callback:function ($$v) {_vm.$set(_vm.newLink, \"Link\", $$v)},expression:\"newLink.Link\"}})],1)])]},proxy:true}],null,false,2951270630)})]:_vm._e(),(_vm.newLink && !_vm.isLink)?_c('div',{staticClass:\"columns is-multiline\"},[_c('div',{staticClass:\"column\"},[_c('ui-base-input-field',{staticClass:\"mb-4\",attrs:{\"labelForInput\":false,\"label\":_vm.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_Title'),\"inputCssClass\":\"\",\"maxLength\":\"100\",\"error\":_vm.textErrors},on:{\"input\":function($event){return _vm.$v.newLink.Text.$touch()},\"blur\":function($event){return _vm.$v.newLink.Text.$touch()}},model:{value:(_vm.newLink.Text),callback:function ($$v) {_vm.$set(_vm.newLink, \"Text\", $$v)},expression:\"newLink.Text\"}}),_c('ui-base-input-field',{attrs:{\"labelForInput\":false,\"label\":_vm.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_EmbedUrl'),\"inputCssClass\":\"\",\"error\":_vm.linkErrors},on:{\"input\":function($event){return _vm.$v.newLink.Link.$touch()},\"blur\":function($event){return _vm.$v.newLink.Link.$touch()}},model:{value:(_vm.newLink.Link),callback:function ($$v) {_vm.$set(_vm.newLink, \"Link\", $$v)},expression:\"newLink.Link\"}})],1),_c('div',{staticClass:\"column\"},[_c(_vm.getComponentType(_vm.newLink),{tag:\"component\",attrs:{\"src\":_vm.newLink.Link}})],1)]):_vm._e()]:_vm._e()],2)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <Modal\n    :modalTitle=\"modalTitle\"\n    :isSaving=\"isSaving\"\n    :isSavingSuccess=\"isSavingSuccess\"\n    :isSavingError=\"isSavingError\"\n    :hideFooterButtons=\"isSavingError || isSavingSuccess\"\n    :onClickCancel=\"onClickCancel\"\n    :onClickSave=\"saveLink\"\n    :showModal=\"showModal\"\n    @closeModal=\"onClickCancel\"\n  >\n    <template v-slot:content>\n      <div ref=\"baseForm\">\n        <template v-if=\"sourceType\">\n          <div\n            v-if=\"isNewSource\"\n            class=\"mb-5\"\n          >\n            <div class=\"has-text-weight-bold mb-1\">{{$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Label_SourceSelection')}}:</div>\n            <Toggle\n              v-model=\"sourceType\"\n              :radioOptions=\"linkTypes\"\n              objectTextField=\"Name\"\n              objectValueField=\"Type\"\n              inputCssClass=\"\"\n            />\n          </div>\n\n          <template v-if=\"isLink\">\n            <ui-base-input-field\n              :label=\"$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_Title')\"\n              v-model=\"newLink.Text\"\n              :hasFloatingLabel=\"true\"\n              inputCssClass=\"\"\n              maxLength=\"100\"\n              class=\"mb-4\"\n              :error=\"textErrors\"\n              @input=\"$v.newLink.Text.$touch()\"\n              @blur=\"$v.newLink.Text.$touch()\"\n            />\n            <ui-base-field-template :label=\"$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_LinkUrl')\">\n              <template #fields>\n                <div class=\"field has-addons\">\n                  <p class=\"control\">\n                    <ui-select\n                      v-model=\"protocol\"\n                      :options=\"protocolOptions\"\n                      inputCssClass=\"\"\n                    />\n                  </p>\n                  <p class=\"control is-expanded\">\n                    <ui-base-input-field\n                      v-model=\"newLink.Link\"\n                      :hasFloatingLabel=\"true\"\n                      inputCssClass=\"\"\n                      :error=\"linkErrors\"\n                      @input=\"() => { splitUrl(); $v.newLink.Link.$touch() }\"\n                      @blur=\"$v.newLink.Link.$touch()\"\n                    />\n                  </p>\n                </div>\n              </template>\n            </ui-base-field-template>\n          </template>\n\n          <div\n            v-if=\"newLink && !isLink\"\n            class=\"columns is-multiline\"\n          >\n            <div class=\"column\">\n              <ui-base-input-field\n                v-model=\"newLink.Text\"\n                :labelForInput=\"false\"\n                :label=\"$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_Title')\"\n                inputCssClass=\"\"\n                maxLength=\"100\"\n                class=\"mb-4\"\n                :error=\"textErrors\"\n                @input=\"$v.newLink.Text.$touch()\"\n                @blur=\"$v.newLink.Text.$touch()\"\n              />\n              <ui-base-input-field\n                v-model=\"newLink.Link\"\n                :labelForInput=\"false\"\n                :label=\"$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_EmbedUrl')\"\n                inputCssClass=\"\"\n                :error=\"linkErrors\"\n                @input=\"$v.newLink.Link.$touch()\"\n                @blur=\"$v.newLink.Link.$touch()\"\n              />\n            </div>\n            <div class=\"column\">\n              <component\n                v-bind:is=\"getComponentType(newLink)\"\n                :src=\"newLink.Link\"\n              ></component>\n            </div>\n          </div>\n        </template>\n      </div>\n    </template>\n  </Modal>\n</template>\n\n<script>\nimport articleProvider from '@/providers/article'\nimport Modal from '@/components/UI/Components/Modal.vue'\nimport Toggle from '@/components/UI/Form/Toggle.vue'\nimport YoutubeEmbed from '@/components/Settings/Location/Videos/YoutubeEmbed.vue'\nimport VimeoEmbed from '@/components/Settings/Location/Videos/VimeoEmbed.vue' // @/components/Settings/Location/Videos/VimeoEmbed\nimport { cleanSource } from '@/utils/objectHelper'\nimport { required } from 'vuelidate/lib/validators'\n\nexport default {\n  name: 'ModalAddEditArticleSource',\n\n  components: {\n    Modal,\n    Toggle,\n    YoutubeEmbed,\n    VimeoEmbed\n  },\n\n  props: {\n    showModal: {\n      type: Boolean,\n      default: false,\n    },\n\n    onClickCancel: {\n      type: Function,\n      required: true,\n    },\n    articleId: {\n      type: Number,\n      required: true\n    },\n    source: {\n      type: Object,\n      default: null\n    }\n  },\n\n  data() {\n    return {\n      isSaving: false,\n      isSavingSuccess: false,\n      isSavingError: false,\n      newLink: null,\n      linkTypes: [],\n      sourceType: this.source?.LinkType || 'ExternalUrl',\n      protocol: 'https://',\n      protocolOptions: ['https://', 'http://'],\n      modalTitle: this.source ?\n        // Edit existing source\n        this.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Title_EditSource')\n        :\n        // add new source\n        this.$t('Components.Article.ArticleDetail.ModalAddEditArticleSource.Title_AddSource')\n    }\n  },\n\n  validations() {\n    let output = {\n      Text: { required },\n      Link: { required },\n    }\n    return {\n      newLink: output\n    }\n  },\n\n  computed: {\n    isNewSource() {\n      return this.newLink?.Id === 0\n    },\n\n    isLink() {\n      return this.sourceType === 'ExternalUrl' || this.sourceType === 'InternalUrl'\n    },\n\n    linkErrors() {\n      const errors = []\n      if (!this.$v.newLink.Link.$dirty) return errors\n      !this.$v.newLink.Link.required &&\n        errors.push(this.$t('Form.InputErrors.Required'))\n      return errors\n    },\n\n    textErrors() {\n      const errors = []\n      if (!this.$v.newLink.Text.$dirty) return errors\n      !this.$v.newLink.Text.required &&\n        errors.push(this.$t('Form.InputErrors.Required'))\n      return errors\n    },\n  },\n\n  watch: {\n    sourceType: {\n      immediate: true,\n      handler: function(val) {\n        if (val === this.source?.LinkType) {\n          this.newLink = cleanSource(this.source)\n          this.splitUrl()\n          return\n        }\n\n        this.newLink = {\n          Id: this.source?.Id || 0,\n          ArticleId: this.articleId,\n          Text: '',\n          LinkType: this.sourceType,\n          Link: '',\n          IsExternal: true,\n        }\n\n        this.protocol = 'https://'\n      }\n    },\n  },\n\n  created() {\n    this.linkTypes.push({\n      Type: 'ExternalUrl',\n      Name: this.$t(\n        'Components.Article.ArticleDetail.ModalAddEditArticleSource.Text_TypeExternalLink'\n      ),\n    })\n    this.linkTypes.push({ Id: 2, Type: 'YoutubeVideo', Name: 'Youtube' })\n    this.linkTypes.push({ Id: 3, Type: 'VimeoVideo', Name: 'Vimeo' })\n  },\n\n  mounted() {\n    if (this.source) {\n      this.$v.$touch()\n    }\n  },\n\n  methods: {\n    getComponentType(videoSource) {\n      let component = ''\n\n      switch (videoSource.LinkType) {\n        case 'YoutubeVideo':\n          component = YoutubeEmbed\n          break;\n        case 'VimeoVideo':\n          component = VimeoEmbed\n          break;\n      }\n      return component\n    },\n\n    splitUrl() {\n      if (this.sourceType !== 'ExternalUrl'\n        || !this.newLink?.Link\n        || (this.newLink.Link.indexOf('http://') === -1 && this.newLink.Link.indexOf('https://') === -1)\n      ) { return }\n      if (\n        (this.newLink.Link.indexOf('http://') === -1 &&\n          this.newLink.Link.indexOf('https://') === -1) ||\n        this.newLink.Link.indexOf('https://') !== -1\n      ) {\n        this.protocol = 'https://'\n      } else {\n        this.protocol = 'http://'\n      }\n\n      this.newLink.Link = this.newLink.Link.trim().replace(/^https?\\:\\/\\//i, '')\n    },\n\n    setLinkType(type) {\n      this.newLink.LinkType = type\n      this.newLink.IsExternal = type === 'ExternalUrl'\n    },\n\n    async saveLink() {\n      if (this.isSaving) { return }\n\n      // Validate form\n      await this.$v.$touch()\n\n      // Stop processing when FORM data is invalid\n      if (this.$v.$invalid) { return }\n\n      this.isSaving = true\n\n      if (this.newLink.LinkType === 'ExternalUrl') {\n        this.newLink.Link = this.protocol + this.newLink.Link\n      }\n\n      try {\n        let response = this.newLink.Id === 0 ?\n          // New article link\n          await articleProvider.methods.createArticleLink(this.newLink)\n          :\n          // update article link\n          await articleProvider.methods.updateArticleLink(this.newLink)\n\n        this.$emit('updated', response.data)\n\n        this.isSavingSuccess = true\n        let t = setTimeout(() => {\n          this.onClickCancel()\n          clearTimeout(t)\n        }, 1500)\n      }\n      catch {\n        this.isSavingError = true\n        this.isSaving = false\n      }\n    },\n  },\n}\n</script>\n","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!./ModalAddEditArticleSource.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!./ModalAddEditArticleSource.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalAddEditArticleSource.vue?vue&type=template&id=1e0f8080\"\nimport script from \"./ModalAddEditArticleSource.vue?vue&type=script&lang=js\"\nexport * from \"./ModalAddEditArticleSource.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"],"sourceRoot":""}