@cortezaproject/corteza-vue 2021.9.6-dev.2 → 2021.9.6-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -13667,33 +13667,8 @@ function normalizeComponent(template, style, script, scopeId, isFunctionalTempla
13667
13667
  const __vue_script__ = script;
13668
13668
 
13669
13669
  /* template */
13670
- var __vue_render__ = function() {
13671
- var _vm = this;
13672
- var _h = _vm.$createElement;
13673
- var _c = _vm._self._c || _h;
13674
- return _c(
13675
- "b-button-group",
13676
- _vm._l(_vm.buttons, function(b, i) {
13677
- return _c(
13678
- "b-button",
13679
- {
13680
- key: i,
13681
- class: _vm.buttonClass,
13682
- attrs: { variant: b.variant || _vm.defaultVariant },
13683
- on: {
13684
- click: function($event) {
13685
- return _vm.$emit("click", b)
13686
- }
13687
- }
13688
- },
13689
- [_vm._v("\n " + _vm._s(b.label) + "\n ")]
13690
- )
13691
- }),
13692
- 1
13693
- )
13694
- };
13670
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-button-group',_vm._l((_vm.buttons),function(b,i){return _c('b-button',{key:i,class:_vm.buttonClass,attrs:{"variant":b.variant || _vm.defaultVariant},on:{"click":function($event){return _vm.$emit('click', b)}}},[_vm._v("\n "+_vm._s(b.label)+"\n ")])}),1)};
13695
13671
  var __vue_staticRenderFns__ = [];
13696
- __vue_render__._withStripped = true;
13697
13672
 
13698
13673
  /* style */
13699
13674
  const __vue_inject_styles__ = undefined;
@@ -13918,48 +13893,17 @@ function addStyle(id, css) {
13918
13893
  const __vue_script__$2 = script$2;
13919
13894
 
13920
13895
  /* template */
13921
- var __vue_render__$1 = function() {
13922
- var _vm = this;
13923
- var _h = _vm.$createElement;
13924
- var _c = _vm._self._c || _h;
13925
- return _c("div", { staticClass: "inline" }, [
13926
- _c("img", {
13927
- key: _vm.src,
13928
- ref: "image",
13929
- class: _vm.getClass,
13930
- style: _vm.previewStyle,
13931
- attrs: {
13932
- src: _vm.src,
13933
- title: _vm.title,
13934
- alt: _vm.alt,
13935
- width: _vm.getWidth,
13936
- height: _vm.getHeight
13937
- },
13938
- on: {
13939
- click: function($event) {
13940
- return _vm.$emit("openPreview", {})
13941
- },
13942
- "~error": function($event) {
13943
- return _vm.reloadBrokenImage.apply(null, arguments)
13944
- },
13945
- load: function($event) {
13946
- _vm.loaded = true;
13947
- }
13948
- }
13949
- })
13950
- ])
13951
- };
13896
+ var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"inline"},[_c('img',{key:_vm.src,ref:"image",class:_vm.getClass,style:(_vm.previewStyle),attrs:{"src":_vm.src,"title":_vm.title,"alt":_vm.alt,"width":_vm.getWidth,"height":_vm.getHeight},on:{"click":function($event){return _vm.$emit('openPreview', {})},"~error":function($event){return _vm.reloadBrokenImage.apply(null, arguments)},"load":function($event){_vm.loaded=true;}}})])};
13952
13897
  var __vue_staticRenderFns__$1 = [];
13953
- __vue_render__$1._withStripped = true;
13954
13898
 
13955
13899
  /* style */
13956
13900
  const __vue_inject_styles__$2 = function (inject) {
13957
13901
  if (!inject) return
13958
- inject("data-v-2f92f970_0", { source: "div[data-v-2f92f970] {\n object-fit: contain;\n}\ndiv img.loaded[data-v-2f92f970] {\n width: auto;\n height: auto;\n display: block;\n}\ndiv.inline img[data-v-2f92f970] {\n cursor: zoom-in;\n}\n\n/*# sourceMappingURL=InlineIMG.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/filePreview/common/types/IMG/InlineIMG.vue","InlineIMG.vue"],"names":[],"mappings":"AAiFA;EACA,mBAAA;AChFA;ADkFA;EACA,WAAA;EACA,YAAA;EACA,cAAA;AChFA;ADoFA;EACA,eAAA;AClFA;;AAEA,wCAAwC","file":"InlineIMG.vue","sourcesContent":["<template>\n <div class=\"inline\">\n <img\n ref=\"image\"\n :key=\"src\"\n :src=\"src\"\n :title=\"title\"\n :alt=\"alt\"\n :class=\"getClass\"\n :style=\"previewStyle\"\n :width=\"getWidth\"\n :height=\"getHeight\"\n @click=\"$emit('openPreview', {})\"\n @error.once=\"reloadBrokenImage\"\n @load=\"loaded=true\"\n >\n </div>\n</template>\n\n<script lang=\"js\">\nimport base from '../base.vue'\n\nexport default {\n extends: base,\n\n props: {\n alt: {\n required: false,\n type: String,\n default: null,\n },\n title: {\n required: false,\n type: String,\n default: null,\n },\n },\n\n data () {\n return {\n loaded: false,\n }\n },\n\n computed: {\n getClass () {\n const rtr = [...this.previewClass]\n if (this.$listeners.click) {\n rtr.push('clickable')\n }\n if (this.loaded) {\n rtr.push('loaded')\n }\n return rtr\n },\n\n getWidth () {\n return this.meta.preview.image.width\n },\n getHeight () {\n return this.meta.preview.image.height\n },\n },\n\n methods: {\n reloadBrokenImage (ev) {\n if (ev.target && ev.target.src) {\n window.setTimeout(() => {\n if (!ev.target && !ev.target.src) return\n\n // This forces Vue to re-try image download\n // eslint-disable-next-line\n ev.target.src = ev.target.src\n }, 500)\n }\n },\n },\n}\n</script>\n\n<style scoped lang=\"scss\">\ndiv {\n object-fit: contain;\n img {\n &.loaded {\n width: auto;\n height: auto;\n display: block;\n }\n }\n &.inline {\n img {\n cursor: zoom-in;\n }\n }\n}\n</style>\n","div {\n object-fit: contain;\n}\ndiv img.loaded {\n width: auto;\n height: auto;\n display: block;\n}\ndiv.inline img {\n cursor: zoom-in;\n}\n\n/*# sourceMappingURL=InlineIMG.vue.map */"]}, media: undefined });
13902
+ inject("data-v-5484728e_0", { source: "div[data-v-5484728e]{object-fit:contain}div img.loaded[data-v-5484728e]{width:auto;height:auto;display:block}div.inline img[data-v-5484728e]{cursor:zoom-in}", map: undefined, media: undefined });
13959
13903
 
13960
13904
  };
13961
13905
  /* scoped */
13962
- const __vue_scope_id__$2 = "data-v-2f92f970";
13906
+ const __vue_scope_id__$2 = "data-v-5484728e";
13963
13907
  /* module identifier */
13964
13908
  const __vue_module_identifier__$2 = undefined;
13965
13909
  /* functional template */
@@ -14039,33 +13983,13 @@ var script$3 = {
14039
13983
  const __vue_script__$3 = script$3;
14040
13984
 
14041
13985
  /* template */
14042
- var __vue_render__$2 = function() {
14043
- var _vm = this;
14044
- var _h = _vm.$createElement;
14045
- var _c = _vm._self._c || _h;
14046
- return _c(
14047
- "div",
14048
- { staticClass: "popup-img-preview" },
14049
- [
14050
- _c("photo-swipe", {
14051
- attrs: { "is-open": true, items: _vm.items, options: _vm.options },
14052
- on: {
14053
- close: function() {
14054
- return _vm.$emit("close")
14055
- }
14056
- }
14057
- })
14058
- ],
14059
- 1
14060
- )
14061
- };
13986
+ var __vue_render__$2 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"popup-img-preview"},[_c('photo-swipe',{attrs:{"is-open":true,"items":_vm.items,"options":_vm.options},on:{"close":function () { return _vm.$emit('close'); }}})],1)};
14062
13987
  var __vue_staticRenderFns__$2 = [];
14063
- __vue_render__$2._withStripped = true;
14064
13988
 
14065
13989
  /* style */
14066
13990
  const __vue_inject_styles__$3 = function (inject) {
14067
13991
  if (!inject) return
14068
- inject("data-v-7c2a9272_0", { source: ".popup-img-preview .pswp {\n pointer-events: none;\n}\n.popup-img-preview .pswp .pswp__img {\n pointer-events: all;\n}\n.popup-img-preview .pswp__top-bar {\n display: none !important;\n}\n\n/*# sourceMappingURL=LightboxIMG.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/filePreview/common/types/IMG/LightboxIMG.vue","LightboxIMG.vue"],"names":[],"mappings":"AAoEA;EACA,oBAAA;ACnEA;ADoEA;EACA,mBAAA;AClEA;ADqEA;EACA,wBAAA;ACnEA;;AAEA,0CAA0C","file":"LightboxIMG.vue","sourcesContent":["<template>\n <div class=\"popup-img-preview\">\n <photo-swipe\n :is-open=\"true\"\n :items=\"items\"\n :options=\"options\"\n @close=\"() => $emit('close')\"\n />\n </div>\n</template>\n\n<script lang=\"js\">\nimport { PhotoSwipe } from 'v-photoswipe'\nimport base from '../base.vue'\n\nexport default {\n components: {\n PhotoSwipe,\n },\n\n extends: base,\n\n data () {\n return {\n options: {\n index: 0,\n bgOpacity: 0,\n closeOnScroll: false,\n escKey: false,\n history: false,\n arrowKeys: false,\n modal: false,\n\n closeEl: false,\n captionEl: false,\n fullscreenEl: false,\n zoomEl: false,\n shareEl: false,\n counterEl: false,\n arrowEl: false,\n preloaderEl: false,\n\n clickToCloseNonZoomable: false,\n },\n }\n },\n\n computed: {\n items () {\n const { original, preview } = this.meta\n const image = (original || preview || {}).image\n if (!image) {\n this.$emit('close')\n return []\n }\n\n return [{\n src: this.src,\n w: image.width,\n h: image.height,\n }]\n },\n },\n}\n</script>\n\n<style lang=\"scss\">\n.popup-img-preview {\n .pswp {\n pointer-events: none;\n .pswp__img {\n pointer-events: all;\n }\n }\n .pswp__top-bar {\n display: none!important;\n }\n}\n</style>\n",".popup-img-preview .pswp {\n pointer-events: none;\n}\n.popup-img-preview .pswp .pswp__img {\n pointer-events: all;\n}\n.popup-img-preview .pswp__top-bar {\n display: none !important;\n}\n\n/*# sourceMappingURL=LightboxIMG.vue.map */"]}, media: undefined });
13992
+ inject("data-v-37bb9a65_0", { source: ".popup-img-preview .pswp{pointer-events:none}.popup-img-preview .pswp .pswp__img{pointer-events:all}.popup-img-preview .pswp__top-bar{display:none!important}", map: undefined, media: undefined });
14069
13993
 
14070
13994
  };
14071
13995
  /* scoped */
@@ -70198,90 +70122,18 @@ var script$4 = {
70198
70122
  const __vue_script__$4 = script$4;
70199
70123
 
70200
70124
  /* template */
70201
- var __vue_render__$3 = function() {
70202
- var _vm = this;
70203
- var _h = _vm.$createElement;
70204
- var _c = _vm._self._c || _h;
70205
- return _c(
70206
- "div",
70207
- {
70208
- class: _vm.previewClass.concat(
70209
- ["pdf-preview"],
70210
- [_vm.inline ? "inline" : ""],
70211
- [_vm.$listeners.click ? "clickable" : ""]
70212
- ),
70213
- style: _vm.previewStyle,
70214
- on: { click: _vm.onPreviewClick }
70215
- },
70216
- [
70217
- _c("div", {
70218
- directives: [
70219
- {
70220
- name: "show",
70221
- rawName: "v-show",
70222
- value: _vm.show,
70223
- expression: "show"
70224
- }
70225
- ],
70226
- ref: "pages",
70227
- staticClass: "pages"
70228
- }),
70229
- _vm._v(" "),
70230
- _vm.loadError
70231
- ? _c("div", { staticClass: "doc-msg doc-err" }, [
70232
- _c("div", [
70233
- _c("h4", { staticClass: "err-message" }, [
70234
- _vm._v(
70235
- "\n " + _vm._s(_vm.loadError.message) + "\n "
70236
- )
70237
- ]),
70238
- _vm._v(" "),
70239
- _vm.labels.clickToRetry
70240
- ? _c("p", [
70241
- _vm._v(
70242
- "\n " +
70243
- _vm._s(_vm.labels.clickToRetry) +
70244
- "\n "
70245
- )
70246
- ])
70247
- : _vm._e()
70248
- ])
70249
- ])
70250
- : !_vm.show && _vm.labels.loading
70251
- ? _c("div", { staticClass: "doc-msg doc-err" }, [
70252
- _c("p", [_vm._v(_vm._s(_vm.labels.loading))])
70253
- ])
70254
- : !_vm.pageCount && _vm.labels.noPages
70255
- ? _c("div", { staticClass: "doc-msg doc-err" }, [
70256
- _c("p", [_vm._v(_vm._s(_vm.labels.noPages))])
70257
- ])
70258
- : [
70259
- !_vm.inline && _vm.labels.downloadForAll && _vm.show && _vm.hasMore
70260
- ? _c("div", [
70261
- _c("p", [_vm._v(_vm._s(_vm.labels.downloadForAll))])
70262
- ])
70263
- : _vm.inline && _vm.labels.firstPagePreview && _vm.show
70264
- ? _c("div", [
70265
- _c("p", [_vm._v(_vm._s(_vm.labels.firstPagePreview))])
70266
- ])
70267
- : _vm._e()
70268
- ]
70269
- ],
70270
- 2
70271
- )
70272
- };
70125
+ var __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.previewClass.concat( ['pdf-preview'], [_vm.inline ? 'inline' : ''], [_vm.$listeners.click ? 'clickable' : '']),style:(_vm.previewStyle),on:{"click":_vm.onPreviewClick}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.show),expression:"show"}],ref:"pages",staticClass:"pages"}),_vm._v(" "),(_vm.loadError)?_c('div',{staticClass:"doc-msg doc-err"},[_c('div',[_c('h4',{staticClass:"err-message"},[_vm._v("\n "+_vm._s(_vm.loadError.message)+"\n ")]),_vm._v(" "),(_vm.labels.clickToRetry)?_c('p',[_vm._v("\n "+_vm._s(_vm.labels.clickToRetry)+"\n ")]):_vm._e()])]):(!_vm.show && _vm.labels.loading)?_c('div',{staticClass:"doc-msg doc-err"},[_c('p',[_vm._v(_vm._s(_vm.labels.loading))])]):(!_vm.pageCount && _vm.labels.noPages)?_c('div',{staticClass:"doc-msg doc-err"},[_c('p',[_vm._v(_vm._s(_vm.labels.noPages))])]):[(!_vm.inline && _vm.labels.downloadForAll && _vm.show && _vm.hasMore)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.labels.downloadForAll))])]):(_vm.inline && _vm.labels.firstPagePreview && _vm.show)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.labels.firstPagePreview))])]):_vm._e()]],2)};
70273
70126
  var __vue_staticRenderFns__$3 = [];
70274
- __vue_render__$3._withStripped = true;
70275
70127
 
70276
70128
  /* style */
70277
70129
  const __vue_inject_styles__$4 = function (inject) {
70278
70130
  if (!inject) return
70279
- inject("data-v-0e0b6952_0", { source: ".doc-msg[data-v-0e0b6952] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n background-color: white;\n}\n.doc-err[data-v-0e0b6952] {\n cursor: pointer;\n}\n.doc-err .err-message[data-v-0e0b6952] {\n color: red;\n}\n\n/*# sourceMappingURL=PDF.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/filePreview/common/types/PDF/PDF.vue","PDF.vue"],"names":[],"mappings":"AA0SA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,YAAA;EACA,WAAA;EACA,uBATA;AChSA;AD2SA;EACA,eAAA;ACxSA;AD0SA;EACA,UAdA;AC1RA;;AAEA,kCAAkC","file":"PDF.vue","sourcesContent":["<template>\n <div\n :style=\"previewStyle\"\n :class=\"[...previewClass, 'pdf-preview', inline ? 'inline' : '', $listeners.click ? 'clickable' : '']\"\n @click=\"onPreviewClick\"\n >\n <!-- Container for pdf's pages -->\n <div\n v-show=\"show\"\n ref=\"pages\"\n class=\"pages\"\n />\n\n <div\n v-if=\"loadError\"\n class=\"doc-msg doc-err\"\n >\n <div>\n <h4 class=\"err-message\">\n {{ loadError.message }}\n </h4>\n <p v-if=\"labels.clickToRetry\">\n {{ labels.clickToRetry }}\n </p>\n </div>\n </div>\n <div\n v-else-if=\"!show && labels.loading\"\n class=\"doc-msg doc-err\"\n >\n <p>{{ labels.loading }}</p>\n </div>\n <div\n v-else-if=\"!pageCount && labels.noPages\"\n class=\"doc-msg doc-err\"\n >\n <p>{{ labels.noPages }}</p>\n </div>\n <template v-else>\n <div v-if=\"!inline && labels.downloadForAll && show && hasMore\">\n <p>{{ labels.downloadForAll }}</p>\n </div>\n <div v-else-if=\"inline && labels.firstPagePreview && show\">\n <p>{{ labels.firstPagePreview }}</p>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"js\">\nimport pdfjs from 'pdfjs-dist'\nimport pdfjsWorker from 'pdfjs-dist/build/pdf.worker.entry'\nimport base from '../base.vue'\nimport { makePlaceholder, makeFailedPage, Page, Document } from './helpers'\n\npdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker\n\nfunction sleep (t) {\n return new Promise(resolve => setTimeout(resolve, t))\n}\n\nexport default {\n extends: base,\n\n props: {\n retryBackoff: {\n type: Number,\n required: false,\n default: 300,\n },\n maxRetries: {\n type: Number,\n required: false,\n default: 10,\n },\n\n maxPages: {\n required: false,\n type: Number,\n default: 5,\n },\n\n initialScale: {\n required: false,\n type: Number,\n default: 1,\n },\n },\n\n data () {\n return {\n document: null,\n pages: [],\n show: false,\n loadError: undefined,\n }\n },\n\n computed: {\n /**\n * Helper to provide the number of pages for the given PDF\n * @returns {Number}\n */\n pageCount () {\n if (!this.document || !this.document.pdf) {\n return 0\n }\n return this.document.pdf.numPages\n },\n\n /**\n * Helper to determine if the given PDF has more pages then we are willing to show\n * @returns {Boolean}\n */\n hasMore () {\n return this.maxPages < this.pageCount\n },\n },\n\n created () {\n if (!this.src) {\n this.stdErr(new Error('src.missing'))\n return\n }\n\n this.$nextTick(() => this.init())\n },\n\n methods: {\n /**\n * Helper to handle on preview click. It either requests a retry or\n * emits an open event\n */\n onPreviewClick () {\n if (this.loadError) {\n this.init()\n } else {\n this.$emit('openPreview', { document: this.document })\n }\n },\n\n /**\n * Initializes the state, loads the document & renderes it's pages\n */\n async init () {\n this.document = null\n this.pages = []\n this.show = false\n this.loadError = undefined\n\n return this.loadDocument(this.src)\n .then(this.renderDocument)\n .catch(this.stdErr)\n },\n\n /**\n * Helper method to load the given document. Needed for test stubbing\n * @param {String} src Document's src\n * @returns {Promise<PDFDocumentProxy>}\n */\n async pdfjsLoad (src) {\n return pdfjs.getDocument(src).promise\n },\n\n /**\n * Loads the given PDF. It can load it from API or re-use existing document\n * @param {Document|String} src PDF's source or a Document object\n * @returns {Document}\n */\n async loadDocument (src) {\n if (src instanceof Document) {\n this.document = new Document({ ...src, scale: this.initialScale })\n } else if (typeof src === 'string') {\n let retries = 0\n let err\n const pdfl = async () => {\n return sleep(retries * this.retryBackoff)\n .then(() => this.pdfjsLoad(src))\n .then(pdf => {\n this.document = new Document({ pdf, src, scale: this.initialScale })\n })\n }\n\n // Retry with backoff it it fails to load\n while (!this.document && retries < this.maxRetries) {\n await pdfl().catch(e => {\n retries++\n err = e\n })\n }\n\n if (!this.document) {\n throw err\n }\n } else {\n throw new Error('src.notValid')\n }\n return this.document\n },\n\n /**\n * Renders the given PDF\n * @param {Document} doc The Document to render\n * @return {Promise<undefined>}\n */\n async renderDocument (doc) {\n const rf = this.$refs.pages\n\n const pgCount = Math.min(this.pageCount, this.maxPages)\n this.pages = [...new Array(pgCount)].map((_, i) => new Page({ index: i }))\n\n if (pgCount <= 0) {\n this.show = true\n return\n }\n\n // Loadup pages\n for (let i = 0; i < pgCount; i++) {\n const node = makePlaceholder(this.labels)\n rf.appendChild(node)\n this.pages.splice(i, 1, new Page({ ...this.pages[i], node, loading: true }))\n\n this.renderPage(this.pages[i], doc, rf)\n .then(page => {\n this.pages.splice(page.index, 1, page)\n\n if (page.index === 0) {\n this.show = true\n }\n })\n .catch(this.stdErr)\n }\n },\n\n /**\n * Renders the given page\n * @param {Page} page The page in question\n * @param {Document} doc Page source\n * @param {Node} rf PDF container\n * @returns {Promise<undefined>}\n */\n async renderPage (page, doc, rf) {\n // pdfjs starts with 1!\n return doc.pdf.getPage(page.index + 1).then(p => {\n const np = new Page(page)\n np.loading = false\n np.loaded = true\n np.page = p\n\n // Render page\n const canvas = document.createElement('canvas')\n const scale = doc.scale\n const viewport = np.page.getViewport(scale)\n const canvasContext = canvas.getContext('2d')\n const renderContext = { canvasContext, viewport }\n canvas.height = viewport.height\n canvas.width = viewport.width\n\n return np.page.render(renderContext).then(() => {\n np.node = canvas\n np.rendered = true\n if (this.inline) {\n canvas.classList.add('inline')\n }\n return np\n })\n\n .catch(() => {\n const node = makeFailedPage(this.labels)\n np.node = node\n np.rendered = false\n np.failed = true\n return np\n })\n\n .then(np => {\n rf.replaceChild(np.node, page.node)\n return np\n })\n })\n },\n\n /**\n * Standard error handler\n * @param {Error} err The error\n */\n stdErr (err) {\n this.loadError = err\n this.$emit('error', err)\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$white: white !default;\n$danger: red !default;\n\n.doc-msg {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n background-color: $white;\n}\n.doc-err {\n cursor: pointer;\n\n .err-message {\n color: $danger;\n }\n}\n\n</style>\n\n<style lang=\"scss\">\n// Style not scoped, since pages are manually rendered\n\n.pdf-preview {\n text-align: center;\n &:not(.inline) {\n padding-top: 20px;\n padding-bottom: 20px;\n canvas {\n box-shadow: 0 0 3px #1E1E1E41;\n }\n }\n &.inline {\n height: 200px;\n overflow-y: scroll;\n display: inline-block;\n cursor: zoom-in;\n width: 100%;\n max-width: 500px;\n }\n\n canvas {\n margin-bottom: 10px;\n &.inline {\n width: 100%;\n }\n\n &:not(.inline) {\n margin: 0 auto 10px auto;\n display: block;\n }\n\n &:last-of-type {\n margin-bottom: unset;\n }\n }\n\n .loader {\n margin-bottom: 10px;\n }\n}\n\n</style>\n",".doc-msg {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n background-color: white;\n}\n\n.doc-err {\n cursor: pointer;\n}\n.doc-err .err-message {\n color: red;\n}\n\n/*# sourceMappingURL=PDF.vue.map */"]}, media: undefined })
70280
- ,inject("data-v-0e0b6952_1", { source: ".pdf-preview {\n text-align: center;\n}\n.pdf-preview:not(.inline) {\n padding-top: 20px;\n padding-bottom: 20px;\n}\n.pdf-preview:not(.inline) canvas {\n box-shadow: 0 0 3px #1E1E1E41;\n}\n.pdf-preview.inline {\n height: 200px;\n overflow-y: scroll;\n display: inline-block;\n cursor: zoom-in;\n width: 100%;\n max-width: 500px;\n}\n.pdf-preview canvas {\n margin-bottom: 10px;\n}\n.pdf-preview canvas.inline {\n width: 100%;\n}\n.pdf-preview canvas:not(.inline) {\n margin: 0 auto 10px auto;\n display: block;\n}\n.pdf-preview canvas:last-of-type {\n margin-bottom: unset;\n}\n.pdf-preview .loader {\n margin-bottom: 10px;\n}\n\n/*# sourceMappingURL=PDF.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/filePreview/common/types/PDF/PDF.vue","PDF.vue"],"names":[],"mappings":"AA+TA;EACA,kBAAA;AC9TA;AD+TA;EACA,iBAAA;EACA,oBAAA;AC7TA;AD8TA;EACA,6BAAA;AC5TA;AD+TA;EACA,aAAA;EACA,kBAAA;EACA,qBAAA;EACA,eAAA;EACA,WAAA;EACA,gBAAA;AC7TA;ADgUA;EACA,mBAAA;AC9TA;AD+TA;EACA,WAAA;AC7TA;ADgUA;EACA,wBAAA;EACA,cAAA;AC9TA;ADiUA;EACA,oBAAA;AC/TA;ADmUA;EACA,mBAAA;ACjUA;;AAEA,kCAAkC","file":"PDF.vue","sourcesContent":["<template>\n <div\n :style=\"previewStyle\"\n :class=\"[...previewClass, 'pdf-preview', inline ? 'inline' : '', $listeners.click ? 'clickable' : '']\"\n @click=\"onPreviewClick\"\n >\n <!-- Container for pdf's pages -->\n <div\n v-show=\"show\"\n ref=\"pages\"\n class=\"pages\"\n />\n\n <div\n v-if=\"loadError\"\n class=\"doc-msg doc-err\"\n >\n <div>\n <h4 class=\"err-message\">\n {{ loadError.message }}\n </h4>\n <p v-if=\"labels.clickToRetry\">\n {{ labels.clickToRetry }}\n </p>\n </div>\n </div>\n <div\n v-else-if=\"!show && labels.loading\"\n class=\"doc-msg doc-err\"\n >\n <p>{{ labels.loading }}</p>\n </div>\n <div\n v-else-if=\"!pageCount && labels.noPages\"\n class=\"doc-msg doc-err\"\n >\n <p>{{ labels.noPages }}</p>\n </div>\n <template v-else>\n <div v-if=\"!inline && labels.downloadForAll && show && hasMore\">\n <p>{{ labels.downloadForAll }}</p>\n </div>\n <div v-else-if=\"inline && labels.firstPagePreview && show\">\n <p>{{ labels.firstPagePreview }}</p>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"js\">\nimport pdfjs from 'pdfjs-dist'\nimport pdfjsWorker from 'pdfjs-dist/build/pdf.worker.entry'\nimport base from '../base.vue'\nimport { makePlaceholder, makeFailedPage, Page, Document } from './helpers'\n\npdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker\n\nfunction sleep (t) {\n return new Promise(resolve => setTimeout(resolve, t))\n}\n\nexport default {\n extends: base,\n\n props: {\n retryBackoff: {\n type: Number,\n required: false,\n default: 300,\n },\n maxRetries: {\n type: Number,\n required: false,\n default: 10,\n },\n\n maxPages: {\n required: false,\n type: Number,\n default: 5,\n },\n\n initialScale: {\n required: false,\n type: Number,\n default: 1,\n },\n },\n\n data () {\n return {\n document: null,\n pages: [],\n show: false,\n loadError: undefined,\n }\n },\n\n computed: {\n /**\n * Helper to provide the number of pages for the given PDF\n * @returns {Number}\n */\n pageCount () {\n if (!this.document || !this.document.pdf) {\n return 0\n }\n return this.document.pdf.numPages\n },\n\n /**\n * Helper to determine if the given PDF has more pages then we are willing to show\n * @returns {Boolean}\n */\n hasMore () {\n return this.maxPages < this.pageCount\n },\n },\n\n created () {\n if (!this.src) {\n this.stdErr(new Error('src.missing'))\n return\n }\n\n this.$nextTick(() => this.init())\n },\n\n methods: {\n /**\n * Helper to handle on preview click. It either requests a retry or\n * emits an open event\n */\n onPreviewClick () {\n if (this.loadError) {\n this.init()\n } else {\n this.$emit('openPreview', { document: this.document })\n }\n },\n\n /**\n * Initializes the state, loads the document & renderes it's pages\n */\n async init () {\n this.document = null\n this.pages = []\n this.show = false\n this.loadError = undefined\n\n return this.loadDocument(this.src)\n .then(this.renderDocument)\n .catch(this.stdErr)\n },\n\n /**\n * Helper method to load the given document. Needed for test stubbing\n * @param {String} src Document's src\n * @returns {Promise<PDFDocumentProxy>}\n */\n async pdfjsLoad (src) {\n return pdfjs.getDocument(src).promise\n },\n\n /**\n * Loads the given PDF. It can load it from API or re-use existing document\n * @param {Document|String} src PDF's source or a Document object\n * @returns {Document}\n */\n async loadDocument (src) {\n if (src instanceof Document) {\n this.document = new Document({ ...src, scale: this.initialScale })\n } else if (typeof src === 'string') {\n let retries = 0\n let err\n const pdfl = async () => {\n return sleep(retries * this.retryBackoff)\n .then(() => this.pdfjsLoad(src))\n .then(pdf => {\n this.document = new Document({ pdf, src, scale: this.initialScale })\n })\n }\n\n // Retry with backoff it it fails to load\n while (!this.document && retries < this.maxRetries) {\n await pdfl().catch(e => {\n retries++\n err = e\n })\n }\n\n if (!this.document) {\n throw err\n }\n } else {\n throw new Error('src.notValid')\n }\n return this.document\n },\n\n /**\n * Renders the given PDF\n * @param {Document} doc The Document to render\n * @return {Promise<undefined>}\n */\n async renderDocument (doc) {\n const rf = this.$refs.pages\n\n const pgCount = Math.min(this.pageCount, this.maxPages)\n this.pages = [...new Array(pgCount)].map((_, i) => new Page({ index: i }))\n\n if (pgCount <= 0) {\n this.show = true\n return\n }\n\n // Loadup pages\n for (let i = 0; i < pgCount; i++) {\n const node = makePlaceholder(this.labels)\n rf.appendChild(node)\n this.pages.splice(i, 1, new Page({ ...this.pages[i], node, loading: true }))\n\n this.renderPage(this.pages[i], doc, rf)\n .then(page => {\n this.pages.splice(page.index, 1, page)\n\n if (page.index === 0) {\n this.show = true\n }\n })\n .catch(this.stdErr)\n }\n },\n\n /**\n * Renders the given page\n * @param {Page} page The page in question\n * @param {Document} doc Page source\n * @param {Node} rf PDF container\n * @returns {Promise<undefined>}\n */\n async renderPage (page, doc, rf) {\n // pdfjs starts with 1!\n return doc.pdf.getPage(page.index + 1).then(p => {\n const np = new Page(page)\n np.loading = false\n np.loaded = true\n np.page = p\n\n // Render page\n const canvas = document.createElement('canvas')\n const scale = doc.scale\n const viewport = np.page.getViewport(scale)\n const canvasContext = canvas.getContext('2d')\n const renderContext = { canvasContext, viewport }\n canvas.height = viewport.height\n canvas.width = viewport.width\n\n return np.page.render(renderContext).then(() => {\n np.node = canvas\n np.rendered = true\n if (this.inline) {\n canvas.classList.add('inline')\n }\n return np\n })\n\n .catch(() => {\n const node = makeFailedPage(this.labels)\n np.node = node\n np.rendered = false\n np.failed = true\n return np\n })\n\n .then(np => {\n rf.replaceChild(np.node, page.node)\n return np\n })\n })\n },\n\n /**\n * Standard error handler\n * @param {Error} err The error\n */\n stdErr (err) {\n this.loadError = err\n this.$emit('error', err)\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$white: white !default;\n$danger: red !default;\n\n.doc-msg {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n background-color: $white;\n}\n.doc-err {\n cursor: pointer;\n\n .err-message {\n color: $danger;\n }\n}\n\n</style>\n\n<style lang=\"scss\">\n// Style not scoped, since pages are manually rendered\n\n.pdf-preview {\n text-align: center;\n &:not(.inline) {\n padding-top: 20px;\n padding-bottom: 20px;\n canvas {\n box-shadow: 0 0 3px #1E1E1E41;\n }\n }\n &.inline {\n height: 200px;\n overflow-y: scroll;\n display: inline-block;\n cursor: zoom-in;\n width: 100%;\n max-width: 500px;\n }\n\n canvas {\n margin-bottom: 10px;\n &.inline {\n width: 100%;\n }\n\n &:not(.inline) {\n margin: 0 auto 10px auto;\n display: block;\n }\n\n &:last-of-type {\n margin-bottom: unset;\n }\n }\n\n .loader {\n margin-bottom: 10px;\n }\n}\n\n</style>\n",".pdf-preview {\n text-align: center;\n}\n.pdf-preview:not(.inline) {\n padding-top: 20px;\n padding-bottom: 20px;\n}\n.pdf-preview:not(.inline) canvas {\n box-shadow: 0 0 3px #1E1E1E41;\n}\n.pdf-preview.inline {\n height: 200px;\n overflow-y: scroll;\n display: inline-block;\n cursor: zoom-in;\n width: 100%;\n max-width: 500px;\n}\n.pdf-preview canvas {\n margin-bottom: 10px;\n}\n.pdf-preview canvas.inline {\n width: 100%;\n}\n.pdf-preview canvas:not(.inline) {\n margin: 0 auto 10px auto;\n display: block;\n}\n.pdf-preview canvas:last-of-type {\n margin-bottom: unset;\n}\n.pdf-preview .loader {\n margin-bottom: 10px;\n}\n\n/*# sourceMappingURL=PDF.vue.map */"]}, media: undefined });
70131
+ inject("data-v-0fb1847f_0", { source: ".doc-msg[data-v-0fb1847f]{display:flex;align-items:center;justify-content:center;height:100%;width:100%;background-color:#fff}.doc-err[data-v-0fb1847f]{cursor:pointer}.doc-err .err-message[data-v-0fb1847f]{color:red}", map: undefined, media: undefined })
70132
+ ,inject("data-v-0fb1847f_1", { source: ".pdf-preview{text-align:center}.pdf-preview:not(.inline){padding-top:20px;padding-bottom:20px}.pdf-preview:not(.inline) canvas{box-shadow:0 0 3px #1e1E1E41}.pdf-preview.inline{height:200px;overflow-y:scroll;display:inline-block;cursor:zoom-in;width:100%;max-width:500px}.pdf-preview canvas{margin-bottom:10px}.pdf-preview canvas.inline{width:100%}.pdf-preview canvas:not(.inline){margin:0 auto 10px auto;display:block}.pdf-preview canvas:last-of-type{margin-bottom:unset}.pdf-preview .loader{margin-bottom:10px}", map: undefined, media: undefined });
70281
70133
 
70282
70134
  };
70283
70135
  /* scoped */
70284
- const __vue_scope_id__$4 = "data-v-0e0b6952";
70136
+ const __vue_scope_id__$4 = "data-v-0fb1847f";
70285
70137
  /* module identifier */
70286
70138
  const __vue_module_identifier__$4 = undefined;
70287
70139
  /* functional template */
@@ -70308,51 +70160,17 @@ __vue_render__$3._withStripped = true;
70308
70160
  /* script */
70309
70161
 
70310
70162
  /* template */
70311
- var __vue_render__$4 = function() {
70312
- var _vm = this;
70313
- var _h = _vm.$createElement;
70314
- var _c = _vm._self._c || _h;
70315
- return _c("div", { staticClass: "lightbox" }, [
70316
- _c("header", [
70317
- _c("div", { staticClass: "left" }, [_vm._t("header.left")], 2),
70318
- _vm._v(" "),
70319
- _c(
70320
- "div",
70321
- { staticClass: "right" },
70322
- [
70323
- _vm._t("header.right"),
70324
- _vm._v(" "),
70325
- _c(
70326
- "button",
70327
- {
70328
- staticClass: "closer",
70329
- on: {
70330
- click: function($event) {
70331
- return _vm.$emit("close")
70332
- }
70333
- }
70334
- },
70335
- [_vm._v("\n ×\n ")]
70336
- )
70337
- ],
70338
- 2
70339
- )
70340
- ]),
70341
- _vm._v(" "),
70342
- _c("main", [_vm._t("main")], 2)
70343
- ])
70344
- };
70163
+ var __vue_render__$4 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"lightbox"},[_c('header',[_c('div',{staticClass:"left"},[_vm._t("header.left")],2),_vm._v(" "),_c('div',{staticClass:"right"},[_vm._t("header.right"),_vm._v(" "),_c('button',{staticClass:"closer",on:{"click":function($event){return _vm.$emit('close')}}},[_vm._v("\n ×\n ")])],2)]),_vm._v(" "),_c('main',[_vm._t("main")],2)])};
70345
70164
  var __vue_staticRenderFns__$4 = [];
