@aurigma/ui-framework
Version:
A platform which allows building print product personalization editors based on Aurigma's Customer's Canvas.
1 lines • 5.11 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,n){n.r(t),n.d(t,"AuWidgetPimOptions",function(){return d}),n.d(t,"widget",function(){return d});var t=n(0),i=n(2),s=n(1),a=n(17),o=n(395),l=n(160),n=n(874);class p{constructor(e,i){for(let[t,n]of Object.entries(e._)){var s=i.find(e=>e.id===+t);Array.isArray(n)?(this.name=s.name,this.value=s.values.filter(e=>n.includes(e.id)).map(e=>e.name)):(this.name=s.name,this.value=s.values.find(e=>e.id===n).name),this.visible=e.isVisible}}}class g{constructor(t,e){this.name=t.name,this.type="pim-option";var n=t.options.find(e=>e.name===t.name),i="true"===(null==(i=n.appearanceDataItems)?void 0:i.find(e=>"OptionTooltip"===e.key).value),s="true"===(null==(s=n.appearanceDataItems)?void 0:s.find(e=>"OptionDescription"===e.key).value),a="true"===(null==(a=n.appearanceDataItems)?void 0:a.find(e=>"ValueAdditionText"===e.key).value);this.params={option:{name:n.name,id:n.id,values:n.values,selected:n.selected,tooltip:i?n.tooltip:null,description:s?n.description:null,isMultiSelect:n.isMultiSelect,showValueAdditionalText:a,type:t.type||n.type,subType:t.subType||null},config:t.config,style:t.style,css:t.css,visible:t.visible,active:t.active,onChange:t.onChange,parentWidgetName:e}}}let d=class extends l.b{constructor(){super(...arguments),this.options=[],this._optionsWidgets=[],this._optionsNames=[],this._optionsAreLoaded=!1,this.isLoading=!1}get _(){if(0<this._optionsWidgets.length&&!this.isLoading){let t={};return this._optionsWidgets.forEach(e=>{e.isActive&&Object.assign(t,e._)}),t}return[]}checkOptionsLoading(){this._optionsAreLoaded||0===this.options.length||this.options.length!==this._optionsWidgets.length||(this._optionsAreLoaded=!0,this._onReadyFunction&&this._onReadyFunction())}get summary(){if(0<this._optionsWidgets.length){let t=[];return this._optionsWidgets.forEach(e=>{null!=e&&e._&&e.isActive&&t.push(new p(e,this._options))}),t}return[]}updateParams(h){var e;if(h&&h.options&&!(h.options.length<1)){this.isLoading=!0,this._options=h.options;let u=[];if(h.onReady&&(this._onReadyFunction=s.a.functionWrapperConstructor(h.onReady)),h.onChange&&(this._onChange=s.a.functionWrapperConstructor(h.onChange)),0<h.options.length){let c=new Map;null!=(e=this.paramsRaw)&&e.modifiers&&0<(null==(e=this.paramsRaw)?void 0:e.modifiers.length)&&null!=(e=this.paramsRaw)&&e.modifiers.forEach(e=>c.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})),h.options.forEach(e=>{let t,n,i,s,a=[...h.options];var o=c.has(e.name);let l=o?c.get(e.name).visible:void 0,p=l;var d=1===e.values.length;let r=o&&(null==(t=c.get(e.name))?void 0:t.preselectedValue);d&&(p=!1!==l,l=!!l),r&&!d&&(a=a.map(e=>Object.assign(Object.assign({},e),{selected:e.values.filter(e=>r===e.name||(null==r?void 0:r.includes(e.name)))})),p=!0);d={name:e.name,options:a,visible:null==l||l,style:o?null==(n=c.get(e.name))?void 0:n.style:null,css:o?null==(i=c.get(e.name))?void 0:i.css:null,active:p,config:o?null==(s=c.get(e.name))?void 0:s.config:null,onChange:o?c.get(e.name).onChange:null,type:o?c.get(e.name).type:null,subType:o?c.get(e.name).subType:null},o=new g(d,this.name);u.push(o)})}this.options=u,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(o.a)(e=>{var t;return 0<=this._optionsNames.indexOf(e.name)&&this.name===(null==(t=null==e?void 0:e.data)?void 0:t.parentWidgetName)&&!!e.sender._})).subscribe(e=>{this._updateWidgets(e),this._onChange&&this._onChange(e),this.checkOptionsLoading()})}async _updateWidgets(t){var e;0<this._optionsWidgets.length?((e=this._optionsWidgets.filter(e=>e.name!==t.sender.name)).push(t.sender),this._optionsWidgets=e):this._optionsWidgets.push(t.sender)}disconnectedCallback(){var e;super.disconnectedCallback(),this._subscription.unsubscribe(),null!=(e=this.template)&&e.removeEventListener("scroll")}clearSelection(){}};Object(t.a)([Object(i.c)(),Object(t.b)("design:type",Object)],d.prototype,"options",void 0),Object(t.a)([Object(i.c)(),Object(t.b)("design:type",Object),Object(t.b)("design:paramtypes",[])],d.prototype,"_",null),d=Object(t.a)([Object(i.a)("au-widget-pim-options",n)],d)}}]);