@aurigma/ui-framework
Version:
A platform which allows building print product personalization editors based on Aurigma's Customer's Canvas.
1 lines • 5.43 kB
JavaScript
(window.multistep_editor_jsonpFunction=window.multistep_editor_jsonpFunction||[]).push([[43],{874:function(e,t){e.exports='<style>\n .content {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .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</style>\n\n<div class="content">\n <dom-repeat items="{{options}}" id="repeater">\n <template>\n <au-widget name="{{item.name}}" language="{{language}}" driver="{{driver}}"\n definition="{{item}}"></au-widget>\n </template>\n </dom-repeat>\n</div>\n\n'},933:function(e,t,i){"use strict";i.r(t),i.d(t,"AuWidgetPimOptions",(function(){return u})),i.d(t,"widget",(function(){return u}));var n=i(0),s=i(2),o=i(1),a=i(17),l=i(395),d=i(160),p=i(874);class c{constructor(e,t){for(const[i,n]of Object.entries(e._)){const s=t.find((e=>e.id===+i));Array.isArray(n)?(this.name=s.name,this.value=s.values.filter((e=>n.includes(e.id))).map((e=>e.name)),this.visible=e.isVisible):(this.name=s.name,this.value=s.values.find((e=>e.id===n)).name,this.visible=e.isVisible)}}}class r{constructor(e,t){var i,n,s;this.name=e.name,this.type="pim-option";const o=e.options.find((t=>t.name===e.name)),a="true"===(null===(i=o.appearanceDataItems)||void 0===i?void 0:i.find((e=>"OptionTooltip"===e.key)).value),l="true"===(null===(n=o.appearanceDataItems)||void 0===n?void 0:n.find((e=>"OptionDescription"===e.key)).value),d="true"===(null===(s=o.appearanceDataItems)||void 0===s?void 0:s.find((e=>"ValueAdditionText"===e.key)).value);this.params={option:{name:o.name,id:o.id,values:o.values,selected:o.selected,tooltip:a?o.tooltip:null,description:l?o.description:null,isMultiSelect:o.isMultiSelect,showValueAdditionalText:d,type:e.type?e.type:o.type,subType:e.subType?e.subType:null},config:e.config,style:e.style,css:e.css,visible:e.visible,active:e.active,onChange:e.onChange,parentWidgetName:t}}}let u=class extends d.b{constructor(){super(...arguments),this.options=[],this._optionsWidgets=[],this._optionsNames=[],this._optionsAreLoaded=!1,this.isLoading=!1}get _(){if(this._optionsWidgets.length>0&&!this.isLoading){const e={};return this._optionsWidgets.forEach((t=>{t.isActive&&Object.assign(e,t._)})),e}return[]}checkOptionsLoading(){this._optionsAreLoaded||0===this.options.length||this.options.length!==this._optionsWidgets.length||(this._optionsAreLoaded=!0,this._onReadyFunction&&this._onReadyFunction())}get summary(){if(this._optionsWidgets.length>0){const e=[];return this._optionsWidgets.forEach((t=>{(null==t?void 0:t._)&&t.isActive&&e.push(new c(t,this._options))})),e}return[]}updateParams(e){var t,i,n;if(!e)return;if(!e.options||e.options.length<1)return;this.isLoading=!0,this._options=e.options;let s=[];if(e.onReady&&(this._onReadyFunction=o.a.functionWrapperConstructor(e.onReady)),e.onChange&&(this._onChange=o.a.functionWrapperConstructor(e.onChange)),e.options.length>0){let o=new Map;(null===(t=this.paramsRaw)||void 0===t?void 0:t.modifiers)&&(null===(i=this.paramsRaw)||void 0===i?void 0:i.modifiers.length)>0&&(null===(n=this.paramsRaw)||void 0===n||n.modifiers.forEach((e=>o.set(e.name,{type:e.type,subType:e.subType,style:e.style,css:e.css,config:e.config,visible:e.visible,preselectedValue:e.preselectedValue?JSON.parse(JSON.stringify(e.preselectedValue)):void 0,onChange:e.onChange})))),e.options.forEach((t=>{var i,n,a,l;let d=[...e.options];const p=o.has(t.name);let c=p?o.get(t.name).visible:void 0,u=c;const h=1===t.values.length,g=p&&(null===(i=o.get(t.name))||void 0===i?void 0:i.preselectedValue);h&&(u=!1!==c,c=!!c),g&&!h&&(d=d.map((e=>Object.assign(Object.assign({},e),{selected:e.values.filter((e=>g===e.name||(null==g?void 0:g.includes(e.name))))}))),u=!0);const m={name:t.name,options:d,visible:null==c||c,style:p?null===(n=o.get(t.name))||void 0===n?void 0:n.style:null,css:p?null===(a=o.get(t.name))||void 0===a?void 0:a.css:null,active:u,config:p?null===(l=o.get(t.name))||void 0===l?void 0:l.config:null,onChange:p?o.get(t.name).onChange:null,type:p?o.get(t.name).type:null,subType:p?o.get(t.name).subType:null},v=new r(m,this.name);s.push(v)}))}this.options=s,this._optionsNames=this.options.map((e=>e.name)),this.isLoading=!1}async updateParamsAsync(e){await super.updateParamsAsync(e)}async connectedCallback(){super.connectedCallback(),this._subscription=this.observe(a.a.WIDGET_CHANGE).pipe(Object(l.a)((e=>{var t;return this._optionsNames.indexOf(e.name)>=0&&this.name===(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.parentWidgetName)&&!!e.sender._}))).subscribe((e=>{this._updateWidgets(e),this._onChange&&this._onChange(e),this.checkOptionsLoading()}))}async _updateWidgets(e){if(this._optionsWidgets.length>0){const t=this._optionsWidgets.filter((t=>t.name!==e.sender.name));t.push(e.sender),this._optionsWidgets=t}else this._optionsWidgets.push(e.sender)}disconnectedCallback(){var e;super.disconnectedCallback(),this._subscription.unsubscribe(),null===(e=this.template)||void 0===e||e.removeEventListener("scroll")}clearSelection(){}};Object(n.a)([Object(s.c)(),Object(n.b)("design:type",Object)],u.prototype,"options",void 0),Object(n.a)([Object(s.c)(),Object(n.b)("design:type",Object),Object(n.b)("design:paramtypes",[])],u.prototype,"_",null),u=Object(n.a)([Object(s.a)("au-widget-pim-options",p)],u)}}]);