70346
- __vue_render__$4._withStripped = true;
70347
70165
 
70348
70166
  /* style */
70349
70167
  const __vue_inject_styles__$5 = function (inject) {
70350
70168
  if (!inject) return
70351
- inject("data-v-5950f2a0_0", { source: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* Temporary style; update when messaging is updated with bootstrap */\n.lightbox[data-v-5950f2a0] {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n\n background-color: #EEF1F3;\n z-index: 2000;\n}\n.lightbox header[data-v-5950f2a0] {\n display: flex;\n justify-content: space-between;\n background-color: #FFFFFF;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n box-shadow: 0 0 3px #1E1E1E41;\n z-index: 1000;\n height: 50px;\n}\n.lightbox header .left[data-v-5950f2a0] {\n margin-left: 10px;\n}\n.lightbox header .right[data-v-5950f2a0] {\n margin-right: 10px;\n}\n.lightbox header > div[data-v-5950f2a0] {\n display: flex;\n align-items: center;\n}\n.lightbox main[data-v-5950f2a0] {\n position: absolute;\n top: 50px;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-y: scroll;\n z-index: 1;\n}\n.lightbox header button[data-v-5950f2a0] {\n background-color: transparent;\n border: none;\n outline: none;\n font-size: 25px;\n font-weight: bold;\n margin: 10px;\n cursor: pointer;\n box-sizing: border-box;\n}\n.lightbox header button[data-v-5950f2a0]:last-of-type {\n margin-right: 0;\n}\n\n", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/lightbox/CLightbox.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,qEAAA;AAEA;EACA,eAAA;EACA,OAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;;EAEA,yBAAA;EACA,aAAA;AACA;AAEA;EACA,aAAA;EACA,8BAAA;EACA,yBAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,QAAA;EACA,6BAAA;EACA,aAAA;EACA,YAAA;AACA;AAEA;EACA,iBAAA;AACA;AACA;EACA,kBAAA;AACA;AAEA;EACA,aAAA;EACA,mBAAA;AACA;AAEA;EACA,kBAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,kBAAA;EACA,UAAA;AACA;AAEA;EACA,6BAAA;EACA,YAAA;EACA,aAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;EACA,sBAAA;AACA;AAEA;EACA,eAAA;AACA","file":"CLightbox.vue","sourcesContent":["<template>\n <div class=\"lightbox\">\n <header>\n <div class=\"left\">\n <slot name=\"header.left\" />\n </div>\n <div class=\"right\">\n <slot name=\"header.right\" />\n <button\n class=\"closer\"\n @click=\"$emit('close')\"\n >\n &times;\n </button>\n </div>\n </header>\n <main>\n <slot name=\"main\" />\n </main>\n </div>\n</template>\n\n<style scoped>\n/* Temporary style; update when messaging is updated with bootstrap */\n\n.lightbox {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n\n background-color: #EEF1F3;\n z-index: 2000;\n}\n\n.lightbox header {\n display: flex;\n justify-content: space-between;\n background-color: #FFFFFF;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n box-shadow: 0 0 3px #1E1E1E41;\n z-index: 1000;\n height: 50px;\n}\n\n.lightbox header .left {\n margin-left: 10px;\n}\n.lightbox header .right {\n margin-right: 10px;\n}\n\n.lightbox header > div {\n display: flex;\n align-items: center;\n}\n\n.lightbox main {\n position: absolute;\n top: 50px;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-y: scroll;\n z-index: 1;\n}\n\n.lightbox header button {\n background-color: transparent;\n border: none;\n outline: none;\n font-size: 25px;\n font-weight: bold;\n margin: 10px;\n cursor: pointer;\n box-sizing: border-box;\n}\n\n.lightbox header button:last-of-type {\n margin-right: 0;\n}\n\n</style>\n"]}, media: undefined });
70169
+ inject("data-v-30782d92_0", { source: ".lightbox[data-v-30782d92]{position:fixed;left:0;top:0;right:0;bottom:0;background-color:#eef1f3;z-index:2000}.lightbox header[data-v-30782d92]{display:flex;justify-content:space-between;background-color:#fff;position:absolute;left:0;top:0;right:0;box-shadow:0 0 3px #1e1E1E41;z-index:1000;height:50px}.lightbox header .left[data-v-30782d92]{margin-left:10px}.lightbox header .right[data-v-30782d92]{margin-right:10px}.lightbox header>div[data-v-30782d92]{display:flex;align-items:center}.lightbox main[data-v-30782d92]{position:absolute;top:50px;left:0;right:0;bottom:0;overflow-y:scroll;z-index:1}.lightbox header button[data-v-30782d92]{background-color:transparent;border:none;outline:0;font-size:25px;font-weight:700;margin:10px;cursor:pointer;box-sizing:border-box}.lightbox header button[data-v-30782d92]:last-of-type{margin-right:0}", map: undefined, media: undefined });
70352
70170
 
70353
70171
  };
70354
70172
  /* scoped */
70355
- const __vue_scope_id__$5 = "data-v-5950f2a0";
70173
+ const __vue_scope_id__$5 = "data-v-30782d92";
70356
70174
  /* module identifier */
70357
70175
  const __vue_module_identifier__$5 = undefined;
70358
70176
  /* functional template */
@@ -70507,51 +70325,8 @@ var script$6 = {
70507
70325
  const __vue_script__$6 = script$6;
70508
70326
 
70509
70327
  /* template */
70510
- var __vue_render__$5 = function() {
70511
- var _vm = this;
70512
- var _h = _vm.$createElement;
70513
- var _c = _vm._self._c || _h;
70514
- return _c(
70515
- "c-lightbox",
70516
- _vm._g(
70517
- {
70518
- scopedSlots: _vm._u(
70519
- [
70520
- _vm._l(_vm.$scopedSlots, function(_, slot) {
70521
- return {
70522
- key: slot,
70523
- fn: function(scope) {
70524
- return [_vm._t(slot, null, null, scope)]
70525
- }
70526
- }
70527
- })
70528
- ],
70529
- null,
70530
- true
70531
- )
70532
- },
70533
- _vm.$listeners
70534
- ),
70535
- [
70536
- _vm._v(" "),
70537
- _c(
70538
- _vm.previewType,
70539
- _vm._g(
70540
- _vm._b(
70541
- { tag: "component", attrs: { slot: "main" }, slot: "main" },
70542
- "component",
70543
- _vm.$attrs,
70544
- false
70545
- ),
70546
- _vm.$listeners
70547
- )
70548
- )
70549
- ],
70550
- 1
70551
- )
70552
- };
70328
+ var __vue_render__$5 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('c-lightbox',_vm._g({scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},_vm.$listeners),[_vm._v(" "),_c(_vm.previewType,_vm._g(_vm._b({tag:"component",attrs:{"slot":"main"},slot:"main"},'component',_vm.$attrs,false),_vm.$listeners))],1)};
70553
70329
  var __vue_staticRenderFns__$5 = [];
70554
- __vue_render__$5._withStripped = true;
70555
70330
 
70556
70331
  /* style */
70557
70332
  const __vue_inject_styles__$7 = undefined;
@@ -70594,40 +70369,8 @@ var script$7 = {
70594
70369
  const __vue_script__$7 = script$7;
70595
70370
 
70596
70371
  /* template */
70597
- var __vue_render__$6 = function() {
70598
- var _vm = this;
70599
- var _h = _vm.$createElement;
70600
- var _c = _vm._self._c || _h;
70601
- return _c("div", { staticClass: "inline" }, [
70602
- _c(
70603
- "main",
70604
- [
70605
- _c(
70606
- _vm.previewType,
70607
- _vm._g(
70608
- _vm._b(
70609
- {
70610
- tag: "component",
70611
- attrs: {
70612
- "max-pages": 1,
70613
- inline: _vm.inline,
70614
- "initial-scale": 1.5
70615
- }
70616
- },
70617
- "component",
70618
- _vm.$attrs,
70619
- false
70620
- ),
70621
- _vm.$listeners
70622
- )
70623
- )
70624
- ],
70625
- 1
70626
- )
70627
- ])
70628
- };
70372
+ var __vue_render__$6 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"inline"},[_c('main',[_c(_vm.previewType,_vm._g(_vm._b({tag:"component",attrs:{"max-pages":1,"inline":_vm.inline,"initial-scale":1.5}},'component',_vm.$attrs,false),_vm.$listeners))],1)])};
70629
70373
  var __vue_staticRenderFns__$6 = [];
70630
- __vue_render__$6._withStripped = true;
70631
70374
 
70632
70375
  /* style */
70633
70376
  const __vue_inject_styles__$8 = undefined;
@@ -70726,116 +70469,8 @@ var script$8 = {
70726
70469
  const __vue_script__$8 = script$8;
70727
70470
 
70728
70471
  /* template */
70729
- var __vue_render__$7 = function() {
70730
- var _vm = this;
70731
- var _h = _vm.$createElement;
70732
- var _c = _vm._self._c || _h;
70733
- return _c("span", { staticClass: "text-center" }, [
70734
- !_vm.inConfirmation
70735
- ? _c(
70736
- "span",
70737
- [
70738
- _c(
70739
- "b-button",
70740
- {
70741
- class:
70742
- _vm.buttonClass + " " + (_vm.borderless ? "border-0" : ""),
70743
- attrs: {
70744
- variant: _vm.variant,
70745
- size: _vm.size,
70746
- disabled: _vm.disabled
70747
- },
70748
- on: {
70749
- click: function($event) {
70750
- $event.preventDefault();
70751
- return _vm.onPrompt.apply(null, arguments)
70752
- }
70753
- }
70754
- },
70755
- [
70756
- _vm._t("default", function() {
70757
- return [
70758
- _c("font-awesome-icon", {
70759
- attrs: { icon: ["far", "trash-alt"] }
70760
- })
70761
- ]
70762
- })
70763
- ],
70764
- 2
70765
- )
70766
- ],
70767
- 1
70768
- )
70769
- : _c(
70770
- "span",
70771
- [
70772
- _c(
70773
- "b-button",
70774
- {
70775
- staticClass: "mr-1",
70776
- class: [_vm.borderless && "border-0"],
70777
- attrs: {
70778
- variant: _vm.variantOk,
70779
- size: _vm.sizeConfirm,
70780
- disabled: _vm.okDisabled
70781
- },
70782
- on: {
70783
- blur: function($event) {
70784
- $event.preventDefault();
70785
- return _vm.onCancel()
70786
- },
70787
- click: function($event) {
70788
- $event.preventDefault();
70789
- return _vm.onConfirmation()
70790
- }
70791
- }
70792
- },
70793
- [
70794
- _vm._t("yes", function() {
70795
- return [
70796
- _c("font-awesome-icon", {
70797
- attrs: { icon: ["fas", "check"] }
70798
- })
70799
- ]
70800
- })
70801
- ],
70802
- 2
70803
- ),
70804
- _vm._v(" "),
70805
- _c(
70806
- "b-button",
70807
- {
70808
- class: [_vm.borderless && "border-0"],
70809
- attrs: {
70810
- variant: _vm.variantCancel,
70811
- size: _vm.sizeConfirm,
70812
- disabled: _vm.cancelDisabled
70813
- },
70814
- on: {
70815
- click: function($event) {
70816
- $event.preventDefault();
70817
- return _vm.onCancel()
70818
- }
70819
- }
70820
- },
70821
- [
70822
- _vm._t("no", function() {
70823
- return [
70824
- _c("font-awesome-icon", {
70825
- attrs: { icon: ["fas", "times"] }
70826
- })
70827
- ]
70828
- })
70829
- ],
70830
- 2
70831
- )
70832
- ],
70833
- 1
70834
- )
70835
- ])
70836
- };
70472
+ var __vue_render__$7 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:"text-center"},[(!_vm.inConfirmation)?_c('span',[_c('b-button',{class:(_vm.buttonClass + " " + (_vm.borderless ? 'border-0' : '')),attrs:{"variant":_vm.variant,"size":_vm.size,"disabled":_vm.disabled},on:{"click":function($event){$event.preventDefault();return _vm.onPrompt.apply(null, arguments)}}},[_vm._t("default",function(){return [_c('font-awesome-icon',{attrs:{"icon":['far', 'trash-alt']}})]})],2)],1):_c('span',[_c('b-button',{staticClass:"mr-1",class:[ _vm.borderless && 'border-0' ],attrs:{"variant":_vm.variantOk,"size":_vm.sizeConfirm,"disabled":_vm.okDisabled},on:{"blur":function($event){$event.preventDefault();return _vm.onCancel()},"click":function($event){$event.preventDefault();return _vm.onConfirmation()}}},[_vm._t("yes",function(){return [_c('font-awesome-icon',{attrs:{"icon":['fas', 'check']}})]})],2),_vm._v(" "),_c('b-button',{class:[ _vm.borderless && 'border-0' ],attrs:{"variant":_vm.variantCancel,"size":_vm.sizeConfirm,"disabled":_vm.cancelDisabled},on:{"click":function($event){$event.preventDefault();return _vm.onCancel()}}},[_vm._t("no",function(){return [_c('font-awesome-icon',{attrs:{"icon":['fas', 'times']}})]})],2)],1)])};
70837
70473
  var __vue_staticRenderFns__$7 = [];
70838
- __vue_render__$7._withStripped = true;
70839
70474
 
70840
70475
  /* style */
70841
70476
  const __vue_inject_styles__$9 = undefined;
@@ -70909,38 +70544,8 @@ var script$9 = {
70909
70544
  const __vue_script__$9 = script$9;
70910
70545
 
70911
70546
  /* template */
70912
- var __vue_render__$8 = function() {
70913
- var _vm = this;
70914
- var _h = _vm.$createElement;
70915
- var _c = _vm._self._c || _h;
70916
- return _c(
70917
- "b-button",
70918
- _vm._g(
70919
- {
70920
- staticClass: "d-inline-flex align-items-center justify-content-center",
70921
- attrs: {
70922
- variant: _vm.variant,
70923
- disabled: _vm.disabled || _vm.processing,
70924
- size: _vm.size
70925
- }
70926
- },
70927
- _vm.$listeners
70928
- ),
70929
- [
70930
- _vm._t("default"),
70931
- _vm._v(" "),
70932
- _vm.processing
70933
- ? _c("b-spinner", {
70934
- staticClass: "ml-1",
70935
- attrs: { processing: _vm.processing, small: "" }
70936
- })
70937
- : _vm._e()
70938
- ],
70939
- 2
70940
- )
70941
- };
70547
+ var __vue_render__$8 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-button',_vm._g({staticClass:"d-inline-flex align-items-center justify-content-center",attrs:{"variant":_vm.variant,"disabled":_vm.disabled || _vm.processing,"size":_vm.size}},_vm.$listeners),[_vm._t("default"),_vm._v(" "),(_vm.processing)?_c('b-spinner',{staticClass:"ml-1",attrs:{"processing":_vm.processing,"small":""}}):_vm._e()],2)};
70942
70548
  var __vue_staticRenderFns__$8 = [];
70943
- __vue_render__$8._withStripped = true;
70944
70549
 
70945
70550
  /* style */
70946
70551
  const __vue_inject_styles__$a = undefined;
@@ -71140,47 +70745,8 @@ var script$b = {
71140
70745
  const __vue_script__$b = script$b;
71141
70746
 
71142
70747
  /* template */
71143
- var __vue_render__$9 = function() {
71144
- var _vm = this;
71145
- var _h = _vm.$createElement;
71146
- var _c = _vm._self._c || _h;
71147
- return _c(
71148
- "b-form-group",
71149
- { attrs: { label: _vm.label } },
71150
- [
71151
- !_vm.noDate
71152
- ? _c("b-form-input", {
71153
- staticClass: "d-inline w-50",
71154
- attrs: { type: "date" },
71155
- model: {
71156
- value: _vm.date,
71157
- callback: function($$v) {
71158
- _vm.date = $$v;
71159
- },
71160
- expression: "date"
71161
- }
71162
- })
71163
- : _vm._e(),
71164
- _vm._v(" "),
71165
- !_vm.noTime
71166
- ? _c("b-form-input", {
71167
- staticClass: "d-inline w-50",
71168
- attrs: { type: "time" },
71169
- model: {
71170
- value: _vm.time,
71171
- callback: function($$v) {
71172
- _vm.time = $$v;
71173
- },
71174
- expression: "time"
71175
- }
71176
- })
71177
- : _vm._e()
71178
- ],
71179
- 1
71180
- )
71181
- };
70748
+ var __vue_render__$9 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',{attrs:{"label":_vm.label}},[(!_vm.noDate)?_c('b-form-input',{staticClass:"d-inline w-50",attrs:{"type":"date"},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v;},expression:"date"}}):_vm._e(),_vm._v(" "),(!_vm.noTime)?_c('b-form-input',{staticClass:"d-inline w-50",attrs:{"type":"time"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v;},expression:"time"}}):_vm._e()],1)};
71182
70749
  var __vue_staticRenderFns__$9 = [];
71183
- __vue_render__$9._withStripped = true;
71184
70750
 
71185
70751
  /* style */
71186
70752
  const __vue_inject_styles__$c = undefined;
@@ -71261,46 +70827,8 @@ var script$c = {
71261
70827
  const __vue_script__$c = script$c;
71262
70828
 
71263
70829
  /* template */
71264
- var __vue_render__$a = function() {
71265
- var _vm = this;
71266
- var _h = _vm.$createElement;
71267
- var _c = _vm._self._c || _h;
71268
- return _c(
71269
- "b-form-group",
71270
- { attrs: { label: _vm.label } },
71271
- [
71272
- _c("b-form-select", {
71273
- staticClass: "d-inline",
71274
- class: { "w-50": !_vm.simple },
71275
- attrs: { options: _vm.cOptions },
71276
- model: {
71277
- value: _vm.cValue,
71278
- callback: function($$v) {
71279
- _vm.cValue = $$v;
71280
- },
71281
- expression: "cValue"
71282
- }
71283
- }),
71284
- _vm._v(" "),
71285
- !_vm.simple
71286
- ? _c("b-form-input", {
71287
- staticClass: "d-inline w-50",
71288
- attrs: { type: "text" },
71289
- model: {
71290
- value: _vm.cValue,
71291
- callback: function($$v) {
71292
- _vm.cValue = $$v;
71293
- },
71294
- expression: "cValue"
71295
- }
71296
- })
71297
- : _vm._e()
71298
- ],
71299
- 1
71300
- )
71301
- };
70830
+ var __vue_render__$a = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',{attrs:{"label":_vm.label}},[_c('b-form-select',{staticClass:"d-inline",class:{ 'w-50': !_vm.simple },attrs:{"options":_vm.cOptions},model:{value:(_vm.cValue),callback:function ($$v) {_vm.cValue=$$v;},expression:"cValue"}}),_vm._v(" "),(!_vm.simple)?_c('b-form-input',{staticClass:"d-inline w-50",attrs:{"type":"text"},model:{value:(_vm.cValue),callback:function ($$v) {_vm.cValue=$$v;},expression:"cValue"}}):_vm._e()],1)};
71302
70831
  var __vue_staticRenderFns__$a = [];
71303
- __vue_render__$a._withStripped = true;
71304
70832
 
71305
70833
  /* style */
71306
70834
  const __vue_inject_styles__$d = undefined;
@@ -71444,68 +70972,18 @@ var script$e = {
71444
70972
  const __vue_script__$e = script$e;
71445
70973
 
71446
70974
  /* template */
71447
- var __vue_render__$b = function() {
71448
- var _vm = this;
71449
- var _h = _vm.$createElement;
71450
- var _c = _vm._self._c || _h;
71451
- return _c(
71452
- "div",
71453
- [
71454
- _c(
71455
- "b-button",
71456
- {
71457
- staticClass: "text-dark font-weight-bold text-decoration-none",
71458
- attrs: { variant: "link", id: "color-popover-" + _vm.format.type }
71459
- },
71460
- [
71461
- _c("span", { staticClass: "icon", class: _vm.typeStyle }, [
71462
- _vm._v("A")
71463
- ])
71464
- ]
71465
- ),
71466
- _vm._v(" "),
71467
- _c(
71468
- "b-popover",
71469
- {
71470
- ref: "popover",
71471
- attrs: {
71472
- delay: 0,
71473
- "no-fade": "",
71474
- "custom-class": "tcl-popover",
71475
- triggers: "focus",
71476
- target: "color-popover-" + _vm.format.type,
71477
- placement: "bottom",
71478
- container: null
71479
- }
71480
- },
71481
- [
71482
- _c("swatches", {
71483
- attrs: { "swatch-size": "14", colors: "text-advanced", inline: "" },
71484
- on: {
71485
- input: function($event) {
71486
- return _vm.onClick(_vm.format.type, { color: $event })
71487
- }
71488
- }
71489
- })
71490
- ],
71491
- 1
71492
- )
71493
- ],
71494
- 1
71495
- )
71496
- };
70975
+ var __vue_render__$b = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-button',{staticClass:"text-dark font-weight-bold text-decoration-none",attrs:{"variant":"link","id":("color-popover-" + (_vm.format.type))}},[_c('span',{staticClass:"icon",class:_vm.typeStyle},[_vm._v("A")])]),_vm._v(" "),_c('b-popover',{ref:"popover",attrs:{"delay":0,"no-fade":"","custom-class":"tcl-popover","triggers":"focus","target":("color-popover-" + (_vm.format.type)),"placement":"bottom","container":null}},[_c('swatches',{attrs:{"swatch-size":"14","colors":"text-advanced","inline":""},on:{"input":function($event){return _vm.onClick(_vm.format.type, { color: $event })}}})],1)],1)};
71497
70976
  var __vue_staticRenderFns__$b = [];
71498
- __vue_render__$b._withStripped = true;
71499
70977
 
71500
70978
  /* style */
71501
70979
  const __vue_inject_styles__$f = function (inject) {
71502
70980
  if (!inject) return
71503
- inject("data-v-bfd7c2ee_0", { source: ".icon[data-v-bfd7c2ee] {\n padding: 0 2px;\n}\n.icon.color-icon[data-v-bfd7c2ee] {\n border-bottom: 1px solid black;\n}\n.icon.background-icon[data-v-bfd7c2ee] {\n background-color: rgba(0, 0, 0, 0.07);\n padding: 2px 3px;\n}\n\n/*# sourceMappingURL=Color.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/input/CRichTextInput/RToolbar/TMark/Color.vue","Color.vue"],"names":[],"mappings":"AA8DA;EACA,cAAA;AC7DA;AD+DA;EACA,8BAAA;AC7DA;ADgEA;EACA,qCAAA;EACA,gBAAA;AC9DA;;AAEA,oCAAoC","file":"Color.vue","sourcesContent":["<template>\n <div>\n <b-button\n variant=\"link\"\n class=\"text-dark font-weight-bold text-decoration-none\"\n :id=\"`color-popover-${format.type}`\">\n\n <span\n class=\"icon\"\n :class=\"typeStyle\">A</span>\n\n </b-button>\n\n <b-popover\n :delay=\"0\"\n no-fade\n custom-class=\"tcl-popover\"\n triggers=\"focus\"\n :target=\"`color-popover-${format.type}`\"\n placement=\"bottom\"\n :container=\"null\"\n ref=\"popover\">\n\n <swatches\n swatch-size=\"14\"\n colors=\"text-advanced\"\n @input=\"onClick(format.type, { color: $event })\"\n inline />\n\n </b-popover>\n </div>\n</template>\n\n<script>\nimport base from './base.vue'\nimport Swatches from 'vue-swatches'\nimport 'vue-swatches/dist/vue-swatches.min.css'\n\n/**\n * Component is used to display link formatters. It provides an interface to\n * input the URL that should be applied.\n */\nexport default {\n name: 't-mark-color',\n\n components: {\n Swatches,\n },\n extends: base,\n\n computed: {\n typeStyle () {\n return `${this.format.type}-icon`\n },\n },\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n// Since we don't have icons for color related formatters,\n// this extra styling makes up for that\n.icon {\n padding: 0 2px;\n\n &.color-icon {\n border-bottom: 1px solid black;\n }\n\n &.background-icon {\n background-color: rgba(black, 0.07);\n padding: 2px 3px;\n }\n}\n</style>\n\n<style lang=\"scss\">\n// Bootstrap popover doesn't provide a way to style it's body component\n// Can't be scoped, since it's not rendered in here\n.tcl-popover .popover-body {\n padding: 0 !important;\n}\n</style>\n",".icon {\n padding: 0 2px;\n}\n.icon.color-icon {\n border-bottom: 1px solid black;\n}\n.icon.background-icon {\n background-color: rgba(0, 0, 0, 0.07);\n padding: 2px 3px;\n}\n\n/*# sourceMappingURL=Color.vue.map */"]}, media: undefined })
71504
- ,inject("data-v-bfd7c2ee_1", { source: ".tcl-popover .popover-body {\n padding: 0 !important;\n}\n\n/*# sourceMappingURL=Color.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/input/CRichTextInput/RToolbar/TMark/Color.vue","Color.vue"],"names":[],"mappings":"AA+EA;EACA,qBAAA;AC9EA;;AAEA,oCAAoC","file":"Color.vue","sourcesContent":["<template>\n <div>\n <b-button\n variant=\"link\"\n class=\"text-dark font-weight-bold text-decoration-none\"\n :id=\"`color-popover-${format.type}`\">\n\n <span\n class=\"icon\"\n :class=\"typeStyle\">A</span>\n\n </b-button>\n\n <b-popover\n :delay=\"0\"\n no-fade\n custom-class=\"tcl-popover\"\n triggers=\"focus\"\n :target=\"`color-popover-${format.type}`\"\n placement=\"bottom\"\n :container=\"null\"\n ref=\"popover\">\n\n <swatches\n swatch-size=\"14\"\n colors=\"text-advanced\"\n @input=\"onClick(format.type, { color: $event })\"\n inline />\n\n </b-popover>\n </div>\n</template>\n\n<script>\nimport base from './base.vue'\nimport Swatches from 'vue-swatches'\nimport 'vue-swatches/dist/vue-swatches.min.css'\n\n/**\n * Component is used to display link formatters. It provides an interface to\n * input the URL that should be applied.\n */\nexport default {\n name: 't-mark-color',\n\n components: {\n Swatches,\n },\n extends: base,\n\n computed: {\n typeStyle () {\n return `${this.format.type}-icon`\n },\n },\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n// Since we don't have icons for color related formatters,\n// this extra styling makes up for that\n.icon {\n padding: 0 2px;\n\n &.color-icon {\n border-bottom: 1px solid black;\n }\n\n &.background-icon {\n background-color: rgba(black, 0.07);\n padding: 2px 3px;\n }\n}\n</style>\n\n<style lang=\"scss\">\n// Bootstrap popover doesn't provide a way to style it's body component\n// Can't be scoped, since it's not rendered in here\n.tcl-popover .popover-body {\n padding: 0 !important;\n}\n</style>\n",".tcl-popover .popover-body {\n padding: 0 !important;\n}\n\n/*# sourceMappingURL=Color.vue.map */"]}, media: undefined });
70981
+ inject("data-v-90b60574_0", { source: ".icon[data-v-90b60574]{padding:0 2px}.icon.color-icon[data-v-90b60574]{border-bottom:1px solid #000}.icon.background-icon[data-v-90b60574]{background-color:rgba(0,0,0,.07);padding:2px 3px}", map: undefined, media: undefined })
70982
+ ,inject("data-v-90b60574_1", { source: ".tcl-popover .popover-body{padding:0!important}", map: undefined, media: undefined });
71505
70983
 
71506
70984
  };
71507
70985
  /* scoped */
71508
- const __vue_scope_id__$f = "data-v-bfd7c2ee";
70986
+ const __vue_scope_id__$f = "data-v-90b60574";
71509
70987
  /* module identifier */
71510
70988
  const __vue_module_identifier__$f = undefined;
71511
70989
  /* functional template */
@@ -71543,39 +71021,8 @@ var script$f = {
71543
71021
  const __vue_script__$f = script$f;
71544
71022
 
71545
71023
  /* template */
71546
- var __vue_render__$c = function() {
71547
- var _vm = this;
71548
- var _h = _vm.$createElement;
71549
- var _c = _vm._self._c || _h;
71550
- return _c(
71551
- "b-button",
71552
- {
71553
- staticClass: "text-dark font-weight-bold text-decoration-none",
71554
- attrs: { variant: "link" },
71555
- on: {
71556
- click: function($event) {
71557
- return _vm.onClick(_vm.format.type, _vm.format.attrs)
71558
- }
71559
- }
71560
- },
71561
- [
71562
- _c(
71563
- "span",
71564
- { class: _vm.activeClasses(_vm.format.attrs) },
71565
- [
71566
- _vm.format.icon
71567
- ? _c("font-awesome-icon", { attrs: { icon: _vm.format.icon } })
71568
- : _c("span", [
71569
- _vm._v("\n " + _vm._s(_vm.format.label) + "\n ")
71570
- ])
71571
- ],
71572
- 1
71573
- )
71574
- ]
71575
- )
71576
- };
71024
+ var __vue_render__$c = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-button',{staticClass:"text-dark font-weight-bold text-decoration-none",attrs:{"variant":"link"},on:{"click":function($event){return _vm.onClick(_vm.format.type, _vm.format.attrs)}}},[_c('span',{class:_vm.activeClasses(_vm.format.attrs)},[(_vm.format.icon)?_c('font-awesome-icon',{attrs:{"icon":_vm.format.icon}}):_c('span',[_vm._v("\n "+_vm._s(_vm.format.label)+"\n ")])],1)])};
71577
71025
  var __vue_staticRenderFns__$c = [];
71578
- __vue_render__$c._withStripped = true;
71579
71026
 
71580
71027
  /* style */
71581
71028
  const __vue_inject_styles__$g = undefined;
@@ -71681,140 +71128,8 @@ var script$g = {
71681
71128
  const __vue_script__$g = script$g;
71682
71129
 
71683
71130
  /* template */
71684
- var __vue_render__$d = function() {
71685
- var _vm = this;
71686
- var _h = _vm.$createElement;
71687
- var _c = _vm._self._c || _h;
71688
- return _c(
71689
- "div",
71690
- { attrs: { id: "link-popover-container" } },
71691
- [
71692
- _c(
71693
- "b-button",
71694
- {
71695
- staticClass: "text-dark font-weight-bold text-decoration-none",
71696
- attrs: { variant: "link", id: "link-popover" },
71697
- on: { click: _vm.showPopover }
71698
- },
71699
- [
71700
- _c(
71701
- "span",
71702
- { class: _vm.activeClasses(_vm.format.attrs) },
71703
- [_c("font-awesome-icon", { attrs: { icon: "link" } })],
71704
- 1
71705
- )
71706
- ]
71707
- ),
71708
- _vm._v(" "),
71709
- _vm.currentValue
71710
- ? _c(
71711
- "b-popover",
71712
- {
71713
- ref: "popover",
71714
- attrs: {
71715
- triggers: "focus",
71716
- target: "link-popover",
71717
- placement: "auto",
71718
- show: _vm.visible,
71719
- container: "link-popover-container"
71720
- },
71721
- on: {
71722
- "update:show": function($event) {
71723
- _vm.visible = $event;
71724
- }
71725
- }
71726
- },
71727
- [
71728
- _c(
71729
- "b-input-group",
71730
- [
71731
- _c("b-form-input", {
71732
- attrs: {
71733
- type: "url",
71734
- autofocus: "",
71735
- state: _vm.urlValid ? null : false,
71736
- placeholder: _vm.labels.urlPlaceholder
71737
- },
71738
- on: {
71739
- keydown: [
71740
- function($event) {
71741
- if (
71742
- !$event.type.indexOf("key") &&
71743
- _vm._k(
71744
- $event.keyCode,
71745
- "enter",
71746
- 13,
71747
- $event.key,
71748
- "Enter"
71749
- )
71750
- ) {
71751
- return null
71752
- }
71753
- $event.preventDefault();
71754
- $event.stopPropagation();
71755
- return _vm.link.apply(null, arguments)
71756
- },
71757
- function($event) {
71758
- if (
71759
- !$event.type.indexOf("key") &&
71760
- _vm._k($event.keyCode, "esc", 27, $event.key, [
71761
- "Esc",
71762
- "Escape"
71763
- ])
71764
- ) {
71765
- return null
71766
- }
71767
- $event.preventDefault();
71768
- $event.stopPropagation();
71769
- return _vm.close.apply(null, arguments)
71770
- }
71771
- ]
71772
- },
71773
- model: {
71774
- value: _vm.attrs.href,
71775
- callback: function($$v) {
71776
- _vm.$set(_vm.attrs, "href", $$v);
71777
- },
71778
- expression: "attrs.href"
71779
- }
71780
- }),
71781
- _vm._v(" "),
71782
- _c(
71783
- "b-input-group-append",
71784
- [
71785
- _c(
71786
- "b-button",
71787
- {
71788
- attrs: {
71789
- disabled: !_vm.urlValid,
71790
- variant: "outline-success"
71791
- },
71792
- on: { click: _vm.link }
71793
- },
71794
- [
71795
- _vm._v(
71796
- "\n " +
71797
- _vm._s(_vm.labels.ok) +
71798
- "\n "
71799
- )
71800
- ]
71801
- )
71802
- ],
71803
- 1
71804
- )
71805
- ],
71806
- 1
71807
- )
71808
- ],
71809
- 1
71810
- )
71811
- : _vm._e()
71812
- ],
71813
- 1
71814
- )
71815
- };
71131
+ var __vue_render__$d = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{"id":"link-popover-container"}},[_c('b-button',{staticClass:"text-dark font-weight-bold text-decoration-none",attrs:{"variant":"link","id":"link-popover"},on:{"click":_vm.showPopover}},[_c('span',{class:_vm.activeClasses(_vm.format.attrs)},[_c('font-awesome-icon',{attrs:{"icon":"link"}})],1)]),_vm._v(" "),(_vm.currentValue)?_c('b-popover',{ref:"popover",attrs:{"triggers":"focus","target":"link-popover","placement":"auto","show":_vm.visible,"container":"link-popover-container"},on:{"update:show":function($event){_vm.visible=$event;}}},[_c('b-input-group',[_c('b-form-input',{attrs:{"type":"url","autofocus":"","state":_vm.urlValid ? null : false,"placeholder":_vm.labels.urlPlaceholder},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.link.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.close.apply(null, arguments)}]},model:{value:(_vm.attrs.href),callback:function ($$v) {_vm.$set(_vm.attrs, "href", $$v);},expression:"attrs.href"}}),_vm._v(" "),_c('b-input-group-append',[_c('b-button',{attrs:{"disabled":!_vm.urlValid,"variant":"outline-success"},on:{"click":_vm.link}},[_vm._v("\n "+_vm._s(_vm.labels.ok)+"\n ")])],1)],1)],1):_vm._e()],1)};
71816
71132
  var __vue_staticRenderFns__$d = [];
71817
- __vue_render__$d._withStripped = true;
71818
71133
 
71819
71134
  /* style */
71820
71135
  const __vue_inject_styles__$h = undefined;
