UNPKG

@aurigma/ui-framework

Version:

A platform which allows building print product personalization editors based on Aurigma's Customer's Canvas.

22 lines 25.1 kB
(window.multistep_editor_jsonpFunction=window.multistep_editor_jsonpFunction||[]).push([[30],{838:function(e,n){e.exports='<style>\n :host {\n display: flex;\n flex-direction: row;\n flex: 0 0 auto;\n --iron-icon-width: 24px;\n --iron-icon-height: 24px;\n background: var(--au-collapse-background-color, #f5f5f5);\n @apply --au-collapse;\n }\n\n #trigger {\n @apply --layout-horizontal;\n @apply --layout-center;\n padding-left: 16px;\n padding-right: 16px;\n background: var(--au-collapse-trigger-color, #e8e8e8);\n flex: 0 0 auto;\n flex-direction: row-reverse;\n cursor: pointer;\n }\n\n #trigger ::slotted([slot="collapse-trigger"]) {\n display: inline-flex;\n width: 100%;\n height: var(--au-collapse-height, 38px);\n justify-content: left;\n align-items: center;\n }\n\n iron-collapse ::slotted([slot="collapse-content"]) {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n }\n\n iron-collapse {\n padding-left: 16px;\n padding-right: 16px;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 650px;\n position: relative;\n z-index: 1;\n flex: 1 1 auto;\n }\n\n :host([opened]) {\n flex: 1 1 auto;\n height: 100px;\n }\n\n .collapse-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .open {\n transform: rotate(180deg);\n transition: transform 0.25s ease;\n }\n\n .close {\n transform: rotate(360deg);\n transition: transform 0.25s ease;\n }\n\n #trigger iron-icon {\n z-index: 9;\n color: var(--theme-text-color-1);\n }\n</style>\n<div class="collapse-container">\n <div id="trigger" on-tap="toggle">\n <iron-icon icon="au-icons:expand_more" class$="[[_toggle(opened)]]" hidden$="[[noIcons]]"></iron-icon>\n <au-icon-fixer></au-icon-fixer>\n <slot name="collapse-trigger"></slot>\n </div>\n <iron-collapse id="collapse" horizontal="[[horizontal]]" no-animation="[[noAnimation]]" opened="[[opened]]">\n <template is="dom-if" if="{{scrollable}}">\n <au-custom-scroll></au-custom-scroll>\n </template>\n <slot name="collapse-content"></slot>\n </iron-collapse>\n</div>\n'},839:function(e,n){e.exports='<style>\n .collapse-title {\n @apply --au-widget-title-font;\n }\n\n .tab-icon {\n margin: 8px;\n }\n\n .group-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n }\n\n .toggle-title {\n cursor: pointer;\n }\n</style>\n<div class="group-container" id="container" style="overflow: var(--aurigma-group-overflow, hidden);">\n <dom-repeat items="{{tabs}}" as="tab">\n <template>\n <au-collapse name="[[tab.title]]" scrollable="[[scrollable]]" style="overflow: var(--aurigma-group-overflow, hidden);" opened="[[tab.opened]]" on-opened-changed="_onOpenedChange"\n data-tab$="[[index]]">\n <span slot="collapse-trigger" class="collapse-title">\n <dom-if if="{{tab.icon}}">\n <template>\n <iron-icon icon="{{tab.icon}}" class="tab-icon"></iron-icon>\n <au-icon-fixer></au-icon-fixer>\n </template>\n </dom-if>\n <dom-if if="{{tab.title}}">\n <template>\n <span class="toggle-title">{{tab.title}}</span>\n </template>\n </dom-if>\n </span>\n <span slot="collapse-content">\n <dom-repeat items="{{tab.widgets}}" as="widget" id="repeater">\n <template>\n <au-widget style$="[[_getStylesByType(widget.type)]]" name="{{widget.name}}" group="{{self}}" language="{{language}}"\n driver="{{driver}}" definition="{{widget}}"></au-widget>\n </template>\n </dom-repeat>\n </span>\n </au-collapse>\n </template>\n </dom-repeat>\n</div>\n'},840:function(e,n){e.exports='<style>\n :host {\n --group-padding-title-horizontal: calc(1.25 * var(--au-hem));\n --group-padding-title-vertical: calc(1 * var(--au-hem));\n\n --group-padding-content-top: calc(0.25 * var(--au-hem));\n --group-padding-content-left: calc(1.25 * var(--au-hem));\n --group-padding-content-right: calc(1.25 * var(--au-hem));\n --group-padding-content-bottom: calc(1.875 * var(--au-hem));\n }\n\n .title {\n @apply --au-widget-title-font;\n }\n\n .tab-icon {\n margin: calc(0.5 * var(--au-hem));\n }\n\n .noncollapse-container {\n height: 100%;\n display: flex;\n flex-direction: var(--au-flex-direction, column);\n justify-content: var(--au-justify-content, unset);\n width: var(--group-content-width, "100%");\n\n background-color: var(--theme-background-color);\n border: var(--au-collapse_-_border);\n box-sizing: border-box;\n }\n\n .toggle-title {\n cursor: pointer;\n }\n\n .noncollapse-title {\n padding: var(--group-padding-title-vertical, 16px) var(--group-padding-title-horizontal, 20px) 0;\n z-index: 1;\n background-color: var(--theme-background-color);\n }\n\n .noncollapse-content {\n padding: var(--group-padding-content-top, 4px) var(--group-padding-content-right, 20px) var(--group-padding-content-bottom, 30px) var(--group-padding-content-left, 20px);\n margin-top: var(--group-padding-title-vertical, 16px);\n margin-bottom: var(--group-padding-title-vertical, 16px);\n flex-direction: var(--au-flex-direction, column);\n height: calc(100% - var(--group-padding-content-top, 4px) - var(--group-padding-content-bottom, 30px) - var(--group-padding-title-vertical, 16px) - var(--group-padding-title-vertical, 16px));\n overflow: unset !important;\n display: inherit;\n }\n\n .noncollapse-content au-widget {\n margin-bottom: var(--group-padding-content-bottom, 30px);\n height: var(--au-widget-height, auto);\n width: var(--au-width, 100%);\n }\n\n .last-line {\n height: var(--group-padding-content-bottom, 30px);\n width: 100%;\n }\n\n .scroll-content {\n display: flex;\n flex-direction: inherit;\n justify-content: inherit;\n }\n</style>\n<div class="noncollapse-container" id="container" style="overflow: var(--aurigma-group-overflow, hidden);">\n <template is="dom-if" if="{{scrollable}}">\n <au-custom-scroll></au-custom-scroll>\n </template>\n <dom-repeat items="{{tabs}}" as="tab">\n <template>\n <dom-if if="{{tab.title}}">\n <template>\n <div class="noncollapse-title" data-tab$="[[index]]">\n <dom-if if="{{tab.icon}}">\n <template>\n <iron-icon icon="{{tab.icon}}" class="tab-icon"></iron-icon>\n <au-icon-fixer></au-icon-fixer>\n </template>\n </dom-if>\n <dom-if if="{{tab.title}}">\n <template>\n <span class="title">{{tab.title}}</span>\n </template>\n </dom-if>\n </div>\n </template>\n </dom-if>\n <div class="noncollapse-content" data-tab$="[[index]]">\n <dom-repeat items="{{tab.widgets}}" as="widget" id="repeater">\n <template>\n <au-widget style$="[[_getStylesByType(widget.type)]]" name="{{widget.name}}" group="{{self}}" language="{{language}}" driver="{{driver}}"\n definition="{{widget}}"></au-widget>\n </template>\n </dom-repeat>\n <div class="last-line"></div>\n </div>\n </template>\n </dom-repeat>\n</div>\n'},841:function(e,n){e.exports='<style>\n iron-selector {\n background: var(--au-collapse-background-color, #ffffff);\n height: 90%;\n }\n\n :host iron-selector {\n background: var(--au-collapse-background-color, #ffffff);\n height: 90%;\n }\n\n .group-container {\n margin-left: 0px !important;\n margin-right: 0px !important;\n padding-left: 0px !important;\n padding-right: 0px !important;\n }\n\n .group-container.horizontal,\n .group-container.vertical {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-direction: normal;\n border: 1px solid var(--theme-border-color);\n box-sizing: border-box;\n }\n\n .group-container.vertical {\n -webkit-box-orient: horizontal;\n -ms-flex-direction: row;\n flex-direction: row;\n height: 100%;\n }\n\n .group-container.horizontal {\n -webkit-box-orient: vertical;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n height: 100%;\n width: 100%;\n }\n\n .group-container.vertical paper-listbox,\n .group-container.horizontal paper-listbox {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 0;\n }\n\n .group-container.vertical paper-listbox {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n height: 100%;\n width: 80px;\n background-color: var(--au-tabbed-group-container-tab-background);\n }\n\n .group-container.horizontal paper-listbox {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n height: 50px;\n background-color: var(--au-tabbed-group-container-tab-background);\n }\n\n .group-container.vertical paper-listbox>.tab-container,\n .group-container.horizontal paper-listbox>.tab-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n background-color: var(--au-tabbed-group-tab-background);\n color: var(--au-tabbed-group-tab-color);\n outline: none;\n }\n\n .group-container.vertical paper-listbox>.tab-container:hover,\n .group-container.horizontal paper-listbox>.tab-container:hover {\n background-color: var(--au-tabbed-group-tab-hover-background);\n }\n\n .group-container.vertical paper-listbox>.tab-container.iron-selected,\n .group-container.horizontal paper-listbox>.tab-container.iron-selected {\n background-color: var(--theme-interface-color);\n color: var(--theme-primary-color);\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n\n .group-container.vertical paper-listbox>.tab-container {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n min-height: 58px;\n width: 80px;\n padding-top: 18px;\n padding-bottom: 14px;\n margin: 0 auto;\n }\n\n .group-container.vertical paper-listbox>.tab-container .toggle-title {\n word-break: keep-all;\n width: 100%;\n @apply --au-caption-font;\n margin-top: 8px;\n }\n\n .group-container.horizontal paper-listbox>.tab-container {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n }\n\n .tab-container {\n padding-top: 13px;\n padding-bottom: 13px;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n\n .toggle-title {\n @apply --au-button-font;\n @apply --break-words;\n text-align: center;\n }\n\n iron-selector>paper-item:not(.iron-selected) {\n display: none;\n }\n\n iron-selector>paper-item {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding: 0px 16px 30px;\n margin-top: 20px;\n margin-bottom: 30px;\n flex: 1 1 100%;\n max-height: 630px;\n }\n\n paper-item:focus:before {\n background-color: transparent;\n }\n\n iron-selector {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 100%;\n }\n\n @media screen and (max-width: 769px) {\n .group-container.horizontal,\n .group-container.vertical {\n border: none\n }\n }\n</style>\n<div class$="group-container [[containerLayout]]" id="container"\n style="height: 100% !important; min-height: 100% !important;">\n <paper-listbox id="selector" selected="{{selectedIndex}}">\n <template is="dom-repeat" items="{{tabs}}" as="tab">\n <div class="tab-container" name="{{tab.title}}" data-tab$="[[index]]">\n <dom-if if="{{tab.icon}}">\n <template>\n <iron-icon icon="{{tab.icon}}"></iron-icon>\n <au-icon-fixer></au-icon-fixer>\n </template>\n </dom-if>\n <dom-if if="{{tab.title}}">\n <template>\n <span class="toggle-title">{{tab.title}}</span>\n </template>\n </dom-if>\n </div>\n </template>\n </paper-listbox>\n <div style="flex: 1 1 100%; display: flex; height: 100%; max-height: 100%!important; min-height: 93%!important;">\n <iron-selector style="height: 100%!important; max-height: 96% !important;" attr-for-selected="id"\n selected="[[selectedIndex]]">\n\n <template is="dom-repeat" items="[[tabs]]" as="tab">\n <paper-item style="height: 100%" id="[[index]]" data-tab$="[[index]]" style="overflow: var(--aurigma-group-overflow, hidden);">\n <template is="dom-if" if="{{scrollable}}">\n <au-custom-scroll></au-custom-scroll>\n </template>\n <dom-repeat items="[[tab.widgets]]" as="widget" id="repeater">\n <template>\n <au-widget style$="[[_getStylesByType(widget.type)]]" name="[[widget.name]]" group="{{self}}" language="{{language}}"\n driver="[[driver]]" definition="[[widget]]">\n </au-widget>\n </template>\n </dom-repeat>\n </paper-item>\n </template>\n </iron-selector>\n </div>\n</div>\n'},842:function(e,n){e.exports="<style>\n :host {\n --paper-item-selected-weight: 400;\n --paper-listbox-background-color: transparent;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n\n [hidden] {\n display: none !important;\n }\n\n au-widget {\n display: inline-table;\n margin-bottom: 24px;\n }\n\n @media not all and (min-resolution: .001dpcm) {\n @supports (-webkit-appearance:none) and (not (stroke-color:transparent)) {\n au-widget {\n display: flex !important;\n padding-right: 8px;\n }\n }\n }\n\n @media not all and (min-resolution: .001dpcm) {\n @supports (-webkit-appearance:none) and (stroke-color:transparent) {\n au-widget {\n display: flex !important;\n padding-right: 8px;\n }\n }\n }\n\n @media screen and (min-color-index: 0) and(-webkit-min-device-pixel-ratio: 0) {\n @media {\n au-widget {\n display: flex !important;\n margin-bottom: 24px;\n padding-right: 8px;\n }\n }\n }\n\n @media screen and (-webkit-min-device-pixel-ratio: 0) {\n au-widget {\n display: flex !important;\n margin-bottom: 24px;\n margin-right: 4px;\n }\n }\n</style>\n"},930:function(e,n,t){t.r(n),t.d(n,"AuWidgetGroup",function(){return m}),t.d(n,"widget",function(){return m});var i,n=t(0),o=t(838),a=t(2),r=t(20),r=class extends r.a{constructor(){super(),this.horizontal=!1,this.noAnimation=!1,this.opened=!0,this.scrollable=!1,this.noIcons=!1,this.collapseListener=this.collapseListener.bind(this)}show(){this.open()}hide(){this.close()}open(){this.opened=!0}close(){this.opened=!1}toggle(){this.$.collapse.addEventListener("transitionend",this.collapseListener),this.opened=!this.opened}_toggle(e){return e?"open":"close"}dispatchCollapse(){this.dispatchEvent(new CustomEvent("collapse",{detail:this.opened})),window.document.dispatchEvent(new CustomEvent("collapse",{detail:this.opened}))}collapseListener(){this.dispatchCollapse(),this.$.collapse&&this.$.collapse.removeEventListener("transitionend",this.collapseListener)}},l=(Object(n.a)([Object(a.c)({notify:!0}),Object(n.b)("design:type",Boolean)],r.prototype,"horizontal",void 0),Object(n.a)([Object(a.c)({notify:!0}),Object(n.b)("design:type",Boolean)],r.prototype,"noAnimation",void 0),Object(n.a)([Object(a.c)({notify:!0,reflectToAttribute:!0}),Object(n.b)("design:type",Boolean)],r.prototype,"opened",void 0),Object(n.a)([Object(a.c)({notify:!0,reflectToAttribute:!0}),Object(n.b)("design:type",Boolean)],r.prototype,"scrollable",void 0),Object(n.a)([Object(a.c)({notify:!0}),Object(n.b)("design:type",Boolean)],r.prototype,"noIcons",void 0),Object(n.a)([Object(a.a)("au-collapse",o),Object(n.b)("design:paramtypes",[])],r),(o=i=i||{})[o.htab=0]="htab",o[o.vtab=1]="vtab",o[o.collapsible=2]="collapsible",o[o.noncollapsible=3]="noncollapsible",t(14)),s=t(17),c=t(395),p=t(37),d=t(1),r=t(160),o=t(839),b=t(840),g=t(841),t=` ${t(842)} <dom-if if="[[templateSwitch]]"> <template> <dom-if if="[[isNonCollapsible(type)]]"> <template> ${b} </template> </dom-if> <dom-if if="[[isCollapsible(type)]]"> <template> ${o} </template> </dom-if> </template> </dom-if> <dom-if if="[[!templateSwitch]]"> <template> ${g} </template> </dom-if> `;let m=class extends r.b{constructor(){super(...arguments),this.format="full-height",this.tabs=[],this.selectedIndex=0,this.containerLayout="",this.templateSwitch=!0,this.accordion=!0,this.selectedTitle="",this.showCustomScroll=!0,this.unifySelection=!1}static get template(){}clearSelection(){this.selectedIndex=-1}get _(){return p.Maybe.maybe(this._currentWidget).bind(e=>e._)}connectedCallback(){this.self=this,super.connectedCallback(),this.selectedIndex=0,this.tabs.forEach(n=>{n.widgets.forEach(e=>{e.format="group",n.title&&(e.formatTitle="subtitle")})});let t=[].concat(...this.tabs.map(e=>e.widgets)).map(e=>e.name);this.observable.pipe(Object(c.a)(e=>e.header===s.a.WIDGET_CHANGE&&0<=t.indexOf(e.name)&&!!e.sender._)).subscribe(n=>{let e=this.jsonParamsFetcher.scope;this._currentWidget=n.sender,this.unifySelection&&t.filter(e=>e!==n.name).forEach(n=>{p.Maybe.maybe(e.$).map(e=>e[n]).map(e=>(e.clearSelection||function(){}).bind(e)).chain(e=>e())})}),setTimeout(()=>{this.auWizard._isVerticalMobileLayout&&(e=this.querySelectorShadow(".noncollapse-content"))&&(e.style.paddingBottom="0px",e.style.marginBottom="0px");var e="safari"===d.a.getBrowser();e&&[this.querySelectorShadow(".noncollapse-container"),null==(e=this.querySelectorShadow("au-collapse"))?void 0:e.querySelectorShadow("#collapse")].forEach(e=>{e&&e.addEventListener("scroll",()=>{this.publishData(null,s.a.CUSTOM_SCROLL)})})},200)}async _paramsRawObserver(e){await super._paramsRawObserver(e),this.updateParams(e)}_onOpenedChange(t){t.detail.value&&this.accordion&&this.tabs.forEach((e,n)=>{e=t.target.name===e.title;this.set(`tabs.${n}.opened`,e)})}updateParams(e){var n="safari"===d.a.getBrowser(),n=(this.scrollable=!n&&!1!==e.scrollable,n&&(!1!==e.scrollable?this.updateStyles({"--aurigma-group-overflow":"auto"}):this.updateStyles({"--aurigma-group-overflow":"hidden"})),this.type=i[this._computeValue(e.type.toString())]||i.htab,this.unifySelection=!!e.unifySelection,this.accordion=!!d.a.typeofCheck(e.accordion,"undefined")||e.accordion,this.type===i.vtab||this.type===i.htab?(this.containerLayout=this.type===i.htab?"horizontal":"vertical",this.templateSwitch=!1):this.templateSwitch=!0,this.tabs.map(e=>!!e.opened));let t=e.tabs||[];t.forEach(e=>{var n,t;e.title&&e.title.startsWith("{{")&&e.title.endsWith("}}")&&((n=this.jsonParamsFetcher.scope).self=this,t={[l.a.SCOPE_HEAD_KEY]:this.jsonParamsFetcher.head,title:e.title},"undefined"!==(t=this._jsonProcessor.process(t,n).title))&&(e.title=t)}),n.forEach((e,n)=>{e&&(this.selectedIndex=n),t[n]&&(t[n].opened=e)}),this.tabs=t,this.accordion&&!this.tabs.find(e=>e.opened)&&0<this.tabs.length&&(this.tabs[0].opened=!0)}recompileParams(e,n,t=0){var i=JSON.parse(JSON.stringify(this.originWidget.definition.params));i[l.a.SCOPE_HEAD_KEY]=this.jsonParamsFetcher.head,this._jsonProcessor.process(i,e).tabs.map((n,t)=>{Object.keys(n).forEach(e=>{"id"!==e&&"widgets"!==e&&(this.tabs[t][e]=n[e])})}),this.updateVisibleParams(),this.oldParams=this.params,this.params=n}updateVisibleParams(){if(this.notifyPath("tabs"),this.tabs.forEach((e,n)=>{let t=e.visible;null!=t&&Array.from(this.querySelectorAllShadow(`[data-tab='${n}']`)).forEach(e=>e.hidden=!t),this.notifyPath("tabs."+n+".title")}),!1===this.tabs[this.selectedIndex].visible)for(var e of this.tabs)if(!1!==e.visible){this.selectedIndex=this.tabs.indexOf(e);break}}isCollapsible(e){return this.type===i.collapsible}isNonCollapsible(e){return this.type===i.noncollapsible}_getStylesByType(e){return"pim-design-selector"===e?"--au-widget-height: 100%;":""}};Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Object)],m.prototype,"params",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Array)],m.prototype,"tabs",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Object)],m.prototype,"type",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Boolean)],m.prototype,"scrollable",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Number)],m.prototype,"selectedIndex",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",String)],m.prototype,"containerLayout",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Boolean)],m.prototype,"templateSwitch",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Boolean)],m.prototype,"accordion",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",String)],m.prototype,"selectedTitle",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Boolean)],m.prototype,"showCustomScroll",void 0),Object(n.a)([Object(a.c)(),Object(n.b)("design:type",Object),Object(n.b)("design:paramtypes",[])],m.prototype,"_",null),m=Object(n.a)([Object(a.a)("au-widget-group",t)],m)}}]);