@@ -78819,39 +78134,8 @@ var script$i = {
78819
78134
  const __vue_script__$i = script$i;
78820
78135
 
78821
78136
  /* template */
78822
- var __vue_render__$e = function() {
78823
- var _vm = this;
78824
- var _h = _vm.$createElement;
78825
- var _c = _vm._self._c || _h;
78826
- return _c(
78827
- "b-button",
78828
- {
78829
- staticClass: "text-dark font-weight-bold text-decoration-none",
78830
- attrs: { variant: "link" },
78831
- on: {
78832
- click: function($event) {
78833
- return _vm.onClick(_vm.format.type, _vm.format.attrs)
78834
- }
78835
- }
78836
- },
78837
- [
78838
- _c(
78839
- "span",
78840
- { class: _vm.activeClasses(_vm.format.attrs) },
78841
- [
78842
- _vm.format.icon
78843
- ? _c("font-awesome-icon", { attrs: { icon: _vm.format.icon } })
78844
- : _c("span", [
78845
- _vm._v("\n " + _vm._s(_vm.format.label) + "\n ")
78846
- ])
78847
- ],
78848
- 1
78849
- )
78850
- ]
78851
- )
78852
- };
78137
+ var __vue_render__$e = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-button',{staticClass:"text-dark font-weight-bold text-decoration-none",attrs:{"variant":"link"},on:{"click":function($event){return _vm.onClick(_vm.format.type, _vm.format.attrs)}}},[_c('span',{class:_vm.activeClasses(_vm.format.attrs)},[(_vm.format.icon)?_c('font-awesome-icon',{attrs:{"icon":_vm.format.icon}}):_c('span',[_vm._v("\n "+_vm._s(_vm.format.label)+"\n ")])],1)])};
78853
78138
  var __vue_staticRenderFns__$e = [];
78854
- __vue_render__$e._withStripped = true;
78855
78139
 
78856
78140
  /* style */
78857
78141
  const __vue_inject_styles__$j = undefined;
@@ -78960,78 +78244,8 @@ var script$j = {
78960
78244
  const __vue_script__$j = script$j;
78961
78245
 
78962
78246
  /* template */
78963
- var __vue_render__$f = function() {
78964
- var _vm = this;
78965
- var _h = _vm.$createElement;
78966
- var _c = _vm._self._c || _h;
78967
- return _c(
78968
- "b-dropdown",
78969
- { attrs: { "menu-class": "text-center", variant: "link" } },
78970
- [
78971
- _c("template", { slot: "button-content" }, [
78972
- _c("span", { staticClass: "text-dark font-weight-bold" }, [
78973
- _c(
78974
- "span",
78975
- { class: _vm.rootActiveClasses() },
78976
- [
78977
- _vm.format.icon
78978
- ? _c("font-awesome-icon", { attrs: { icon: _vm.format.icon } })
78979
- : _c("span", [
78980
- _vm._v(
78981
- "\n " + _vm._s(_vm.format.label) + "\n "
78982
- )
78983
- ])
78984
- ],
78985
- 1
78986
- )
78987
- ])
78988
- ]),
78989
- _vm._v(" "),
78990
- _vm._l(_vm.format.variants, function(v) {
78991
- return _c(
78992
- "b-dropdown-item",
78993
- {
78994
- key: v.variant,
78995
- on: {
78996
- click: function($event) {
78997
- return _vm.dispatchTransaction(v)
78998
- }
78999
- }
79000
- },
79001
- [
79002
- _c(
79003
- "b-button",
79004
- {
79005
- staticClass: "text-dark font-weight-bold",
79006
- attrs: { variant: "link" }
79007
- },
79008
- [
79009
- _c(
79010
- "span",
79011
- { class: _vm.activeClasses(v.attrs) },
79012
- [
79013
- _vm.format.icon
79014
- ? _c("font-awesome-icon", { attrs: { icon: v.icon } })
79015
- : _c("span", [
79016
- _vm._v(
79017
- "\n " + _vm._s(v.label) + "\n "
79018
- )
79019
- ])
79020
- ],
79021
- 1
79022
- )
79023
- ]
79024
- )
79025
- ],
79026
- 1
79027
- )
79028
- })
79029
- ],
79030
- 2
79031
- )
79032
- };
78247
+ var __vue_render__$f = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown',{attrs:{"menu-class":"text-center","variant":"link"}},[_c('template',{slot:"button-content"},[_c('span',{staticClass:"text-dark font-weight-bold"},[_c('span',{class:_vm.rootActiveClasses()},[(_vm.format.icon)?_c('font-awesome-icon',{attrs:{"icon":_vm.format.icon}}):_c('span',[_vm._v("\n "+_vm._s(_vm.format.label)+"\n ")])],1)])]),_vm._v(" "),_vm._l((_vm.format.variants),function(v){return _c('b-dropdown-item',{key:v.variant,on:{"click":function($event){return _vm.dispatchTransaction(v)}}},[_c('b-button',{staticClass:"text-dark font-weight-bold",attrs:{"variant":"link"}},[_c('span',{class:_vm.activeClasses(v.attrs)},[(_vm.format.icon)?_c('font-awesome-icon',{attrs:{"icon":v.icon}}):_c('span',[_vm._v("\n "+_vm._s(v.label)+"\n ")])],1)])],1)})],2)};
79033
78248
  var __vue_staticRenderFns__$f = [];
79034
- __vue_render__$f._withStripped = true;
79035
78249
 
79036
78250
  /* style */
79037
78251
  const __vue_inject_styles__$k = undefined;
@@ -79159,55 +78373,8 @@ var script$k = {
79159
78373
  const __vue_script__$k = script$k;
79160
78374
 
79161
78375
  /* template */
79162
- var __vue_render__$g = function() {
79163
- var _vm = this;
79164
- var _h = _vm.$createElement;
79165
- var _c = _vm._self._c || _h;
79166
- return _c(
79167
- "div",
79168
- { staticClass: "d-flex flex-wrap" },
79169
- [
79170
- _vm._l(_vm.formats, function(f, i) {
79171
- return _c(
79172
- _vm.getItem(f),
79173
- _vm._b(
79174
- {
79175
- key: "" + f.name + i + "}",
79176
- tag: "component",
79177
- attrs: {
79178
- format: f,
79179
- labels: _vm.labels,
79180
- "current-value": _vm.currentValue
79181
- },
79182
- on: {
79183
- click: function($event) {
79184
- _vm.commands[$event.type]($event.attrs);
79185
- }
79186
- }
79187
- },
79188
- "component",
79189
- _vm.$props,
79190
- false
79191
- )
79192
- )
79193
- }),
79194
- _vm._v(" "),
79195
- _c(
79196
- "b-button",
79197
- {
79198
- staticClass: "text-dark font-weight-bold",
79199
- attrs: { variant: "link" },
79200
- on: { click: _vm.removeMarks }
79201
- },
79202
- [_c("font-awesome-icon", { attrs: { icon: "remove-format" } })],
79203
- 1
79204
- )
79205
- ],
79206
- 2
79207
- )
79208
- };
78376
+ var __vue_render__$g = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"d-flex flex-wrap"},[_vm._l((_vm.formats),function(f,i){return _c(_vm.getItem(f),_vm._b({key:("" + (f.name) + i + "}"),tag:"component",attrs:{"format":f,"labels":_vm.labels,"current-value":_vm.currentValue},on:{"click":function($event){(_vm.commands[$event.type])($event.attrs);}}},'component',_vm.$props,false))}),_vm._v(" "),_c('b-button',{staticClass:"text-dark font-weight-bold",attrs:{"variant":"link"},on:{"click":_vm.removeMarks}},[_c('font-awesome-icon',{attrs:{"icon":"remove-format"}})],1)],2)};
79209
78377
  var __vue_staticRenderFns__$g = [];
79210
- __vue_render__$g._withStripped = true;
79211
78378
 
79212
78379
  /* style */
79213
78380
  const __vue_inject_styles__$l = undefined;
@@ -79332,75 +78499,13 @@ var script$l = {
79332
78499
  const __vue_script__$l = script$l;
79333
78500
 
79334
78501
  /* template */
79335
- var __vue_render__$h = function() {
79336
- var _vm = this;
79337
- var _h = _vm.$createElement;
79338
- var _c = _vm._self._c || _h;
79339
- return _c(
79340
- "b-card",
79341
- { staticClass: "editor rt-content", attrs: { "no-body": "" } },
79342
- [
79343
- _vm.editor
79344
- ? [
79345
- _c(
79346
- "b-card-header",
79347
- { attrs: { "header-class": "p-0 rounded-sm" } },
79348
- [
79349
- _c("editor-menu-bar", {
79350
- attrs: { editor: _vm.editor },
79351
- scopedSlots: _vm._u(
79352
- [
79353
- {
79354
- key: "default",
79355
- fn: function(ref) {
79356
- var commands = ref.commands;
79357
- var isActive = ref.isActive;
79358
- var getMarkAttrs = ref.getMarkAttrs;
79359
- var getNodeAttrs = ref.getNodeAttrs;
79360
- return [
79361
- _c("r-toolbar", {
79362
- attrs: {
79363
- editor: _vm.editor,
79364
- formats: _vm.toolbar,
79365
- commands: commands,
79366
- "is-active": isActive,
79367
- "get-mark-attrs": getMarkAttrs,
79368
- "get-node-attrs": getNodeAttrs,
79369
- labels: _vm.labels,
79370
- "current-value": _vm.currentValue
79371
- }
79372
- })
79373
- ]
79374
- }
79375
- }
79376
- ],
79377
- null,
79378
- false,
79379
- 2342935495
79380
- )
79381
- })
79382
- ],
79383
- 1
79384
- ),
79385
- _vm._v(" "),
79386
- _c(
79387
- "b-card-body",
79388
- [
79389
- _c("editor-content", {
79390
- staticClass: "editor__content",
79391
- attrs: { editor: _vm.editor }
79392
- })
79393
- ],
79394
- 1
79395
- )
79396
- ]
79397
- : _vm._e()
79398
- ],
79399
- 2
79400
- )
79401
- };
78502
+ var __vue_render__$h = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:"editor rt-content",attrs:{"no-body":""}},[(_vm.editor)?[_c('b-card-header',{attrs:{"header-class":"p-0 rounded-sm"}},[_c('editor-menu-bar',{attrs:{"editor":_vm.editor},scopedSlots:_vm._u([{key:"default",fn:function(ref){
78503
+ var commands = ref.commands;
78504
+ var isActive = ref.isActive;
78505
+ var getMarkAttrs = ref.getMarkAttrs;
78506
+ var getNodeAttrs = ref.getNodeAttrs;
78507
+ return [_c('r-toolbar',{attrs:{"editor":_vm.editor,"formats":_vm.toolbar,"commands":commands,"is-active":isActive,"get-mark-attrs":getMarkAttrs,"get-node-attrs":getNodeAttrs,"labels":_vm.labels,"current-value":_vm.currentValue}})]}}],null,false,2342935495)})],1),_vm._v(" "),_c('b-card-body',[_c('editor-content',{staticClass:"editor__content",attrs:{"editor":_vm.editor}})],1)]:_vm._e()],2)};
79402
78508
  var __vue_staticRenderFns__$h = [];
79403
- __vue_render__$h._withStripped = true;
79404
78509
 
79405
78510
  /* style */
79406
78511
  const __vue_inject_styles__$m = undefined;
@@ -79506,49 +78611,17 @@ var script$m = {
79506
78611
  const __vue_script__$m = script$m;
79507
78612
 
79508
78613
  /* template */
79509
- var __vue_render__$i = function() {
79510
- var _vm = this;
79511
- var _h = _vm.$createElement;
79512
- var _c = _vm._self._c || _h;
79513
- return _vm.link
79514
- ? _c(
79515
- "a",
79516
- { staticClass: "pointer", on: { click: _vm.onClick } },
79517
- [_c("font-awesome-icon", { attrs: { icon: ["fas", "lock"] } })],
79518
- 1
79519
- )
79520
- : _c(
79521
- "b-button",
79522
- { attrs: { variant: _vm.buttonVariant }, on: { click: _vm.onClick } },
79523
- [
79524
- _vm._t("default", function() {
79525
- return [
79526
- _vm.showButtonIcon
79527
- ? _c("font-awesome-icon", { attrs: { icon: ["fas", "lock"] } })
79528
- : _vm._e(),
79529
- _vm._v(" "),
79530
- _vm.buttonLabel
79531
- ? _c("span", [
79532
- _vm._v("\n " + _vm._s(_vm.buttonLabel) + "\n ")
79533
- ])
79534
- : _vm._e()
79535
- ]
79536
- })
79537
- ],
79538
- 2
79539
- )
79540
- };
78614
+ var __vue_render__$i = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.link)?_c('a',{staticClass:"pointer",on:{"click":_vm.onClick}},[_c('font-awesome-icon',{attrs:{"icon":['fas', 'lock']}})],1):_c('b-button',{attrs:{"variant":_vm.buttonVariant},on:{"click":_vm.onClick}},[_vm._t("default",function(){return [(_vm.showButtonIcon)?_c('font-awesome-icon',{attrs:{"icon":['fas', 'lock']}}):_vm._e(),_vm._v(" "),(_vm.buttonLabel)?_c('span',[_vm._v("\n "+_vm._s(_vm.buttonLabel)+"\n ")]):_vm._e()]})],2)};
79541
78615
  var __vue_staticRenderFns__$i = [];
79542
- __vue_render__$i._withStripped = true;
79543
78616
 
79544
78617
  /* style */
79545
78618
  const __vue_inject_styles__$n = function (inject) {
79546
78619
  if (!inject) return
79547
- inject("data-v-7413f73a_0", { source: ".pointer[data-v-7413f73a] {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=CPermissionsButton.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/permissions/CPermissionsButton.vue","CPermissionsButton.vue"],"names":[],"mappings":"AA0FA;EACA,eAAA;ACzFA;;AAEA,iDAAiD","file":"CPermissionsButton.vue","sourcesContent":["<template>\n <a\n v-if=\"link\"\n class=\"pointer\"\n @click=\"onClick\"\n >\n <font-awesome-icon :icon=\"['fas', 'lock']\" />\n </a>\n <b-button\n v-else\n :variant=\"buttonVariant\"\n @click=\"onClick\"\n >\n <slot>\n <font-awesome-icon v-if=\"showButtonIcon\" :icon=\"['fas', 'lock']\" />\n <span v-if=\"buttonLabel\">\n {{ buttonLabel }}\n </span>\n </slot>\n </b-button>\n</template>\n<script lang=\"js\">\nimport { modalOpenEventName } from './def.ts'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faLock } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faLock)\n\nexport default {\n props: {\n link: {\n type: Boolean,\n },\n\n buttonVariant: {\n type: String,\n default: undefined,\n },\n\n resource: {\n type: String,\n required: true,\n },\n\n title: {\n type: String,\n default: undefined,\n },\n\n buttonLabel: {\n type: String,\n default: undefined,\n },\n\n modalOpenEvent: {\n type: String,\n default: modalOpenEventName,\n },\n\n target: {\n type: String,\n required: false,\n default: undefined,\n },\n\n showButtonIcon: {\n type: Boolean,\n default: true,\n },\n\n // Use this prop if you want the translations to look for all-specific key instead of all/specific\n allSpecific: {\n type: Boolean,\n default: false\n },\n },\n\n methods: {\n onClick () {\n this.$root.$emit(this.modalOpenEvent, {\n target: this.target,\n resource: this.resource,\n title: this.title,\n allSpecific: this.allSpecific\n })\n },\n },\n}\n</script>\n<style lang=\"scss\" scoped>\n.pointer {\n cursor: pointer;\n}\n</style>\n",".pointer {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=CPermissionsButton.vue.map */"]}, media: undefined });
78620
+ inject("data-v-4c4b66ba_0", { source: ".pointer[data-v-4c4b66ba]{cursor:pointer}", map: undefined, media: undefined });
79548
78621
 
79549
78622
  };
79550
78623
  /* scoped */
79551
- const __vue_scope_id__$n = "data-v-7413f73a";
78624
+ const __vue_scope_id__$n = "data-v-4c4b66ba";
79552
78625
  /* module identifier */
79553
78626
  const __vue_module_identifier__$n = undefined;
79554
78627
  /* functional template */
@@ -79626,28 +78699,8 @@ var script$n = {
79626
78699
  const __vue_script__$n = script$n;
79627
78700
 
79628
78701
  /* template */
79629
- var __vue_render__$j = function() {
79630
- var _vm = this;
79631
- var _h = _vm.$createElement;
79632
- var _c = _vm._self._c || _h;
79633
- return _c("b-form-radio-group", {
79634
- attrs: {
79635
- buttons: "",
79636
- disabled: !_vm.enabled,
79637
- "button-variant": _vm.variant,
79638
- options: _vm.options
79639
- },
79640
- model: {
79641
- value: _vm.selected,
79642
- callback: function($$v) {
79643
- _vm.selected = $$v;
79644
- },
79645
- expression: "selected"
79646
- }
79647
- })
79648
- };
78702
+ var __vue_render__$j = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-radio-group',{attrs:{"buttons":"","disabled":!_vm.enabled,"button-variant":_vm.variant,"options":_vm.options},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v;},expression:"selected"}})};
79649
78703
  var __vue_staticRenderFns__$j = [];
79650
- __vue_render__$j._withStripped = true;
79651
78704
 
79652
78705
  /* style */
79653
78706
  const __vue_inject_styles__$o = undefined;
@@ -79749,78 +78802,8 @@ var script$o = {
79749
78802
  const __vue_script__$o = script$o;
79750
78803
 
79751
78804
  /* template */
79752
- var __vue_render__$k = function() {
79753
- var _vm = this;
79754
- var _h = _vm.$createElement;
79755
- var _c = _vm._self._c || _h;
79756
- return _c(
79757
- "b-row",
79758
- { staticClass: "mb-lg-1", attrs: { "no-gutters": "" } },
79759
- [
79760
- _c(
79761
- "b-col",
79762
- { attrs: { cols: "12", lg: "6", order: "2", "order-lg": "1" } },
79763
- [
79764
- _c("access", {
79765
- attrs: {
79766
- access: _vm.access,
79767
- current: _vm.current,
79768
- enabled: _vm.enabled
79769
- },
79770
- on: { update: _vm.onUpdate }
79771
- }),
79772
- _vm._v(" "),
79773
- _c(
79774
- "b-button",
79775
- {
79776
- directives: [
79777
- {
79778
- name: "show",
79779
- rawName: "v-show",
79780
- value: _vm.isChanged,
79781
- expression: "isChanged"
79782
- }
79783
- ],
79784
- staticClass: "pl-0",
79785
- attrs: { variant: "link" },
79786
- on: { click: _vm.onReset }
79787
- },
79788
- [
79789
- _vm._v(
79790
- "\n " +
79791
- _vm._s(_vm.$t("ui.reset-back", { current: _vm.current })) +
79792
- "\n "
79793
- )
79794
- ]
79795
- )
79796
- ],
79797
- 1
79798
- ),
79799
- _vm._v(" "),
79800
- _c(
79801
- "b-col",
79802
- {
79803
- staticClass: "mb-lg-4 text-wrap",
79804
- attrs: { cols: "12", lg: "6", order: "1", "order-lg": "2" }
79805
- },
79806
- [
79807
- _c("b", {
79808
- domProps: {
79809
- innerHTML: _vm._s(
79810
- _vm.title || _vm.operation + " on " + _vm.resource
79811
- )
79812
- }
79813
- }),
79814
- _vm._v(" "),
79815
- _c("div", [_vm._v(_vm._s(_vm.description || " "))])
79816
- ]
79817
- )
79818
- ],
79819
- 1
79820
- )
79821
- };
78805
+ var __vue_render__$k = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',{staticClass:"mb-lg-1",attrs:{"no-gutters":""}},[_c('b-col',{attrs:{"cols":"12","lg":"6","order":"2","order-lg":"1"}},[_c('access',{attrs:{"access":_vm.access,"current":_vm.current,"enabled":_vm.enabled},on:{"update":_vm.onUpdate}}),_vm._v(" "),_c('b-button',{directives:[{name:"show",rawName:"v-show",value:(_vm.isChanged),expression:"isChanged"}],staticClass:"pl-0",attrs:{"variant":"link"},on:{"click":_vm.onReset}},[_vm._v("\n "+_vm._s(_vm.$t('ui.reset-back', {current: _vm.current}))+"\n ")])],1),_vm._v(" "),_c('b-col',{staticClass:"mb-lg-4 text-wrap",attrs:{"cols":"12","lg":"6","order":"1","order-lg":"2"}},[_c('b',{domProps:{"innerHTML":_vm._s(_vm.title || (_vm.operation + " on " + _vm.resource))}}),_vm._v(" "),_c('div',[_vm._v(_vm._s(_vm.description || ' '))])])],1)};
79822
78806
  var __vue_staticRenderFns__$k = [];
79823
- __vue_render__$k._withStripped = true;
79824
78807
 
79825
78808
  /* style */
79826
78809
  const __vue_inject_styles__$p = undefined;
@@ -79883,32 +78866,8 @@ var script$p = {
79883
78866
  const __vue_script__$p = script$p;
79884
78867
 
79885
78868
  /* template */
79886
- var __vue_render__$l = function() {
79887
- var _vm = this;
79888
- var _h = _vm.$createElement;
79889
- var _c = _vm._self._c || _h;
79890
- return _c(
79891
- "b-container",
79892
- _vm._l(_vm.rules, function(p, i) {
79893
- return _c(
79894
- "rule",
79895
- _vm._b(
79896
- {
79897
- key: p.resource + p.operation,
79898
- class: { "mt-4": i > 0 },
79899
- on: { update: _vm.onUpdate }
79900
- },
79901
- "rule",
79902
- p,
79903
- false
79904
- )
79905
- )
79906
- }),
79907
- 1
79908
- )
79909
- };
78869
+ var __vue_render__$l = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',_vm._l((_vm.rules),function(p,i){return _c('rule',_vm._b({key:p.resource + p.operation,class:{ 'mt-4': i > 0 },on:{"update":_vm.onUpdate}},'rule',p,false))}),1)};
79910
78870
  var __vue_staticRenderFns__$l = [];
79911
- __vue_render__$l._withStripped = true;
79912
78871
 
79913
78872
  /* style */
79914
78873
  const __vue_inject_styles__$q = undefined;
@@ -80181,145 +79140,17 @@ var script$q = {
80181
79140
  const __vue_script__$q = script$q;
80182
79141
 
80183
79142
  /* template */
80184
- var __vue_render__$m = function() {
80185
- var _vm = this;
80186
- var _h = _vm.$createElement;
80187
- var _c = _vm._self._c || _h;
80188
- return _c(
80189
- "b-form",
80190
- {
80191
- on: {
80192
- submit: function($event) {
80193
- $event.preventDefault();
80194
- return _vm.onSubmit.apply(null, arguments)
80195
- }
80196
- }
80197
- },
80198
- [
80199
- _c(
80200
- "b-row",
80201
- [
80202
- _c(
80203
- "b-col",
80204
- { staticClass: "role-list", attrs: { cols: "12", lg: "3" } },
80205
- [
80206
- _c(
80207
- "b-list-group",
80208
- { staticClass: "d-none d-lg-block" },
80209
- _vm._l(_vm.roles, function(r) {
80210
- return _c(
80211
- "b-list-group-item",
80212
- {
80213
- key: r.roleID,
80214
- staticClass: "text-break pointer",
80215
- attrs: {
80216
- active: r.roleID === _vm.currentRole.roleID,
80217
- "active-class": "primary",
80218
- variant: "outline-primary"
80219
- },
80220
- on: {
80221
- click: function($event) {
80222
- return _vm.onRoleChange(r)
80223
- }
80224
- }
80225
- },
80226
- [
80227
- _vm._v(
80228
- "\n " +
80229
- _vm._s(r.name || r.handle || r.roleID) +
80230
- "\n "
80231
- )
80232
- ]
80233
- )
80234
- }),
80235
- 1
80236
- ),
80237
- _vm._v(" "),
80238
- _c("vue-select", {
80239
- key: "roleID",
80240
- staticClass: "mb-4 d-block d-lg-none",
80241
- attrs: { label: "name", clearable: false, options: _vm.roles },
80242
- on: { input: _vm.onRoleChange },
80243
- model: {
80244
- value: _vm.currentRole,
80245
- callback: function($$v) {
80246
- _vm.currentRole = $$v;
80247
- },
80248
- expression: "currentRole"
80249
- }
80250
- })
80251
- ],
80252
- 1
80253
- ),
80254
- _vm._v(" "),
80255
- _c(
80256
- "b-col",
80257
- { staticClass: "rule-list", attrs: { cols: "12", lg: "9" } },
80258
- [
80259
- _c("rules", {
80260
- attrs: { rules: _vm.rules },
80261
- on: {
80262
- "update:rules": function($event) {
80263
- _vm.rules = $event;
80264
- }
80265
- }
80266
- })
80267
- ],
80268
- 1
80269
- )
80270
- ],
80271
- 1
80272
- ),
80273
- _vm._v(" "),
80274
- _c(
80275
- "b-row",
80276
- { staticClass: "footer mt-3" },
80277
- [
80278
- _c(
80279
- "b-col",
80280
- {
80281
- staticClass: "rule-list text-right",
80282
- attrs: { cols: "9", offset: "3" }
80283
- },
80284
- [
80285
- _c(
80286
- "b-button",
80287
- {
80288
- attrs: {
80289
- type: "submit",
80290
- variant: "primary",
80291
- disabled: _vm.disabled
80292
- }
80293
- },
80294
- [
80295
- _vm._v(
80296
- "\n " +
80297
- _vm._s(_vm.$t("permissions:ui.save-changes")) +
80298
- "\n "
80299
- )
80300
- ]
80301
- )
80302
- ],
80303
- 1
80304
- )
80305
- ],
80306
- 1
80307
- )
80308
- ],
80309
- 1
80310
- )
80311
- };
79143
+ var __vue_render__$m = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form',{on:{"submit":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[_c('b-row',[_c('b-col',{staticClass:"role-list",attrs:{"cols":"12","lg":"3"}},[_c('b-list-group',{staticClass:"d-none d-lg-block"},_vm._l((_vm.roles),function(r){return _c('b-list-group-item',{key:r.roleID,staticClass:"text-break pointer",attrs:{"active":r.roleID === _vm.currentRole.roleID,"active-class":"primary","variant":"outline-primary"},on:{"click":function($event){return _vm.onRoleChange(r)}}},[_vm._v("\n "+_vm._s(r.name || r.handle || r.roleID)+"\n ")])}),1),_vm._v(" "),_c('vue-select',{key:"roleID",staticClass:"mb-4 d-block d-lg-none",attrs:{"label":"name","clearable":false,"options":_vm.roles},on:{"input":_vm.onRoleChange},model:{value:(_vm.currentRole),callback:function ($$v) {_vm.currentRole=$$v;},expression:"currentRole"}})],1),_vm._v(" "),_c('b-col',{staticClass:"rule-list",attrs:{"cols":"12","lg":"9"}},[_c('rules',{attrs:{"rules":_vm.rules},on:{"update:rules":function($event){_vm.rules=$event;}}})],1)],1),_vm._v(" "),_c('b-row',{staticClass:"footer mt-3"},[_c('b-col',{staticClass:"rule-list text-right",attrs:{"cols":"9","offset":"3"}},[_c('b-button',{attrs:{"type":"submit","variant":"primary","disabled":_vm.disabled}},[_vm._v("\n "+_vm._s(_vm.$t('permissions:ui.save-changes'))+"\n ")])],1)],1)],1)};
80312
79144
  var __vue_staticRenderFns__$m = [];
80313
- __vue_render__$m._withStripped = true;
80314
79145
 
80315
79146
  /* style */
80316
79147
  const __vue_inject_styles__$r = function (inject) {
80317
79148
  if (!inject) return
80318
- inject("data-v-5004c9ac_0", { source: ".pointer[data-v-5004c9ac] {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=CPermissionsForm.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/permissions/CPermissionsForm.vue","CPermissionsForm.vue"],"names":[],"mappings":"AAsQA;EACA,eAAA;ACrQA;;AAEA,+CAA+C","file":"CPermissionsForm.vue","sourcesContent":["<template>\n <b-form @submit.prevent=\"onSubmit\">\n <b-row>\n <b-col\n class=\"role-list\"\n cols=\"12\"\n lg=\"3\"\n >\n <b-list-group class=\"d-none d-lg-block\">\n <b-list-group-item\n v-for=\"r in roles\"\n :key=\"r.roleID\"\n :active=\"r.roleID === currentRole.roleID\"\n active-class=\"primary\"\n variant=\"outline-primary\"\n class=\"text-break pointer\"\n @click=\"onRoleChange(r)\"\n >\n {{ r.name || r.handle || r.roleID }}\n </b-list-group-item>\n </b-list-group>\n <vue-select\n v-model=\"currentRole\"\n key=\"roleID\"\n label=\"name\"\n class=\"mb-4 d-block d-lg-none\"\n :clearable=\"false\"\n :options=\"roles\"\n @input=\"onRoleChange\"\n />\n </b-col>\n <b-col\n class=\"rule-list\"\n cols=\"12\"\n lg=\"9\"\n >\n <rules :rules.sync=\"rules\" />\n </b-col>\n </b-row>\n\n <b-row class=\"footer mt-3\"\n >\n <b-col\n class=\"rule-list text-right\"\n cols=\"9\"\n offset=\"3\"\n >\n <b-button\n type=\"submit\"\n variant=\"primary\"\n :disabled=\"disabled\"\n >\n {{ $t('permissions:ui.save-changes') }}\n </b-button>\n </b-col>\n </b-row>\n </b-form>\n</template>\n<script lang=\"js\">\nimport Rules from './form/Rules.vue'\nimport { VueSelect } from 'vue-select'\nimport { split } from './def.ts'\n\n// Data, Methods, Computed, Props\nexport default {\n i18nOptions: {\n /**\n * Using both, implicit (here) and explicit (at $t()) namespace setting.\n * If we only use implicit the behaviour is flaky.\n */\n namespaces: 'permissions',\n },\n\n components: {\n Rules,\n VueSelect,\n },\n\n props: {\n resource: {\n type: String,\n required: true,\n },\n\n target: {\n type: String,\n required: false,\n default: undefined,\n },\n\n allSpecific: {\n type: Boolean,\n default: false\n },\n\n backendComponentName: {\n type: String,\n default () {\n // Assuming backend service will\n // be equal to (first part of) resource\n if (!this.resource.startsWith('corteza::')) {\n throw Error('unrecognized resource type schema')\n }\n\n // <schema>::<backend-component-name>:...\n return this.resource.split(':')[2]\n },\n },\n },\n\n data () {\n return {\n processing: false,\n\n // List of available permissions (for a specific resource)\n permissions: [],\n\n // List of rules for the current role\n rules: [],\n\n // List of all available roles\n roles: [],\n\n // Current role object\n currentRole: undefined,\n }\n },\n\n computed: {\n dirty () {\n return this.collectChangedRules().length > 0\n },\n\n disabled () {\n return !this.dirty\n },\n\n api () {\n const s = this.backendComponentName\n return this['$' + s.charAt(0).toUpperCase() + s.slice(1) + 'API']\n },\n },\n\n created () {\n this.fetchPermissions()\n this.fetchRoles()\n },\n\n methods: {\n onRoleChange (role) {\n this.currentRole = role\n this.fetchRules(role.roleID)\n },\n\n onSubmit () {\n this.processing = true\n const rules = this.collectChangedRules()\n const { roleID } = this.currentRole\n\n this.api.permissionsUpdate({ roleID, rules }).then(() => {\n this.fetchRules(roleID)\n this.processing = false\n })\n },\n\n async fetchPermissions () {\n // clean loaded rules\n this.rules = []\n this.permissions = []\n this.processing = true\n\n return this.api.permissionsList().then((pp) => {\n this.permissions = this.filterPermissions(pp)\n this.processing = false\n })\n },\n\n async fetchRules (roleID) {\n this.processing = true\n return this.api.permissionsRead({ roleID }).then((rules) => {\n this.rules = this.normalizeRules(rules)\n this.processing = false\n })\n },\n\n async fetchRoles () {\n this.processing = true\n // Roles are always fetched from $SystemAPI.\n return this.$SystemAPI.roleList().then(({ set }) => {\n this.roles = set\n .filter(({ isBypass }) => !isBypass )\n .sort((a, b) => a.roleID.localeCompare(b.roleID))\n\n if (this.roles.length > 0) {\n this.onRoleChange(this.roles[0])\n }\n this.processing = false\n })\n },\n\n normalizeRules (rr) {\n const inherit = 'inherit'\n\n // merges roleRules (subset) with list of all permissions\n const findCurrent = ({ resource, operation }) => {\n if (!rr) {\n return inherit\n }\n\n return (rr.find(r => r.resource === resource && r.operation === operation) || {}).access || inherit\n }\n\n return this.permissions.map((p) => {\n const current = findCurrent(p)\n return { ...p, access: current, current }\n })\n },\n\n // Removes unneeded permissions (ones that do not match resource prop)\n // and translates the rest\n filterPermissions (pp) {\n const [ resourceType ] = this.resource.split('/', 2)\n return pp\n .filter(({ type }) => resourceType === type)\n .map(({ type, op: operation }) => {\n return {\n ...this.describePermission({ resource: type, operation }),\n operation,\n // override resource-type with the actual resource-ID\n resource: this.resource\n }\n })\n },\n\n collectChangedRules () {\n return this.rules.filter(r => r.access !== r.current).map(({ resource, operation, access }) => {\n return { resource, operation, access }\n })\n },\n\n describePermission ({ resource, operation }) {\n const i18nPrefix = split(resource).i18nPrefix + `.operations.${operation}`\n\n let title = ''\n if (this.allSpecific) {\n title = this.$t(`permissions:${i18nPrefix}.all-specific`, { target: this.target, interpolation: { escapeValue: false } })\n } else if (this.target) {\n title = this.$t(`permissions:${i18nPrefix}.specific`, { target: this.target, interpolation: { escapeValue: false } })\n } else {\n title = this.$t(`permissions:${i18nPrefix}.title`)\n }\n\n return {\n title,\n description: this.$t(`permissions:${i18nPrefix}.description`),\n }\n },\n },\n}\n\n</script>\n<style scoped lang=\"scss\">\n.pointer {\n cursor: pointer;\n}\n</style>\n",".pointer {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=CPermissionsForm.vue.map */"]}, media: undefined });
79149
+ inject("data-v-4d4d6aaa_0", { source: ".pointer[data-v-4d4d6aaa]{cursor:pointer}", map: undefined, media: undefined });
80319
79150
 
80320
79151
  };
80321
79152
  /* scoped */
80322
- const __vue_scope_id__$r = "data-v-5004c9ac";
79153
+ const __vue_scope_id__$r = "data-v-4d4d6aaa";
80323
79154
  /* module identifier */
80324
79155
  const __vue_module_identifier__$r = undefined;
80325
79156
  /* functional template */
@@ -80448,53 +79279,8 @@ var script$r = {
80448
79279
  const __vue_script__$r = script$r;
80449
79280
 
80450
79281
  /* template */
80451
- var __vue_render__$n = function() {
80452
- var _vm = this;
80453
- var _h = _vm.$createElement;
80454
- var _c = _vm._self._c || _h;
80455
- return _c(
80456
- "div",
80457
- [
80458
- _c(
80459
- "b-modal",
80460
- {
80461
- staticClass: "overflow-hidden",
80462
- attrs: {
80463
- "hide-footer": "",
80464
- size: "xl",
80465
- title: _vm.translatedTitle,
80466
- lazy: "",
80467
- scrollable: ""
80468
- },
80469
- on: { hide: _vm.onHide },
80470
- model: {
80471
- value: _vm.showModal,
80472
- callback: function($$v) {
80473
- _vm.showModal = $$v;
80474
- },
80475
- expression: "showModal"
80476
- }
80477
- },
80478
- [
80479
- _vm.resource
80480
- ? _c("c-permissions-form", {
80481
- staticClass: "h-100",
80482
- attrs: {
80483
- resource: _vm.resource,
80484
- target: _vm.target,
80485
- "all-specific": _vm.allSpecific
80486
- }
80487
- })
80488
- : _vm._e()
80489
- ],
80490
- 1
80491
- )
80492
- ],
80493
- 1
80494
- )
80495
- };
79282
+ var __vue_render__$n = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-modal',{staticClass:"overflow-hidden",attrs:{"hide-footer":"","size":"xl","title":_vm.translatedTitle,"lazy":"","scrollable":""},on:{"hide":_vm.onHide},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v;},expression:"showModal"}},[(_vm.resource)?_c('c-permissions-form',{staticClass:"h-100",attrs:{"resource":_vm.resource,"target":_vm.target,"all-specific":_vm.allSpecific}}):_vm._e()],1)],1)};
80496
79283
  var __vue_staticRenderFns__$n = [];
80497
- __vue_render__$n._withStripped = true;
80498
79284
 
80499
79285
  /* style */
80500
79286
  const __vue_inject_styles__$s = undefined;
@@ -80616,45 +79402,8 @@ var script$t = {
80616
79402
  const __vue_script__$t = script$t;
80617
79403
 
80618
79404
  /* template */
80619
- var __vue_render__$o = function() {
80620
- var _vm = this;
80621
- var _h = _vm.$createElement;
80622
- var _c = _vm._self._c || _h;
80623
- return _c("div", [
80624
- _c("p", { domProps: { innerHTML: _vm._s(_vm.message) } }),
80625
- _vm._v(" "),
80626
- _c(
80627
- "div",
80628
- { staticClass: "text-center m-2" },
80629
- [
80630
- _c(
80631
- "b-button",
80632
- {
80633
- attrs: {
80634
- variant: _vm.pVal("buttonVariant", "primary"),
80635
- disabled: _vm.loading
80636
- },
80637
- on: {
80638
- click: function($event) {
80639
- _vm.$emit("submit", {
80640
- confirmed: _vm.pRaw("buttonValue", true, "Boolean")
80641
- });
80642
- }
80643
- }
80644
- },
80645
- [
80646
- _vm._v(
80647
- "\n " + _vm._s(_vm.pVal("buttonLabel", "OK")) + "\n "
80648
- )
80649
- ]
80650
- )
80651
- ],
80652
- 1
80653
- )
80654
- ])
80655
- };
79405
+ var __vue_render__$o = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',{domProps:{"innerHTML":_vm._s(_vm.message)}}),_vm._v(" "),_c('div',{staticClass:"text-center m-2"},[_c('b-button',{attrs:{"variant":_vm.pVal('buttonVariant', 'primary'),"disabled":_vm.loading},on:{"click":function($event){_vm.$emit('submit', { confirmed: _vm.pRaw('buttonValue', true, 'Boolean') });}}},[_vm._v("\n "+_vm._s(_vm.pVal('buttonLabel', 'OK'))+"\n ")])],1)])};
80656
79406
  var __vue_staticRenderFns__$o = [];
80657
- __vue_render__$o._withStripped = true;
80658
79407
 
80659
79408
  /* style */
80660
79409
  const __vue_inject_styles__$u = undefined;
@@ -80694,71 +79443,8 @@ var script$u = {
80694
79443
  const __vue_script__$u = script$u;
80695
79444
 
80696
79445
  /* template */
80697
- var __vue_render__$p = function() {
80698
- var _vm = this;
80699
- var _h = _vm.$createElement;
80700
- var _c = _vm._self._c || _h;
80701
- return _c("div", [
80702
- _c("p", { domProps: { innerHTML: _vm._s(_vm.message) } }),
80703
- _vm._v(" "),
80704
- _c(
80705
- "div",
80706
- { staticClass: "text-center m-2" },
80707
- [
80708
- _c(
80709
- "b-button",
80710
- {
80711
- attrs: {
80712
- variant: _vm.pVal("confirmButtonVariant", "primary"),
80713
- disabled: _vm.loading
80714
- },
80715
- on: {
80716
- click: function($event) {
80717
- _vm.$emit("submit", {
80718
- value: _vm.pRaw("confirmButtonValue", true, "Boolean")
80719
- });
80720
- }
80721
- }
80722
- },
80723
- [
80724
- _vm._v(
80725
- "\n " +
80726
- _vm._s(_vm.pVal("confirmButtonLabel", "Yes")) +
80727
- "\n "
80728
- )
80729
- ]
80730
- ),
80731
- _vm._v(" "),
80732
- _c(
80733
- "b-button",
80734
- {
80735
- attrs: {
80736
- disabled: _vm.loading,
80737
- variant: _vm.pVal("rejectButtonVariant", "primary")
80738
- },
80739
- on: {
80740
- click: function($event) {
80741
- _vm.$emit("submit", {
80742
- value: _vm.pRaw("rejectButtonValue", false, "Boolean")
80743
- });
80744
- }
80745
- }
80746
- },
80747
- [
80748
- _vm._v(
80749
- "\n " +
80750
- _vm._s(_vm.pVal("rejectButtonLabel", "No")) +
80751
- "\n "
80752
- )
80753
- ]
80754
- )
80755
- ],
80756
- 1
80757
- )
80758
- ])
80759
- };
79446
+ var __vue_render__$p = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',{domProps:{"innerHTML":_vm._s(_vm.message)}}),_vm._v(" "),_c('div',{staticClass:"text-center m-2"},[_c('b-button',{attrs:{"variant":_vm.pVal('confirmButtonVariant', 'primary'),"disabled":_vm.loading},on:{"click":function($event){_vm.$emit('submit', { value: _vm.pRaw('confirmButtonValue', true, 'Boolean') });}}},[_vm._v("\n "+_vm._s(_vm.pVal('confirmButtonLabel', 'Yes'))+"\n ")]),_vm._v(" "),_c('b-button',{attrs:{"disabled":_vm.loading,"variant":_vm.pVal('rejectButtonVariant', 'primary')},on:{"click":function($event){_vm.$emit('submit', { value: _vm.pRaw('rejectButtonValue', false, 'Boolean') });}}},[_vm._v("\n "+_vm._s(_vm.pVal('rejectButtonLabel', 'No'))+"\n ")])],1)])};
80760
79447
  var __vue_staticRenderFns__$p = [];
80761
- __vue_render__$p._withStripped = true;
80762
79448
 
80763
79449
  /* style */
80764
79450
  const __vue_inject_styles__$v = undefined;
@@ -80826,53 +79512,8 @@ var script$v = {
80826
79512
  const __vue_script__$v = script$v;
80827
79513
 
80828
79514
  /* template */
80829
- var __vue_render__$q = function() {
80830
- var _vm = this;
80831
- var _h = _vm.$createElement;
80832
- var _c = _vm._self._c || _h;
80833
- return _c(
80834
- "div",
80835
- [
80836
- _c("p", { domProps: { innerHTML: _vm._s(_vm.message) } }),
80837
- _vm._v(" "),
80838
- _c(
80839
- "b-form-group",
80840
- { attrs: { label: _vm.label } },
80841
- [
80842
- _c("b-input", {
80843
- attrs: { type: _vm.type, disabled: _vm.loading },
80844
- model: {
80845
- value: _vm.value,
80846
- callback: function($$v) {
80847
- _vm.value = $$v;
80848
- },
80849
- expression: "value"
80850
- }
80851
- })
80852
- ],
80853
- 1
80854
- ),
80855
- _vm._v(" "),
80856
- _c(
80857
- "b-button",
80858
- {
80859
- attrs: { disabled: _vm.loading },
80860
- on: {
80861
- click: function($event) {
80862
- return _vm.$emit("submit", {
80863
- value: { "@value": _vm.value, "@type": "String" }
80864
- })
80865
- }
80866
- }
80867
- },
80868
- [_vm._v("\n " + _vm._s(_vm.pVal("buttonLabel", "Submit")) + "\n ")]
80869
- )
80870
- ],
80871
- 1
80872
- )
80873
- };
79515
+ var __vue_render__$q = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',{domProps:{"innerHTML":_vm._s(_vm.message)}}),_vm._v(" "),_c('b-form-group',{attrs:{"label":_vm.label}},[_c('b-input',{attrs:{"type":_vm.type,"disabled":_vm.loading},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v;},expression:"value"}})],1),_vm._v(" "),_c('b-button',{attrs:{"disabled":_vm.loading},on:{"click":function($event){return _vm.$emit('submit', { value: { '@value': _vm.value, '@type': 'String' }})}}},[_vm._v("\n "+_vm._s(_vm.pVal('buttonLabel', 'Submit'))+"\n ")])],1)};
80874
79516
  var __vue_staticRenderFns__$q = [];
80875
- __vue_render__$q._withStripped = true;
80876
79517
 
80877
79518
  /* style */
80878
79519
  const __vue_inject_styles__$w = undefined;
@@ -80921,19 +79562,8 @@ var script$w = {
80921
79562
  const __vue_script__$w = script$w;
80922
79563
 
80923
79564
  /* template */
80924
- var __vue_render__$r = function() {
80925
- var _vm = this;
80926
- var _h = _vm.$createElement;
80927
- var _c = _vm._self._c || _h;
80928
- return _c("div", [
80929
- _c("p", {
80930
- staticClass: "mb-0",
80931
- domProps: { innerHTML: _vm._s(_vm.message) }
80932
- })
80933
- ])
80934
- };
79565
+ var __vue_render__$r = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',{staticClass:"mb-0",domProps:{"innerHTML":_vm._s(_vm.message)}})])};
80935
79566
  var __vue_staticRenderFns__$r = [];
80936
- __vue_render__$r._withStripped = true;
80937
79567
 
80938
79568
  /* style */
80939
79569
  const __vue_inject_styles__$x = undefined;
@@ -81042,95 +79672,8 @@ var script$x = {
81042
79672
  const __vue_script__$x = script$x;
81043
79673
 
81044
79674
  /* template */
81045
- var __vue_render__$s = function() {
81046
- var _vm = this;
81047
- var _h = _vm.$createElement;
81048
- var _c = _vm._self._c || _h;
81049
- return _c(
81050
- "div",
81051
- [
81052
- _c("p", { domProps: { innerHTML: _vm._s(_vm.message) } }),
81053
- _vm._v(" "),
81054
- _c(
81055
- "b-form-group",
81056
- { attrs: { label: _vm.pVal("label", "Input") } },
81057
- [
81058
- _vm.type === "select"
81059
- ? _c("b-form-select", {
81060
- attrs: {
81061
- options: _vm.options,
81062
- disabled: _vm.loading,
81063
- multiple: _vm.multiple
81064
- },
81065
- scopedSlots: _vm._u(
81066
- [
81067
- !_vm.multiple
81068
- ? {
81069
- key: "first",
81070
- fn: function() {
81071
- return [
81072
- _c(
81073
- "b-form-select-option",
81074
- { attrs: { value: undefined, disabled: "" } },
81075
- [
81076
- _vm._v(
81077
- "\n -- Please select an option --\n "
81078
- )
81079
- ]
81080
- )
81081
- ]
81082
- },
81083
- proxy: true
81084
- }
81085
- : null
81086
- ],
81087
- null,
81088
- true
81089
- ),
81090
- model: {
81091
- value: _vm.value,
81092
- callback: function($$v) {
81093
- _vm.value = $$v;
81094
- },
81095
- expression: "value"
81096
- }
81097
- })
81098
- : _vm._e(),
81099
- _vm._v(" "),
81100
- _vm.type === "radio"
81101
- ? _c("b-form-radio-group", {
81102
- attrs: { disabled: _vm.loading, options: _vm.options },
81103
- model: {
81104
- value: _vm.value,
81105
- callback: function($$v) {
81106
- _vm.value = $$v;
81107
- },
81108
- expression: "value"
81109
- }
81110
- })
81111
- : _vm._e()
81112
- ],
81113
- 1
81114
- ),
81115
- _vm._v(" "),
81116
- _c(
81117
- "b-button",
81118
- {
81119
- attrs: { disabled: _vm.loading },
81120
- on: {
81121
- click: function($event) {
81122
- _vm.$emit("submit", { value: _vm.encodeValue() });
81123
- }
81124
- }
81125
- },
81126
- [_vm._v("\n " + _vm._s(_vm.pVal("buttonLabel", "Submit")) + "\n ")]
81127
- )
81128
- ],
81129
- 1
81130
- )
81131
- };
79675
+ var __vue_render__$s = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',{domProps:{"innerHTML":_vm._s(_vm.message)}}),_vm._v(" "),_c('b-form-group',{attrs:{"label":_vm.pVal('label', 'Input')}},[(_vm.type === 'select')?_c('b-form-select',{attrs:{"options":_vm.options,"disabled":_vm.loading,"multiple":_vm.multiple},scopedSlots:_vm._u([(!_vm.multiple)?{key:"first",fn:function(){return [_c('b-form-select-option',{attrs:{"value":undefined,"disabled":""}},[_vm._v("\n -- Please select an option --\n ")])]},proxy:true}:null],null,true),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v;},expression:"value"}}):_vm._e(),_vm._v(" "),(_vm.type === 'radio')?_c('b-form-radio-group',{attrs:{"disabled":_vm.loading,"options":_vm.options},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v;},expression:"value"}}):_vm._e()],1),_vm._v(" "),_c('b-button',{attrs:{"disabled":_vm.loading},on:{"click":function($event){_vm.$emit('submit', { value: _vm.encodeValue() });}}},[_vm._v("\n "+_vm._s(_vm.pVal('buttonLabel', 'Submit'))+"\n ")])],1)};
81132
79676
  var __vue_staticRenderFns__$s = [];
81133
- __vue_render__$s._withStripped = true;
81134
79677
 
81135
79678
  /* style */
81136
79679
  const __vue_inject_styles__$y = undefined;
@@ -81414,11 +79957,6 @@ var script$y = {
81414
79957
  // Only reset input if prompt is kept open
81415
79958
  if (values.input && values.input.keep) {
81416
79959
  values.input = {};
81417
- } else {
81418
- // Otherwise remove prompt from toasts
81419
- this.toasts = this.toasts.filter(({
81420
- prompt
81421
- }) => prompt.stateID !== values.prompt.stateID);
81422
79960
  }
81423
79961
 
81424
79962
  this.resume(values);
@@ -81435,111 +79973,21 @@ var script$y = {
81435
79973
  const __vue_script__$y = script$y;
81436
79974
 
81437
79975
  /* template */
81438
- var __vue_render__$t = function() {
81439
- var _vm = this;
81440
- var _h = _vm.$createElement;
81441
- var _c = _vm._self._c || _h;
81442
- return _c(
81443
- "div",
81444
- _vm._l(_vm.toasts, function(ref) {
81445
- var prompt = ref.prompt;
81446
- var component = ref.component;
81447
- var passive = ref.passive;
81448
- return _c(
81449
- "b-toast",
81450
- {
81451
- key: "wfPromptToast-" + prompt.stateID,
81452
- attrs: {
81453
- id: "wfPromptToast-" + prompt.stateID,
81454
- variant: _vm.pVal(prompt, "variant", "primary"),
81455
- visible: !_vm.isActive,
81456
- solid: "",
81457
- "no-auto-hide": !passive,
81458
- "auto-hide-delay":
81459
- _vm.pVal(prompt, "timeout", _vm.defaultTimeout) * 1000,
81460
- "no-close-button": !passive
81461
- },
81462
- scopedSlots: _vm._u(
81463
- [
81464
- {
81465
- key: "toast-title",
81466
- fn: function() {
81467
- return [
81468
- _c(
81469
- "div",
81470
- {
81471
- staticClass: "d-flex flex-grow-1 align-items-baseline"
81472
- },
81473
- [
81474
- _c("strong", { staticClass: "mr-auto" }, [
81475
- _vm._v(
81476
- _vm._s(_vm.pVal(prompt, "title", "Workflow prompt"))
81477
- )
81478
- ]),
81479
- _vm._v(" "),
81480
- !passive && _vm.active.length > 1
81481
- ? _c(
81482
- "b-button",
81483
- {
81484
- attrs: { variant: "link", size: "sm" },
81485
- on: {
81486
- click: function($event) {
81487
- return _vm.activate(true)
81488
- }
81489
- }
81490
- },
81491
- [
81492
- _vm._v(
81493
- "\n " +
81494
- _vm._s(_vm.active.length) +
81495
- " waiting\n "
81496
- )
81497
- ]
81498
- )
81499
- : _vm._e()
81500
- ],
81501
- 1
81502
- )
81503
- ]
81504
- },
81505
- proxy: true
81506
- }
81507
- ],
81508
- null,
81509
- true
81510
- )
81511
- },
81512
- [
81513
- _vm._v(" "),
81514
- component
81515
- ? _c(component, {
81516
- tag: "component",
81517
- attrs: { payload: prompt.payload, loading: _vm.isLoading },
81518
- on: {
81519
- submit: function($event) {
81520
- return _vm.resumeToast({ input: $event, prompt: prompt })
81521
- }
81522
- }
81523
- })
81524
- : _vm._e()
81525
- ],
81526
- 1
81527
- )
81528
- }),
81529
- 1
81530
- )
81531
- };
79976
+ var __vue_render__$t = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.toasts),function(ref){
79977
+ var prompt = ref.prompt;
79978
+ var component = ref.component;
79979
+ var passive = ref.passive;
79980
+ return _c('b-toast',{key:'wfPromptToast-'+prompt.stateID,attrs:{"id":'wfPromptToast-'+prompt.stateID,"variant":_vm.pVal(prompt, 'variant', 'primary'),"visible":!_vm.isActive,"solid":"","no-auto-hide":!passive,"auto-hide-delay":_vm.pVal(prompt, 'timeout', _vm.defaultTimeout) * 1000,"no-close-button":!passive},scopedSlots:_vm._u([{key:"toast-title",fn:function(){return [_c('div',{staticClass:"d-flex flex-grow-1 align-items-baseline"},[_c('strong',{staticClass:"mr-auto"},[_vm._v(_vm._s(_vm.pVal(prompt, 'title', 'Workflow prompt')))]),_vm._v(" "),(!passive && _vm.active.length > 1)?_c('b-button',{attrs:{"variant":"link","size":"sm"},on:{"click":function($event){return _vm.activate(true)}}},[_vm._v("\n "+_vm._s(_vm.active.length)+" waiting\n ")]):_vm._e()],1)]},proxy:true}],null,true)},[_vm._v(" "),(component)?_c(component,{tag:"component",attrs:{"payload":prompt.payload,"loading":_vm.isLoading},on:{"submit":function($event){return _vm.resumeToast({ input: $event, prompt: prompt })}}}):_vm._e()],1)}),1)};
81532
79981
  var __vue_staticRenderFns__$t = [];
81533
- __vue_render__$t._withStripped = true;
81534
79982
 
81535
79983
  /* style */
81536
79984
  const __vue_inject_styles__$z = function (inject) {
81537
79985
  if (!inject) return
81538
- inject("data-v-7e37674b_0", { source: ".slide-enter-active[data-v-7e37674b] {\n transition: all 0.3s ease;\n}\n.slide-leave-active[data-v-7e37674b] {\n transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1);\n}\n.slide-enter[data-v-7e37674b], .slide-leave-to[data-v-7e37674b] {\n transform: translateX(10px);\n opacity: 0;\n}\n\n/*# sourceMappingURL=CPromptToast.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/prompts/CPromptToast.vue","CPromptToast.vue"],"names":[],"mappings":"AAqJA;EACA,yBAAA;ACpJA;ADsJA;EACA,iDAAA;ACnJA;ADqJA;EAEA,2BAAA;EACA,UAAA;ACnJA;;AAEA,2CAA2C","file":"CPromptToast.vue","sourcesContent":["<template>\n <div>\n <b-toast\n v-for=\"({ prompt, component, passive }) in toasts\"\n :id=\"'wfPromptToast-'+prompt.stateID\"\n :key=\"'wfPromptToast-'+prompt.stateID\"\n :variant=\"pVal(prompt, 'variant', 'primary')\"\n :visible=\"!isActive\"\n solid\n :no-auto-hide=\"!passive\"\n :auto-hide-delay=\"pVal(prompt, 'timeout', defaultTimeout) * 1000\"\n :no-close-button=\"!passive\"\n >\n <template #toast-title>\n <div class=\"d-flex flex-grow-1 align-items-baseline\">\n <strong class=\"mr-auto\">{{ pVal(prompt, 'title', 'Workflow prompt') }}</strong>\n <b-button\n variant=\"link\"\n size=\"sm\"\n v-if=\"!passive && active.length > 1\"\n @click=\"activate(true)\"\n >\n {{ active.length }} waiting\n </b-button>\n </div>\n </template>\n <component\n v-if=\"component\"\n :is=\"component\"\n :payload=\"prompt.payload\"\n :loading=\"isLoading\"\n @submit=\"resumeToast({ input: $event, prompt })\"\n />\n </b-toast>\n </div>\n</template>\n<script>\nimport { mapGetters, mapActions } from 'vuex'\nimport definitions from './kinds/index.ts'\nimport { pVal } from './utils.ts'\n\nexport default {\n name: 'c-prompt-toast',\n\n data () {\n return {\n passive: new Set(),\n }\n },\n\n computed: {\n ...mapGetters({\n prompts: 'wfPrompts/all',\n isActive: 'wfPrompts/isActive',\n isLoading: 'wfPrompts/isLoading',\n }),\n\n withHandlers () {\n return this.prompts\n .filter(({ ref }) => !!definitions[ref] && !!definitions[ref].handler)\n .map(prompt => ({ ...definitions[prompt.ref], prompt }))\n },\n\n withComponents () {\n return this.prompts\n .filter(({ ref }) => !!definitions[ref] && !!definitions[ref].component)\n .map(prompt => ({ ...definitions[prompt.ref], prompt }))\n },\n\n /**\n * All non-passive prompts with components\n */\n active() {\n return this.withComponents.filter(({ passive }) => !passive)\n },\n\n /**\n * Returns list of prompts that we can interpret as toasts: display component is defined\n *\n * Toasts (prompts with components) are displayed in order received but\n * passive (no feedback or input from user required) first and the rest later\n */\n toasts () {\n return [\n ...this.passive.values(),\n ...this.active\n ]\n },\n\n defaultTimeout () {\n return 7\n }\n },\n\n watch: {\n // watch prompts with handlers and when a new one arrives\n // shift it from the stack, resume the prompt and handle it\n withHandlers (hh) {\n if (hh.length > 0) {\n const { handler, prompt } = hh.shift()\n this.resume({ input: {}, prompt }).then(() => {\n handler.call(this, prompt.payload)\n })\n }\n },\n\n /**\n * Make a copy of prompt if it is defined as passive\n *\n * We do this because we do not want it to be removed right away\n * but through a toast component's timeout\n */\n prompts: {\n immediate: true,\n handler () {\n this.withComponents.forEach(p => {\n if (p.passive) {\n this.passive.add(p)\n }\n })\n },\n },\n },\n\n methods: {\n ...mapActions({\n resume: 'wfPrompts/resume',\n activate: 'wfPrompts/activate',\n }),\n\n resumeToast (values) {\n // Only reset input if prompt is kept open\n if (values.input && values.input.keep) {\n values.input = {}\n } else {\n // Otherwise remove prompt from toasts\n this.toasts = this.toasts.filter(({ prompt }) => prompt.stateID !== values.prompt.stateID)\n }\n\n this.resume(values)\n },\n\n pVal (prompt, k, def = undefined) {\n return pVal(prompt.payload, k, def)\n },\n },\n}\n</script>\n<style scoped lang=\"scss\">\n.slide-enter-active {\n transition: all .3s ease;\n}\n.slide-leave-active {\n transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);\n}\n.slide-enter, .slide-leave-to\n/* .slide-leave-active below version 2.1.8 */ {\n transform: translateX(10px);\n opacity: 0;\n}\n</style>\n",".slide-enter-active {\n transition: all 0.3s ease;\n}\n\n.slide-leave-active {\n transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1);\n}\n\n.slide-enter, .slide-leave-to {\n transform: translateX(10px);\n opacity: 0;\n}\n\n/*# sourceMappingURL=CPromptToast.vue.map */"]}, media: undefined });
79986
+ inject("data-v-6aed55b2_0", { source: ".slide-enter-active[data-v-6aed55b2]{transition:all .3s ease}.slide-leave-active[data-v-6aed55b2]{transition:all .8s cubic-bezier(1,.5,.8,1)}.slide-enter[data-v-6aed55b2],.slide-leave-to[data-v-6aed55b2]{transform:translateX(10px);opacity:0}", map: undefined, media: undefined });
81539
79987
 
81540
79988
  };
81541
79989
  /* scoped */
81542
- const __vue_scope_id__$z = "data-v-7e37674b";
79990
+ const __vue_scope_id__$z = "data-v-6aed55b2";
81543
79991
  /* module identifier */
81544
79992
  const __vue_module_identifier__$z = undefined;
81545
79993
  /* functional template */
@@ -81631,129 +80079,13 @@ var script$z = {
81631
80079
  const __vue_script__$z = script$z;
81632
80080
 
81633
80081
  /* template */
81634
- var __vue_render__$u = function() {
81635
- var _vm = this;
81636
- var _h = _vm.$createElement;
81637
- var _c = _vm._self._c || _h;
81638
- return _c(
81639
- "b-modal",
81640
- {
81641
- attrs: {
81642
- size: "lg",
81643
- lazy: "",
81644
- "hide-footer": !_vm.current,
81645
- title: _vm.current ? _vm.current.title : "Workflow prompts",
81646
- busy: _vm.isLoading
81647
- },
81648
- on: {
81649
- hide: function($event) {
81650
- return _vm.deactivate()
81651
- }
81652
- },
81653
- scopedSlots: _vm._u(
81654
- [
81655
- _vm.current
81656
- ? {
81657
- key: "modal-footer",
81658
- fn: function() {
81659
- return [
81660
- _c(
81661
- "b-button",
81662
- {
81663
- attrs: { variant: "link" },
81664
- on: {
81665
- click: function($event) {
81666
- return _vm.activate(true)
81667
- }
81668
- }
81669
- },
81670
- [_vm._v("\n « Back to list\n ")]
81671
- )
81672
- ]
81673
- },
81674
- proxy: true
81675
- }
81676
- : null
81677
- ],
81678
- null,
81679
- true
81680
- ),
81681
- model: {
81682
- value: _vm.isOpened,
81683
- callback: function($$v) {
81684
- _vm.isOpened = $$v;
81685
- },
81686
- expression: "isOpened"
81687
- }
81688
- },
81689
- [
81690
- _vm.current
81691
- ? _c(_vm.current.component, {
81692
- tag: "component",
81693
- attrs: {
81694
- payload: _vm.current.prompt.payload,
81695
- loading: _vm.isLoading
81696
- },
81697
- on: {
81698
- submit: function($event) {
81699
- return _vm.resume({ input: $event, prompt: _vm.current.prompt })
81700
- }
81701
- }
81702
- })
81703
- : _c(
81704
- "div",
81705
- _vm._l(_vm.list, function(ref) {
81706
- var key = ref.key;
81707
- var title = ref.title;
81708
- var age = ref.age;
81709
- var prompt = ref.prompt;
81710
- return _c(
81711
- "div",
81712
- {
81713
- key: key,
81714
- staticClass: "d-flex flex-grow-1 align-items-baseline"
81715
- },
81716
- [
81717
- _c(
81718
- "span",
81719
- {
81720
- staticClass: "mr-auto",
81721
- on: {
81722
- click: function($event) {
81723
- return _vm.activate(prompt)
81724
- }
81725
- }
81726
- },
81727
- [
81728
- _vm._v("\n " + _vm._s(title) + "\n "),
81729
- _c(
81730
- "time",
81731
- {
81732
- staticClass: "muted small",
81733
- attrs: { datetime: prompt.createdAt }
81734
- },
81735
- [
81736
- _vm._v(
81737
- "\n " + _vm._s(age) + "\n "
81738
- )
81739
- ]
81740
- )
81741
- ]
81742
- ),
81743
- _vm._v(" "),
81744
- _vm._e()
81745
- ],
81746
- 1
81747
- )
81748
- }),
81749
- 0
81750
- )
81751
- ],
81752
- 1
81753
- )
81754
- };
80082
+ var __vue_render__$u = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{"size":"lg","lazy":"","hide-footer":!_vm.current,"title":_vm.current ? _vm.current.title : 'Workflow prompts',"busy":_vm.isLoading},on:{"hide":function($event){return _vm.deactivate()}},scopedSlots:_vm._u([(_vm.current)?{key:"modal-footer",fn:function(){return [_c('b-button',{attrs:{"variant":"link"},on:{"click":function($event){return _vm.activate(true)}}},[_vm._v("\n « Back to list\n ")])]},proxy:true}:null],null,true),model:{value:(_vm.isOpened),callback:function ($$v) {_vm.isOpened=$$v;},expression:"isOpened"}},[(_vm.current)?_c(_vm.current.component,{tag:"component",attrs:{"payload":_vm.current.prompt.payload,"loading":_vm.isLoading},on:{"submit":function($event){return _vm.resume({ input: $event, prompt: _vm.current.prompt })}}}):_c('div',_vm._l((_vm.list),function(ref){
80083
+ var key = ref.key;
80084
+ var title = ref.title;
80085
+ var age = ref.age;
80086
+ var prompt = ref.prompt;
80087
+ return _c('div',{key:key,staticClass:"d-flex flex-grow-1 align-items-baseline"},[_c('span',{staticClass:"mr-auto",on:{"click":function($event){return _vm.activate(prompt)}}},[_vm._v("\n "+_vm._s(title)+"\n "),_c('time',{staticClass:"muted small",attrs:{"datetime":prompt.createdAt}},[_vm._v("\n "+_vm._s(age)+"\n ")])]),_vm._v(" "),_vm._e()],1)}),0)],1)};
81755
80088
  var __vue_staticRenderFns__$u = [];
81756
- __vue_render__$u._withStripped = true;
81757
80089
 
81758
80090
  /* style */
81759
80091
  const __vue_inject_styles__$A = undefined;
@@ -81806,14 +80138,8 @@ var script$A = {
81806
80138
  const __vue_script__$A = script$A;
81807
80139
 
81808
80140
  /* template */
81809
- var __vue_render__$v = function() {
81810
- var _vm = this;
81811
- var _h = _vm.$createElement;
81812
- var _c = _vm._self._c || _h;
81813
- return _c("div", [_c("c-prompt-toast"), _vm._v(" "), _c("c-prompt-modal")], 1)
81814
- };
80141
+ var __vue_render__$v = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('c-prompt-toast'),_vm._v(" "),_c('c-prompt-modal')],1)};
81815
80142
  var __vue_staticRenderFns__$v = [];
81816
- __vue_render__$v._withStripped = true;
81817
80143
 
81818
80144
  /* style */
81819
80145
  const __vue_inject_styles__$B = undefined;
@@ -81980,34 +80306,17 @@ var script$B = {
81980
80306
  const __vue_script__$B = script$B;
81981
80307
 
81982
80308
  /* template */
81983
- var __vue_render__$w = function() {
81984
- var _vm = this;
81985
- var _h = _vm.$createElement;
81986
- var _c = _vm._self._c || _h;
81987
- return _c(
81988
- "b-container",
81989
- {
81990
- staticClass: "d-flex justify-content-center vh-100 logo",
81991
- attrs: { fluid: "" }
81992
- },
81993
- [
81994
- _vm.logo
81995
- ? _c("img", { staticClass: "w-25 my-auto", attrs: { src: _vm.logo } })
81996
- : _vm._e()
81997
- ]
81998
- )
81999
- };
80309
+ var __vue_render__$w = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{staticClass:"d-flex justify-content-center vh-100 logo",attrs:{"fluid":""}},[(_vm.logo)?_c('img',{staticClass:"w-25 my-auto",attrs:{"src":_vm.logo}}):_vm._e()])};
82000
80310
  var __vue_staticRenderFns__$w = [];
82001
- __vue_render__$w._withStripped = true;
82002
80311
 
82003
80312
  /* style */
82004
80313
  const __vue_inject_styles__$C = function (inject) {
82005
80314
  if (!inject) return
82006
- inject("data-v-4482739a_0", { source: ".logo img[data-v-4482739a] {\n animation: pulse-data-v-4482739a 4.2s infinite;\n}\n@keyframes pulse-data-v-4482739a {\n0% {\n opacity: 0;\n}\n65% {\n opacity: 1;\n}\n100% {\n opacity: 0;\n}\n}\n\n/*# sourceMappingURL=CLoaderLogo.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/loader/CLoaderLogo.vue","CLoaderLogo.vue"],"names":[],"mappings":"AA0BA;EACA,8CAAA;ACzBA;AD4BA;AACA;IACA,UAAA;AC1BE;AD4BF;IACA,UAAA;AC1BE;AD4BF;IACA,UAAA;AC1BE;AACF;;AAEA,0CAA0C","file":"CLoaderLogo.vue","sourcesContent":["<template>\n <b-container\n fluid\n class=\"d-flex justify-content-center vh-100 logo\"\n >\n <img\n v-if=\"logo\"\n :src=\"logo\"\n class=\"w-25 my-auto\"\n >\n </b-container>\n</template>\n\n<script>\nexport default {\n props: {\n logo: {\n type: String,\n default: () => ''\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.logo {\n img {\n animation: pulse 4.2s infinite;\n }\n\n @keyframes pulse {\n 0% {\n opacity: 0;\n }\n 65% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n}\n</style>\n",".logo img {\n animation: pulse 4.2s infinite;\n}\n@keyframes pulse {\n 0% {\n opacity: 0;\n }\n 65% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n/*# sourceMappingURL=CLoaderLogo.vue.map */"]}, media: undefined });
80315
+ inject("data-v-f488faa4_0", { source: ".logo img[data-v-f488faa4]{animation:pulse-data-v-f488faa4 4.2s infinite}@keyframes pulse-data-v-f488faa4{0%{opacity:0}65%{opacity:1}100%{opacity:0}}", map: undefined, media: undefined });
82007
80316
 
82008
80317
  };
82009
80318
  /* scoped */
82010
- const __vue_scope_id__$C = "data-v-4482739a";
80319
+ const __vue_scope_id__$C = "data-v-f488faa4";
82011
80320
  /* module identifier */
82012
80321
  const __vue_module_identifier__$C = undefined;
82013
80322
  /* functional template */
@@ -82227,301 +80536,19 @@ var script$C = {
82227
80536
  const __vue_script__$C = script$C;
82228
80537
 
82229
80538
  /* template */
82230
- var __vue_render__$x = function() {
82231
- var _vm = this;
82232
- var _h = _vm.$createElement;
82233
- var _c = _vm._self._c || _h;
82234
- return _c(
82235
- "div",
82236
- {
82237
- staticClass:
82238
- "header-navigation d-flex align-items-center justify-content-between sticky-top pr-3 pl-5 "
82239
- },
82240
- [
82241
- _c(
82242
- "div",
82243
- {
82244
- staticClass:
82245
- "d-flex text-nowrap flex-grow-1 align-items-center header h-100 w-100"
82246
- },
82247
- [
82248
- [
82249
- _c("div", {
82250
- staticClass: "spacer",
82251
- class: {
82252
- expanded: _vm.sidebarPinned
82253
- }
82254
- })
82255
- ],
82256
- _vm._v(" "),
82257
- _c(
82258
- "div",
82259
- {
82260
- staticClass:
82261
- "d-flex align-items-center ml-2 text-truncate mr-auto h-100"
82262
- },
82263
- [
82264
- _c(
82265
- "h2",
82266
- { staticClass: "d-none d-sm-block mb-0" },
82267
- [_vm._t("title")],
82268
- 2
82269
- )
82270
- ]
82271
- ),
82272
- _vm._v(" "),
82273
- _c("div", { staticClass: "ml-3" }, [_vm._t("tools")], 2),
82274
- _vm._v(" "),
82275
- !_vm.hideAppSelector
82276
- ? _c(
82277
- "b-button",
82278
- {
82279
- staticClass:
82280
- "d-flex align-items-center justify-content-center text-dark border-0 nav-icon rounded-circle ml-2",
82281
- attrs: {
82282
- variant: "outline-light",
82283
- href: _vm.appSelectorURL,
82284
- size: "lg"
82285
- }
82286
- },
82287
- [
82288
- _c("font-awesome-icon", {
82289
- staticClass: "m-0 h5",
82290
- attrs: { icon: ["fas", "grip-horizontal"] }
82291
- })
82292
- ],
82293
- 1
82294
- )
82295
- : _vm._e(),
82296
- _vm._v(" "),
82297
- _c(
82298
- "b-dropdown",
82299
- {
82300
- staticClass: "nav-icon mx-1",
82301
- attrs: {
82302
- size: "lg",
82303
- variant: "outline-light",
82304
- "toggle-class":
82305
- "text-decoration-none text-dark rounded-circle border-0 w-100",
82306
- "menu-class":
82307
- "border-0 shadow-sm text-dark font-weight-bold mt-2",
82308
- right: "",
82309
- "no-caret": ""
82310
- },
82311
- scopedSlots: _vm._u([
82312
- {
82313
- key: "button-content",
82314
- fn: function() {
82315
- return [
82316
- _c(
82317
- "div",
82318
- {
82319
- staticClass:
82320
- "d-flex align-items-center justify-content-center"
82321
- },
82322
- [
82323
- _c("font-awesome-icon", {
82324
- staticClass: "m-0 h5",
82325
- attrs: { icon: ["far", "question-circle"] }
82326
- }),
82327
- _vm._v(" "),
82328
- _c("span", { staticClass: "sr-only" }, [
82329
- _vm._v("\n Help\n ")
82330
- ])
82331
- ],
82332
- 1
82333
- )
82334
- ]
82335
- },
82336
- proxy: true
82337
- }
82338
- ])
82339
- },
82340
- [
82341
- _vm._v(" "),
82342
- _c("div", [_vm._t("help-dropdown")], 2),
82343
- _vm._v(" "),
82344
- _c(
82345
- "b-dropdown-item",
82346
- {
82347
- attrs: {
82348
- href: "https://forum.cortezaproject.org/",
82349
- target: "_blank"
82350
- }
82351
- },
82352
- [
82353
- _vm._v(
82354
- "\n " + _vm._s(_vm.labels.helpForum) + "\n "
82355
- )
82356
- ]
82357
- ),
82358
- _vm._v(" "),
82359
- _c(
82360
- "b-dropdown-item",
82361
- { attrs: { href: _vm.documentationURL, target: "_blank" } },
82362
- [
82363
- _vm._v(
82364
- "\n " +
82365
- _vm._s(_vm.labels.helpDocumentation) +
82366
- "\n "
82367
- )
82368
- ]
82369
- ),
82370
- _vm._v(" "),
82371
- _c(
82372
- "b-dropdown-item",
82373
- { attrs: { href: "mailto:info@crust.tech", target: "_blank" } },
82374
- [
82375
- _vm._v(
82376
- "\n " + _vm._s(_vm.labels.helpFeedback) + "\n "
82377
- )
82378
- ]
82379
- ),
82380
- _vm._v(" "),
82381
- _c("b-dropdown-divider"),
82382
- _vm._v(" "),
82383
- _c(
82384
- "b-dropdown-item",
82385
- { staticClass: "small", attrs: { disabled: "" } },
82386
- [
82387
- _vm._v(
82388
- "\n " + _vm._s(_vm.labels.helpVersion) + "\n "
82389
- ),
82390
- _c("br"),
82391
- _vm._v(
82392
- "\n " + _vm._s(_vm.frontendVersion) + "\n "
82393
- )
82394
- ]
82395
- )
82396
- ],
82397
- 1
82398
- ),
82399
- _vm._v(" "),
82400
- _c(
82401
- "b-dropdown",
82402
- {
82403
- staticClass: "nav-user-icon",
82404
- attrs: {
82405
- "data-v-onboarding": "profile",
82406
- size: "lg",
82407
- variant: "outline-light",
82408
- "toggle-class":
82409
- "nav-icon text-decoration-none text-dark rounded-circle border",
82410
- "menu-class":
82411
- "border-0 shadow-sm text-dark font-weight-bold mt-2",
82412
- right: "",
82413
- "no-caret": ""
82414
- },
82415
- scopedSlots: _vm._u([
82416
- {
82417
- key: "button-content",
82418
- fn: function() {
82419
- return [
82420
- _c(
82421
- "div",
82422
- {
82423
- staticClass:
82424
- "d-flex align-items-center justify-content-center"
82425
- },
82426
- [
82427
- _c("font-awesome-icon", {
82428
- staticClass: "m-0 h5",
82429
- attrs: { icon: ["far", "user"] }
82430
- }),
82431
- _vm._v(" "),
82432
- _c("span", { staticClass: "sr-only" }, [
82433
- _vm._v(
82434
- "\n " +
82435
- _vm._s(_vm.labels.helpForum) +
82436
- "\n "
82437
- )
82438
- ])
82439
- ],
82440
- 1
82441
- )
82442
- ]
82443
- },
82444
- proxy: true
82445
- }
82446
- ])
82447
- },
82448
- [
82449
- _vm._v(" "),
82450
- _c("b-dropdown-text", { staticClass: "text-muted mb-2" }, [
82451
- _vm._v(
82452
- "\n " +
82453
- _vm._s(_vm.labels.userSettingsLoggedInAs) +
82454
- "\n "
82455
- )
82456
- ]),
82457
- _vm._v(" "),
82458
- _c("div", [_vm._t("avatar-dropdown")], 2),
82459
- _vm._v(" "),
82460
- _c(
82461
- "b-dropdown-item",
82462
- { attrs: { href: _vm.userProfileURL, target: "_blank" } },
82463
- [
82464
- _vm._v(
82465
- "\n " +
82466
- _vm._s(_vm.labels.userSettingsProfile) +
82467
- "\n "
82468
- )
82469
- ]
82470
- ),
82471
- _vm._v(" "),
82472
- _c(
82473
- "b-dropdown-item",
82474
- { attrs: { href: _vm.changePasswordURL, target: "_blank" } },
82475
- [
82476
- _vm._v(
82477
- "\n " +
82478
- _vm._s(_vm.labels.userSettingsChangePassword) +
82479
- "\n "
82480
- )
82481
- ]
82482
- ),
82483
- _vm._v(" "),
82484
- _c("b-dropdown-divider"),
82485
- _vm._v(" "),
82486
- _c(
82487
- "b-dropdown-item",
82488
- {
82489
- staticClass: "mt-2",
82490
- attrs: { href: "" },
82491
- on: {
82492
- click: function($event) {
82493
- return _vm.$auth.logout()
82494
- }
82495
- }
82496
- },
82497
- [
82498
- _vm._v(
82499
- "\n " +
82500
- _vm._s(_vm.labels.userSettingsLogout) +
82501
- "\n "
82502
- )
82503
- ]
82504
- )
82505
- ],
82506
- 1
82507
- )
82508
- ],
82509
- 2
82510
- )
82511
- ]
82512
- )
82513
- };
80539
+ var __vue_render__$x = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"header-navigation d-flex align-items-center justify-content-between sticky-top pr-3 pl-5 "},[_c('div',{staticClass:"d-flex text-nowrap flex-grow-1 align-items-center header h-100 w-100"},[[_c('div',{staticClass:"spacer",class:{
80540
+ 'expanded': _vm.sidebarPinned,
80541
+ }})],_vm._v(" "),_c('div',{staticClass:"d-flex align-items-center ml-2 text-truncate mr-auto h-100"},[_c('h2',{staticClass:"d-none d-sm-block mb-0"},[_vm._t("title")],2)]),_vm._v(" "),_c('div',{staticClass:"ml-3"},[_vm._t("tools")],2),_vm._v(" "),(!_vm.hideAppSelector)?_c('b-button',{staticClass:"d-flex align-items-center justify-content-center text-dark border-0 nav-icon rounded-circle ml-2",attrs:{"variant":"outline-light","href":_vm.appSelectorURL,"size":"lg"}},[_c('font-awesome-icon',{staticClass:"m-0 h5",attrs:{"icon":['fas', 'grip-horizontal']}})],1):_vm._e(),_vm._v(" "),_c('b-dropdown',{staticClass:"nav-icon mx-1",attrs:{"size":"lg","variant":"outline-light","toggle-class":"text-decoration-none text-dark rounded-circle border-0 w-100","menu-class":"border-0 shadow-sm text-dark font-weight-bold mt-2","right":"","no-caret":""},scopedSlots:_vm._u([{key:"button-content",fn:function(){return [_c('div',{staticClass:"d-flex align-items-center justify-content-center"},[_c('font-awesome-icon',{staticClass:"m-0 h5",attrs:{"icon":['far', 'question-circle']}}),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("\n Help\n ")])],1)]},proxy:true}])},[_vm._v(" "),_c('div',[_vm._t("help-dropdown")],2),_vm._v(" "),_c('b-dropdown-item',{attrs:{"href":"https://forum.cortezaproject.org/","target":"_blank"}},[_vm._v("\n "+_vm._s(_vm.labels.helpForum)+"\n ")]),_vm._v(" "),_c('b-dropdown-item',{attrs:{"href":_vm.documentationURL,"target":"_blank"}},[_vm._v("\n "+_vm._s(_vm.labels.helpDocumentation)+"\n ")]),_vm._v(" "),_c('b-dropdown-item',{attrs:{"href":"mailto:info@crust.tech","target":"_blank"}},[_vm._v("\n "+_vm._s(_vm.labels.helpFeedback)+"\n ")]),_vm._v(" "),_c('b-dropdown-divider'),_vm._v(" "),_c('b-dropdown-item',{staticClass:"small",attrs:{"disabled":""}},[_vm._v("\n "+_vm._s(_vm.labels.helpVersion)+"\n "),_c('br'),_vm._v("\n "+_vm._s(_vm.frontendVersion)+"\n ")])],1),_vm._v(" "),_c('b-dropdown',{staticClass:"nav-user-icon",attrs:{"data-v-onboarding":"profile","size":"lg","variant":"outline-light","toggle-class":"nav-icon text-decoration-none text-dark rounded-circle border","menu-class":"border-0 shadow-sm text-dark font-weight-bold mt-2","right":"","no-caret":""},scopedSlots:_vm._u([{key:"button-content",fn:function(){return [_c('div',{staticClass:"d-flex align-items-center justify-content-center"},[_c('font-awesome-icon',{staticClass:"m-0 h5",attrs:{"icon":['far', 'user']}}),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("\n "+_vm._s(_vm.labels.helpForum)+"\n ")])],1)]},proxy:true}])},[_vm._v(" "),_c('b-dropdown-text',{staticClass:"text-muted mb-2"},[_vm._v("\n "+_vm._s(_vm.labels.userSettingsLoggedInAs)+"\n ")]),_vm._v(" "),_c('div',[_vm._t("avatar-dropdown")],2),_vm._v(" "),_c('b-dropdown-item',{attrs:{"href":_vm.userProfileURL,"target":"_blank"}},[_vm._v("\n "+_vm._s(_vm.labels.userSettingsProfile)+"\n ")]),_vm._v(" "),_c('b-dropdown-item',{attrs:{"href":_vm.changePasswordURL,"target":"_blank"}},[_vm._v("\n "+_vm._s(_vm.labels.userSettingsChangePassword)+"\n ")]),_vm._v(" "),_c('b-dropdown-divider'),_vm._v(" "),_c('b-dropdown-item',{staticClass:"mt-2",attrs:{"href":""},on:{"click":function($event){return _vm.$auth.logout()}}},[_vm._v("\n "+_vm._s(_vm.labels.userSettingsLogout)+"\n ")])],1)],2)])};
82514
80542
  var __vue_staticRenderFns__$x = [];
82515
- __vue_render__$x._withStripped = true;
82516
80543
 
82517
80544
  /* style */
82518
80545
  const __vue_inject_styles__$D = function (inject) {
82519
80546
  if (!inject) return
82520
- inject("data-v-ff5125a8_0", { source: ".icon-logo[data-v-ff5125a8] {\n height: calc(64px / 2);\n background-repeat: no-repeat;\n background-position: center;\n}\n.nav-icon[data-v-ff5125a8] {\n width: 40px;\n height: 40px;\n}\n.nav-user-icon[data-v-ff5125a8] {\n width: 50px;\n height: 50px;\n}\n.header-navigation[data-v-ff5125a8] {\n width: 100vw;\n height: 64px;\n background-color: #F3F3F5 !important;\n}\n.header-navigation h2[data-v-ff5125a8] {\n padding-left: calc(0.5rem + 2px);\n}\n.spacer[data-v-ff5125a8] {\n min-width: 0px;\n -webkit-transition: min-width 0.15s ease-in-out;\n -moz-transition: min-width 0.15s ease-in-out;\n -o-transition: min-width 0.15s ease-in-out;\n transition: min-width 0.15s ease-in-out;\n}\n.spacer.expanded[data-v-ff5125a8] {\n min-width: calc(320px - 42px);\n -webkit-transition: min-width 0.2s ease-in-out;\n -moz-transition: min-width 0.2s ease-in-out;\n -o-transition: min-width 0.2s ease-in-out;\n transition: min-width 0.2s ease-in-out;\n}\n\n/*# sourceMappingURL=CTopbar.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/navigation/CTopbar.vue","CTopbar.vue"],"names":[],"mappings":"AA2MA;EACA,sBAAA;EACA,4BAAA;EACA,2BAAA;AC1MA;AD6MA;EACA,WAVA;EAWA,YAXA;AC/LA;AD6MA;EACA,WAdA;EAeA,YAfA;AC3LA;AD6MA;EACA,YAAA;EACA,YAvBA;EAwBA,oCAAA;AC1MA;AD4MA;EACA,gCAAA;AC1MA;AD8MA;EACA,cAAA;EACA,+CAAA;EACA,4CAAA;EACA,0CAAA;EACA,uCAAA;AC3MA;AD6MA;EACA,6BAAA;EACA,8CAAA;EACA,2CAAA;EACA,yCAAA;EACA,sCAAA;AC3MA;;AAEA,sCAAsC","file":"CTopbar.vue","sourcesContent":["<template>\n <div class=\"header-navigation d-flex align-items-center justify-content-between sticky-top pr-3 pl-5 \">\n <div\n class=\"d-flex text-nowrap flex-grow-1 align-items-center header h-100 w-100\"\n >\n <template>\n <div\n class=\"spacer\"\n :class=\"{\n 'expanded': sidebarPinned,\n }\"\n />\n </template>\n\n <div\n class=\"d-flex align-items-center ml-2 text-truncate mr-auto h-100\"\n >\n <h2\n class=\"d-none d-sm-block mb-0\"\n >\n <slot name=\"title\" />\n </h2>\n\n </div>\n\n <div class=\"ml-3\">\n <slot name=\"tools\" />\n </div>\n\n <b-button\n v-if=\"!hideAppSelector\"\n variant=\"outline-light\"\n :href=\"appSelectorURL\"\n size=\"lg\"\n class=\"d-flex align-items-center justify-content-center text-dark border-0 nav-icon rounded-circle ml-2\"\n >\n <font-awesome-icon\n class=\"m-0 h5\"\n :icon=\"['fas', 'grip-horizontal']\"\n />\n </b-button>\n\n <b-dropdown\n size=\"lg\"\n variant=\"outline-light\"\n class=\"nav-icon mx-1\"\n toggle-class=\"text-decoration-none text-dark rounded-circle border-0 w-100\"\n menu-class=\"border-0 shadow-sm text-dark font-weight-bold mt-2\"\n right\n no-caret\n >\n <template #button-content>\n <div\n class=\"d-flex align-items-center justify-content-center\"\n >\n <font-awesome-icon\n class=\"m-0 h5\"\n :icon=\"['far', 'question-circle']\"\n />\n <span class=\"sr-only\">\n Help\n </span>\n </div>\n </template>\n <div>\n <slot name=\"help-dropdown\" />\n </div>\n <b-dropdown-item\n href=\"https://forum.cortezaproject.org/\"\n target=\"_blank\"\n >\n {{ labels.helpForum }}\n </b-dropdown-item>\n <b-dropdown-item\n :href=\"documentationURL\"\n target=\"_blank\"\n >\n {{ labels.helpDocumentation }}\n </b-dropdown-item>\n <b-dropdown-item\n href=\"mailto:info@crust.tech\"\n target=\"_blank\"\n >\n {{ labels.helpFeedback }}\n </b-dropdown-item>\n <b-dropdown-divider />\n <b-dropdown-item\n disabled\n class=\"small\"\n >\n {{ labels.helpVersion }}\n <br>\n {{ frontendVersion }}\n </b-dropdown-item>\n </b-dropdown>\n <b-dropdown\n data-v-onboarding=\"profile\"\n size=\"lg\"\n variant=\"outline-light\"\n class=\"nav-user-icon\"\n toggle-class=\"nav-icon text-decoration-none text-dark rounded-circle border\"\n menu-class=\"border-0 shadow-sm text-dark font-weight-bold mt-2\"\n right\n no-caret\n >\n <template #button-content>\n <div\n class=\"d-flex align-items-center justify-content-center\"\n >\n <font-awesome-icon\n class=\"m-0 h5\"\n :icon=\"['far', 'user']\"\n />\n <span class=\"sr-only\">\n {{ labels.helpForum }}\n </span>\n </div>\n </template>\n <b-dropdown-text class=\"text-muted mb-2\">\n {{ labels.userSettingsLoggedInAs }}\n </b-dropdown-text>\n <div>\n <slot name=\"avatar-dropdown\" />\n </div>\n <b-dropdown-item\n :href=\"userProfileURL\"\n target=\"_blank\"\n >\n {{ labels.userSettingsProfile }}\n </b-dropdown-item>\n <b-dropdown-item\n :href=\"changePasswordURL\"\n target=\"_blank\"\n >\n {{ labels.userSettingsChangePassword }}\n </b-dropdown-item>\n <b-dropdown-divider />\n <b-dropdown-item\n href=\"\"\n @click=\"$auth.logout()\"\n class=\"mt-2\"\n >\n {{ labels.userSettingsLogout }}\n </b-dropdown-item>\n </b-dropdown>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n sidebarPinned: {\n type: Boolean,\n required: true,\n default: false,\n },\n\n hideAppSelector: {\n type: Boolean,\n required: false,\n default: false,\n },\n\n appSelectorURL: {\n type: String,\n default: '../'\n },\n\n labels: {\n type: Object,\n required: true,\n },\n },\n\n computed: {\n userProfileURL () {\n return this.$auth.cortezaAuthURL\n },\n\n changePasswordURL () {\n return `${this.$auth.cortezaAuthURL}/change-password`\n },\n\n documentationURL () {\n const [year, month] = VERSION.split('.')\n return `https://docs.cortezaproject.org/corteza-docs/${year}.${month}/index.html`\n },\n\n frontendVersion () {\n /* eslint-disable no-undef */\n return VERSION\n },\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$header-height: 64px;\n$nav-width: 320px;\n$nav-icon-size: 40px;\n$nav-user-icon-size: 50px;\n\n.icon-logo {\n height: calc(#{$header-height} / 2);\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.nav-icon {\n width: $nav-icon-size;\n height: $nav-icon-size;\n}\n\n.nav-user-icon {\n width: $nav-user-icon-size;\n height: $nav-user-icon-size;\n}\n\n.header-navigation {\n width: 100vw;\n height: $header-height;\n background-color: #F3F3F5 !important;\n\n h2 {\n padding-left: calc(0.5rem + 2px);\n }\n}\n\n.spacer {\n min-width: 0px;\n -webkit-transition: min-width 0.15s ease-in-out;\n -moz-transition: min-width 0.15s ease-in-out;\n -o-transition: min-width 0.15s ease-in-out;\n transition: min-width 0.15s ease-in-out;\n\n &.expanded {\n min-width: calc(#{$nav-width} - 42px);\n -webkit-transition: min-width 0.2s ease-in-out;\n -moz-transition: min-width 0.2s ease-in-out;\n -o-transition: min-width 0.2s ease-in-out;\n transition: min-width 0.2s ease-in-out;\n }\n}\n</style>\n",".icon-logo {\n height: calc(64px / 2);\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.nav-icon {\n width: 40px;\n height: 40px;\n}\n\n.nav-user-icon {\n width: 50px;\n height: 50px;\n}\n\n.header-navigation {\n width: 100vw;\n height: 64px;\n background-color: #F3F3F5 !important;\n}\n.header-navigation h2 {\n padding-left: calc(0.5rem + 2px);\n}\n\n.spacer {\n min-width: 0px;\n -webkit-transition: min-width 0.15s ease-in-out;\n -moz-transition: min-width 0.15s ease-in-out;\n -o-transition: min-width 0.15s ease-in-out;\n transition: min-width 0.15s ease-in-out;\n}\n.spacer.expanded {\n min-width: calc(320px - 42px);\n -webkit-transition: min-width 0.2s ease-in-out;\n -moz-transition: min-width 0.2s ease-in-out;\n -o-transition: min-width 0.2s ease-in-out;\n transition: min-width 0.2s ease-in-out;\n}\n\n/*# sourceMappingURL=CTopbar.vue.map */"]}, media: undefined });
80547
+ inject("data-v-d822059c_0", { source: ".icon-logo[data-v-d822059c]{height:calc(64px / 2);background-repeat:no-repeat;background-position:center}.nav-icon[data-v-d822059c]{width:40px;height:40px}.nav-user-icon[data-v-d822059c]{width:50px;height:50px}.header-navigation[data-v-d822059c]{width:100vw;height:64px;background-color:#f3f3f5!important}.header-navigation h2[data-v-d822059c]{padding-left:calc(.5rem + 2px)}.spacer[data-v-d822059c]{min-width:0;-webkit-transition:min-width .15s ease-in-out;-moz-transition:min-width .15s ease-in-out;-o-transition:min-width .15s ease-in-out;transition:min-width .15s ease-in-out}.spacer.expanded[data-v-d822059c]{min-width:calc(320px - 42px);-webkit-transition:min-width .2s ease-in-out;-moz-transition:min-width .2s ease-in-out;-o-transition:min-width .2s ease-in-out;transition:min-width .2s ease-in-out}", map: undefined, media: undefined });
82521
80548
 
82522
80549
  };
82523
80550
  /* scoped */
82524
- const __vue_scope_id__$D = "data-v-ff5125a8";
80551
+ const __vue_scope_id__$D = "data-v-d822059c";
82525
80552
  /* module identifier */
82526
80553
  const __vue_module_identifier__$D = undefined;
82527
80554
  /* functional template */
@@ -82838,255 +80865,18 @@ var script$D = {
82838
80865
  const __vue_script__$D = script$D;
82839
80866
 
82840
80867
  /* template */
82841
- var __vue_render__$y = function() {
82842
- var _vm = this;
82843
- var _h = _vm.$createElement;
82844
- var _c = _vm._self._c || _h;
82845
- return _c("div", [
82846
- _c(
82847
- "div",
82848
- {
82849
- on: {
82850
- mouseleave: function($event) {
82851
- return _vm.onHover(false)
82852
- }
82853
- }
82854
- },
82855
- [
82856
- _c(
82857
- "b-sidebar",
82858
- {
82859
- attrs: {
82860
- "sidebar-class": "sidebar " + (_vm.isExpanded ? "expanded" : ""),
82861
- "header-class":
82862
- "d-block sidebar-header " +
82863
- (_vm.isExpanded ? "expanded border-bottom p-2" : ""),
82864
- "body-class": "bg-white " + (_vm.isExpanded ? "py-2 px-3" : ""),
82865
- "footer-class":
82866
- "bg-white rounded-right " + (_vm.isExpanded ? "p-2" : ""),
82867
- "no-header": !_vm.isExpanded,
82868
- backdrop: _vm.isMobile,
82869
- shadow: _vm.isExpanded,
82870
- "no-slide": "",
82871
- "no-close-on-route-change": "",
82872
- "no-close-on-esc": ""
82873
- },
82874
- scopedSlots: _vm._u(
82875
- [
82876
- {
82877
- key: "header",
82878
- fn: function() {
82879
- return [
82880
- _c(
82881
- "div",
82882
- {
82883
- staticClass:
82884
- "d-flex align-items-center justify-content-between px-2",
82885
- staticStyle: { height: "50px" }
82886
- },
82887
- [
82888
- _c("img", {
82889
- staticClass: "logo w-auto border-0",
82890
- attrs: { src: _vm.logo }
82891
- }),
82892
- _vm._v(" "),
82893
- _vm.isMobile
82894
- ? _c(
82895
- "b-button",
82896
- {
82897
- staticClass:
82898
- "d-flex align-items-center justify-content-center p-2",
82899
- attrs: { variant: "outline-light border-0" },
82900
- on: {
82901
- click: function($event) {
82902
- return _vm.closeSidebar()
82903
- }
82904
- }
82905
- },
82906
- [
82907
- _c("font-awesome-icon", {
82908
- staticClass: "h6 mb-0 text-dark",
82909
- attrs: { icon: ["fas", "times"] }
82910
- })
82911
- ],
82912
- 1
82913
- )
82914
- : _c(
82915
- "b-button",
82916
- {
82917
- staticClass:
82918
- "d-flex align-items-center justify-content-center p-2",
82919
- attrs: { variant: "outline-light border-0" },
82920
- on: {
82921
- click: function($event) {
82922
- return _vm.togglePin()
82923
- }
82924
- }
82925
- },
82926
- [
82927
- _c("font-awesome-icon", {
82928
- class:
82929
- "h6 mb-0 " +
82930
- (_vm.isPinned
82931
- ? "text-primary"
82932
- : "text-secondary"),
82933
- attrs: { icon: ["fas", "thumbtack"] }
82934
- })
82935
- ],
82936
- 1
82937
- )
82938
- ],
82939
- 1
82940
- ),
82941
- _vm._v(" "),
82942
- !_vm.isExpanded
82943
- ? _c(
82944
- "div",
82945
- {
82946
- staticClass:
82947
- "d-flex align-items-center justify-content-center my-3"
82948
- },
82949
- [
82950
- _c(
82951
- "b-button",
82952
- {
82953
- attrs: { variant: "link" },
82954
- on: {
82955
- click: function($event) {
82956
- return _vm.togglePin()
82957
- }
82958
- }
82959
- },
82960
- [
82961
- _c("font-awesome-icon", {
82962
- staticClass: "h6 mb-0",
82963
- attrs: { icon: ["fas", "chevron-right"] }
82964
- })
82965
- ],
82966
- 1
82967
- )
82968
- ],
82969
- 1
82970
- )
82971
- : _vm._e(),
82972
- _vm._v(" "),
82973
- _vm.isExpanded
82974
- ? _c(
82975
- "div",
82976
- { staticClass: "px-2" },
82977
- [_vm._t("header-expanded")],
82978
- 2
82979
- )
82980
- : _vm._e(),
82981
- _vm._v(" "),
82982
- !_vm.isExpanded
82983
- ? _c("hr", { staticClass: "my-2" })
82984
- : _vm._e()
82985
- ]
82986
- },
82987
- proxy: true
82988
- },
82989
- {
82990
- key: "footer",
82991
- fn: function() {
82992
- return [
82993
- _vm.isExpanded ? _vm._t("footer-expanded") : _vm._e()
82994
- ]
82995
- },
82996
- proxy: true
82997
- }
82998
- ],
82999
- null,
83000
- true
83001
- ),
83002
- model: {
83003
- value: _vm.isExpanded,
83004
- callback: function($$v) {
83005
- _vm.isExpanded = $$v;
83006
- },
83007
- expression: "isExpanded"
83008
- }
83009
- },
83010
- [_vm._v(" "), _vm.isExpanded ? _vm._t("body-expanded") : _vm._e()],
83011
- 2
83012
- )
83013
- ],
83014
- 1
83015
- ),
83016
- _vm._v(" "),
83017
- _c(
83018
- "div",
83019
- {
83020
- staticClass:
83021
- "d-flex align-items-center justify-content-center tab position-absolute p-2"
83022
- },
83023
- [
83024
- _vm.expandOnHover && !_vm.disabledRoutes.includes(_vm.$route.name)
83025
- ? _c(
83026
- "b-button",
83027
- {
83028
- staticClass: "d-flex align-items-center border-0",
83029
- attrs: { variant: "outline-light", size: "lg" },
83030
- on: {
83031
- mouseover: function($event) {
83032
- return _vm.onHover(true)
83033
- }
83034
- }
83035
- },
83036
- [
83037
- _c("font-awesome-icon", {
83038
- staticClass: "h4 mb-0 text-primary",
83039
- attrs: { icon: ["fas", "bars"] }
83040
- })
83041
- ],
83042
- 1
83043
- )
83044
- : !_vm.disabledRoutes.includes(_vm.$route.name)
83045
- ? _c(
83046
- "b-button",
83047
- {
83048
- staticClass: "d-flex align-items-center p-2 border-0",
83049
- attrs: {
83050
- variant: "outline-light",
83051
- size: "lg",
83052
- to: { name: "root" }
83053
- }
83054
- },
83055
- [
83056
- _c("font-awesome-icon", {
83057
- staticClass: "h4 mb-0 text-primary",
83058
- attrs: { icon: ["fas", "home"] }
83059
- })
83060
- ],
83061
- 1
83062
- )
83063
- : _c(
83064
- "div",
83065
- { staticClass: "d-flex align-items-center border-0 p-2" },
83066
- [
83067
- _c("img", {
83068
- staticClass: "icon w-auto border-0",
83069
- attrs: { src: _vm.icon }
83070
- })
83071
- ]
83072
- )
83073
- ],
83074
- 1
83075
- )
83076
- ])
83077
- };
80868
+ var __vue_render__$y = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{on:{"mouseleave":function($event){return _vm.onHover(false)}}},[_c('b-sidebar',{attrs:{"sidebar-class":("sidebar " + (_vm.isExpanded ? 'expanded' : '')),"header-class":("d-block sidebar-header " + (_vm.isExpanded ? 'expanded border-bottom p-2' : '')),"body-class":("bg-white " + (_vm.isExpanded ? 'py-2 px-3' : '')),"footer-class":("bg-white rounded-right " + (_vm.isExpanded ? 'p-2' : '')),"no-header":!_vm.isExpanded,"backdrop":_vm.isMobile,"shadow":_vm.isExpanded,"no-slide":"","no-close-on-route-change":"","no-close-on-esc":""},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"d-flex align-items-center justify-content-between px-2",staticStyle:{"height":"50px"}},[_c('img',{staticClass:"logo w-auto border-0",attrs:{"src":_vm.logo}}),_vm._v(" "),(_vm.isMobile)?_c('b-button',{staticClass:"d-flex align-items-center justify-content-center p-2",attrs:{"variant":"outline-light border-0"},on:{"click":function($event){return _vm.closeSidebar()}}},[_c('font-awesome-icon',{staticClass:"h6 mb-0 text-dark",attrs:{"icon":['fas', 'times']}})],1):_c('b-button',{staticClass:"d-flex align-items-center justify-content-center p-2",attrs:{"variant":"outline-light border-0"},on:{"click":function($event){return _vm.togglePin()}}},[_c('font-awesome-icon',{class:("h6 mb-0 " + (_vm.isPinned ? 'text-primary' : 'text-secondary')),attrs:{"icon":['fas', 'thumbtack']}})],1)],1),_vm._v(" "),(!_vm.isExpanded)?_c('div',{staticClass:"d-flex align-items-center justify-content-center my-3"},[_c('b-button',{attrs:{"variant":"link"},on:{"click":function($event){return _vm.togglePin()}}},[_c('font-awesome-icon',{staticClass:"h6 mb-0",attrs:{"icon":['fas', 'chevron-right']}})],1)],1):_vm._e(),_vm._v(" "),(_vm.isExpanded)?_c('div',{staticClass:"px-2"},[_vm._t("header-expanded")],2):_vm._e(),_vm._v(" "),(!_vm.isExpanded)?_c('hr',{staticClass:"my-2"}):_vm._e()]},proxy:true},{key:"footer",fn:function(){return [(_vm.isExpanded)?_vm._t("footer-expanded"):_vm._e()]},proxy:true}],null,true),model:{value:(_vm.isExpanded),callback:function ($$v) {_vm.isExpanded=$$v;},expression:"isExpanded"}},[_vm._v(" "),(_vm.isExpanded)?_vm._t("body-expanded"):_vm._e()],2)],1),_vm._v(" "),_c('div',{staticClass:"d-flex align-items-center justify-content-center tab position-absolute p-2"},[(_vm.expandOnHover && !_vm.disabledRoutes.includes(_vm.$route.name))?_c('b-button',{staticClass:"d-flex align-items-center border-0",attrs:{"variant":"outline-light","size":"lg"},on:{"mouseover":function($event){return _vm.onHover(true)}}},[_c('font-awesome-icon',{staticClass:"h4 mb-0 text-primary",attrs:{"icon":['fas', 'bars']}})],1):(!_vm.disabledRoutes.includes(_vm.$route.name))?_c('b-button',{staticClass:"d-flex align-items-center p-2 border-0",attrs:{"variant":"outline-light","size":"lg","to":{ name: 'root' }}},[_c('font-awesome-icon',{staticClass:"h4 mb-0 text-primary",attrs:{"icon":['fas', 'home']}})],1):_c('div',{staticClass:"d-flex align-items-center border-0 p-2"},[_c('img',{staticClass:"icon w-auto border-0",attrs:{"src":_vm.icon}})])],1)])};
83078
80869
  var __vue_staticRenderFns__$y = [];
83079
- __vue_render__$y._withStripped = true;
83080
80870
 
83081
80871
  /* style */
83082
80872
  const __vue_inject_styles__$E = function (inject) {
83083
80873
  if (!inject) return
83084
- inject("data-v-6a351e13_0", { source: ".tab[data-v-6a351e13] {\n z-index: 1021;\n top: 0;\n height: 64px;\n width: 66px;\n}\n.icon[data-v-6a351e13] {\n max-height: 40px;\n max-width: 40px;\n}\n.logo[data-v-6a351e13] {\n max-height: 40px;\n}\n.sidebar-header[data-v-6a351e13] {\n height: 64px;\n}\n\n/*# sourceMappingURL=CSidebar.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/navigation/CSidebar.vue","CSidebar.vue"],"names":[],"mappings":"AAiSA;EACA,aAAA;EACA,MAAA;EACA,YALA;EAMA,WAAA;AChSA;ADmSA;EACA,gBAAA;EACA,eAAA;AChSA;ADmSA;EACA,gBAAA;AChSA;ADmSA;EACA,YAnBA;AC7QA;;AAEA,uCAAuC","file":"CSidebar.vue","sourcesContent":["<template>\n <div>\n <div\n @mouseleave=\"onHover(false)\"\n >\n <b-sidebar\n v-model=\"isExpanded\"\n :sidebar-class=\"`sidebar ${isExpanded ? 'expanded' : ''}`\"\n :header-class=\"`d-block sidebar-header ${isExpanded ? 'expanded border-bottom p-2' : ''}`\"\n :body-class=\"`bg-white ${isExpanded ? 'py-2 px-3' : ''}`\"\n :footer-class=\"`bg-white rounded-right ${isExpanded ? 'p-2' : ''}`\"\n :no-header=\"!isExpanded\"\n :backdrop=\"isMobile\"\n :shadow=\"isExpanded\"\n no-slide\n no-close-on-route-change\n no-close-on-esc\n >\n <template #header>\n <div\n class=\"d-flex align-items-center justify-content-between px-2\"\n style=\"height: 50px;\"\n >\n <img\n class=\"logo w-auto border-0\"\n :src=\"logo\"\n >\n\n <b-button\n v-if=\"isMobile\"\n variant=\"outline-light border-0\"\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"closeSidebar()\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'times']\"\n class=\"h6 mb-0 text-dark\"\n />\n </b-button>\n\n <b-button\n v-else\n variant=\"outline-light border-0\"\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"togglePin()\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'thumbtack']\"\n :class=\"`h6 mb-0 ${isPinned ? 'text-primary' : 'text-secondary'}`\"\n />\n </b-button>\n </div>\n\n <div\n v-if=\"!isExpanded\"\n class=\"d-flex align-items-center justify-content-center my-3\"\n >\n <b-button\n variant=\"link\"\n @click=\"togglePin()\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'chevron-right']\"\n class=\"h6 mb-0\"\n />\n </b-button>\n </div>\n\n <div\n v-if=\"isExpanded\"\n class=\"px-2\"\n >\n <slot\n name=\"header-expanded\"\n />\n </div>\n\n\n <hr\n v-if=\"!isExpanded\"\n class=\"my-2\"\n >\n </template>\n\n <slot\n v-if=\"isExpanded\"\n name=\"body-expanded\"\n />\n\n <template #footer>\n <slot\n v-if=\"isExpanded\"\n name=\"footer-expanded\"\n />\n </template>\n </b-sidebar>\n </div>\n\n <div\n class=\"d-flex align-items-center justify-content-center tab position-absolute p-2\"\n >\n <b-button\n v-if=\"expandOnHover && !disabledRoutes.includes($route.name)\"\n variant=\"outline-light\"\n size=\"lg\"\n class=\"d-flex align-items-center border-0\"\n @mouseover=\"onHover(true)\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'bars']\"\n class=\"h4 mb-0 text-primary\"\n />\n </b-button>\n\n <b-button\n v-else-if=\"!disabledRoutes.includes($route.name)\"\n variant=\"outline-light\"\n size=\"lg\"\n class=\"d-flex align-items-center p-2 border-0\"\n :to=\"{ name: 'root' }\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'home']\"\n class=\"h4 mb-0 text-primary\"\n />\n </b-button>\n\n <div\n v-else\n class=\"d-flex align-items-center border-0 p-2\"\n >\n <img\n class=\"icon w-auto border-0\"\n :src=\"icon\"\n >\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n expanded: {\n type: Boolean,\n default: false,\n },\n\n pinned: {\n type: Boolean,\n default: false,\n },\n\n expandOnHover: {\n type: Boolean,\n default: false,\n },\n\n disabledRoutes: {\n type: Array,\n default: () => [],\n },\n\n icon: {\n type: String,\n default: () => ''\n },\n\n logo: {\n type: String,\n default: () => ''\n },\n },\n\n data () {\n return {\n sidebar_settings : {}\n }\n },\n\n computed: {\n isExpanded: {\n get () {\n return this.expanded\n },\n\n set (expanded) {\n this.$emit('update:expanded', expanded)\n },\n },\n\n isPinned: {\n get () {\n return this.pinned\n },\n\n set (pinned) {\n this.$emit('update:pinned', pinned)\n },\n },\n\n isMobile () {\n return window.innerWidth < 576\n },\n },\n\n created () {\n this.$root.$on('close-sidebar', () => {\n this.isExpanded = false\n this.isPinned = false\n })\n },\n\n beforeDestroy () {\n this.$root.$off('close-sidebar')\n },\n\n watch: {\n '$route.name': {\n immediate: true,\n handler (name) {\n // If sidebar should be disabled on route, close and unpin when navigating to route\n if (this.disabledRoutes.includes(name)) {\n this.isPinned = false\n this.isExpanded = false\n } else if(this.expandOnHover){\n this.defaultSidebarAppearance()\n }\n },\n },\n },\n\n methods: {\n onHover (expand) {\n if (!this.pinned && this.expandOnHover) {\n setTimeout(() => {\n this.isExpanded = expand\n }, expand ? 0 : 100)\n }\n },\n\n togglePin () {\n this.saveSettings(!this.isPinned)\n this.isPinned = !this.isPinned\n },\n\n defaultSidebarAppearance () {\n const localstorage_settings = JSON.parse(window.localStorage.getItem('sidebar_settings'))\n if (localstorage_settings) {\n this.sidebar_settings = localstorage_settings\n }\n const app_sidebar = (localstorage_settings || {})[this.$root.$options.name]\n if (!this.isMobile) {\n if (app_sidebar) {\n this.isExpanded = app_sidebar.pinned\n this.isPinned = app_sidebar.pinned\n } else {\n this.openSidebar()\n }\n } else {\n this.closeSidebar()\n }\n },\n\n saveSettings (pinned) {\n if (this.sidebar_settings[this.$root.$options.name]) {\n this.sidebar_settings[this.$root.$options.name].pinned = pinned\n } else {\n this.sidebar_settings[this.$root.$options.name] = { pinned: pinned }\n }\n window.localStorage.setItem('sidebar_settings', JSON.stringify(this.sidebar_settings))\n },\n\n openSidebar () {\n this.isPinned = true\n this.isExpanded = true\n },\n\n closeSidebar () {\n this.isPinned = false\n this.isExpanded = false\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$header-height: 64px;\n\n.tab {\n z-index: 1021;\n top: 0;\n height: $header-height;\n width: 66px;\n}\n\n.icon {\n max-height: 40px;\n max-width: 40px;\n}\n\n.logo {\n max-height: 40px;\n}\n\n.sidebar-header {\n height: $header-height;\n}\n</style>\n\n<style lang=\"scss\">\n$nav-width: 320px;\n$sidebar-bg: #F4F7FA;\n\n.sidebar {\n display: flex !important;\n left: calc(-#{$nav-width}) !important;\n -webkit-transition: left 0.15s ease-in-out;\n -moz-transition: left 0.15s ease-in-out;\n -o-transition: left 0.15s ease-in-out;\n transition: left 0.15s ease-in-out;\n\n header {\n background-color: white;\n\n &.expanded {\n background-color: $sidebar-bg !important;\n }\n }\n\n &.expanded {\n left: 0 !important;\n -webkit-transition: left 0.2s ease-in-out;\n -moz-transition: left 0.2s ease-in-out;\n -o-transition: left 0.2s ease-in-out;\n transition: left 0.2s ease-in-out;\n }\n}\n</style>\n",".tab {\n z-index: 1021;\n top: 0;\n height: 64px;\n width: 66px;\n}\n\n.icon {\n max-height: 40px;\n max-width: 40px;\n}\n\n.logo {\n max-height: 40px;\n}\n\n.sidebar-header {\n height: 64px;\n}\n\n/*# sourceMappingURL=CSidebar.vue.map */"]}, media: undefined })
83085
- ,inject("data-v-6a351e13_1", { source: ".sidebar {\n display: flex !important;\n left: calc(-320px) !important;\n -webkit-transition: left 0.15s ease-in-out;\n -moz-transition: left 0.15s ease-in-out;\n -o-transition: left 0.15s ease-in-out;\n transition: left 0.15s ease-in-out;\n}\n.sidebar header {\n background-color: white;\n}\n.sidebar header.expanded {\n background-color: #F4F7FA !important;\n}\n.sidebar.expanded {\n left: 0 !important;\n -webkit-transition: left 0.2s ease-in-out;\n -moz-transition: left 0.2s ease-in-out;\n -o-transition: left 0.2s ease-in-out;\n transition: left 0.2s ease-in-out;\n}\n\n/*# sourceMappingURL=CSidebar.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/navigation/CSidebar.vue","CSidebar.vue"],"names":[],"mappings":"AA0TA;EACA,wBAAA;EACA,6BAAA;EACA,0CAAA;EACA,uCAAA;EACA,qCAAA;EACA,kCAAA;ACzTA;AD2TA;EACA,uBAAA;ACzTA;AD2TA;EACA,oCAAA;ACzTA;AD6TA;EACA,kBAAA;EACA,yCAAA;EACA,sCAAA;EACA,oCAAA;EACA,iCAAA;AC3TA;;AAEA,uCAAuC","file":"CSidebar.vue","sourcesContent":["<template>\n <div>\n <div\n @mouseleave=\"onHover(false)\"\n >\n <b-sidebar\n v-model=\"isExpanded\"\n :sidebar-class=\"`sidebar ${isExpanded ? 'expanded' : ''}`\"\n :header-class=\"`d-block sidebar-header ${isExpanded ? 'expanded border-bottom p-2' : ''}`\"\n :body-class=\"`bg-white ${isExpanded ? 'py-2 px-3' : ''}`\"\n :footer-class=\"`bg-white rounded-right ${isExpanded ? 'p-2' : ''}`\"\n :no-header=\"!isExpanded\"\n :backdrop=\"isMobile\"\n :shadow=\"isExpanded\"\n no-slide\n no-close-on-route-change\n no-close-on-esc\n >\n <template #header>\n <div\n class=\"d-flex align-items-center justify-content-between px-2\"\n style=\"height: 50px;\"\n >\n <img\n class=\"logo w-auto border-0\"\n :src=\"logo\"\n >\n\n <b-button\n v-if=\"isMobile\"\n variant=\"outline-light border-0\"\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"closeSidebar()\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'times']\"\n class=\"h6 mb-0 text-dark\"\n />\n </b-button>\n\n <b-button\n v-else\n variant=\"outline-light border-0\"\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"togglePin()\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'thumbtack']\"\n :class=\"`h6 mb-0 ${isPinned ? 'text-primary' : 'text-secondary'}`\"\n />\n </b-button>\n </div>\n\n <div\n v-if=\"!isExpanded\"\n class=\"d-flex align-items-center justify-content-center my-3\"\n >\n <b-button\n variant=\"link\"\n @click=\"togglePin()\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'chevron-right']\"\n class=\"h6 mb-0\"\n />\n </b-button>\n </div>\n\n <div\n v-if=\"isExpanded\"\n class=\"px-2\"\n >\n <slot\n name=\"header-expanded\"\n />\n </div>\n\n\n <hr\n v-if=\"!isExpanded\"\n class=\"my-2\"\n >\n </template>\n\n <slot\n v-if=\"isExpanded\"\n name=\"body-expanded\"\n />\n\n <template #footer>\n <slot\n v-if=\"isExpanded\"\n name=\"footer-expanded\"\n />\n </template>\n </b-sidebar>\n </div>\n\n <div\n class=\"d-flex align-items-center justify-content-center tab position-absolute p-2\"\n >\n <b-button\n v-if=\"expandOnHover && !disabledRoutes.includes($route.name)\"\n variant=\"outline-light\"\n size=\"lg\"\n class=\"d-flex align-items-center border-0\"\n @mouseover=\"onHover(true)\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'bars']\"\n class=\"h4 mb-0 text-primary\"\n />\n </b-button>\n\n <b-button\n v-else-if=\"!disabledRoutes.includes($route.name)\"\n variant=\"outline-light\"\n size=\"lg\"\n class=\"d-flex align-items-center p-2 border-0\"\n :to=\"{ name: 'root' }\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'home']\"\n class=\"h4 mb-0 text-primary\"\n />\n </b-button>\n\n <div\n v-else\n class=\"d-flex align-items-center border-0 p-2\"\n >\n <img\n class=\"icon w-auto border-0\"\n :src=\"icon\"\n >\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n expanded: {\n type: Boolean,\n default: false,\n },\n\n pinned: {\n type: Boolean,\n default: false,\n },\n\n expandOnHover: {\n type: Boolean,\n default: false,\n },\n\n disabledRoutes: {\n type: Array,\n default: () => [],\n },\n\n icon: {\n type: String,\n default: () => ''\n },\n\n logo: {\n type: String,\n default: () => ''\n },\n },\n\n data () {\n return {\n sidebar_settings : {}\n }\n },\n\n computed: {\n isExpanded: {\n get () {\n return this.expanded\n },\n\n set (expanded) {\n this.$emit('update:expanded', expanded)\n },\n },\n\n isPinned: {\n get () {\n return this.pinned\n },\n\n set (pinned) {\n this.$emit('update:pinned', pinned)\n },\n },\n\n isMobile () {\n return window.innerWidth < 576\n },\n },\n\n created () {\n this.$root.$on('close-sidebar', () => {\n this.isExpanded = false\n this.isPinned = false\n })\n },\n\n beforeDestroy () {\n this.$root.$off('close-sidebar')\n },\n\n watch: {\n '$route.name': {\n immediate: true,\n handler (name) {\n // If sidebar should be disabled on route, close and unpin when navigating to route\n if (this.disabledRoutes.includes(name)) {\n this.isPinned = false\n this.isExpanded = false\n } else if(this.expandOnHover){\n this.defaultSidebarAppearance()\n }\n },\n },\n },\n\n methods: {\n onHover (expand) {\n if (!this.pinned && this.expandOnHover) {\n setTimeout(() => {\n this.isExpanded = expand\n }, expand ? 0 : 100)\n }\n },\n\n togglePin () {\n this.saveSettings(!this.isPinned)\n this.isPinned = !this.isPinned\n },\n\n defaultSidebarAppearance () {\n const localstorage_settings = JSON.parse(window.localStorage.getItem('sidebar_settings'))\n if (localstorage_settings) {\n this.sidebar_settings = localstorage_settings\n }\n const app_sidebar = (localstorage_settings || {})[this.$root.$options.name]\n if (!this.isMobile) {\n if (app_sidebar) {\n this.isExpanded = app_sidebar.pinned\n this.isPinned = app_sidebar.pinned\n } else {\n this.openSidebar()\n }\n } else {\n this.closeSidebar()\n }\n },\n\n saveSettings (pinned) {\n if (this.sidebar_settings[this.$root.$options.name]) {\n this.sidebar_settings[this.$root.$options.name].pinned = pinned\n } else {\n this.sidebar_settings[this.$root.$options.name] = { pinned: pinned }\n }\n window.localStorage.setItem('sidebar_settings', JSON.stringify(this.sidebar_settings))\n },\n\n openSidebar () {\n this.isPinned = true\n this.isExpanded = true\n },\n\n closeSidebar () {\n this.isPinned = false\n this.isExpanded = false\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$header-height: 64px;\n\n.tab {\n z-index: 1021;\n top: 0;\n height: $header-height;\n width: 66px;\n}\n\n.icon {\n max-height: 40px;\n max-width: 40px;\n}\n\n.logo {\n max-height: 40px;\n}\n\n.sidebar-header {\n height: $header-height;\n}\n</style>\n\n<style lang=\"scss\">\n$nav-width: 320px;\n$sidebar-bg: #F4F7FA;\n\n.sidebar {\n display: flex !important;\n left: calc(-#{$nav-width}) !important;\n -webkit-transition: left 0.15s ease-in-out;\n -moz-transition: left 0.15s ease-in-out;\n -o-transition: left 0.15s ease-in-out;\n transition: left 0.15s ease-in-out;\n\n header {\n background-color: white;\n\n &.expanded {\n background-color: $sidebar-bg !important;\n }\n }\n\n &.expanded {\n left: 0 !important;\n -webkit-transition: left 0.2s ease-in-out;\n -moz-transition: left 0.2s ease-in-out;\n -o-transition: left 0.2s ease-in-out;\n transition: left 0.2s ease-in-out;\n }\n}\n</style>\n",".sidebar {\n display: flex !important;\n left: calc(-320px) !important;\n -webkit-transition: left 0.15s ease-in-out;\n -moz-transition: left 0.15s ease-in-out;\n -o-transition: left 0.15s ease-in-out;\n transition: left 0.15s ease-in-out;\n}\n.sidebar header {\n background-color: white;\n}\n.sidebar header.expanded {\n background-color: #F4F7FA !important;\n}\n.sidebar.expanded {\n left: 0 !important;\n -webkit-transition: left 0.2s ease-in-out;\n -moz-transition: left 0.2s ease-in-out;\n -o-transition: left 0.2s ease-in-out;\n transition: left 0.2s ease-in-out;\n}\n\n/*# sourceMappingURL=CSidebar.vue.map */"]}, media: undefined });
80874
+ inject("data-v-d60819ce_0", { source: ".tab[data-v-d60819ce]{z-index:1021;top:0;height:64px;width:66px}.icon[data-v-d60819ce]{max-height:40px;max-width:40px}.logo[data-v-d60819ce]{max-height:40px}.sidebar-header[data-v-d60819ce]{height:64px}", map: undefined, media: undefined })
80875
+ ,inject("data-v-d60819ce_1", { source: ".sidebar{display:flex!important;left:calc(-320px)!important;-webkit-transition:left .15s ease-in-out;-moz-transition:left .15s ease-in-out;-o-transition:left .15s ease-in-out;transition:left .15s ease-in-out}.sidebar header{background-color:#fff}.sidebar header.expanded{background-color:#f4f7fa!important}.sidebar.expanded{left:0!important;-webkit-transition:left .2s ease-in-out;-moz-transition:left .2s ease-in-out;-o-transition:left .2s ease-in-out;transition:left .2s ease-in-out}", map: undefined, media: undefined });
83086
80876
 
83087
80877
  };
83088
80878
  /* scoped */
83089
- const __vue_scope_id__$E = "data-v-6a351e13";
80879
+ const __vue_scope_id__$E = "data-v-d60819ce";
83090
80880
  /* module identifier */
83091
80881
  const __vue_module_identifier__$E = undefined;
83092
80882
  /* functional template */
@@ -83255,147 +81045,21 @@ var script$E = {
83255
81045
  const __vue_script__$E = script$E;
83256
81046
 
83257
81047
  /* template */
83258
- var __vue_render__$z = function() {
83259
- var _vm = this;
83260
- var _h = _vm.$createElement;
83261
- var _c = _vm._self._c || _h;
83262
- return _c(
83263
- "div",
83264
- { staticClass: "nav-sidebar" },
83265
- _vm._l(_vm.items, function(ref, index) {
83266
- var page = ref.page;
83267
- if (page === void 0) page = {};
83268
- var params = ref.params;
83269
- if (params === void 0) params = {};
83270
- var children = ref.children;
83271
- if (children === void 0) children = [];
83272
- return _c(
83273
- "b-button",
83274
- {
83275
- key: index,
83276
- staticClass:
83277
- "w-100 text-left text-dark text-decoration-none p-0 pt-2 nav-item",
83278
- attrs: {
83279
- variant: "link",
83280
- "active-class": "nav-active",
83281
- "exact-active-class": "nav-active",
83282
- to: { name: page.name || _vm.defaultRouteName, params: params }
83283
- }
83284
- },
83285
- [
83286
- _c(
83287
- "span",
83288
- {
83289
- staticClass: "d-inline-block w-75 text-nowrap text-truncate",
83290
- on: {
83291
- click: function($event) {
83292
- return _vm.closeSidebar()
83293
- }
83294
- }
83295
- },
83296
- [
83297
- page.icon
83298
- ? _c("font-awesome-icon", {
83299
- staticClass: "icon",
83300
- attrs: { icon: page.icon }
83301
- })
83302
- : _vm._e(),
83303
- _vm._v(" "),
83304
- _c("span", { staticClass: "title" }, [
83305
- _vm._v("\n " + _vm._s(page.title) + "\n ")
83306
- ])
83307
- ],
83308
- 1
83309
- ),
83310
- _vm._v(" "),
83311
- children.length
83312
- ? [
83313
- _c(
83314
- "b-button",
83315
- {
83316
- staticClass: "p-0 float-right",
83317
- attrs: {
83318
- variant: "link",
83319
- disabled: _vm.showChildren(page, children)
83320
- },
83321
- on: {
83322
- click: function($event) {
83323
- if ($event.target !== $event.currentTarget) {
83324
- return null
83325
- }
83326
- $event.stopPropagation();
83327
- $event.preventDefault();
83328
- return _vm.toggle(page)
83329
- }
83330
- }
83331
- },
83332
- [
83333
- !_vm.collapses[_vm.pageIndex(page)]
83334
- ? _c("font-awesome-icon", {
83335
- staticClass: "pointer-none",
83336
- attrs: { icon: ["fas", "chevron-down"] }
83337
- })
83338
- : _c("font-awesome-icon", {
83339
- staticClass: "pointer-none",
83340
- attrs: { icon: ["fas", "chevron-up"] }
83341
- })
83342
- ],
83343
- 1
83344
- ),
83345
- _vm._v(" "),
83346
- _c(
83347
- "b-collapse",
83348
- {
83349
- attrs: {
83350
- visible:
83351
- _vm.collapses[_vm.pageIndex(page)] ||
83352
- _vm.showChildren(page, children)
83353
- },
83354
- on: {
83355
- click: function($event) {
83356
- $event.stopPropagation();
83357
- $event.preventDefault();
83358
- }
83359
- }
83360
- },
83361
- [
83362
- _c(
83363
- "c-sidebar-nav-items",
83364
- _vm._g(
83365
- {
83366
- staticClass: "ml-2",
83367
- attrs: {
83368
- items: children,
83369
- "start-expanded": _vm.startExpanded,
83370
- "default-route-name": _vm.defaultRouteName
83371
- }
83372
- },
83373
- _vm.$listeners
83374
- )
83375
- )
83376
- ],
83377
- 1
83378
- )
83379
- ]
83380
- : _vm._e()
83381
- ],
83382
- 2
83383
- )
83384
- }),
83385
- 1
83386
- )
83387
- };
81048
+ var __vue_render__$z = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"nav-sidebar"},_vm._l((_vm.items),function(ref,index){
81049
+ var page = ref.page; if ( page === void 0 ) page = {};
81050
+ var params = ref.params; if ( params === void 0 ) params = {};
81051
+ var children = ref.children; if ( children === void 0 ) children = [];
81052
+ return _c('b-button',{key:index,staticClass:"w-100 text-left text-dark text-decoration-none p-0 pt-2 nav-item",attrs:{"variant":"link","active-class":"nav-active","exact-active-class":"nav-active","to":{ name: page.name || _vm.defaultRouteName, params: params }}},[_c('span',{staticClass:"d-inline-block w-75 text-nowrap text-truncate",on:{"click":function($event){return _vm.closeSidebar()}}},[(page.icon)?_c('font-awesome-icon',{staticClass:"icon",attrs:{"icon":page.icon}}):_vm._e(),_vm._v(" "),_c('span',{staticClass:"title"},[_vm._v("\n "+_vm._s(page.title)+"\n ")])],1),_vm._v(" "),(children.length)?[_c('b-button',{staticClass:"p-0 float-right",attrs:{"variant":"link","disabled":_vm.showChildren(page, children)},on:{"click":function($event){if($event.target !== $event.currentTarget){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.toggle(page)}}},[(!_vm.collapses[_vm.pageIndex(page)])?_c('font-awesome-icon',{staticClass:"pointer-none",attrs:{"icon":['fas', 'chevron-down']}}):_c('font-awesome-icon',{staticClass:"pointer-none",attrs:{"icon":['fas', 'chevron-up']}})],1),_vm._v(" "),_c('b-collapse',{attrs:{"visible":_vm.collapses[_vm.pageIndex(page)] || _vm.showChildren(page, children)},on:{"click":function($event){$event.stopPropagation();$event.preventDefault();}}},[_c('c-sidebar-nav-items',_vm._g({staticClass:"ml-2",attrs:{"items":children,"start-expanded":_vm.startExpanded,"default-route-name":_vm.defaultRouteName}},_vm.$listeners))],1)]:_vm._e()],2)}),1)};
83388
81053
  var __vue_staticRenderFns__$z = [];
83389
- __vue_render__$z._withStripped = true;
83390
81054
 
83391
81055
  /* style */
83392
81056
  const __vue_inject_styles__$F = function (inject) {
83393
81057
  if (!inject) return
83394
- inject("data-v-48e0e128_0", { source: ".pointer-none[data-v-48e0e128] {\n pointer-events: none;\n}\n.svg-inline--fa[data-v-48e0e128] {\n width: 30px;\n}\n.nav-item > span > .title[data-v-48e0e128] {\n font-family: \"Poppins-Regular\";\n}\n.nav-active > span > .icon[data-v-48e0e128] {\n color: #4D7281;\n}\n.nav-active > span > .title[data-v-48e0e128] {\n font-family: \"Poppins-SemiBold\";\n}\n\n/*# sourceMappingURL=CSidebarNavItems.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/navigation/CSidebarNavItems.vue","CSidebarNavItems.vue"],"names":[],"mappings":"AA+IA;EACA,oBAAA;AC9IA;ADiJA;EACA,WAAA;AC9IA;ADkJA;EACA,8BAAA;AC/IA;ADoJA;EACA,cAAA;ACjJA;ADoJA;EACA,+BAAA;AClJA;;AAEA,+CAA+C","file":"CSidebarNavItems.vue","sourcesContent":["<template>\n <div class=\"nav-sidebar\">\n <b-button\n v-for=\"({page = {}, params = {}, children = []}, index) of items\"\n :key=\"index\"\n variant=\"link\"\n class=\"w-100 text-left text-dark text-decoration-none p-0 pt-2 nav-item\"\n active-class=\"nav-active\"\n exact-active-class=\"nav-active\"\n :to=\"{ name: page.name || defaultRouteName, params }\"\n >\n <span\n class=\"d-inline-block w-75 text-nowrap text-truncate\"\n @click=\"closeSidebar()\"\n >\n <font-awesome-icon\n v-if=\"page.icon\"\n class=\"icon\"\n :icon=\"page.icon\"\n />\n <span\n class=\"title\"\n >\n {{ page.title }}\n </span>\n </span>\n\n <template\n v-if=\"children.length\"\n >\n <b-button\n variant=\"link\"\n class=\"p-0 float-right\"\n :disabled=\"showChildren(page, children)\"\n @click.self.stop.prevent=\"toggle(page)\"\n >\n <font-awesome-icon\n v-if=\"!collapses[pageIndex(page)]\"\n class=\"pointer-none\"\n :icon=\"['fas', 'chevron-down']\"\n />\n <font-awesome-icon\n v-else\n class=\"pointer-none\"\n :icon=\"['fas', 'chevron-up']\"\n />\n </b-button>\n\n <b-collapse\n :visible=\"collapses[pageIndex(page)] || showChildren(page, children)\"\n @click.stop.prevent\n >\n <c-sidebar-nav-items\n class=\"ml-2\"\n :items=\"children\"\n :start-expanded=\"startExpanded\"\n :default-route-name=\"defaultRouteName\"\n v-on=\"$listeners\"\n />\n </b-collapse>\n </template>\n </b-button>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'CSidebarNavItems',\n\n props: {\n /*\n * {\n page: { name, title }\n params: {...}\n }\n */\n items: {\n type: Array,\n required: true,\n default: () => [],\n },\n defaultRouteName: {\n type: String,\n required: true,\n },\n startExpanded: {\n type: Boolean,\n required: false,\n },\n },\n\n data () {\n return {\n collapses: {},\n }\n },\n\n watch: {\n items: {\n handler: function (items) {\n for (const i of items) {\n this.setState(i.page, this.startExpanded)\n }\n },\n immediate: true,\n },\n },\n\n methods: {\n closeSidebar () {\n if (window.innerWidth < 576) {\n this.$root.$emit('close-sidebar')\n }\n },\n\n pageIndex (p) {\n return p.pageID || p.name || p.title\n },\n\n toggle (p) {\n const px = this.pageIndex(p)\n this.$set(this.collapses, px, !this.collapses[px])\n },\n\n setState (p, state = false) {\n const px = this.pageIndex(p)\n this.$set(this.collapses, px, state)\n },\n\n // Recursively check for child pages that are open, so that parents can open aswell\n showChildren (page = {}, children = []) {\n if (page.pageID === this.$route.params.pageID) {\n return page.pageID === this.$route.params.pageID\n }\n\n return children.map(({ page, children }) => this.showChildren(page, children)).some(isOpen => isOpen)\n },\n },\n}\n</script>\n\n<style scoped lang=\"scss\">\n// This has to be there, so chevrons are clickable inside the button\n.pointer-none {\n pointer-events: none;\n}\n\n.svg-inline--fa {\n width: 30px;\n}\n\n.nav-item > span > {\n .title {\n font-family: 'Poppins-Regular'\n }\n}\n\n.nav-active > span > {\n .icon {\n color: #4D7281;\n }\n\n .title {\n font-family: 'Poppins-SemiBold'\n }\n}\n</style>\n",".pointer-none {\n pointer-events: none;\n}\n\n.svg-inline--fa {\n width: 30px;\n}\n\n.nav-item > span > .title {\n font-family: \"Poppins-Regular\";\n}\n\n.nav-active > span > .icon {\n color: #4D7281;\n}\n.nav-active > span > .title {\n font-family: \"Poppins-SemiBold\";\n}\n\n/*# sourceMappingURL=CSidebarNavItems.vue.map */"]}, media: undefined });
81058
+ inject("data-v-1ae13a72_0", { source: ".pointer-none[data-v-1ae13a72]{pointer-events:none}.svg-inline--fa[data-v-1ae13a72]{width:30px}.nav-item>span>.title[data-v-1ae13a72]{font-family:Poppins-Regular}.nav-active>span>.icon[data-v-1ae13a72]{color:#4d7281}.nav-active>span>.title[data-v-1ae13a72]{font-family:Poppins-SemiBold}", map: undefined, media: undefined });
83395
81059
 
83396
81060
  };
83397
81061
  /* scoped */
83398
- const __vue_scope_id__$F = "data-v-48e0e128";
81062
+ const __vue_scope_id__$F = "data-v-1ae13a72";
83399
81063
  /* module identifier */
83400
81064
  const __vue_module_identifier__$F = undefined;
83401
81065
  /* functional template */
@@ -83567,234 +81231,13 @@ var script$F = {
83567
81231
  const __vue_script__$F = script$F;
83568
81232
 
83569
81233
  /* template */
83570
- var __vue_render__$A = function() {
83571
- var _vm = this;
83572
- var _h = _vm.$createElement;
83573
- var _c = _vm._self._c || _h;
83574
- return _vm.tour !== null
83575
- ? _c("v-tour", {
83576
- attrs: {
83577
- name: _vm.tour.name,
83578
- steps: _vm.tour.steps,
83579
- options: _vm.tour,
83580
- callbacks: this.callbacks
83581
- },
83582
- on: { onStop: _vm.onStop },
83583
- scopedSlots: _vm._u(
83584
- [
83585
- {
83586
- key: "default",
83587
- fn: function(tour) {
83588
- return [
83589
- _c(
83590
- "transition",
83591
- { attrs: { name: "fade" } },
83592
- [
83593
- _vm._l(tour.steps, function(step, index) {
83594
- return [
83595
- tour.currentStep === index
83596
- ? _c(
83597
- "v-step",
83598
- {
83599
- key: index,
83600
- staticClass:
83601
- "shadow p-3 text-light text-center",
83602
- attrs: {
83603
- step: step,
83604
- "previous-step": tour.previousStep,
83605
- "next-step": tour.nextStep,
83606
- stop: tour.stop,
83607
- "is-first": tour.isFirst,
83608
- "is-last": tour.isLast,
83609
- labels: tour.labels
83610
- },
83611
- on: { onStop: _vm.onStop }
83612
- },
83613
- [
83614
- _c(
83615
- "div",
83616
- {
83617
- attrs: { slot: "header" },
83618
- slot: "header"
83619
- },
83620
- [
83621
- (step.header || {}).title
83622
- ? _c("h5", {
83623
- domProps: {
83624
- innerHTML: _vm._s(
83625
- _vm.$t(step.header.title)
83626
- )
83627
- }
83628
- })
83629
- : _vm._e()
83630
- ]
83631
- ),
83632
- _vm._v(" "),
83633
- _c(
83634
- "div",
83635
- {
83636
- attrs: { slot: "content" },
83637
- slot: "content"
83638
- },
83639
- [
83640
- _c("div", { staticClass: "p-1 mb-2" }, [
83641
- _c("div", {
83642
- domProps: {
83643
- innerHTML: _vm._s(
83644
- _vm.$t(step.content)
83645
- )
83646
- }
83647
- })
83648
- ])
83649
- ]
83650
- ),
83651
- _vm._v(" "),
83652
- _c(
83653
- "div",
83654
- {
83655
- attrs: { slot: "actions" },
83656
- slot: "actions"
83657
- },
83658
- [
83659
- _c(
83660
- "b-button",
83661
- {
83662
- attrs: { variant: "primary" },
83663
- on: { click: _vm.onStop }
83664
- },
83665
- [
83666
- tour.isLast &&
83667
- !(_vm.callbacks || {}).onNextRedirect
83668
- ? [
83669
- _vm._v(
83670
- "\n " +
83671
- _vm._s(
83672
- _vm.$t("buttons.end")
83673
- ) +
83674
- "\n "
83675
- )
83676
- ]
83677
- : [
83678
- _vm._v(
83679
- "\n " +
83680
- _vm._s(
83681
- _vm.$t("buttons.skip")
83682
- ) +
83683
- "\n "
83684
- )
83685
- ]
83686
- ],
83687
- 2
83688
- ),
83689
- _vm._v(" "),
83690
- tour.isFirst &&
83691
- (_vm.callbacks || {}).onPrevRedirect
83692
- ? _c(
83693
- "b-button",
83694
- {
83695
- attrs: {
83696
- variant: "primary",
83697
- href:
83698
- _vm.callbacks.onPrevRedirect
83699
- }
83700
- },
83701
- [
83702
- _vm._v(
83703
- "\n " +
83704
- _vm._s(
83705
- _vm.$t("buttons.previous")
83706
- ) +
83707
- "\n "
83708
- )
83709
- ]
83710
- )
83711
- : !tour.isFirst
83712
- ? _c(
83713
- "b-button",
83714
- {
83715
- attrs: { variant: "primary" },
83716
- on: { click: tour.previousStep }
83717
- },
83718
- [
83719
- _vm._v(
83720
- "\n " +
83721
- _vm._s(
83722
- _vm.$t("buttons.previous")
83723
- ) +
83724
- "\n "
83725
- )
83726
- ]
83727
- )
83728
- : _vm._e(),
83729
- _vm._v(" "),
83730
- tour.isLast &&
83731
- (_vm.callbacks || {}).onNextRedirect
83732
- ? _c(
83733
- "b-button",
83734
- {
83735
- attrs: {
83736
- variant: "primary",
83737
- href:
83738
- _vm.callbacks.onNextRedirect
83739
- }
83740
- },
83741
- [
83742
- _vm._v(
83743
- "\n " +
83744
- _vm._s(
83745
- _vm.$t("buttons.next")
83746
- ) +
83747
- "\n "
83748
- )
83749
- ]
83750
- )
83751
- : !tour.isLast
83752
- ? _c(
83753
- "b-button",
83754
- {
83755
- attrs: { variant: "primary" },
83756
- on: { click: tour.nextStep }
83757
- },
83758
- [
83759
- _vm._v(
83760
- "\n " +
83761
- _vm._s(
83762
- _vm.$t("buttons.next")
83763
- ) +
83764
- "\n "
83765
- )
83766
- ]
83767
- )
83768
- : _vm._e()
83769
- ],
83770
- 1
83771
- )
83772
- ]
83773
- )
83774
- : _vm._e()
83775
- ]
83776
- })
83777
- ],
83778
- 2
83779
- )
83780
- ]
83781
- }
83782
- }
83783
- ],
83784
- null,
83785
- false,
83786
- 1119462003
83787
- )
83788
- })
83789
- : _vm._e()
83790
- };
81234
+ var __vue_render__$A = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.tour !== null)?_c('v-tour',{attrs:{"name":_vm.tour.name,"steps":_vm.tour.steps,"options":_vm.tour,"callbacks":this.callbacks},on:{"onStop":_vm.onStop},scopedSlots:_vm._u([{key:"default",fn:function(tour){return [_c('transition',{attrs:{"name":"fade"}},[_vm._l((tour.steps),function(step,index){return [(tour.currentStep === index)?_c('v-step',{key:index,staticClass:"shadow p-3 text-light text-center",attrs:{"step":step,"previous-step":tour.previousStep,"next-step":tour.nextStep,"stop":tour.stop,"is-first":tour.isFirst,"is-last":tour.isLast,"labels":tour.labels},on:{"onStop":_vm.onStop}},[_c('div',{attrs:{"slot":"header"},slot:"header"},[((step.header || {}).title)?_c('h5',{domProps:{"innerHTML":_vm._s(_vm.$t(step.header.title))}}):_vm._e()]),_vm._v(" "),_c('div',{attrs:{"slot":"content"},slot:"content"},[_c('div',{staticClass:"p-1 mb-2"},[_c('div',{domProps:{"innerHTML":_vm._s(_vm.$t(step.content))}})])]),_vm._v(" "),_c('div',{attrs:{"slot":"actions"},slot:"actions"},[_c('b-button',{attrs:{"variant":"primary"},on:{"click":_vm.onStop}},[(tour.isLast && !(_vm.callbacks || {}).onNextRedirect)?[_vm._v("\n "+_vm._s(_vm.$t('buttons.end'))+"\n ")]:[_vm._v("\n "+_vm._s(_vm.$t('buttons.skip'))+"\n ")]],2),_vm._v(" "),(tour.isFirst && (_vm.callbacks || {}).onPrevRedirect)?_c('b-button',{attrs:{"variant":"primary","href":_vm.callbacks.onPrevRedirect}},[_vm._v("\n "+_vm._s(_vm.$t('buttons.previous'))+"\n ")]):(!tour.isFirst)?_c('b-button',{attrs:{"variant":"primary"},on:{"click":tour.previousStep}},[_vm._v("\n "+_vm._s(_vm.$t('buttons.previous'))+"\n ")]):_vm._e(),_vm._v(" "),(tour.isLast && (_vm.callbacks || {}).onNextRedirect)?_c('b-button',{attrs:{"variant":"primary","href":_vm.callbacks.onNextRedirect}},[_vm._v("\n "+_vm._s(_vm.$t('buttons.next'))+"\n ")]):(!tour.isLast)?_c('b-button',{attrs:{"variant":"primary"},on:{"click":tour.nextStep}},[_vm._v("\n "+_vm._s(_vm.$t('buttons.next'))+"\n ")]):_vm._e()],1)]):_vm._e()]})],2)]}}],null,false,1119462003)}):_vm._e()};
83791
81235
  var __vue_staticRenderFns__$A = [];
83792
- __vue_render__$A._withStripped = true;
83793
81236
 
83794
81237
  /* style */
83795
81238
  const __vue_inject_styles__$G = function (inject) {
83796
81239
  if (!inject) return
83797
- inject("data-v-0353b5b3_0", { source: ".v-step {\n background: #5C5C5C;\n max-width: 320px;\n z-index: 10000;\n border-radius: 1.1rem;\n}\n.v-step--sticky {\n position: fixed;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n.v-step--sticky .v-step__arrow {\n display: none;\n}\n.v-step__arrow,\n.v-step__arrow:before {\n position: absolute;\n width: 10px;\n height: 10px;\n background: inherit;\n}\n.v-step__arrow {\n visibility: hidden;\n}\n.v-step__arrow--dark:before {\n background: #5C5C5C;\n}\n.v-step__arrow:before {\n visibility: visible;\n content: \"\";\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n margin-left: -5px;\n}\n.v-step[data-popper-placement^=top] > .v-step__arrow {\n bottom: -5px;\n}\n.v-step[data-popper-placement^=bottom] > .v-step__arrow {\n top: -5px;\n}\n.v-step[data-popper-placement^=right] > .v-step__arrow {\n left: -5px;\n}\n.v-step[data-popper-placement^=left] > .v-step__arrow {\n right: -5px;\n}\n\n/*# sourceMappingURL=Tour.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/Tour/Tour.vue","Tour.vue"],"names":[],"mappings":"AA8IA;EACA,mBAAA;EACA,gBAAA;EACA,cAAA;EACA,qBAAA;AC7IA;AD+IA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,wCAAA;EACA,gCAAA;AC5IA;AD8IA;EACA,aAAA;AC3IA;AD6IA;;EAEA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;AC1IA;AD4IA;EACA,kBAAA;ACzIA;AD2IA;EACA,mBAAA;ACxIA;AD0IA;EACA,mBAAA;EACA,WAAA;EACA,gCAAA;EACA,wBAAA;EACA,iBAAA;ACvIA;ADyIA;EACA,YAAA;ACtIA;ADwIA;EACA,SAAA;ACrIA;ADuIA;EACA,UAAA;ACpIA;ADsIA;EACA,WAAA;ACnIA;;AAEA,mCAAmC","file":"Tour.vue","sourcesContent":["<template>\n <v-tour\n v-if=\"tour !== null\"\n :name=\"tour.name\"\n :steps=\"tour.steps\"\n :options=\"tour\"\n :callbacks=\"this.callbacks\"\n @onStop=\"onStop\"\n >\n <template slot-scope=\"tour\">\n <transition name=\"fade\">\n <template v-for=\"(step, index) of tour.steps\">\n <v-step\n v-if=\"tour.currentStep === index\"\n :key=\"index\"\n class=\"shadow p-3 text-light text-center\"\n :step=\"step\"\n :previous-step=\"tour.previousStep\"\n :next-step=\"tour.nextStep\"\n :stop=\"tour.stop\"\n :is-first=\"tour.isFirst\"\n :is-last=\"tour.isLast\"\n :labels=\"tour.labels\"\n @onStop=\"onStop\"\n >\n <div slot=\"header\">\n <h5\n v-if=\"(step.header || {}).title\"\n v-html=\"$t(step.header.title)\"\n />\n </div>\n\n <div slot=\"content\">\n <div class=\"p-1 mb-2\">\n <div v-html=\"$t(step.content)\" />\n </div>\n </div>\n\n <div\n slot=\"actions\"\n >\n <b-button\n variant=\"primary\"\n @click=\"onStop\"\n >\n <template v-if=\"tour.isLast && !(callbacks || {}).onNextRedirect\">\n {{ $t('buttons.end') }}\n </template>\n <template v-else>\n {{ $t('buttons.skip') }}\n </template>\n </b-button>\n <b-button\n v-if=\"tour.isFirst && (callbacks || {}).onPrevRedirect\"\n variant=\"primary\"\n :href=\"callbacks.onPrevRedirect\"\n >\n {{ $t('buttons.previous') }}\n </b-button>\n <b-button\n v-else-if=\"!tour.isFirst\"\n variant=\"primary\"\n @click=\"tour.previousStep\"\n >\n {{ $t('buttons.previous') }}\n </b-button>\n <b-button\n v-if=\"tour.isLast && (callbacks || {}).onNextRedirect\"\n variant=\"primary\"\n :href=\"callbacks.onNextRedirect\"\n >\n {{ $t('buttons.next') }}\n </b-button>\n <b-button\n v-else-if=\"!tour.isLast\"\n variant=\"primary\"\n @click=\"tour.nextStep\"\n >\n {{ $t('buttons.next') }}\n </b-button>\n </div>\n </v-step>\n </template>\n </transition>\n </template>\n </v-tour>\n</template>\n<script>\nexport default {\n name: 'TourComponent',\n i18nOptions: {\n namespaces: 'onboarding-tour',\n },\n props: {\n name: String,\n callbacks: {\n type: Object,\n },\n steps: {\n default: () => [],\n type: Array,\n },\n },\n computed: {\n labels () {\n return this.tour.labels\n },\n tour () {\n return {\n name: this.name,\n steps: this.steps.map(step => {\n return {\n name: step,\n target: `[data-v-onboarding=\"${step}\"]`,\n header: {\n title: this.$t(`steps.${step}.title`),\n },\n content: this.$t(`steps.${step}.content`),\n }\n }),\n }\n },\n },\n methods: {\n onStart () {\n if (JSON.parse(localStorage.getItem('corteza.tour')) && this.tour.steps.length) {\n this.$tours[this.tour.name].start()\n }\n },\n onStop () {\n localStorage.setItem('corteza.tour', JSON.stringify(false))\n this.$tours[this.tour.name].stop()\n },\n onStartClick () {\n localStorage.setItem('corteza.tour', JSON.stringify(true))\n this.onStart()\n },\n },\n}\n</script>\n\n<style lang=\"scss\">\n.v-step {\n background: #5C5C5C;\n max-width: 320px;\n z-index: 10000;\n border-radius: 1.1rem;\n}\n.v-step--sticky {\n position: fixed;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n.v-step--sticky .v-step__arrow {\n display: none;\n}\n.v-step__arrow,\n.v-step__arrow:before {\n position: absolute;\n width: 10px;\n height: 10px;\n background: inherit;\n}\n.v-step__arrow {\n visibility: hidden;\n}\n.v-step__arrow--dark:before {\n background: #5C5C5C;\n}\n.v-step__arrow:before {\n visibility: visible;\n content: \"\";\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n margin-left: -5px;\n}\n.v-step[data-popper-placement^=\"top\"] > .v-step__arrow {\n bottom: -5px;\n}\n.v-step[data-popper-placement^=\"bottom\"] > .v-step__arrow {\n top: -5px;\n}\n.v-step[data-popper-placement^=\"right\"] > .v-step__arrow {\n left: -5px;\n}\n.v-step[data-popper-placement^=\"left\"] > .v-step__arrow {\n right: -5px;\n}\n</style>",".v-step {\n background: #5C5C5C;\n max-width: 320px;\n z-index: 10000;\n border-radius: 1.1rem;\n}\n\n.v-step--sticky {\n position: fixed;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n\n.v-step--sticky .v-step__arrow {\n display: none;\n}\n\n.v-step__arrow,\n.v-step__arrow:before {\n position: absolute;\n width: 10px;\n height: 10px;\n background: inherit;\n}\n\n.v-step__arrow {\n visibility: hidden;\n}\n\n.v-step__arrow--dark:before {\n background: #5C5C5C;\n}\n\n.v-step__arrow:before {\n visibility: visible;\n content: \"\";\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n margin-left: -5px;\n}\n\n.v-step[data-popper-placement^=top] > .v-step__arrow {\n bottom: -5px;\n}\n\n.v-step[data-popper-placement^=bottom] > .v-step__arrow {\n top: -5px;\n}\n\n.v-step[data-popper-placement^=right] > .v-step__arrow {\n left: -5px;\n}\n\n.v-step[data-popper-placement^=left] > .v-step__arrow {\n right: -5px;\n}\n\n/*# sourceMappingURL=Tour.vue.map */"]}, media: undefined });
81240
+ inject("data-v-4e66e646_0", { source: ".v-step{background:#5c5c5c;max-width:320px;z-index:10000;border-radius:1.1rem}.v-step--sticky{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.v-step--sticky .v-step__arrow{display:none}.v-step__arrow,.v-step__arrow:before{position:absolute;width:10px;height:10px;background:inherit}.v-step__arrow{visibility:hidden}.v-step__arrow--dark:before{background:#5c5c5c}.v-step__arrow:before{visibility:visible;content:\"\";-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-left:-5px}.v-step[data-popper-placement^=top]>.v-step__arrow{bottom:-5px}.v-step[data-popper-placement^=bottom]>.v-step__arrow{top:-5px}.v-step[data-popper-placement^=right]>.v-step__arrow{left:-5px}.v-step[data-popper-placement^=left]>.v-step__arrow{right:-5px}", map: undefined, media: undefined });
83798
81241
 
83799
81242
  };
83800
81243
  /* scoped */
@@ -83877,32 +81320,8 @@ var script$G = {
83877
81320
  const __vue_script__$G = script$G;
83878
81321
 
83879
81322
  /* template */
83880
- var __vue_render__$B = function() {
83881
- var _vm = this;
83882
- var _h = _vm.$createElement;
83883
- var _c = _vm._self._c || _h;
83884
- return _c(
83885
- "b-modal",
83886
- {
83887
- attrs: {
83888
- id: "tourStart",
83889
- size: "lg",
83890
- title: _vm.$t("start.welcome"),
83891
- "ok-title": _vm.$t("start.show"),
83892
- "cancel-title": _vm.$t("start.skip"),
83893
- "body-class": "p-0"
83894
- },
83895
- on: { ok: _vm.onSave, cancel: _vm.onCancel }
83896
- },
83897
- [
83898
- _c("div", { staticClass: "card-body" }, [
83899
- _vm._v("\n " + _vm._s(_vm.$t("start.instructions")) + "\n ")
83900
- ])
83901
- ]
83902
- )
83903
- };
81323
+ var __vue_render__$B = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{"id":"tourStart","size":"lg","title":_vm.$t('start.welcome'),"ok-title":_vm.$t('start.show'),"cancel-title":_vm.$t('start.skip'),"body-class":"p-0"},on:{"ok":_vm.onSave,"cancel":_vm.onCancel}},[_c('div',{staticClass:"card-body"},[_vm._v("\n "+_vm._s(_vm.$t('start.instructions'))+"\n ")])])};
83904
81324
  var __vue_staticRenderFns__$B = [];
83905
- __vue_render__$B._withStripped = true;
83906
81325
 
83907
81326
  /* style */
83908
81327
  const __vue_inject_styles__$H = undefined;
@@ -83990,29 +81409,8 @@ var script$I = {
83990
81409
  const __vue_script__$I = script$I;
83991
81410
 
83992
81411
  /* template */
83993
- var __vue_render__$C = function() {
83994
- var _vm = this;
83995
- var _h = _vm.$createElement;
83996
- var _c = _vm._self._c || _h;
83997
- return _c(
83998
- "b-button",
83999
- _vm._b(
84000
- {
84001
- on: {
84002
- click: function($event) {
84003
- return _vm.$emit("action")
84004
- }
84005
- }
84006
- },
84007
- "b-button",
84008
- _vm.options,
84009
- false
84010
- ),
84011
- [_c("span", { domProps: { innerHTML: _vm._s(_vm.label) } })]
84012
- )
84013
- };
81412
+ var __vue_render__$C = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-button',_vm._b({on:{"click":function($event){return _vm.$emit('action')}}},'b-button',_vm.options,false),[_c('span',{domProps:{"innerHTML":_vm._s(_vm.label)}})])};
84014
81413
  var __vue_staticRenderFns__$C = [];
84015
- __vue_render__$C._withStripped = true;
84016
81414
 
84017
81415
  /* style */
84018
81416
  const __vue_inject_styles__$J = undefined;
@@ -84059,58 +81457,8 @@ var script$J = {
84059
81457
  const __vue_script__$J = script$J;
84060
81458
 
84061
81459
  /* template */
84062
- var __vue_render__$D = function() {
84063
- var _vm = this;
84064
- var _h = _vm.$createElement;
84065
- var _c = _vm._self._c || _h;
84066
- return _c(
84067
- "b-dropdown",
84068
- _vm._b(
84069
- {
84070
- scopedSlots: _vm._u([
84071
- {
84072
- key: "button-content",
84073
- fn: function() {
84074
- return [
84075
- _c("span", { domProps: { innerHTML: _vm._s(_vm.label) } })
84076
- ]
84077
- },
84078
- proxy: true
84079
- }
84080
- ])
84081
- },
84082
- "b-dropdown",
84083
- _vm.options,
84084
- false
84085
- ),
84086
- [
84087
- _vm._v(" "),
84088
- _vm._l(_vm.options.items || [], function(opt, i) {
84089
- return _c(
84090
- _vm.fromKind(opt),
84091
- _vm._b(
84092
- {
84093
- key: i,
84094
- tag: "component",
84095
- on: {
84096
- click: function($event) {
84097
- return _vm.$emit("action", opt.value)
84098
- }
84099
- }
84100
- },
84101
- "component",
84102
- opt,
84103
- false
84104
- ),
84105
- [_c("span", { domProps: { innerHTML: _vm._s(opt.label) } })]
84106
- )
84107
- })
84108
- ],
84109
- 2
84110
- )
84111
- };
81460
+ var __vue_render__$D = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown',_vm._b({scopedSlots:_vm._u([{key:"button-content",fn:function(){return [_c('span',{domProps:{"innerHTML":_vm._s(_vm.label)}})]},proxy:true}])},'b-dropdown',_vm.options,false),[_vm._v(" "),_vm._l((_vm.options.items || []),function(opt,i){return _c(_vm.fromKind(opt),_vm._b({key:i,tag:"component",on:{"click":function($event){return _vm.$emit('action', opt.value)}}},'component',opt,false),[_c('span',{domProps:{"innerHTML":_vm._s(opt.label)}})])})],2)};
84112
81461
  var __vue_staticRenderFns__$D = [];
84113
- __vue_render__$D._withStripped = true;
84114
81462
 
84115
81463
  /* style */
84116
81464
  const __vue_inject_styles__$K = undefined;
@@ -84149,62 +81497,8 @@ var script$K = {
84149
81497
  const __vue_script__$K = script$K;
84150
81498
 
84151
81499
  /* template */
84152
- var __vue_render__$E = function() {
84153
- var _vm = this;
84154
- var _h = _vm.$createElement;
84155
- var _c = _vm._self._c || _h;
84156
- return _c(
84157
- "b-form-select",
84158
- _vm._b(
84159
- {
84160
- staticClass: "w-auto",
84161
- attrs: { value: null },
84162
- on: {
84163
- change: function($event) {
84164
- return _vm.$emit("action", $event)
84165
- }
84166
- },
84167
- scopedSlots: _vm._u([
84168
- {
84169
- key: "first",
84170
- fn: function() {
84171
- return [
84172
- _c("option", {
84173
- attrs: { disabled: "" },
84174
- domProps: { value: null, innerHTML: _vm._s(_vm.label) }
84175
- })
84176
- ]
84177
- },
84178
- proxy: true
84179
- }
84180
- ])
84181
- },
84182
- "b-form-select",
84183
- _vm.options,
84184
- false
84185
- ),
84186
- [
84187
- _vm._v(" "),
84188
- _vm._l(_vm.options.items || [], function(opt, i) {
84189
- return _c(
84190
- "option",
84191
- _vm._b(
84192
- {
84193
- key: i,
84194
- domProps: { value: opt.value, innerHTML: _vm._s(opt.label) }
84195
- },
84196
- "option",
84197
- opt,
84198
- false
84199
- )
84200
- )
84201
- })
84202
- ],
84203
- 2
84204
- )
84205
- };
81500
+ var __vue_render__$E = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-select',_vm._b({staticClass:"w-auto",attrs:{"value":null},on:{"change":function($event){return _vm.$emit('action', $event)}},scopedSlots:_vm._u([{key:"first",fn:function(){return [_c('option',{attrs:{"disabled":""},domProps:{"value":null,"innerHTML":_vm._s(_vm.label)}})]},proxy:true}])},'b-form-select',_vm.options,false),[_vm._v(" "),_vm._l((_vm.options.items || []),function(opt,i){return _c('option',_vm._b({key:i,domProps:{"value":opt.value,"innerHTML":_vm._s(opt.label)}},'option',opt,false))})],2)};
84206
81501
  var __vue_staticRenderFns__$E = [];
84207
- __vue_render__$E._withStripped = true;
84208
81502
 
84209
81503
  /* style */
84210
81504
  const __vue_inject_styles__$L = undefined;
@@ -84268,45 +81562,8 @@ var script$L = {
84268
81562
  const __vue_script__$L = script$L;
84269
81563
 
84270
81564
  /* template */
84271
- var __vue_render__$F = function() {
84272
- var _vm = this;
84273
- var _h = _vm.$createElement;
84274
- var _c = _vm._self._c || _h;
84275
- return _c(
84276
- "div",
84277
- [
84278
- _vm.toast.link
84279
- ? _c(
84280
- "a",
84281
- _vm._b(
84282
- { domProps: { innerHTML: _vm._s(_vm.toast.linkLabel) } },
84283
- "a",
84284
- _vm.toast.linkOpts,
84285
- false
84286
- )
84287
- )
84288
- : _vm.toast.routerLink
84289
- ? _c(
84290
- "router-link",
84291
- _vm._b(
84292
- { attrs: { to: _vm.toast.routerLink } },
84293
- "router-link",
84294
- _vm.toast.linkOpts,
84295
- false
84296
- ),
84297
- [
84298
- _c("span", {
84299
- domProps: { innerHTML: _vm._s(_vm.toast.linkLabel) }
84300
- })
84301
- ]
84302
- )
84303
- : _vm._e()
84304
- ],
84305
- 1
84306
- )
84307
- };
81565
+ var __vue_render__$F = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.toast.link)?_c('a',_vm._b({domProps:{"innerHTML":_vm._s(_vm.toast.linkLabel)}},'a',_vm.toast.linkOpts,false)):(_vm.toast.routerLink)?_c('router-link',_vm._b({attrs:{"to":_vm.toast.routerLink}},'router-link',_vm.toast.linkOpts,false),[_c('span',{domProps:{"innerHTML":_vm._s(_vm.toast.linkLabel)}})]):_vm._e()],1)};
84308
81566
  var __vue_staticRenderFns__$F = [];
84309
- __vue_render__$F._withStripped = true;
84310
81567
 
84311
81568
  /* style */
84312
81569
  const __vue_inject_styles__$M = undefined;
@@ -84380,97 +81637,16 @@ var script$M = {
84380
81637
  const __vue_script__$M = script$M;
84381
81638
 
84382
81639
  /* template */
84383
- var __vue_render__$G = function() {
84384
- var _vm = this;
84385
- var _h = _vm.$createElement;
84386
- var _c = _vm._self._c || _h;
84387
- return _c(
84388
- "div",
84389
- _vm._l(_vm.toasts, function(t) {
84390
- return _c(
84391
- "b-toast",
84392
- _vm._b(
84393
- {
84394
- key: t.id,
84395
- attrs: {
84396
- visible: "",
84397
- title: t.payload.title,
84398
- "no-close-button": !t.actions.hide,
84399
- "toast-class": "overflow-unset"
84400
- },
84401
- on: {
84402
- hide: function($event) {
84403
- t.actions.hide ? t.actions.hide.cb(t) : _vm.evtSink;
84404
- }
84405
- }
84406
- },
84407
- "b-toast",
84408
- t.options || {},
84409
- false
84410
- ),
84411
- [
84412
- _c(
84413
- "b-card",
84414
- {
84415
- staticClass: "border-0",
84416
- attrs: {
84417
- "header-bg-variant": "transparent",
84418
- "bg-variant": "transparent",
84419
- "body-class": "p-0"
84420
- }
84421
- },
84422
- [
84423
- _c("b-card-text", [
84424
- _vm._v("\n " + _vm._s(t.payload.notes) + "\n ")
84425
- ]),
84426
- _vm._v(" "),
84427
- t.payload.link
84428
- ? _c(
84429
- "b-card-text",
84430
- [_c("c-toaster-link", { attrs: { toast: t } })],
84431
- 1
84432
- )
84433
- : _vm._e(),
84434
- _vm._v(" "),
84435
- _vm._l(_vm.extraActions(t), function(ref) {
84436
- var name = ref[0];
84437
- var act = ref[1];
84438
- return _c(
84439
- _vm.actComponent(act),
84440
- _vm._b(
84441
- {
84442
- key: name,
84443
- tag: "component",
84444
- staticClass: "mr-1",
84445
- on: {
84446
- action: function($event) {
84447
- act.cb ? act.cb(t, $event) : _vm.evtSink;
84448
- }
84449
- }
84450
- },
84451
- "component",
84452
- act,
84453
- false
84454
- )
84455
- )
84456
- })
84457
- ],
84458
- 2
84459
- )
84460
- ],
84461
- 1
84462
- )
84463
- }),
84464
- 1
84465
- )
84466
- };
81640
+ var __vue_render__$G = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.toasts),function(t){return _c('b-toast',_vm._b({key:t.id,attrs:{"visible":"","title":t.payload.title,"no-close-button":!t.actions.hide,"toast-class":"overflow-unset"},on:{"hide":function($event){t.actions.hide ? t.actions.hide.cb(t) : _vm.evtSink;}}},'b-toast',t.options || {},false),[_c('b-card',{staticClass:"border-0",attrs:{"header-bg-variant":"transparent","bg-variant":"transparent","body-class":"p-0"}},[_c('b-card-text',[_vm._v("\n "+_vm._s(t.payload.notes)+"\n ")]),_vm._v(" "),(t.payload.link)?_c('b-card-text',[_c('c-toaster-link',{attrs:{"toast":t}})],1):_vm._e(),_vm._v(" "),_vm._l((_vm.extraActions(t)),function(ref){
81641
+ var name = ref[0];
81642
+ var act = ref[1];
81643
+ return _c(_vm.actComponent(act),_vm._b({key:name,tag:"component",staticClass:"mr-1",on:{"action":function($event){act.cb ? act.cb(t, $event) : _vm.evtSink;}}},'component',act,false))})],2)],1)}),1)};
84467
81644
  var __vue_staticRenderFns__$G = [];
84468
- __vue_render__$G._withStripped = true;
84469
81645
 
84470
81646
  /* style */
84471
81647
  const __vue_inject_styles__$N = function (inject) {
84472
81648
  if (!inject) return
84473
- inject("data-v-48660d74_0", { source: ".toast.overflow-unset {\n overflow: unset !important;\n}\n\n/*# sourceMappingURL=CToaster.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/toaster/CToaster.vue","CToaster.vue"],"names":[],"mappings":"AA6EA;EACA,0BAAA;AC5EA;;AAEA,uCAAuC","file":"CToaster.vue","sourcesContent":["<template>\n <div>\n <b-toast\n v-for=\"t in toasts\"\n :key=\"t.id\"\n visible\n v-bind=\"t.options || {}\"\n :title=\"t.payload.title\"\n :no-close-button=\"!t.actions.hide\"\n toast-class=\"overflow-unset\"\n @hide=\"t.actions.hide ? t.actions.hide.cb(t) : evtSink\"\n >\n <b-card\n header-bg-variant=\"transparent\"\n bg-variant=\"transparent\"\n body-class=\"p-0\"\n class=\"border-0\"\n >\n <b-card-text>\n {{ t.payload.notes }}\n </b-card-text>\n\n <b-card-text v-if=\"t.payload.link\">\n <c-toaster-link :toast=\"t\" />\n </b-card-text>\n\n <component\n :is=\"actComponent(act)\"\n v-for=\"([name, act]) in extraActions(t)\"\n :key=\"name\"\n class=\"mr-1\"\n v-bind=\"act\"\n @action=\"act.cb ? act.cb(t, $event) : evtSink\"\n />\n </b-card>\n </b-toast>\n </div>\n</template>\n\n<script lang=\"js\">\nimport * as actions from './actions'\nimport CToasterLink from './CToasterLink.vue'\n\nexport default {\n components: {\n CToasterLink,\n },\n\n props: {\n toasts: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n\n methods: {\n extraActions ({ actions = {} }) {\n const { hide, ...act } = actions\n return Object.entries(act)\n },\n\n actComponent ({ kind }) {\n const act = actions[kind]\n if (!act) {\n throw new Error('toast.actionKind.unknown')\n }\n return act\n },\n\n evtSink () {},\n },\n}\n</script>\n\n<style lang=\"scss\">\n// BS only provides overflow-[auto, hidden]\n.toast.overflow-unset {\n overflow: unset!important;\n}\n</style>\n",".toast.overflow-unset {\n overflow: unset !important;\n}\n\n/*# sourceMappingURL=CToaster.vue.map */"]}, media: undefined });
81649
+ inject("data-v-09d66b04_0", { source: ".toast.overflow-unset{overflow:unset!important}", map: undefined, media: undefined });
84474
81650
 
84475
81651
  };
84476
81652
  /* scoped */
@@ -84533,78 +81709,13 @@ var script$N = {
84533
81709
  const __vue_script__$N = script$N;
84534
81710
 
84535
81711
  /* template */
84536
- var __vue_render__$H = function() {
84537
- var _vm = this;
84538
- var _h = _vm.$createElement;
84539
- var _c = _vm._self._c || _h;
84540
- return _c(
84541
- "b-sidebar",
84542
- {
84543
- attrs: {
84544
- "header-class":
84545
- "d-flex align-items-center justify-content-between reminder-sidebar-header px-2 py-3 border-bottom",
84546
- "body-class": "bg-white px-2",
84547
- title: _vm.title,
84548
- backdrop: _vm.isMobile,
84549
- "no-footer": "",
84550
- right: "",
84551
- shadow: "",
84552
- "no-close-on-route-change": "",
84553
- "no-close-on-esc": ""
84554
- },
84555
- scopedSlots: _vm._u([
84556
- {
84557
- key: "header",
84558
- fn: function() {
84559
- return [
84560
- _c("h4", { staticClass: "text-primary mb-0" }, [
84561
- _c("b", [_vm._v(_vm._s(_vm.title))])
84562
- ]),
84563
- _vm._v(" "),
84564
- _c(
84565
- "b-button",
84566
- {
84567
- staticClass:
84568
- "d-flex align-items-center justify-content-center p-2",
84569
- attrs: { variant: "outline-light border-0" },
84570
- on: {
84571
- click: function($event) {
84572
- _vm.isVisible = false;
84573
- }
84574
- }
84575
- },
84576
- [
84577
- _c("font-awesome-icon", {
84578
- staticClass: "h6 mb-0 text-dark",
84579
- attrs: { icon: ["fas", "times"] }
84580
- })
84581
- ],
84582
- 1
84583
- )
84584
- ]
84585
- },
84586
- proxy: true
84587
- }
84588
- ]),
84589
- model: {
84590
- value: _vm.isVisible,
84591
- callback: function($$v) {
84592
- _vm.isVisible = $$v;
84593
- },
84594
- expression: "isVisible"
84595
- }
84596
- },
84597
- [_vm._v(" "), _vm._t("default")],
84598
- 2
84599
- )
84600
- };
81712
+ var __vue_render__$H = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-sidebar',{attrs:{"header-class":"d-flex align-items-center justify-content-between reminder-sidebar-header px-2 py-3 border-bottom","body-class":"bg-white px-2","title":_vm.title,"backdrop":_vm.isMobile,"no-footer":"","right":"","shadow":"","no-close-on-route-change":"","no-close-on-esc":""},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('h4',{staticClass:"text-primary mb-0"},[_c('b',[_vm._v(_vm._s(_vm.title))])]),_vm._v(" "),_c('b-button',{staticClass:"d-flex align-items-center justify-content-center p-2",attrs:{"variant":"outline-light border-0"},on:{"click":function($event){_vm.isVisible = false;}}},[_c('font-awesome-icon',{staticClass:"h6 mb-0 text-dark",attrs:{"icon":['fas', 'times']}})],1)]},proxy:true}]),model:{value:(_vm.isVisible),callback:function ($$v) {_vm.isVisible=$$v;},expression:"isVisible"}},[_vm._v(" "),_vm._t("default")],2)};
84601
81713
  var __vue_staticRenderFns__$H = [];
84602
- __vue_render__$H._withStripped = true;
84603
81714
 
84604
81715
  /* style */
84605
81716
  const __vue_inject_styles__$O = function (inject) {
84606
81717
  if (!inject) return
84607
- inject("data-v-2125ea60_0", { source: ".reminder-sidebar-header {\n height: 64px;\n background-color: #F4F7FA;\n}\n\n/*# sourceMappingURL=CReminderSidebar.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/reminders/CReminderSidebar.vue","CReminderSidebar.vue"],"names":[],"mappings":"AAsEA;EACA,YAAA;EACA,yBAAA;ACrEA;;AAEA,+CAA+C","file":"CReminderSidebar.vue","sourcesContent":["<template>\n <b-sidebar\n v-model=\"isVisible\"\n header-class=\"d-flex align-items-center justify-content-between reminder-sidebar-header px-2 py-3 border-bottom\"\n body-class=\"bg-white px-2\"\n :title=\"title\"\n :backdrop=\"isMobile\"\n no-footer\n right\n shadow\n no-close-on-route-change\n no-close-on-esc\n >\n <template #header>\n <h4\n class=\"text-primary mb-0\"\n >\n <b>{{ title }}</b>\n </h4>\n\n <b-button\n variant=\"outline-light border-0\"\n class=\"d-flex align-items-center justify-content-center p-2\"\n @click=\"isVisible = false\"\n >\n <font-awesome-icon\n :icon=\"['fas', 'times']\"\n class=\"h6 mb-0 text-dark\"\n />\n </b-button>\n </template>\n\n <slot />\n </b-sidebar>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n title: {\n type: String,\n default: '',\n },\n\n visible: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n\n computed: {\n isVisible: {\n get () {\n return this.visible\n },\n\n set (visible) {\n this.$emit('update:visible', visible)\n },\n },\n\n isMobile () {\n return window.innerWidth < 576\n },\n },\n}\n</script>\n\n<style lang=\"scss\">\n.reminder-sidebar-header {\n height: 64px;\n background-color: #F4F7FA;\n}\n</style>\n",".reminder-sidebar-header {\n height: 64px;\n background-color: #F4F7FA;\n}\n\n/*# sourceMappingURL=CReminderSidebar.vue.map */"]}, media: undefined });
81718
+ inject("data-v-6d2b83fd_0", { source: ".reminder-sidebar-header{height:64px;background-color:#f4f7fa}", map: undefined, media: undefined });
84608
81719
 
84609
81720
  };
84610
81721
  /* scoped */
@@ -84698,63 +81809,17 @@ var script$O = {
84698
81809
  const __vue_script__$O = script$O;
84699
81810
 
84700
81811
  /* template */
84701
- var __vue_render__$I = function() {
84702
- var _vm = this;
84703
- var _h = _vm.$createElement;
84704
- var _c = _vm._self._c || _h;
84705
- return _c(
84706
- "div",
84707
- { staticClass: "d-flex align-items-center" },
84708
- [
84709
- _c("font-awesome-icon", {
84710
- staticClass: "handle align-baseline mr-3 text-primary",
84711
- attrs: { icon: ["fas", "grip-vertical"] }
84712
- }),
84713
- _vm._v(" "),
84714
- _c("b", { staticClass: "cursor-default text-dark text-truncate" }, [
84715
- _vm._v("\n " + _vm._s(_vm.fieldLabel) + "\n ")
84716
- ]),
84717
- _vm._v(" "),
84718
- _vm.field.isSystem
84719
- ? _c("small", { staticClass: "cursor-default ml-1 text-truncate" }, [
84720
- _vm._v("\n " + _vm._s(_vm.systemFieldLabel) + "\n ")
84721
- ])
84722
- : _vm._e(),
84723
- _vm._v(" "),
84724
- _vm.isSelected
84725
- ? _c("font-awesome-icon", {
84726
- staticClass: "align-baseline ml-auto text-muted pointer",
84727
- attrs: { icon: ["far", "eye"] },
84728
- on: {
84729
- click: function($event) {
84730
- return _vm.$emit("unselect-field", _vm.field)
84731
- }
84732
- }
84733
- })
84734
- : _c("font-awesome-icon", {
84735
- staticClass: "align-baseline ml-auto text-muted pointer",
84736
- attrs: { icon: ["fas", "eye-slash"] },
84737
- on: {
84738
- click: function($event) {
84739
- return _vm.$emit("select-field", _vm.field)
84740
- }
84741
- }
84742
- })
84743
- ],
84744
- 1
84745
- )
84746
- };
81812
+ var __vue_render__$I = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"d-flex align-items-center"},[_c('font-awesome-icon',{staticClass:"handle align-baseline mr-3 text-primary",attrs:{"icon":['fas', 'grip-vertical']}}),_vm._v(" "),_c('b',{staticClass:"cursor-default text-dark text-truncate"},[_vm._v("\n "+_vm._s(_vm.fieldLabel)+"\n ")]),_vm._v(" "),(_vm.field.isSystem)?_c('small',{staticClass:"cursor-default ml-1 text-truncate"},[_vm._v("\n "+_vm._s(_vm.systemFieldLabel)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.isSelected)?_c('font-awesome-icon',{staticClass:"align-baseline ml-auto text-muted pointer",attrs:{"icon":['far', 'eye']},on:{"click":function($event){return _vm.$emit('unselect-field', _vm.field)}}}):_c('font-awesome-icon',{staticClass:"align-baseline ml-auto text-muted pointer",attrs:{"icon":['fas', 'eye-slash']},on:{"click":function($event){return _vm.$emit('select-field', _vm.field)}}})],1)};
84747
81813
  var __vue_staticRenderFns__$I = [];
84748
- __vue_render__$I._withStripped = true;
84749
81814
 
84750
81815
  /* style */
84751
81816
  const __vue_inject_styles__$P = function (inject) {
84752
81817
  if (!inject) return
84753
- inject("data-v-751c31b8_0", { source: "\n.handle[data-v-751c31b8] {\n cursor: grab;\n}\n.cursor-default[data-v-751c31b8] {\n cursor: default;\n}\n", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/field/FieldItem.vue"],"names":[],"mappings":";AAoEA;EACA,YAAA;AACA;AAEA;EACA,eAAA;AACA","file":"FieldItem.vue","sourcesContent":["<template>\n <div class=\"d-flex align-items-center\">\n <font-awesome-icon\n :icon=\"['fas', 'grip-vertical']\"\n class=\"handle align-baseline mr-3 text-primary\"\n />\n <b class=\"cursor-default text-dark text-truncate\">\n {{ fieldLabel }}\n </b>\n <small v-if=\"field.isSystem\" class=\"cursor-default ml-1 text-truncate\">\n {{ systemFieldLabel }}\n </small>\n <font-awesome-icon\n v-if=\"isSelected\"\n :icon=\"['far', 'eye']\"\n class=\"align-baseline ml-auto text-muted pointer\"\n @click=\"$emit('unselect-field', field)\"\n />\n <font-awesome-icon\n v-else\n :icon=\"['fas', 'eye-slash']\"\n class=\"align-baseline ml-auto text-muted pointer\"\n @click=\"$emit('select-field', field)\"\n />\n </div>\n</template>\n\n<script>\nexport default {\n name: \"FieldItem\",\n\n props: {\n field: {\n type: Object,\n required: true,\n },\n\n isSelected: {\n type: Boolean,\n required: true,\n },\n\n selectedFields: {\n type: Array,\n required: true,\n },\n\n systemFieldLabel: {\n type: String,\n required: true,\n }\n },\n\n computed: {\n fieldLabel() {\n let fieldLabel = this.field.name || \"\";\n\n if (this.field.label) {\n fieldLabel = `${this.field.label} (${this.field.name})`;\n }\n\n fieldLabel += this.field.isRequired ? \" *\" : \"\";\n return fieldLabel;\n },\n },\n};\n</script>\n<style scoped>\n.handle {\n cursor: grab;\n}\n\n.cursor-default {\n cursor: default;\n}\n</style>\n"]}, media: undefined });
81818
+ inject("data-v-475bd41a_0", { source: ".handle[data-v-475bd41a]{cursor:grab}.cursor-default[data-v-475bd41a]{cursor:default}", map: undefined, media: undefined });
84754
81819
 
84755
81820
  };
84756
81821
  /* scoped */
84757
- const __vue_scope_id__$P = "data-v-751c31b8";
81822
+ const __vue_scope_id__$P = "data-v-475bd41a";
84758
81823
  /* module identifier */
84759
81824
  const __vue_module_identifier__$P = undefined;
84760
81825
  /* functional template */
@@ -84944,264 +82009,17 @@ var script$P = {
84944
82009
  const __vue_script__$P = script$P;
84945
82010
 
84946
82011
  /* template */
84947
- var __vue_render__$J = function() {
84948
- var _vm = this;
84949
- var _h = _vm.$createElement;
84950
- var _c = _vm._self._c || _h;
84951
- return _c(
84952
- "div",
84953
- { staticClass: "overflow-hidden" },
84954
- [
84955
- _c(
84956
- "b-input-group",
84957
- [
84958
- _c("b-input", {
84959
- staticClass: "text-truncate",
84960
- attrs: {
84961
- type: "search",
84962
- placeholder: _vm.labels.searchPlaceholder
84963
- },
84964
- model: {
84965
- value: _vm.query,
84966
- callback: function($$v) {
84967
- _vm.query = typeof $$v === "string" ? $$v.trim() : $$v;
84968
- },
84969
- expression: "query"
84970
- }
84971
- }),
84972
- _vm._v(" "),
84973
- _c(
84974
- "b-input-group-append",
84975
- [
84976
- _c(
84977
- "b-input-group-text",
84978
- { staticClass: "text-primary bg-white border-left-0" },
84979
- [
84980
- _c("font-awesome-icon", {
84981
- attrs: { icon: ["fas", "search"] }
84982
- })
84983
- ],
84984
- 1
84985
- )
84986
- ],
84987
- 1
84988
- )
84989
- ],
84990
- 1
84991
- ),
84992
- _vm._v(" "),
84993
- _c(
84994
- "b-row",
84995
- { staticClass: "mt-2 h-100" },
84996
- [
84997
- _c(
84998
- "b-col",
84999
- { attrs: { cols: "12", sm: "6" } },
85000
- [
85001
- _c(
85002
- "div",
85003
- { staticClass: "d-flex align-items-center" },
85004
- [
85005
- _c("label", { staticClass: "text-primary mb-0" }, [
85006
- _vm._v(
85007
- "\n " +
85008
- _vm._s(_vm.labels.availableFieldsLabel) +
85009
- "\n "
85010
- )
85011
- ]),
85012
- _vm._v(" "),
85013
- _c(
85014
- "b-button",
85015
- {
85016
- staticClass: "ml-auto px-0 text-muted",
85017
- class: [_vm.allSelected ? "visible" : "invisible"],
85018
- attrs: { variant: "link" },
85019
- on: {
85020
- click: function($event) {
85021
- $event.preventDefault();
85022
- _vm.selectedFields = [].concat(_vm.allFields);
85023
- }
85024
- }
85025
- },
85026
- [
85027
- _vm._v(
85028
- "\n " +
85029
- _vm._s(_vm.labels.selectAllFieldsLabel) +
85030
- "\n "
85031
- )
85032
- ]
85033
- )
85034
- ],
85035
- 1
85036
- ),
85037
- _vm._v(" "),
85038
- _c(
85039
- "b-list-group",
85040
- { attrs: { vertical: "" } },
85041
- [
85042
- _c(
85043
- "draggable",
85044
- {
85045
- key: _vm.filteredAvailableFields.length,
85046
- staticClass: "overflow-auto",
85047
- style: "" + _vm.maxHeight,
85048
- attrs: {
85049
- handle: ".handle",
85050
- disabled: _vm.disabled,
85051
- group: _vm.group,
85052
- value: _vm.filteredAvailableFields
85053
- }
85054
- },
85055
- _vm._l(_vm.filteredAvailableFields, function(field) {
85056
- return _c(
85057
- "b-list-group-item",
85058
- {
85059
- key: field.name,
85060
- staticClass: "mb-3 border rounded",
85061
- on: {
85062
- dblclick: function($event) {
85063
- return _vm.selectField(field)
85064
- }
85065
- }
85066
- },
85067
- [
85068
- _c("field-item", {
85069
- attrs: {
85070
- field: field,
85071
- "selected-fields": _vm.selectedFields,
85072
- "is-selected": false,
85073
- "system-field-label": _vm.labels.systemFieldLabel
85074
- },
85075
- on: { "select-field": _vm.selectField }
85076
- })
85077
- ],
85078
- 1
85079
- )
85080
- }),
85081
- 1
85082
- )
85083
- ],
85084
- 1
85085
- )
85086
- ],
85087
- 1
85088
- ),
85089
- _vm._v(" "),
85090
- _c(
85091
- "b-col",
85092
- { staticClass: "pl-sm-0", attrs: { cols: "12", sm: "6" } },
85093
- [
85094
- _c(
85095
- "div",
85096
- { staticClass: "d-flex align-items-center" },
85097
- [
85098
- _c("label", { staticClass: "mb-0 text-primary" }, [
85099
- _vm._v(
85100
- "\n " +
85101
- _vm._s(_vm.labels.selectedFieldsLabel) +
85102
- "\n "
85103
- )
85104
- ]),
85105
- _vm._v(" "),
85106
- _c(
85107
- "b-button",
85108
- {
85109
- staticClass: "ml-auto px-0 text-muted",
85110
- class: [_vm.allUnselected ? "visible" : "invisible"],
85111
- attrs: { variant: "link" },
85112
- on: {
85113
- click: function($event) {
85114
- $event.preventDefault();
85115
- _vm.selectedFields = [];
85116
- }
85117
- }
85118
- },
85119
- [
85120
- _vm._v(
85121
- "\n " +
85122
- _vm._s(_vm.labels.unselectAllFieldsLabel) +
85123
- "\n "
85124
- )
85125
- ]
85126
- )
85127
- ],
85128
- 1
85129
- ),
85130
- _vm._v(" "),
85131
- _c(
85132
- "b-list-group",
85133
- { attrs: { vertical: "" } },
85134
- [
85135
- _c(
85136
- "draggable",
85137
- {
85138
- staticClass: "overflow-auto",
85139
- style: "" + _vm.maxHeight,
85140
- attrs: {
85141
- handle: ".handle",
85142
- disabled: _vm.disabled,
85143
- group: _vm.group
85144
- },
85145
- model: {
85146
- value: _vm.selectedFields,
85147
- callback: function($$v) {
85148
- _vm.selectedFields = $$v;
85149
- },
85150
- expression: "selectedFields"
85151
- }
85152
- },
85153
- _vm._l(_vm.filteredSelectedFields, function(field) {
85154
- return _c(
85155
- "b-list-group-item",
85156
- {
85157
- key: field.name,
85158
- staticClass: "mb-3 border rounded",
85159
- on: {
85160
- dblclick: function($event) {
85161
- return _vm.unselectField(field)
85162
- }
85163
- }
85164
- },
85165
- [
85166
- _c("field-item", {
85167
- attrs: {
85168
- field: field,
85169
- "selected-fields": _vm.selectedFields,
85170
- "is-selected": true,
85171
- "system-field-label": _vm.labels.systemFieldLabel
85172
- },
85173
- on: { "unselect-field": _vm.unselectField }
85174
- })
85175
- ],
85176
- 1
85177
- )
85178
- }),
85179
- 1
85180
- )
85181
- ],
85182
- 1
85183
- )
85184
- ],
85185
- 1
85186
- )
85187
- ],
85188
- 1
85189
- )
85190
- ],
85191
- 1
85192
- )
85193
- };
82012
+ var __vue_render__$J = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"overflow-hidden"},[_c('b-input-group',[_c('b-input',{staticClass:"text-truncate",attrs:{"type":"search","placeholder":_vm.labels.searchPlaceholder},model:{value:(_vm.query),callback:function ($$v) {_vm.query=(typeof $$v === 'string'? $$v.trim(): $$v);},expression:"query"}}),_vm._v(" "),_c('b-input-group-append',[_c('b-input-group-text',{staticClass:"text-primary bg-white border-left-0"},[_c('font-awesome-icon',{attrs:{"icon":['fas', 'search']}})],1)],1)],1),_vm._v(" "),_c('b-row',{staticClass:"mt-2 h-100"},[_c('b-col',{attrs:{"cols":"12","sm":"6"}},[_c('div',{staticClass:"d-flex align-items-center"},[_c('label',{staticClass:"text-primary mb-0"},[_vm._v("\n "+_vm._s(_vm.labels.availableFieldsLabel)+"\n ")]),_vm._v(" "),_c('b-button',{staticClass:"ml-auto px-0 text-muted",class:[_vm.allSelected ? 'visible' : 'invisible'],attrs:{"variant":"link"},on:{"click":function($event){$event.preventDefault();_vm.selectedFields = [].concat( _vm.allFields );}}},[_vm._v("\n "+_vm._s(_vm.labels.selectAllFieldsLabel)+"\n ")])],1),_vm._v(" "),_c('b-list-group',{attrs:{"vertical":""}},[_c('draggable',{key:_vm.filteredAvailableFields.length,staticClass:"overflow-auto",style:(("" + _vm.maxHeight)),attrs:{"handle":".handle","disabled":_vm.disabled,"group":_vm.group,"value":_vm.filteredAvailableFields}},_vm._l((_vm.filteredAvailableFields),function(field){return _c('b-list-group-item',{key:field.name,staticClass:"mb-3 border rounded",on:{"dblclick":function($event){return _vm.selectField(field)}}},[_c('field-item',{attrs:{"field":field,"selected-fields":_vm.selectedFields,"is-selected":false,"system-field-label":_vm.labels.systemFieldLabel},on:{"select-field":_vm.selectField}})],1)}),1)],1)],1),_vm._v(" "),_c('b-col',{staticClass:"pl-sm-0",attrs:{"cols":"12","sm":"6"}},[_c('div',{staticClass:"d-flex align-items-center"},[_c('label',{staticClass:"mb-0 text-primary"},[_vm._v("\n "+_vm._s(_vm.labels.selectedFieldsLabel)+"\n ")]),_vm._v(" "),_c('b-button',{staticClass:"ml-auto px-0 text-muted",class:[_vm.allUnselected ? 'visible' : 'invisible'],attrs:{"variant":"link"},on:{"click":function($event){$event.preventDefault();_vm.selectedFields = [];}}},[_vm._v("\n "+_vm._s(_vm.labels.unselectAllFieldsLabel)+"\n ")])],1),_vm._v(" "),_c('b-list-group',{attrs:{"vertical":""}},[_c('draggable',{staticClass:"overflow-auto",style:(("" + _vm.maxHeight)),attrs:{"handle":".handle","disabled":_vm.disabled,"group":_vm.group},model:{value:(_vm.selectedFields),callback:function ($$v) {_vm.selectedFields=$$v;},expression:"selectedFields"}},_vm._l((_vm.filteredSelectedFields),function(field){return _c('b-list-group-item',{key:field.name,staticClass:"mb-3 border rounded",on:{"dblclick":function($event){return _vm.unselectField(field)}}},[_c('field-item',{attrs:{"field":field,"selected-fields":_vm.selectedFields,"is-selected":true,"system-field-label":_vm.labels.systemFieldLabel},on:{"unselect-field":_vm.unselectField}})],1)}),1)],1)],1)],1)],1)};
85194
82013
  var __vue_staticRenderFns__$J = [];
85195
- __vue_render__$J._withStripped = true;
85196
82014
 
85197
82015
  /* style */
85198
82016
  const __vue_inject_styles__$Q = function (inject) {
85199
82017
  if (!inject) return
85200
- inject("data-v-d614af34_0", { source: ".handle[data-v-d614af34] {\n cursor: grab;\n}\n\n/*# sourceMappingURL=FieldPicker.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/field/FieldPicker.vue","FieldPicker.vue"],"names":[],"mappings":"AA2RA;EACA,YAAA;AC1RA;;AAEA,0CAA0C","file":"FieldPicker.vue","sourcesContent":["<template>\n <div\n class=\"overflow-hidden\"\n >\n <b-input-group>\n <b-input\n v-model.trim=\"query\"\n type=\"search\"\n :placeholder=\"labels.searchPlaceholder\"\n class=\"text-truncate\"\n />\n <b-input-group-append>\n <b-input-group-text class=\"text-primary bg-white border-left-0\">\n <font-awesome-icon\n :icon=\"['fas', 'search']\"\n />\n </b-input-group-text>\n </b-input-group-append>\n </b-input-group>\n\n <b-row\n class=\"mt-2 h-100\"\n >\n <b-col\n cols=\"12\"\n sm=\"6\"\n >\n <div class=\"d-flex align-items-center\">\n <label\n class=\"text-primary mb-0\"\n >\n {{ labels.availableFieldsLabel }}\n </label>\n <b-button\n variant=\"link\"\n :class=\"[allSelected ? 'visible' : 'invisible']\"\n class=\"ml-auto px-0 text-muted\"\n @click.prevent=\"selectedFields = [...allFields]\"\n >\n {{ labels.selectAllFieldsLabel }}\n </b-button>\n </div>\n <b-list-group\n vertical\n >\n <draggable\n :key=\"filteredAvailableFields.length\"\n handle=\".handle\"\n :disabled=\"disabled\"\n :group=\"group\"\n :value=\"filteredAvailableFields\"\n class=\"overflow-auto\"\n :style=\"`${maxHeight}`\"\n >\n <b-list-group-item\n v-for=\"field in filteredAvailableFields\"\n :key=\"field.name\"\n class=\"mb-3 border rounded\"\n @dblclick=\"selectField(field)\"\n >\n <field-item\n :field=\"field\"\n :selected-fields=\"selectedFields\"\n :is-selected=\"false\"\n :system-field-label=\"labels.systemFieldLabel\"\n @select-field=\"selectField\"\n />\n </b-list-group-item>\n </draggable>\n </b-list-group>\n </b-col>\n <b-col\n cols=\"12\"\n sm=\"6\"\n class=\"pl-sm-0\"\n >\n <div class=\"d-flex align-items-center\">\n <label\n class=\"mb-0 text-primary\"\n >\n {{ labels.selectedFieldsLabel }}\n </label>\n <b-button\n variant=\"link\"\n :class=\"[allUnselected ? 'visible' : 'invisible']\"\n class=\"ml-auto px-0 text-muted\"\n @click.prevent=\"selectedFields = []\"\n >\n {{ labels.unselectAllFieldsLabel }}\n </b-button>\n </div>\n <b-list-group\n vertical\n >\n <draggable\n v-model=\"selectedFields\"\n handle=\".handle\"\n :disabled=\"disabled\"\n :group=\"group\"\n class=\"overflow-auto\"\n :style=\"`${maxHeight}`\"\n >\n <b-list-group-item\n v-for=\"field in filteredSelectedFields\"\n :key=\"field.name\"\n class=\"mb-3 border rounded\"\n @dblclick=\"unselectField(field)\"\n >\n <field-item\n :field=\"field\"\n :selected-fields=\"selectedFields\"\n :is-selected=\"true\"\n :system-field-label=\"labels.systemFieldLabel\"\n @unselect-field=\"unselectField\"\n />\n </b-list-group-item>\n </draggable>\n </b-list-group>\n </b-col>\n </b-row>\n </div>\n</template>\n<script>\nimport draggable from 'vuedraggable'\nimport FieldItem from './FieldItem.vue'\n\nexport default {\n components: {\n draggable,\n FieldItem,\n },\n\n props: {\n module: {\n type: Object,\n required: true,\n },\n\n fields: {\n type: Array,\n required: true,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n disabledTypes: {\n type: Array,\n default: () => [],\n },\n\n disableSystemFields: {\n type: Boolean,\n default: false,\n },\n\n systemFields: {\n type: Array,\n default: null,\n },\n\n fieldSubset: {\n type: Array,\n default: null,\n },\n\n group: {\n type: String,\n default: 'fields',\n },\n\n maxHeight: {\n type: String,\n default: 'max-height: 65vh;',\n },\n\n labels: {\n type: Object,\n required: true,\n },\n },\n\n data () {\n return {\n modules: [],\n query: '',\n }\n },\n\n computed: {\n selectedFields: {\n get () {\n // Needs to be done this way so it retains order of fields\n return this.fields.reduce((fields, field) => {\n field = this.allFields.find(({ name }) => name === field.name)\n if (field) {\n fields.push(field)\n }\n return fields\n }, [])\n },\n\n set (f) {\n this.$emit('update:fields', f)\n },\n },\n\n allFields () {\n let mFields = []\n if (this.fieldSubset) {\n mFields = this.module.filterFields(this.fieldSubset)\n } else {\n mFields = this.module.fields\n }\n\n if (this.disabledTypes.length > 0) {\n mFields = mFields.filter(({ kind }) => !this.disabledTypes.find(t => t === kind))\n }\n\n let sysFields = []\n if (!this.disableSystemFields) {\n sysFields = this.module.systemFields()\n if (this.systemFields) {\n sysFields = sysFields.filter(({ name }) => this.systemFields.find(sf => sf === name))\n }\n } else {\n mFields = mFields.filter(({ isSystem }) => !isSystem)\n }\n\n return [\n ...[...mFields].sort((a, b) => a.label.localeCompare(b.label)),\n ...sysFields,\n ]\n },\n\n allSelected () {\n return this.availableFields.length > 0\n },\n\n allUnselected () {\n return this.selectedFields.length > 0\n },\n\n availableFields () {\n // Remove selected fields\n return this.allFields.filter(a => !this.fields.some(f => a.name === f.name))\n },\n\n filteredAvailableFields () {\n return this.filterFields(this.availableFields)\n },\n\n filteredSelectedFields () {\n return this.filterFields(this.selectedFields)\n },\n },\n\n watch: {\n 'moduleID' (o, n) {\n if (o !== n) {\n this.selectedFields = []\n }\n },\n },\n\n methods: {\n filterFields (fields) {\n return fields\n .filter(f => f.name.toLowerCase().indexOf(this.query.toLowerCase()) > -1 || f.label.toLowerCase().indexOf(this.query.toLowerCase()) > -1)\n },\n selectField (field) {\n if (this.selectedFields.some(selectedField => selectedField.label === field.label)) return\n this.selectedFields = [...this.selectedFields, field]\n },\n unselectField (field) {\n this.selectedFields = this.selectedFields.filter(({ name }) => field.name !== name)\n },\n },\n}\n</script>\n<style lang=\"scss\" scoped>\n.handle {\n cursor: grab;\n}\n</style>\n",".handle {\n cursor: grab;\n}\n\n/*# sourceMappingURL=FieldPicker.vue.map */"]}, media: undefined });
82018
+ inject("data-v-f6dad2a0_0", { source: ".handle[data-v-f6dad2a0]{cursor:grab}", map: undefined, media: undefined });
85201
82019
 
85202
82020
  };
85203
82021
  /* scoped */
85204
- const __vue_scope_id__$Q = "data-v-d614af34";
82022
+ const __vue_scope_id__$Q = "data-v-f6dad2a0";
85205
82023
  /* module identifier */
85206
82024
  const __vue_module_identifier__$Q = undefined;
85207
82025
  /* functional template */
@@ -85305,86 +82123,17 @@ var script$Q = {
85305
82123
  const __vue_script__$Q = script$Q;
85306
82124
 
85307
82125
  /* template */
85308
- var __vue_render__$K = function() {
85309
- var _vm = this;
85310
- var _h = _vm.$createElement;
85311
- var _c = _vm._self._c || _h;
85312
- return _c("div", [
85313
- !_vm.root
85314
- ? _c("h5", { staticClass: "mb-0" }, [
85315
- _vm._v("\n " + _vm._s(_vm.group) + "\n ")
85316
- ])
85317
- : _vm._e(),
85318
- _vm._v(" "),
85319
- _vm.subgroups.length > 0 || _vm.components.length > 0
85320
- ? _c(
85321
- "div",
85322
- [
85323
- _vm._l(_vm.components, function(cmp, i) {
85324
- return _c(
85325
- "div",
85326
- {
85327
- key: i,
85328
- staticClass: "component ml-2",
85329
- on: {
85330
- click: function($event) {
85331
- return _vm.$emit("select", cmp)
85332
- }
85333
- }
85334
- },
85335
- [
85336
- _vm._v(
85337
- "\n " +
85338
- _vm._s(cmp.name || cmp.component.name || "Untitled") +
85339
- "\n "
85340
- ),
85341
- cmp.wip
85342
- ? _c(
85343
- "b-badge",
85344
- {
85345
- staticClass: "float-right",
85346
- attrs: { variant: "warning" }
85347
- },
85348
- [_vm._v("\n wip\n ")]
85349
- )
85350
- : _vm._e()
85351
- ],
85352
- 1
85353
- )
85354
- }),
85355
- _vm._v(" "),
85356
- _vm._l(_vm.subgroups, function(group) {
85357
- return _c("component-list", {
85358
- key: group,
85359
- staticClass: "my-3",
85360
- attrs: {
85361
- catalogue: _vm.catalogue,
85362
- path: _vm.path.concat([group])
85363
- },
85364
- on: {
85365
- select: function($event) {
85366
- return _vm.$emit("select", $event)
85367
- }
85368
- }
85369
- })
85370
- })
85371
- ],
85372
- 2
85373
- )
85374
- : _vm._e()
85375
- ])
85376
- };
82126
+ var __vue_render__$K = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.root)?_c('h5',{staticClass:"mb-0"},[_vm._v("\n "+_vm._s(_vm.group)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.subgroups.length > 0 || _vm.components.length > 0)?_c('div',[_vm._l((_vm.components),function(cmp,i){return _c('div',{key:i,staticClass:"component ml-2",on:{"click":function($event){return _vm.$emit('select', cmp)}}},[_vm._v("\n "+_vm._s(cmp.name || cmp.component.name || 'Untitled')+"\n "),(cmp.wip)?_c('b-badge',{staticClass:"float-right",attrs:{"variant":"warning"}},[_vm._v("\n wip\n ")]):_vm._e()],1)}),_vm._v(" "),_vm._l((_vm.subgroups),function(group){return _c('component-list',{key:group,staticClass:"my-3",attrs:{"catalogue":_vm.catalogue,"path":_vm.path.concat( [group])},on:{"select":function($event){return _vm.$emit('select', $event)}}})})],2):_vm._e()])};
85377
82127
  var __vue_staticRenderFns__$K = [];
85378
- __vue_render__$K._withStripped = true;
85379
82128
 
85380
82129
  /* style */
85381
82130
  const __vue_inject_styles__$R = function (inject) {
85382
82131
  if (!inject) return
85383
- inject("data-v-f45e268a_0", { source: ".component[data-v-f45e268a] {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=ComponentList.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/c3/ComponentList.vue","ComponentList.vue"],"names":[],"mappings":"AA+EA;EACA,eAAA;AC9EA;;AAEA,4CAA4C","file":"ComponentList.vue","sourcesContent":["<template>\n <div>\n <h5\n v-if=\"!root\"\n class=\"mb-0\"\n >\n {{ group }}\n </h5>\n\n <div\n v-if=\"subgroups.length > 0 || components.length > 0\"\n >\n <div\n v-for=\"(cmp, i) in components\"\n :key=\"i\"\n @click=\"$emit('select', cmp)\"\n class=\"component ml-2\"\n >\n {{ cmp.name || cmp.component.name || 'Untitled' }}\n <b-badge\n v-if=\"cmp.wip\"\n variant=\"warning\"\n class=\"float-right\"\n >\n wip\n </b-badge>\n </div>\n <component-list\n v-for=\"(group) in subgroups\"\n :key=\"group\"\n :catalogue=\"catalogue\"\n :path=\"[...path, group]\"\n @select=\"$emit('select', $event)\"\n class=\"my-3\"\n />\n </div>\n </div>\n</template>\n<script>\nimport {ExtractComponents, ExtractSubgroups} from './helpers.ts'\n\nexport default {\n name: 'ComponentList',\n props: {\n catalogue: {\n required: true,\n type: Object,\n },\n\n path: {\n type: Array,\n default: () => []\n },\n },\n\n computed: {\n // name of the current group\n root () {\n return this.path.length === 0\n },\n\n // name of the current group\n group () {\n return this.root ? undefined : this.path[this.path.length - 1]\n },\n\n // returns all groups at this level\n subgroups () {\n return ExtractSubgroups(this.catalogue, ...this.path)\n },\n\n components () {\n // return ExtractComponents(this.catalogue, ...this.path)\n return ExtractComponents(this.catalogue, ...this.path)\n }\n }\n}\n</script>\n<style lang=\"scss\" scoped>\n.component {\n cursor: pointer;\n}\n</style>\n",".component {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=ComponentList.vue.map */"]}, media: undefined });
82132
+ inject("data-v-8b2b254e_0", { source: ".component[data-v-8b2b254e]{cursor:pointer}", map: undefined, media: undefined });
85384
82133
 
85385
82134
  };
85386
82135
  /* scoped */
85387
- const __vue_scope_id__$R = "data-v-f45e268a";
82136
+ const __vue_scope_id__$R = "data-v-8b2b254e";
85388
82137
  /* module identifier */
85389
82138
  const __vue_module_identifier__$R = undefined;
85390
82139
  /* functional template */
@@ -85476,137 +82225,13 @@ var script$R = {
85476
82225
  const __vue_script__$R = script$R;
85477
82226
 
85478
82227
  /* template */
85479
- var __vue_render__$L = function() {
85480
- var _vm = this;
85481
- var _h = _vm.$createElement;
85482
- var _c = _vm._self._c || _h;
85483
- return _c("div", { staticClass: "layout" }, [
85484
- _c(
85485
- "aside",
85486
- { staticClass: "sidebar p-2" },
85487
- [
85488
- _c("h5", { staticClass: "border-bottom" }, [
85489
- _vm._v("\n C3: Component Catalogue\n ")
85490
- ]),
85491
- _vm._v(" "),
85492
- _c("component-list", {
85493
- attrs: { catalogue: _vm.catalogue },
85494
- on: {
85495
- select: function($event) {
85496
- return _vm.setCurrent($event)
85497
- }
85498
- }
85499
- })
85500
- ],
85501
- 1
85502
- ),
85503
- _vm._v(" "),
85504
- _c(
85505
- "main",
85506
- { staticClass: "p-5" },
85507
- [
85508
- _vm.current
85509
- ? _c(
85510
- _vm.current.component,
85511
- _vm._b(
85512
- { tag: "component" },
85513
- "component",
85514
- _vm.current.props,
85515
- false
85516
- )
85517
- )
85518
- : _c("p", { staticClass: "text-center" }, [
85519
- _vm._v(
85520
- "\n Select a component from the C3 Catalogue and start hacking :)\n "
85521
- )
85522
- ])
85523
- ],
85524
- 1
85525
- ),
85526
- _vm._v(" "),
85527
- _vm.current
85528
- ? _c(
85529
- "div",
85530
- { staticClass: "controls px-5 py-2 mt-2" },
85531
- [
85532
- _vm._l(_vm.controlGroups, function(cg, g) {
85533
- return _c(
85534
- "div",
85535
- {
85536
- key: "control-group-" + g,
85537
- staticClass: "control-group mr-2"
85538
- },
85539
- [
85540
- _c("h3", [_vm._v("\n Controls\n ")]),
85541
- _vm._v(" "),
85542
- _vm._l(cg, function(c, i) {
85543
- return _c(
85544
- c.component,
85545
- _vm._b(
85546
- {
85547
- key: i,
85548
- tag: "component",
85549
- attrs: { value: c.value(_vm.current.props) },
85550
- on: {
85551
- update: function($event) {
85552
- return c.update(_vm.current.props, $event)
85553
- }
85554
- }
85555
- },
85556
- "component",
85557
- c.props,
85558
- false
85559
- )
85560
- )
85561
- })
85562
- ],
85563
- 2
85564
- )
85565
- }),
85566
- _vm._v(" "),
85567
- _vm.current.scenarios
85568
- ? _c("div", { staticClass: "control-group float-right" }, [
85569
- _c("h3", [_vm._v("\n Pre-set controls\n ")]),
85570
- _vm._v(" "),
85571
- _c(
85572
- "ul",
85573
- { staticClass: "pl-0" },
85574
- _vm._l(_vm.current.scenarios, function(s, i) {
85575
- return _c(
85576
- "li",
85577
- {
85578
- key: i,
85579
- staticClass: "list-unstyled scenario",
85580
- on: {
85581
- click: function($event) {
85582
- return _vm.setScenario(s)
85583
- }
85584
- }
85585
- },
85586
- [
85587
- _vm._v(
85588
- "\n " + _vm._s(s.label) + "\n "
85589
- )
85590
- ]
85591
- )
85592
- }),
85593
- 0
85594
- )
85595
- ])
85596
- : _vm._e()
85597
- ],
85598
- 2
85599
- )
85600
- : _vm._e()
85601
- ])
85602
- };
82228
+ var __vue_render__$L = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"layout"},[_c('aside',{staticClass:"sidebar p-2"},[_c('h5',{staticClass:"border-bottom"},[_vm._v("\n C3: Component Catalogue\n ")]),_vm._v(" "),_c('component-list',{attrs:{"catalogue":_vm.catalogue},on:{"select":function($event){return _vm.setCurrent($event)}}})],1),_vm._v(" "),_c('main',{staticClass:"p-5"},[(_vm.current)?_c(_vm.current.component,_vm._b({tag:"component"},'component',_vm.current.props,false)):_c('p',{staticClass:"text-center"},[_vm._v("\n Select a component from the C3 Catalogue and start hacking :)\n ")])],1),_vm._v(" "),(_vm.current)?_c('div',{staticClass:"controls px-5 py-2 mt-2"},[_vm._l((_vm.controlGroups),function(cg,g){return _c('div',{key:("control-group-" + g),staticClass:"control-group mr-2"},[_c('h3',[_vm._v("\n Controls\n ")]),_vm._v(" "),_vm._l((cg),function(c,i){return _c(c.component,_vm._b({key:i,tag:"component",attrs:{"value":c.value(_vm.current.props)},on:{"update":function($event){return c.update(_vm.current.props, $event)}}},'component',c.props,false))})],2)}),_vm._v(" "),(_vm.current.scenarios)?_c('div',{staticClass:"control-group float-right"},[_c('h3',[_vm._v("\n Pre-set controls\n ")]),_vm._v(" "),_c('ul',{staticClass:"pl-0"},_vm._l((_vm.current.scenarios),function(s,i){return _c('li',{key:i,staticClass:"list-unstyled scenario",on:{"click":function($event){return _vm.setScenario(s)}}},[_vm._v("\n "+_vm._s(s.label)+"\n ")])}),0)]):_vm._e()],2):_vm._e()])};
85603
82229
  var __vue_staticRenderFns__$L = [];
85604
- __vue_render__$L._withStripped = true;
85605
82230
 
85606
82231
  /* style */
85607
82232
  const __vue_inject_styles__$S = function (inject) {
85608
82233
  if (!inject) return
85609
- inject("data-v-99d21784_0", { source: ".layout {\n height: 100vh;\n width: 100vw;\n display: grid;\n grid-template-rows: auto 400px;\n grid-template-columns: 300px auto;\n align-content: stretch;\n grid-template-areas: \"side main\" \"side controls\";\n}\n.layout aside {\n grid-area: side;\n overflow: auto;\n}\n.layout main {\n grid-area: main;\n background-image: linear-gradient(135deg, #f3f3f5 21.43%, #ffffff 21.43%, #ffffff 50%, #f3f3f5 50%, #f3f3f5 71.43%, #ffffff 71.43%, #ffffff 100%);\n background-size: 35px 35px;\n overflow: auto;\n}\n.layout .controls {\n grid-area: controls;\n overflow: auto;\n}\n.layout .controls .control-group {\n float: left;\n}\n.layout .scenario {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=C3.vue.map */", map: {"version":3,"sources":["/home/fajfa/Kendu/Corteza/packages/corteza-vue/src/components/c3/C3.vue","C3.vue"],"names":[],"mappings":"AAwIA;EACA,aAAA;EACA,YAAA;EAEA,aAAA;EACA,8BAAA;EACA,iCAAA;EACA,sBAAA;EACA,gDACA;ACzIA;AD6IA;EACA,eAAA;EACA,cAAA;AC3IA;AD8IA;EACA,eAAA;EACA,iJAAA;EAUA,0BAAA;EACA,cAAA;ACrJA;ADwJA;EACA,mBAAA;EACA,cAAA;ACtJA;ADwJA;EACA,WAAA;ACtJA;AD0JA;EACA,eAAA;ACxJA;;AAEA,iCAAiC","file":"C3.vue","sourcesContent":["<template>\n <div class=\"layout\">\n <aside class=\"sidebar p-2\">\n <h5\n class=\"border-bottom\">\n C3: Component Catalogue\n </h5>\n <component-list\n :catalogue=\"catalogue\"\n @select=\"setCurrent($event)\"\n />\n </aside>\n\n <main\n class=\"p-5\"\n >\n <component\n :is=\"current.component\"\n v-if=\"current\"\n v-bind=\"current.props\"\n />\n <p\n v-else\n class=\"text-center\"\n >\n Select a component from the C3 Catalogue and start hacking :)\n </p>\n </main>\n\n <div\n class=\"controls px-5 py-2 mt-2\"\n v-if=\"current\"\n >\n <div\n class=\"control-group mr-2\"\n v-for=\"(cg, g) in controlGroups\"\n :key=\"`control-group-${g}`\"\n >\n <h3>\n Controls\n </h3>\n <component\n :is=\"c.component\"\n v-for=\"(c, i) in cg\"\n :key=\"i\"\n :value=\"c.value(current.props)\"\n v-bind=\"c.props\"\n @update=\"c.update(current.props, $event)\"\n />\n </div>\n\n <div\n v-if=\"current.scenarios\"\n class=\"control-group float-right\"\n >\n <h3>\n Pre-set controls\n </h3>\n <ul\n class=\"pl-0\"\n >\n <li\n v-for=\"(s, i) in current.scenarios\"\n :key=\"i\"\n class=\"list-unstyled scenario\"\n @click=\"setScenario(s)\"\n >\n {{ s.label }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport ComponentList from './ComponentList.vue'\n\nexport default {\n name: 'C3',\n\n components: {\n ComponentList,\n },\n\n props: {\n catalogue: {\n required: true,\n type: Object,\n },\n },\n\n computed: {\n controlGroups () {\n if (this.current.controls.length === 0) {\n return []\n }\n\n if (Array.isArray(this.current.controls[0])) {\n // already grouped\n return this.current.controls\n }\n\n // make one virtual group holding all controls\n return [this.current.controls]\n },\n },\n\n data () {\n return {\n current: undefined,\n }\n },\n\n methods: {\n setCurrent (component) {\n this.current = { props: {}, ...component }\n this.setScenario(this.current)\n },\n\n setScenario ({ props = {}, controls = [] }) {\n // create missing props from controls\n const apply = (c, props) => c.update(props, c.value(props) || null)\n controls.forEach(c => {\n if (Array.isArray(c)) {\n c.forEach(c => apply(c, props))\n } else {\n apply(c, props)\n }\n })\n\n this.current.props = props\n },\n },\n}\n</script>\n<style lang=\"scss\">\n.layout {\n height: 100vh;\n width: 100vw;\n\n display: grid;\n grid-template-rows: auto 400px;\n grid-template-columns: 300px auto;\n align-content: stretch;\n grid-template-areas:\n \"side main\"\n \"side controls\"\n ;\n\n aside {\n grid-area: side;\n overflow: auto;\n }\n\n main {\n grid-area: main;\n background-image: linear-gradient(\n 135deg,\n #f3f3f5 21.43%,\n #ffffff 21.43%,\n #ffffff 50%,\n #f3f3f5 50%,\n #f3f3f5 71.43%,\n #ffffff 71.43%,\n #ffffff 100%\n );\n background-size: 35.00px 35.00px;\n overflow: auto;\n }\n\n .controls {\n grid-area: controls;\n overflow: auto;\n\n .control-group {\n float: left;\n }\n }\n\n .scenario {\n cursor: pointer;\n }\n}\n</style>\n",".layout {\n height: 100vh;\n width: 100vw;\n display: grid;\n grid-template-rows: auto 400px;\n grid-template-columns: 300px auto;\n align-content: stretch;\n grid-template-areas: \"side main\" \"side controls\";\n}\n.layout aside {\n grid-area: side;\n overflow: auto;\n}\n.layout main {\n grid-area: main;\n background-image: linear-gradient(135deg, #f3f3f5 21.43%, #ffffff 21.43%, #ffffff 50%, #f3f3f5 50%, #f3f3f5 71.43%, #ffffff 71.43%, #ffffff 100%);\n background-size: 35px 35px;\n overflow: auto;\n}\n.layout .controls {\n grid-area: controls;\n overflow: auto;\n}\n.layout .controls .control-group {\n float: left;\n}\n.layout .scenario {\n cursor: pointer;\n}\n\n/*# sourceMappingURL=C3.vue.map */"]}, media: undefined });
82234
+ inject("data-v-2c86815c_0", { source: ".layout{height:100vh;width:100vw;display:grid;grid-template-rows:auto 400px;grid-template-columns:300px auto;align-content:stretch;grid-template-areas:\"side main\" \"side controls\"}.layout aside{grid-area:side;overflow:auto}.layout main{grid-area:main;background-image:linear-gradient(135deg,#f3f3f5 21.43%,#fff 21.43%,#fff 50%,#f3f3f5 50%,#f3f3f5 71.43%,#fff 71.43%,#fff 100%);background-size:35px 35px;overflow:auto}.layout .controls{grid-area:controls;overflow:auto}.layout .controls .control-group{float:left}.layout .scenario{cursor:pointer}", map: undefined, media: undefined });
85610
82235
 
85611
82236
  };
85612
82237
  /* scoped */
@@ -85662,28 +82287,8 @@ var script$S = {
85662
82287
  const __vue_script__$S = script$S;
85663
82288
 
85664
82289
  /* template */
85665
- var __vue_render__$M = function() {
85666
- var _vm = this;
85667
- var _h = _vm.$createElement;
85668
- var _c = _vm._self._c || _h;
85669
- return _c(
85670
- "b-form-group",
85671
- { attrs: { label: _vm.label } },
85672
- [
85673
- _c("b-form-input", {
85674
- attrs: { value: _vm.value },
85675
- on: {
85676
- update: function($event) {
85677
- return _vm.$emit("update", $event)
85678
- }
85679
- }
85680
- })
85681
- ],
85682
- 1
85683
- )
85684
- };
82290
+ var __vue_render__$M = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',{attrs:{"label":_vm.label}},[_c('b-form-input',{attrs:{"value":_vm.value},on:{"update":function($event){return _vm.$emit('update', $event)}}})],1)};
85685
82291
  var __vue_staticRenderFns__$M = [];
85686
- __vue_render__$M._withStripped = true;
85687
82292
 
85688
82293
  /* style */
85689
82294
  const __vue_inject_styles__$T = undefined;
@@ -85742,28 +82347,8 @@ var script$T = {
85742
82347
  const __vue_script__$T = script$T;
85743
82348
 
85744
82349
  /* template */
85745
- var __vue_render__$N = function() {
85746
- var _vm = this;
85747
- var _h = _vm.$createElement;
85748
- var _c = _vm._self._c || _h;
85749
- return _c(
85750
- "b-form-group",
85751
- { attrs: { label: _vm.label } },
85752
- [
85753
- _c("b-form-textarea", {
85754
- attrs: { value: _vm.value },
85755
- on: {
85756
- update: function($event) {
85757
- return _vm.$emit("update", $event)
85758
- }
85759
- }
85760
- })
85761
- ],
85762
- 1
85763
- )
85764
- };
82350
+ var __vue_render__$N = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',{attrs:{"label":_vm.label}},[_c('b-form-textarea',{attrs:{"value":_vm.value},on:{"update":function($event){return _vm.$emit('update', $event)}}})],1)};
85765
82351
  var __vue_staticRenderFns__$N = [];
85766
- __vue_render__$N._withStripped = true;
85767
82352
 
85768
82353
  /* style */
85769
82354
  const __vue_inject_styles__$U = undefined;
@@ -85821,31 +82406,8 @@ var script$U = {
85821
82406
  const __vue_script__$U = script$U;
85822
82407
 
85823
82408
  /* template */
85824
- var __vue_render__$O = function() {
85825
- var _vm = this;
85826
- var _h = _vm.$createElement;
85827
- var _c = _vm._self._c || _h;
85828
- return _c(
85829
- "b-form-group",
85830
- [
85831
- _c(
85832
- "b-form-checkbox",
85833
- {
85834
- attrs: { checked: _vm.value },
85835
- on: {
85836
- change: function($event) {
85837
- return _vm.$emit("update", $event)
85838
- }
85839
- }
85840
- },
85841
- [_vm._v("\n " + _vm._s(_vm.label) + "\n ")]
85842
- )
85843
- ],
85844
- 1
85845
- )
85846
- };
82409
+ var __vue_render__$O = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',[_c('b-form-checkbox',{attrs:{"checked":_vm.value},on:{"change":function($event){return _vm.$emit('update', $event)}}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")])],1)};
85847
82410
  var __vue_staticRenderFns__$O = [];
85848
- __vue_render__$O._withStripped = true;
85849
82411
 
85850
82412
  /* style */
85851
82413
  const __vue_inject_styles__$V = undefined;
@@ -85909,28 +82471,8 @@ var script$V = {
85909
82471
  const __vue_script__$V = script$V;
85910
82472
 
85911
82473
  /* template */
85912
- var __vue_render__$P = function() {
85913
- var _vm = this;
85914
- var _h = _vm.$createElement;
85915
- var _c = _vm._self._c || _h;
85916
- return _c(
85917
- "b-form-group",
85918
- { attrs: { label: _vm.label } },
85919
- [
85920
- _c("b-form-select", {
85921
- attrs: { value: _vm.value, options: _vm.options },
85922
- on: {
85923
- input: function($event) {
85924
- return _vm.$emit("update", $event)
85925
- }
85926
- }
85927
- })
85928
- ],
85929
- 1
85930
- )
85931
- };
82474
+ var __vue_render__$P = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-group',{attrs:{"label":_vm.label}},[_c('b-form-select',{attrs:{"value":_vm.value,"options":_vm.options},on:{"input":function($event){return _vm.$emit('update', $event)}}})],1)};
85932
82475
  var __vue_staticRenderFns__$P = [];
85933
- __vue_render__$P._withStripped = true;
85934
82476
 
85935
82477
  /* style */
85936
82478
  const __vue_inject_styles__$W = undefined;