@vendure/admin-ui-plugin 2.1.6 → 2.1.7
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/lib/admin-ui/539.d5cfcdff4ce41934.js.map +1 -1
- package/lib/admin-ui/{976.d3ac44aefe298211.js → 976.d934e59ba4861463.js} +14 -14
- package/lib/admin-ui/976.d934e59ba4861463.js.map +1 -0
- package/lib/admin-ui/i18n-messages/pt_BR.json +2 -2
- package/lib/admin-ui/i18n-messages/uk.json +166 -166
- package/lib/admin-ui/index.html +1 -1
- package/lib/admin-ui/{main.993ffd651e48802c.js → main.33a1ecfa53568dcf.js} +2 -2
- package/lib/admin-ui/{main.993ffd651e48802c.js.map → main.33a1ecfa53568dcf.js.map} +1 -1
- package/lib/admin-ui/{runtime.a8ec539c419fc3ea.js → runtime.11c11178386ceeb1.js} +2 -2
- package/lib/admin-ui/{runtime.a8ec539c419fc3ea.js.map → runtime.11c11178386ceeb1.js.map} +1 -1
- package/package.json +4 -4
- package/lib/admin-ui/976.d3ac44aefe298211.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkvendure_admin=self.webpackChunkvendure_admin||[]).push([[976],{6976:(sd,tn,u)=>{u.r(tn),u.d(tn,{ASSET_DETAIL_QUERY:()=>Lo,ApplyFacetDialogComponent:()=>It,AssetDetailComponent:()=>_e,AssetListComponent:()=>ve,AssetsComponent:()=>vt,AssignProductsToChannelDialogComponent:()=>nt,BulkAddFacetValuesDialogComponent:()=>be,COLLECTION_DETAIL_QUERY:()=>Ua,CatalogModule:()=>ae,CollectionBreadcrumbPipe:()=>qt,CollectionContentsComponent:()=>Vt,CollectionDataTableComponent:()=>Ut,CollectionDetailComponent:()=>ye,CollectionListComponent:()=>Oe,CollectionTreeComponent:()=>Ee,CollectionTreeNodeComponent:()=>ke,CollectionTreeService:()=>Yt,ConfirmVariantDeletionDialogComponent:()=>Be,CreateProductOptionGroupDialogComponent:()=>le,CreateProductVariantDialogComponent:()=>ue,FACET_DETAIL_QUERY:()=>_c,FACET_LIST_QUERY:()=>Mc,FacetDetailComponent:()=>Je,FacetListComponent:()=>De,GET_PRODUCTS_WITH_FACET_VALUES_BY_IDS:()=>dn,GET_PRODUCT_DETAIL:()=>Ss,GET_VARIANTS_WITH_FACET_VALUES_BY_IDS:()=>pn,GenerateProductVariantsComponent:()=>we,GeneratedVariant:()=>Zo,MoveCollectionsDialogComponent:()=>Fe,OPTION_VALUE_INPUT_VALUE_ACCESSOR:()=>en,OptionValueInputComponent:()=>pt,PRODUCT_LIST_QUERY:()=>od,PRODUCT_VARIANT_DETAIL_QUERY:()=>id,PRODUCT_VARIANT_DETAIL_QUERY_PRODUCT_VARIANT_FRAGMENT:()=>We,PRODUCT_VARIANT_LIST_QUERY:()=>cd,PRODUCT_VARIANT_UPDATE_MUTATION:()=>ad,ProductDetailComponent:()=>Wt,ProductDetailService:()=>ct,ProductListComponent:()=>Ve,ProductOptionsEditorComponent:()=>se,ProductVariantDetailComponent:()=>Ne,ProductVariantListComponent:()=>Kt,ProductVariantQuickJumpComponent:()=>Ue,ProductVariantsEditorComponent:()=>ge,ProductVariantsResolver:()=>qe,ProductVariantsTableComponent:()=>Ke,UPDATE_PRODUCTS_BULK:()=>un,UPDATE_VARIANTS_BULK:()=>mn,UpdateProductOptionDialogComponent:()=>ze,VariantPriceDetailComponent:()=>Me,arrayToTree:()=>Tn,assignCollectionsToChannelBulkAction:()=>vn,assignFacetValuesToProductsBulkAction:()=>Jn,assignFacetsToChannelBulkAction:()=>An,assignProductVariantsToChannelBulkAction:()=>Dn,assignProductsToChannelBulkAction:()=>On,createRoutes:()=>nn,deleteCollectionsBulkAction:()=>fn,deleteFacetsBulkAction:()=>Zn,deleteProductVariantsBulkAction:()=>Vn,deleteProductsBulkAction:()=>Ln,moveCollectionsBulkAction:()=>hn,productOptionsEditorBreadcrumb:()=>on,removeCollectionsFromChannelBulkAction:()=>Cn,removeFacetsFromChannelBulkAction:()=>Pn,removeFacetsFromChannelBulkAction2:()=>fc,removeProductVariantsFromChannelBulkAction:()=>wn,removeProductsFromChannelBulkAction:()=>kn,replaceLast:()=>Qe});var rt,A=u(4285),p=u(186),s=u(848),t=u(6108),h=u(3044),d=u(5086),P=u(9034),at=u(3839),q=u(1441),Y=u(1452),U=u(6526),G=u(8761),ce=u(4415),k=u(3176),Mn=u(7198),xt=u(5808),C=u(4154);function Qe(o,n,e){if(!o)return"";const i=o.lastIndexOf(n);if(-1===i)return o;return o.substr(0,i)+o.substr(i).replace(n,e)}class ct{constructor(n){this.dataService=n}getTaxCategories(){return this.dataService.settings.getTaxCategories().mapSingle(n=>n.taxCategories.items).pipe((0,xt.d)(1))}createProductWithVariants(n,e,i){const a=this.dataService.product.createProduct(n),r=e.groups.filter(l=>0<l.values.length),c=this.createProductOptionGroups(r,i);return(0,at.D)(a,c).pipe((0,U.z)(([{createProduct:l},m])=>(m.length?(0,at.D)(m.map(v=>this.dataService.product.addOptionGroupToProduct({productId:l.id,optionGroupId:v.id}))):(0,k.of)([])).pipe((0,h.U)(()=>({createProduct:l,optionGroups:m})))),(0,U.z)(({createProduct:l,optionGroups:m})=>{const g=e.variants.map(T=>{const Z=m.length?T.optionValues.map((I,Q)=>{const D=m[Q].options.find(z=>z.name===I);if(!D)throw new Error(`Could not find a matching ProductOption "${I}" when creating variant`);return D.id}):[];return{...T,optionIds:Z}}),v=m.map(T=>T.options).reduce((T,Z)=>[...T,...Z],[]);return this.createProductVariants(l,g,v,i,e.stockLocationId)}))}createProductOptionGroups(n,e){return n.length?(0,at.D)(n.map(i=>this.dataService.product.createProductOptionGroups({code:(0,G.U)(i.name,"-"),translations:[{languageCode:e,name:i.name}],options:i.values.map(a=>({code:(0,G.U)(a,"-"),translations:[{languageCode:e,name:a}]}))}).pipe((0,h.U)(a=>a.createProductOptionGroup)))):(0,k.of)([])}createProductVariants(n,e,i,a,r){const c=e.map(l=>{const m=i.length?`${n.name} ${l.optionIds.map(g=>i.find(v=>v.id===g)).filter(ce.notNullOrUndefined).map(g=>g.name).join(" ")}`:n.name;return{productId:n.id,price:l.price,sku:l.sku,translations:[{languageCode:a,name:m}],stockLevels:[{stockLocationId:r,stockOnHand:l.stock}],optionIds:l.optionIds}});return this.dataService.product.createProductVariants(c).pipe((0,h.U)(({createProductVariants:l})=>({createProductVariants:l,productId:n.id})))}updateProduct(n){const{product:e,languageCode:i,autoUpdate:a,productInput:r,variantsInput:c}=n,l=[],m=c||[];return(a?this.dataService.product.getProductVariantsForProduct({},e.id).mapSingle(({productVariants:v})=>v.items):(0,k.of)([])).pipe((0,U.z)(v=>{if(r){l.push(this.dataService.product.updateProduct(r));const T=(0,s.ZIM)(e,i)?.name??"",Z=(0,s.ZIM)(r,i)?.name;if(Z&&T!==Z&&a)for(const I of v){const Q=(0,s.ZIM)(I,i)?.name||"";let D;const z=m.find(Xe=>Xe.id===I.id);z?D=z:(D={id:I.id,translations:[{languageCode:i,name:Q}]},m.push(D));const re=(0,s.ZIM)(D,i);re&&(re.name?re.name=Qe(re.name,T,Z):re.name=[Z,...I.options.map(Xe=>Xe.name)].join(" "))}}return m.length&&l.push(this.dataService.product.updateProductVariants(m)),(0,at.D)(l)}))}updateProductOption(n,e,i){return(n.autoUpdate?this.dataService.product.getProductVariantsForProduct({},e.id).mapSingle(({productVariants:r})=>r.items):(0,k.of)([])).pipe((0,U.z)(r=>{let c=(0,k.of)([]);if(n.autoUpdate){let l;const m=(0,s.ZIM)(n,i)?.name;m||(c=(0,k.of)([]));const g=[];for(const v of r)if(v.options.map(T=>T.id).includes(n.id)){l||(l=(0,s.ZIM)(v.options.find(Z=>Z.id===n.id),i)?.name);const T=(0,s.ZIM)(v,i)?.name||"";l&&m&&T.includes(l)&&g.push({id:v.id,translations:[{languageCode:i,name:Qe(T,l,m)}]})}g.length&&(c=this.dataService.product.updateProductVariants(g))}return this.dataService.product.updateProductOption(n).pipe((0,U.z)(()=>c))}))}deleteProductVariant(n,e){return this.dataService.product.deleteProductVariant(n).pipe((0,C.w)(i=>i.deleteProductVariant.result===s.PcR.DELETED?this.dataService.product.getProduct(e).single$:(0,Mn._)(i.deleteProductVariant.message)))}}(rt=ct).\u0275fac=function(n){return new(n||rt)(t.LFG(s.DoR))},rt.\u0275prov=t.Yz7({token:rt,factory:rt.\u0275fac,providedIn:"root"});var Tt,f=u(6445),_=u(8046),x=u(8621),$=u(8369),L=u(8251),E=u(1300),N=u(5796),st=u(7836),lt=u(106),R=u(2249),Un=u(1563),Nn=u(4437),Qn=u(7846),qn=u(8005),w=u(3850),bt=u(5276),W=u(8923),b=u(1317),B=u(9360),X=u(2388);function $n(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.pristine||e.detailForm.invalid),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}function Sn(o,n){if(1&o&&(t.ynx(0,19),t._UZ(1,"vdr-tabbed-custom-fields",20),t.ALo(2,"hasPermission"),t.BQk()),2&o){const e=t.oxw().$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("customFields",i.optionGroupCustomFields)("customFieldsFormGroup",e.get("customFields"))("readonly",!t.lcZ(2,3,i.updatePermission))}}function Yn(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.value.id," ")}}function Gn(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.value.createdAt,"short")," ")}}function En(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.value.updatedAt,"short")," ")}}function Bn(o,n){if(1&o&&(t._UZ(0,"input",28),t.ALo(1,"hasPermission")),2&o){const e=n.item,i=t.oxw(4);t.Q6J("formControl",e.get("name"))("readonly",!t.lcZ(1,2,i.updatePermission))}}function jn(o,n){if(1&o&&t._UZ(0,"input",29),2&o){const e=n.item;t.Q6J("formControl",e.get("code"))}}function Rn(o,n){if(1&o&&(t._UZ(0,"vdr-tabbed-custom-fields",30),t.ALo(1,"hasPermission")),2&o){const e=n.item,i=t.oxw(4);t.Q6J("customFields",i.optionCustomFields)("compact",!0)("customFieldsFormGroup",e.get("customFields"))("readonly",!t.lcZ(1,4,i.updatePermission))}}function Hn(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-data-table-2",21),t.NdJ("pageChange",function(a){t.CHM(e);const r=t.oxw().$implicit,c=t.oxw(2);return t.KtG(c.paginationSettings[r.value.id].currentPage=a)}),t.TgZ(1,"vdr-dt2-column",22),t.ALo(2,"translate"),t.YNc(3,Yn,1,1,"ng-template"),t.qZA(),t.TgZ(4,"vdr-dt2-column",23),t.ALo(5,"translate"),t.YNc(6,Gn,2,4,"ng-template"),t.qZA(),t.TgZ(7,"vdr-dt2-column",24),t.ALo(8,"translate"),t.YNc(9,En,2,4,"ng-template"),t.qZA(),t.TgZ(10,"vdr-dt2-column",25),t.ALo(11,"translate"),t.YNc(12,Bn,2,4,"ng-template"),t.qZA(),t.TgZ(13,"vdr-dt2-column",26),t.ALo(14,"translate"),t.YNc(15,jn,1,1,"ng-template"),t.qZA(),t.TgZ(16,"vdr-dt2-column",27),t.ALo(17,"translate"),t.YNc(18,Rn,2,6,"ng-template"),t.qZA()()}if(2&o){const e=n.ngIf,i=t.oxw().$implicit,a=t.oxw(2);t.Q6J("items",e)("itemsPerPage",null==a.paginationSettings[i.value.id]?null:a.paginationSettings[i.value.id].itemsPerPage)("currentPage",null==a.paginationSettings[i.value.id]?null:a.paginationSettings[i.value.id].currentPage)("totalItems",e.length),t.xp6(1),t.Q6J("heading",t.lcZ(2,16,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(5,18,"common.created-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(8,20,"common.updated-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(11,22,"common.name"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(14,24,"common.code"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(17,26,"common.custom-fields"))("hiddenByDefault",0===a.optionCustomFields.length)}}function Kn(o,n){if(1&o&&(t.TgZ(0,"vdr-card",10),t._UZ(1,"vdr-page-entity-info",11),t.TgZ(2,"div",12)(3,"vdr-form-field",13),t.ALo(4,"translate"),t._UZ(5,"input",14),t.ALo(6,"hasPermission"),t.qZA(),t.TgZ(7,"vdr-form-field",15),t.ALo(8,"translate"),t._UZ(9,"input",16),t.ALo(10,"hasPermission"),t.qZA()(),t.YNc(11,Sn,3,5,"ng-container",17),t.YNc(12,Hn,19,28,"vdr-data-table-2",18),t.qZA()),2&o){const e=n.$implicit,i=n.index,a=t.oxw(2);t.Q6J("formArrayName",i)("title",e.value.code),t.xp6(1),t.Q6J("entity",e.value),t.xp6(2),t.Q6J("label",t.lcZ(4,11,"common.name")),t.xp6(2),t.Q6J("id","name-"+i)("readonly",!t.lcZ(6,13,a.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(8,15,"common.code")),t.xp6(2),t.Q6J("id","code-"+i)("readonly",!t.lcZ(10,17,a.updatePermission)),t.xp6(2),t.Q6J("ngIf",a.optionGroupCustomFields.length),t.xp6(1),t.Q6J("ngIf",a.getOptions(e))}}function zn(o,n){if(1&o&&(t.TgZ(0,"form",7)(1,"div",8),t.YNc(2,Kn,13,19,"vdr-card",9),t.qZA()()),2&o){const e=t.oxw();t.Q6J("formGroup",e.detailForm),t.xp6(2),t.Q6J("ngForOf",e.getOptionGroups())}}class se extends s.UT_{constructor(n,e,i,a,r,c,l,m){super(n,e,i,a),this.route=n,this.router=e,this.serverConfigService=i,this.dataService=a,this.productDetailService=r,this.formBuilder=c,this.changeDetector=l,this.notificationService=m,this.autoUpdateVariantNames=!0,this.paginationSettings={},this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct],this.optionGroupCustomFields=this.getCustomFieldConfig("ProductOptionGroup"),this.optionCustomFields=this.getCustomFieldConfig("ProductOption")}ngOnInit(){this.optionGroups$=this.route.snapshot.data.entity.pipe((0,h.U)(n=>n.optionGroups),(0,q.b)(n=>{for(const e of n)this.paginationSettings[e.id]={currentPage:1,itemsPerPage:10}})),this.detailForm=new d.nJ({optionGroups:new d.vC([])}),super.init()}getOptionGroups(){return this.detailForm.get("optionGroups").controls}getOptions(n){return n.get("options").controls}save(){if(this.detailForm.invalid||this.detailForm.pristine)return;const n=this.dataService.product.getProduct(this.id).mapSingle(e=>e.product);(0,P.a)(this.entity$,this.languageCode$,n).pipe((0,Y.q)(1),(0,U.z)(([{optionGroups:e},i,a])=>{const r=[];for(const c of this.getOptionGroups()){if(c.dirty){const l=e.find(m=>m.id===c.value.id);if(l){const m=this.getUpdatedOptionGroup(l,c,i);r.push(this.dataService.product.updateProductOptionGroup(m))}}for(const l of this.getOptions(c))if(l.dirty){const m=e.find(g=>g.id===c.value.id)?.options.find(g=>g.id===l.value.id);if(m){const g=this.getUpdatedOption(m,l,i);r.push(this.productDetailService.updateProductOption({...g,autoUpdate:this.autoUpdateVariantNames},a,i))}}}return(0,at.D)(r)})).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"ProductOptionGroup"})},e=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"ProductOptionGroup"})})}getUpdatedOptionGroup(n,e,i){return(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionGroupCustomFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}})}getUpdatedOption(n,e,i){return(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionCustomFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}})}setFormValues(n,e){const i=this.detailForm.get("optionGroups");for(const a of n.optionGroups){const r=(0,s.ZIM)(a,e),c=this.setOptionGroupForm(a,i,r);this.setCustomFieldsForm(this.optionGroupCustomFields,c,a,r);let l=c.get("options");l||(l=this.formBuilder.array([]),c.addControl("options",l));for(const m of a.options){const g=(0,s.ZIM)(m,e),v=this.setOptionForm(m,l,g);this.setCustomFieldsForm(this.optionCustomFields,v,m,g)}}}setCustomFieldsForm(n,e,i,a){if(n.length){let r=e.get(["customFields"]);r||(r=this.formBuilder.group(n.reduce((c,l)=>({...c,[l.name]:""}),{})),e.addControl("customFields",r)),this.setCustomFieldFormValues(n,r,i,a)}}setOptionGroupForm(n,e,i){const a={id:n.id,createdAt:n.createdAt,updatedAt:n.updatedAt,code:n.code,name:i?.name??""};let r=e.controls.find(c=>c.value.id===n.id);return r?(r.get("id")?.setValue(a.id),r.get("code")?.setValue(a.code),r.get("name")?.setValue(a.name),r.get("createdAt")?.setValue(a.createdAt),r.get("updatedAt")?.setValue(a.updatedAt)):(r=this.formBuilder.group(a),e.push(r)),r}setOptionForm(n,e,i){const a={id:n.id,createdAt:n.createdAt,updatedAt:n.updatedAt,code:n.code,name:i?.name??""};let r=e.controls.find(c=>c.value.id===n.id);return r?(r.get("id")?.setValue(a.id),r.get("code")?.setValue(a.code),r.get("name")?.setValue(a.name),r.get("createdAt")?.setValue(a.createdAt),r.get("updatedAt")?.setValue(a.updatedAt)):(r=this.formBuilder.group(a),e.push(r)),r}}(Tt=se).\u0275fac=function(n){return new(n||Tt)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(s.iHG),t.Y36(s.DoR),t.Y36(ct),t.Y36(d.QS),t.Y36(t.sBO),t.Y36(s.gqp))},Tt.\u0275cmp=t.Xpm({type:Tt,selectors:[["vdr-product-options-editor"]],features:[t.qOj],decls:24,vars:17,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"flex","center"],[1,"mr-2"],["clrCheckbox","","type","checkbox","id","auto-update",3,"ngModel","ngModelChange"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],["class","form",3,"formGroup",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],[1,"form",3,"formGroup"],["formGroupName","optionGroups"],[3,"formArrayName","title",4,"ngFor","ngForOf"],[3,"formArrayName","title"],[3,"entity"],[1,"form-grid"],["for","name",3,"label"],["type","text","formControlName","name",3,"id","readonly"],["for","code",3,"label"],["type","text","formControlName","code",3,"id","readonly"],["formGroupName","customFields",4,"ngIf"],["id","edit-options-list",3,"items","itemsPerPage","currentPage","totalItems","pageChange",4,"ngIf"],["formGroupName","customFields"],["entityName","ProductOptionGroup",3,"customFields","customFieldsFormGroup","readonly"],["id","edit-options-list",3,"items","itemsPerPage","currentPage","totalItems","pageChange"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault"],["id","updated-at",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","code",3,"heading","optional"],["id","custom-fields",3,"heading","hiddenByDefault"],["type","text",3,"formControl","readonly"],["type","text",3,"formControl"],["entityName","ProductOption",3,"customFields","compact","customFieldsFormGroup","readonly"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-header"),t._UZ(1,"vdr-page-title"),t.TgZ(2,"vdr-page-header-description"),t._uU(3),t.ALo(4,"translate"),t.qZA()(),t.TgZ(5,"vdr-page-body")(6,"vdr-page-block")(7,"vdr-action-bar")(8,"vdr-ab-left")(9,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(10,"async"),t.ALo(11,"async"),t.qZA()(),t.TgZ(12,"vdr-ab-right")(13,"div",1)(14,"div",2)(15,"clr-checkbox-wrapper")(16,"input",3),t.NdJ("ngModelChange",function(a){return e.autoUpdateVariantNames=a}),t.qZA(),t.TgZ(17,"label"),t._uU(18),t.ALo(19,"translate"),t.qZA()()(),t.YNc(20,$n,3,4,"button",4),t.qZA()()()(),t.TgZ(21,"vdr-page-block"),t.YNc(22,zn,3,2,"form",5),t.ALo(23,"async"),t.qZA()()),2&n&&(t.xp6(3),t.Oqu(t.lcZ(4,7,"catalog.page-description-options-editor")),t.xp6(6),t.Q6J("availableLanguageCodes",t.lcZ(10,9,e.availableLanguages$))("currentLanguageCode",t.lcZ(11,11,e.languageCode$)),t.xp6(7),t.Q6J("ngModel",e.autoUpdateVariantNames),t.xp6(2),t.Oqu(t.lcZ(19,13,"catalog.auto-update-product-variant-name")),t.xp6(2),t.Q6J("vdrIfPermissions",e.updatePermission),t.xp6(2),t.Q6J("ngIf",t.lcZ(23,15,e.optionGroups$)))},dependencies:[f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.On,d.oH,d.sg,d.u,d.x0,d.CE,x.Kk,x.BN,x.mz,$.h,L.y,E.S,N.H,st.y,lt.e,R.U,Un.q,Nn.T,Qn._,qn.H,w.z,bt.D,W.A,_.Ov,b.X$,B.j,X.H],styles:[".option-group-header[_ngcontent-%COMP%]{display:flex;align-items:baseline}"],changeDetection:0});var Zt,J=u(7355),dt=u(7807),F=u(2701),S=u(6940),tt=u(4351),H=u(4073);function Wn(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.create-product-option-group"),"\n")}function Xn(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",7),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.confirm())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",e.form.invalid),t.xp6(1),t.hij(" ",t.lcZ(5,5,"common.confirm")," ")}}class le{constructor(n){this.formBuilder=n,this.form=this.formBuilder.group({name:["",d.kI.required],code:["",d.kI.required]})}updateCode(){const n=this.form.get("name"),e=this.form.get("code");n&&e&&e.pristine&&e.setValue((0,G.U)(`${n.value}`,"-"))}confirm(){const{name:n,code:e}=this.form.value;!n||!e||this.resolveWith({code:e,options:[],translations:[{languageCode:this.languageCode,name:n}]})}cancel(){this.resolveWith()}}(Zt=le).\u0275fac=function(n){return new(n||Zt)(t.Y36(d.qu))},Zt.\u0275cmp=t.Xpm({type:Zt,selectors:[["vdr-create-product-option-group-dialog"]],decls:9,vars:7,consts:[["vdrDialogTitle",""],[1,"form-grid",3,"formGroup"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"input"],["for","code",3,"label"],["id","code","type","text","formControlName","code"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,Wn,2,3,"ng-template",0),t.TgZ(1,"div",1)(2,"vdr-form-field",2),t.ALo(3,"translate"),t.TgZ(4,"input",3),t.NdJ("input",function(){return e.updateCode()}),t.qZA()(),t.TgZ(5,"vdr-form-field",4),t.ALo(6,"translate"),t._UZ(7,"input",5),t.qZA()(),t.YNc(8,Xn,6,7,"ng-template",6)),2&n&&(t.xp6(1),t.Q6J("formGroup",e.form),t.xp6(1),t.Q6J("label",t.lcZ(3,3,"common.name")),t.xp6(3),t.Q6J("label",t.lcZ(6,5,"common.code")))},dependencies:[d.Fj,d.JJ,d.JL,d.sg,d.u,$.h,L.y,tt.n,H.q,b.X$],changeDetection:0});var At,de=u(4992),pe=u(2089);function to(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.create-product-variant"),"\n")}function eo(o,n){if(1&o&&(t.TgZ(0,"vdr-form-field",7),t._UZ(1,"ng-select",12),t.qZA()),2&o){const e=n.$implicit;t.Q6J("label",e.name),t.xp6(1),t.Q6J("items",e.options)("formControlName",e.code)}}function no(o,n){1&o&&(t.TgZ(0,"clr-alert",13)(1,"clr-alert-item")(2,"span",14),t._uU(3),t.ALo(4,"translate"),t.qZA()()()),2&o&&(t.Q6J("clrAlertClosable",!1),t.xp6(3),t.hij(" ",t.lcZ(4,2,"catalog.cannot-create-variants-without-options")," "))}function oo(o,n){if(1&o&&(t.TgZ(0,"div",15)(1,"clr-alert",16)(2,"clr-alert-item")(3,"span",14),t._uU(4),t.ALo(5,"translate"),t.qZA()()()()),2&o){const e=t.oxw();t.xp6(1),t.Q6J("clrAlertClosable",!1),t.xp6(3),t.lnq(" ",t.lcZ(5,4,"catalog.product-variant-exists"),": ",e.existingVariant.name," (",e.existingVariant.sku,") ")}}function io(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",18),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.confirm())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",e.form.invalid||e.existingVariant||0===e.product.optionGroups.length),t.xp6(1),t.hij(" ",t.lcZ(5,5,"common.confirm")," ")}}class ue{constructor(n){this.formBuilder=n,this.form=this.formBuilder.group({name:["",d.kI.required],sku:["",d.kI.required],price:["",d.kI.required],options:this.formBuilder.record({})})}ngOnInit(){this.currencyCode=this.product.variants[0]?.currencyCode;for(const e of this.product.optionGroups)this.form.get("options").addControl(e.code,new d.NI("",d.kI.required));this.form.get("options").valueChanges.subscribe(e=>{const i=this.form.get("name");if(!Object.values(e).every(c=>null==c)&&e&&i&&!i.dirty){const c=Object.entries(e).map(([l,m])=>this.product.optionGroups.find(g=>g.code===l)?.options.find(g=>g.id===m)?.name).join(" ");i.setValue(`${this.product.name} ${c}`)}Object.values(e).every(c=>null!=c)&&(this.existingVariant=this.product.variants.find(c=>Object.entries(e).every(([l,m])=>c.options.find(g=>g.groupId===this.getGroupIdFromCode(l))?.id===m)))})}confirm(){const{name:n,sku:e,options:i,price:a}=this.form.value;if(!(n&&e&&i&&a))return;const r=Object.values(i).filter(ce.notNullOrUndefined);this.resolveWith({productId:this.product.id,sku:e,price:Number(a),optionIds:r,translations:[{languageCode:this.product.languageCode,name:n}]})}cancel(){this.resolveWith()}getGroupCodeFromId(n){return this.product.optionGroups.find(e=>e.id===n)?.code??""}getGroupIdFromCode(n){return this.product.optionGroups.find(e=>e.code===n)?.id??""}}(At=ue).\u0275fac=function(n){return new(n||At)(t.Y36(d.qu))},At.\u0275cmp=t.Xpm({type:At,selectors:[["vdr-create-product-variant-dialog"]],decls:17,vars:14,consts:[["vdrDialogTitle",""],[3,"formGroup"],["formGroupName","options",1,"form-grid"],[3,"label",4,"ngFor","ngForOf"],["clrAlertType","warning","class","form-grid-span",3,"clrAlertClosable",4,"ngIf"],["class","mt-2",4,"ngIf"],[1,"form-grid","mt-2"],[3,"label"],["type","text","formControlName","name"],["type","text","formControlName","sku"],["name","price","formControlName","price",3,"currencyCode"],["vdrDialogButtons",""],["bindLabel","name","bindValue","id","appendTo","body",3,"items","formControlName"],["clrAlertType","warning",1,"form-grid-span",3,"clrAlertClosable"],[1,"alert-text"],[1,"mt-2"],["clrAlertType","warning",1,"",3,"clrAlertClosable"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,to,2,3,"ng-template",0),t.TgZ(1,"form",1)(2,"div",2),t.YNc(3,eo,2,3,"vdr-form-field",3),t.YNc(4,no,5,4,"clr-alert",4),t.qZA(),t.YNc(5,oo,6,6,"div",5),t.TgZ(6,"div",6)(7,"vdr-form-field",7),t.ALo(8,"translate"),t._UZ(9,"input",8),t.qZA(),t.TgZ(10,"vdr-form-field",7),t.ALo(11,"translate"),t._UZ(12,"input",9),t.qZA(),t.TgZ(13,"vdr-form-field",7),t.ALo(14,"translate"),t._UZ(15,"vdr-currency-input",10),t.qZA()()(),t.YNc(16,io,6,7,"ng-template",11)),2&n&&(t.xp6(1),t.Q6J("formGroup",e.form),t.xp6(2),t.Q6J("ngForOf",e.product.optionGroups),t.xp6(1),t.Q6J("ngIf",0===e.product.optionGroups.length),t.xp6(1),t.Q6J("ngIf",e.existingVariant),t.xp6(2),t.Q6J("label",t.lcZ(8,8,"common.name")),t.xp6(3),t.Q6J("label",t.lcZ(11,10,"catalog.sku")),t.xp6(3),t.Q6J("label",t.lcZ(14,12,"catalog.price")),t.xp6(2),t.Q6J("currencyCode",e.currencyCode))},dependencies:[f.TIm,f.CyW,f.I9z,_.sg,_.O5,d._Y,d.Fj,d.JJ,d.JL,d.sg,d.u,d.x0,de.w9,pe.K,$.h,L.y,tt.n,H.q,b.X$],changeDetection:0});var Pt,j=u(7017),et=u(8269);const ao=["textArea"],ro=["editNameInput"];function co(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-chip",6),t.NdJ("iconClick",function(){const r=t.CHM(e).$implicit,c=t.oxw(2);return t.KtG(c.removeOption(r))}),t.TgZ(1,"span",7)(2,"input",8,9),t.NdJ("blur",function(a){const c=t.CHM(e).index,l=t.oxw(2);return t.KtG(l.updateOption(c,a))})("click",function(a){return a.cancelBubble=!0}),t.qZA()(),t.TgZ(4,"span",10),t.NdJ("click",function(a){const c=t.CHM(e).index,l=t.oxw(2);return t.KtG(l.editName(c,a))}),t._uU(5),t.qZA()()}if(2&o){const e=n.$implicit,i=n.last,a=n.index,r=t.oxw(2);t.ekj("selected",i&&r.lastSelected)("locked",e.locked),t.Q6J("icon",e.locked?"lock":"times")("colorFrom",r.groupName),t.xp6(1),t.Q6J("hidden",r.editingIndex!==a),t.xp6(1),t.Q6J("ngModel",e.name),t.xp6(2),t.ekj("editable",!e.locked&&!e.id),t.Q6J("hidden",r.editingIndex===a),t.xp6(1),t.Oqu(e.name)}}function so(o,n){if(1&o&&(t.TgZ(0,"div",4),t.YNc(1,co,6,12,"vdr-chip",5),t.qZA()),2&o){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.optionValues)}}const en={provide:d.JU,useExisting:(0,t.Gpc)(()=>pt),multi:!0};class pt{get optionValues(){return this.formValue??this.options??[]}constructor(n){this.changeDetector=n,this.groupName="",this.add=new t.vpe,this.remove=new t.vpe,this.edit=new t.vpe,this.disabled=!1,this.input="",this.isFocussed=!1,this.lastSelected=!1,this.editingIndex=-1}registerOnChange(n){this.onChangeFn=n}registerOnTouched(n){this.onTouchFn=n}setDisabledState(n){this.disabled=n,this.changeDetector.markForCheck()}writeValue(n){this.formValue=n||[]}focus(){this.textArea.nativeElement.focus()}editName(n,e){const i=this.optionValues[n];if(!i.locked&&!i.id){e.cancelBubble=!0,this.editingIndex=n;const a=this.nameInputs.get(n)?.nativeElement;setTimeout(()=>a?.focus())}}updateOption(n,e){const i=this.optionValues[n],a=e.target.value;i&&(a&&(i.name=a,this.edit.emit({index:n,option:i})),this.editingIndex=-1)}removeOption(n){n.locked||(this.formValue?(this.formValue=this.formValue?.filter(e=>e.name!==n.name),this.onChangeFn(this.formValue)):this.remove.emit(n))}handleKey(n){switch(n.key){case",":case"Enter":this.addOptionValue(),n.preventDefault();break;case"Backspace":this.lastSelected?(this.removeLastOption(),this.lastSelected=!1):""===this.input&&(this.lastSelected=!0);break;default:this.lastSelected=!1}}handleBlur(){this.isFocussed=!1,this.addOptionValue()}addOptionValue(){const n=this.parseInputIntoOptions(this.input).filter(e=>!(this.options??this.formValue)?.find(a=>a?.name===e.name));if(!this.formValue&&this.options)for(const e of n)this.add.emit(e);else this.formValue=(0,J.T)([...this.formValue,...n]),this.onChangeFn(this.formValue);this.input=""}parseInputIntoOptions(n){return n.split(/[,\n]/).map(e=>e.trim()).filter(e=>""!==e).map(e=>({name:e,locked:!1}))}removeLastOption(){if(this.optionValues.length){const n=this.optionValues[this.optionValues.length-1];this.removeOption(n)}}}(Pt=pt).\u0275fac=function(n){return new(n||Pt)(t.Y36(t.sBO))},Pt.\u0275cmp=t.Xpm({type:Pt,selectors:[["vdr-option-value-input"]],viewQuery:function(n,e){if(1&n&&(t.Gf(ao,7),t.Gf(ro,5,t.SBq)),2&n){let i;t.iGM(i=t.CRH())&&(e.textArea=i.first),t.iGM(i=t.CRH())&&(e.nameInputs=i)}},inputs:{groupName:"groupName",options:"options",disabled:"disabled"},outputs:{add:"add",remove:"remove",edit:"edit"},features:[t._Bn([en])],decls:4,vars:5,consts:[[1,"input-wrapper",3,"click"],["class","chips",4,"ngIf"],[3,"ngModel","disabled","keyup","focus","blur","ngModelChange"],["textArea",""],[1,"chips"],[3,"icon","selected","locked","colorFrom","iconClick",4,"ngFor","ngForOf"],[3,"icon","colorFrom","iconClick"],[3,"hidden"],["type","text",3,"ngModel","blur","click"],["editNameInput",""],[1,"option-name",3,"hidden","click"]],template:function(n,e){if(1&n){const i=t.EpF();t.TgZ(0,"div",0),t.NdJ("click",function(){t.CHM(i);const r=t.MAs(3);return t.KtG(r.focus())}),t.YNc(1,so,2,1,"div",1),t.TgZ(2,"textarea",2,3),t.NdJ("keyup",function(r){return e.handleKey(r)})("focus",function(){return e.isFocussed=!0})("blur",function(){return e.handleBlur()})("ngModelChange",function(r){return e.input=r}),t.qZA()()}2&n&&(t.ekj("focus",e.isFocussed),t.xp6(1),t.Q6J("ngIf",0<e.optionValues.length),t.xp6(1),t.Q6J("ngModel",e.input)("disabled",e.disabled))},dependencies:[_.sg,_.O5,d.Fj,d.JJ,d.On,j.Y,L.y],styles:[".input-wrapper[_ngcontent-%COMP%]{background-color:var(--color-form-input-bg);border-radius:3px!important;border:1px solid var(--color-grey-300)!important;cursor:text}.input-wrapper.focus[_ngcontent-%COMP%]{border-color:var(--color-primary-500)!important;box-shadow:0 0 1px 1px var(--color-primary-100)}.input-wrapper[_ngcontent-%COMP%] .chips[_ngcontent-%COMP%]{padding:5px}.input-wrapper[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{border:none;width:100%;height:24px;margin-top:3px;padding:0 6px}.input-wrapper[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus{outline:none;box-shadow:none}.input-wrapper[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:disabled{background-color:var(--color-component-bg-100)}vdr-chip[_ngcontent-%COMP%] .wrapper{margin:0 3px}vdr-chip.locked[_ngcontent-%COMP%]{opacity:.8}vdr-chip.selected[_ngcontent-%COMP%] .wrapper{border-color:var(--color-warning-500)!important;box-shadow:0 0 1px 1px var(--color-warning-400);opacity:.6}vdr-chip[_ngcontent-%COMP%] .option-name.editable[_ngcontent-%COMP%]:hover{outline:1px solid var(--color-component-bg-300);outline-offset:1px;border-radius:1px}vdr-chip[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:0!important;margin-top:-2px;margin-bottom:-2px}"]});var yt,ut,me=u(4531);function lo(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",17)(1,"vdr-form-field",18),t.ALo(2,"translate"),t.TgZ(3,"input",19),t.NdJ("ngModelChange",function(a){const c=t.CHM(e).$implicit;return t.KtG(c.name=a)}),t.qZA()(),t.TgZ(4,"vdr-form-field",20),t.ALo(5,"translate"),t.TgZ(6,"vdr-option-value-input",21,22),t.NdJ("add",function(a){const c=t.CHM(e).index,l=t.oxw();return t.KtG(l.addOption(c,a.name))})("remove",function(a){const c=t.CHM(e).index,l=t.oxw();return t.KtG(l.removeOption(c,a))}),t.qZA()(),t.TgZ(8,"div")(9,"button",23),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.removeOptionGroup(r))}),t._UZ(10,"clr-icon",24),t.qZA()()()}if(2&o){const e=n.$implicit;t.xp6(1),t.Q6J("label",t.lcZ(2,7,"catalog.option")),t.xp6(2),t.Q6J("ngModel",e.name)("readonly",!e.isNew),t.xp6(1),t.Q6J("label",t.lcZ(5,9,"catalog.option-values")),t.xp6(2),t.Q6J("options",e.values)("groupName",e.name)("disabled",""===e.name)}}function po(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function uo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function mo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function go(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.name," ")}}function _o(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.sku," ")}}function fo(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",28),t._uU(1),t.qZA()),2&o){const e=n.ngIf,i=t.oxw(2).$implicit;t.Q6J("colorFrom",i.code),t.xp6(1),t.Oqu(e.name)}}function ho(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",29)(1,"ng-select",30),t.NdJ("change",function(a){t.CHM(e);const r=t.oxw().item,c=t.oxw().$implicit,l=t.oxw();return t.KtG(l.setOptionToAddToVariant(r.id,c.id,null==a?null:a.id))}),t.qZA(),t.TgZ(2,"button",31),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw(2);return t.KtG(r.addOptionToVariant(a))}),t._UZ(3,"clr-icon",32),t.qZA()()}if(2&o){const e=t.oxw().item,i=t.oxw().$implicit,a=t.oxw();t.xp6(1),t.Q6J("items",i.options),t.xp6(1),t.ekj("primary",!(null==a.optionsToAddToVariant[e.id]||!a.optionsToAddToVariant[e.id][i.id])),t.Q6J("disabled",!(null!=a.optionsToAddToVariant[e.id]&&a.optionsToAddToVariant[e.id][i.id]))}}function vo(o,n){if(1&o&&(t.YNc(0,fo,2,2,"vdr-chip",26),t.YNc(1,ho,4,4,"ng-template",null,27,t.W1O)),2&o){const e=n.item,i=t.MAs(2),a=t.oxw().$implicit,r=t.oxw();t.Q6J("ngIf",r.getOption(e,a.id))("ngIfElse",i)}}function Co(o,n){if(1&o&&(t.TgZ(0,"vdr-dt2-column",25),t.YNc(1,vo,3,2,"ng-template"),t.qZA()),2&o){const e=n.$implicit;t.Q6J("heading",e.name)("id",e.code)}}function xo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.price,e.currencyCode)," ")}}function bo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.priceWithTax,e.currencyCode)," ")}}function To(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",33),t.NdJ("click",function(){const r=t.CHM(e).item,c=t.oxw();return t.KtG(c.deleteVariant(r))}),t._UZ(1,"clr-icon",34),t.qZA()}}class Zo{constructor(n){for(const e of Object.keys(n))this[e]=n[e]}}class ge{constructor(n,e,i,a,r,c){this.route=n,this.dataService=e,this.productDetailService=i,this.notificationService=a,this.modalService=r,this.changeDetector=c,this.formValueChanged=!1,this.optionsChanged=!1,this.itemsPerPage=100,this.currentPage=1,this.searchTermControl=new d.NI(""),this.selectionManager=new s.ZE0({multiSelect:!0,itemsAreEqual:(l,m)=>l.id===m.id,additiveMode:!0}),this.optionsToAddToVariant={},this.refresh$=new dt.x}ngOnInit(){this.languageCode=this.route.snapshot.paramMap.get("lang")||(0,s.kAh)(),this.dataService.settings.getActiveChannel().single$.subscribe(e=>{this.currencyCode=e.activeChannel.defaultCurrencyCode});const n=this.refresh$.pipe((0,C.w)(()=>this.dataService.product.getProductVariantsOptions(this.route.parent?.snapshot.paramMap.get("id")).mapSingle(e=>e.product)),(0,S.O)(this.route.snapshot.data.product));this.variants$=n.pipe((0,C.w)(e=>this.searchTermControl.valueChanges.pipe((0,S.O)(""),(0,h.U)(i=>i?e.variants.filter(a=>a.name.toLowerCase().includes(i.toLowerCase())):e.variants)))),this.optionGroups$=n.pipe((0,h.U)(e=>e.optionGroups)),this.totalItems$=this.variants$.pipe((0,h.U)(e=>e.length)),n.subscribe(e=>{this.product=e;const i=e.variants.map(r=>r.options.map(c=>c.id)).flat(),a=e.variants.map(r=>r.options.map(c=>c.groupId)).flat();this.optionGroups=e.optionGroups.map(r=>({id:r.id,isNew:!1,name:r.name,locked:a.includes(r.id),values:r.options.map(c=>({id:c.id,name:c.name,locked:i.includes(c.id)}))}))})}setItemsPerPage(n){this.itemsPerPage=n,this.currentPage=1}setPageNumber(n){this.currentPage=n}onFormChanged(n){this.formValueChanged=!0,n.enabled=!0}canDeactivate(){return!this.formValueChanged}addOptionGroup(){this.modalService.fromComponent(le,{locals:{languageCode:this.languageCode}}).pipe((0,C.w)(n=>n?this.dataService.product.createProductOptionGroups(n).pipe((0,C.w)(({createProductOptionGroup:e})=>this.dataService.product.addOptionGroupToProduct({optionGroupId:e.id,productId:this.product.id}))):F.E)).subscribe(n=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"ProductOptionGroup"}),this.refresh$.next(),this.changeDetector.markForCheck()})}removeOptionGroup(n){const e=n.id,i=this.product.variants.filter(a=>a.options.map(r=>r.groupId).includes(e)).length;this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product-option-group"),body:i?(0,p.J)("catalog.confirm-delete-product-option-group-body"):"",translationVars:{name:n.name,count:i},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(a=>a?this.dataService.product.removeOptionGroupFromProduct({optionGroupId:e,productId:this.product.id,force:!0}):F.E)).subscribe(({removeOptionGroupFromProduct:a})=>{"Product"===a.__typename?(this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"ProductOptionGroup"}),this.refresh$.next()):"ProductOptionInUseError"===a.__typename&&this.notificationService.error(a.message??"")})}addOption(n,e){const i=this.optionGroups[n];i&&i.id&&this.dataService.product.addOptionToGroup({productOptionGroupId:i.id,code:(0,G.U)(e,"-"),translations:[{name:e,languageCode:this.languageCode}]}).subscribe(({createProductOption:a})=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"ProductOption"}),this.refresh$.next()})}removeOption(n,{id:e,name:i}){const a=this.optionGroups[n];a&&this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product-option"),translationVars:{name:i},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(r=>r?this.dataService.product.deleteProductOption(e):F.E)).subscribe(({deleteProductOption:r})=>{r.result===s.PcR.DELETED?(this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"ProductOption"}),a.values=a.values.filter(c=>c.id!==e),this.refresh$.next()):this.notificationService.error(r.message??"")})}setOptionToAddToVariant(n,e,i){this.optionsToAddToVariant[n]||(this.optionsToAddToVariant[n]={}),i?this.optionsToAddToVariant[n][e]=i:delete this.optionsToAddToVariant[n][e]}addOptionToVariant(n){const e=[...n.options.map(i=>i.id),...Object.values(this.optionsToAddToVariant[n.id])];this.dataService.product.updateProductVariants([{id:n.id,optionIds:(0,J.T)(e)}]).subscribe(({updateProductVariants:i})=>{this.refresh$.next()})}deleteVariant(n){this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product-variant"),translationVars:{name:n.name},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(e=>e?this.productDetailService.deleteProductVariant(n.id,this.product.id):F.E)).subscribe(()=>{this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"ProductVariant"}),this.refresh$.next()},e=>{this.notificationService.error((0,p.J)("common.notify-delete-error"),{entity:"ProductVariant"})})}createNewVariant(){this.modalService.fromComponent(ue,{locals:{product:this.product}}).pipe((0,C.w)(n=>n?this.dataService.product.createProductVariants([n]):F.E)).subscribe(n=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"ProductVariant"}),this.refresh$.next()})}getOption(n,e){return n.options.find(i=>i.groupId===e)}}(yt=ge).\u0275fac=function(n){return new(n||yt)(t.Y36(A.gz),t.Y36(s.DoR),t.Y36(ct),t.Y36(s.gqp),t.Y36(s.Z7U),t.Y36(t.sBO))},yt.\u0275cmp=t.Xpm({type:yt,selectors:[["vdr-product-variants-editor"]],decls:44,vars:55,consts:[["class","option-groups",4,"ngFor","ngForOf"],[1,"button","mt-1",3,"click"],["shape","plus"],[3,"paddingX"],[1,"mx-3"],[1,"button",3,"click"],["id","manage-product-variant-list",3,"items","itemsPerPage","totalItems","currentPage","pageChange","itemsPerPageChange"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault"],["id","updated-at",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","sku",3,"heading","optional"],[3,"heading","id",4,"ngFor","ngForOf"],["id","price",3,"heading","hiddenByDefault"],["id","price-with-tax",3,"heading","hiddenByDefault"],["id","delete",3,"heading","optional"],[1,"option-groups"],[3,"label"],["clrInput","","name","name",3,"ngModel","readonly","ngModelChange"],[1,"flex-spacer",3,"label"],[3,"options","groupName","disabled","add","remove"],["optionValueInputComponent",""],[1,"button-small","mt-4",3,"click"],["shape","trash"],[3,"heading","id"],[3,"colorFrom",4,"ngIf","ngIfElse"],["selectOption",""],[3,"colorFrom"],[1,"flex","center"],["bindLabel","name","bindValue","id","appendTo","body",3,"items","change"],[1,"button-small","ml-1",3,"disabled","click"],["shape","floppy"],[1,"button-small",3,"click"],["shape","trash is-danger"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-card"),t.YNc(2,lo,11,11,"div",0),t.TgZ(3,"button",1),t.NdJ("click",function(){return e.addOptionGroup()}),t._UZ(4,"clr-icon",2),t._uU(5),t.ALo(6,"translate"),t.qZA()(),t.TgZ(7,"vdr-card",3)(8,"div",4)(9,"button",5),t.NdJ("click",function(){return e.createNewVariant()}),t._UZ(10,"clr-icon",2),t._uU(11),t.ALo(12,"translate"),t.qZA()(),t.TgZ(13,"vdr-data-table-2",6),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(14,"async"),t.ALo(15,"async"),t._UZ(16,"vdr-dt2-search",7),t.ALo(17,"translate"),t.TgZ(18,"vdr-dt2-column",8),t.ALo(19,"translate"),t.YNc(20,po,1,1,"ng-template"),t.qZA(),t.TgZ(21,"vdr-dt2-column",9),t.ALo(22,"translate"),t.YNc(23,uo,2,4,"ng-template"),t.qZA(),t.TgZ(24,"vdr-dt2-column",10),t.ALo(25,"translate"),t.YNc(26,mo,2,4,"ng-template"),t.qZA(),t.TgZ(27,"vdr-dt2-column",11),t.ALo(28,"translate"),t.YNc(29,go,1,1,"ng-template"),t.qZA(),t.TgZ(30,"vdr-dt2-column",12),t.ALo(31,"translate"),t.YNc(32,_o,1,1,"ng-template"),t.qZA(),t.YNc(33,Co,2,2,"vdr-dt2-column",13),t.ALo(34,"async"),t.TgZ(35,"vdr-dt2-column",14),t.ALo(36,"translate"),t.YNc(37,xo,2,4,"ng-template"),t.qZA(),t.TgZ(38,"vdr-dt2-column",15),t.ALo(39,"translate"),t.YNc(40,bo,2,4,"ng-template"),t.qZA(),t.TgZ(41,"vdr-dt2-column",16),t.ALo(42,"translate"),t.YNc(43,To,2,0,"ng-template"),t.qZA()()()()),2&n&&(t.xp6(2),t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(6,27,"catalog.create-product-option-group")," "),t.xp6(2),t.Q6J("paddingX",!1),t.xp6(4),t.hij(" ",t.lcZ(12,29,"catalog.create-product-variant")," "),t.xp6(2),t.Q6J("items",t.lcZ(14,31,e.variants$))("itemsPerPage",e.itemsPerPage)("totalItems",t.lcZ(15,33,e.totalItems$))("currentPage",e.currentPage),t.xp6(3),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(17,35,"catalog.filter-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(19,37,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(22,39,"common.created-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(25,41,"common.updated-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(28,43,"catalog.name"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(31,45,"catalog.sku"))("optional",!1),t.xp6(3),t.Q6J("ngForOf",t.lcZ(34,47,e.optionGroups$)),t.xp6(2),t.Q6J("heading",t.lcZ(36,49,"common.price"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(39,51,"common.price-with-tax"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(42,53,"common.delete"))("optional",!1))},dependencies:[f.qvL,f.xRP,_.sg,_.O5,d.Fj,d.JJ,d.On,de.w9,j.Y,$.h,L.y,lt.e,R.U,et.J,w.z,W.A,pt,_.Ov,b.X$,X.H,me.k],styles:[".option-groups[_ngcontent-%COMP%]{display:flex;width:100%;gap:var(--space-unit)}.values[_ngcontent-%COMP%]{flex:1;margin:0 6px}.variants-preview[_ngcontent-%COMP%] tr.disabled[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}"]});class qe extends s.p_9{constructor(n,e){super(n,{__typename:"Product",id:"",createdAt:"",updatedAt:"",name:"",languageCode:"",optionGroups:[],variants:[]},i=>e.product.getProductVariantsOptions(i).mapStream(a=>a.product))}}(ut=qe).\u0275fac=function(n){return new(n||ut)(t.LFG(A.F0),t.LFG(s.DoR))},ut.\u0275prov=t.Yz7({token:ut,factory:ut.\u0275fac,providedIn:"root"});const nn=o=>[{path:"products",component:s.IIO,data:{locationId:"product-list",breadcrumb:(0,p.J)("breadcrumb.products")},children:o.getPageTabRoutes("product-list")},{path:"inventory",redirectTo:"products"},{path:"products/:id",component:s.IIO,data:{locationId:"product-detail",breadcrumb:{label:(0,p.J)("breadcrumb.products"),link:["../","products"]}},children:[{path:"manage-variants",component:ge,canDeactivate:[s.TSp],data:{breadcrumb:({product:n})=>[{label:`${n.name}`,link:["../"]},{label:(0,p.J)("breadcrumb.manage-variants"),link:["manage-variants"]}]},resolve:{product:n=>(0,t.f3M)(s.DoR).product.getProductVariantsOptions(n.parent?.params.id).mapSingle(e=>e.product)}},...o.getPageTabRoutes("product-detail")]},{path:"products/:productId/variants/:id",component:s.IIO,data:{locationId:"product-variant-detail",breadcrumb:{label:(0,p.J)("breadcrumb.products"),link:["../","products"]}},children:o.getPageTabRoutes("product-variant-detail")},{path:"products/:id/options",component:se,resolve:(0,s.Po4)(qe),canDeactivate:[s.TSp],data:{breadcrumb:on}},{path:"facets",component:s.IIO,data:{locationId:"facet-list",breadcrumb:(0,p.J)("breadcrumb.facets")},children:o.getPageTabRoutes("facet-list")},{path:"facets/:id",component:s.IIO,data:{locationId:"facet-detail",breadcrumb:{label:(0,p.J)("breadcrumb.facets"),link:["../","facets"]}},children:o.getPageTabRoutes("facet-detail")},{path:"collections",component:s.IIO,data:{locationId:"collection-list",breadcrumb:(0,p.J)("breadcrumb.collections")},children:o.getPageTabRoutes("collection-list")},{path:"collections/:id",component:s.IIO,data:{locationId:"collection-detail",breadcrumb:{label:(0,p.J)("breadcrumb.collections"),link:["../","collections"]}},children:o.getPageTabRoutes("collection-detail")},{path:"assets",component:s.IIO,data:{locationId:"asset-list",breadcrumb:(0,p.J)("breadcrumb.assets")},children:o.getPageTabRoutes("asset-list")},{path:"assets/:id",component:s.IIO,data:{locationId:"asset-detail",breadcrumb:{label:(0,p.J)("breadcrumb.assets"),link:["../","assets"]}},children:o.getPageTabRoutes("asset-detail")}];function on(o,n){return o.entity.pipe((0,h.U)(e=>[{label:(0,p.J)("breadcrumb.products"),link:["../","products"]},{label:`${e.name}`,link:["../","products",n.id]},{label:(0,p.J)("breadcrumb.product-options"),link:["options"]}]))}var Ft,an=u(9981);function Ao(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.Oqu(t.lcZ(1,1,"catalog.add-facets"))}function Po(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.selectValues())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",0===e.selectedValues.length),t.xp6(1),t.hij(" ",t.lcZ(5,5,"catalog.add-facets")," ")}}class It{constructor(n){this.changeDetector=n,this.selectedValues=[]}ngAfterViewInit(){setTimeout(()=>this.selector.focus(),0)}selectValues(){this.resolveWith(this.selectedValues)}cancel(){this.resolveWith()}}(Ft=It).\u0275fac=function(n){return new(n||Ft)(t.Y36(t.sBO))},Ft.\u0275cmp=t.Xpm({type:Ft,selectors:[["vdr-apply-facet-dialog"]],viewQuery:function(n,e){if(1&n&&t.Gf(s.$MF,5),2&n){let i;t.iGM(i=t.CRH())&&(e.selector=i.first)}},decls:3,vars:0,consts:[["vdrDialogTitle",""],[3,"selectedValuesChange"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,Ao,2,3,"ng-template",0),t.TgZ(1,"vdr-facet-value-selector",1),t.NdJ("selectedValuesChange",function(a){return e.selectedValues=a}),t.qZA(),t.YNc(2,Po,6,7,"ng-template",2))},dependencies:[an.$,tt.n,H.q,b.X$],changeDetection:0});var Lt,y=u(2840),yo=u(5734),K=u(7491);function Fo(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}const Io=function(){return["UpdateCatalog","UpdateAsset"]},Lo=y.Ps`
|
|
1
|
+
"use strict";(self.webpackChunkvendure_admin=self.webpackChunkvendure_admin||[]).push([[976],{6976:(ld,tn,u)=>{u.r(tn),u.d(tn,{ASSET_DETAIL_QUERY:()=>Lo,ApplyFacetDialogComponent:()=>It,AssetDetailComponent:()=>_e,AssetListComponent:()=>ve,AssetsComponent:()=>vt,AssignProductsToChannelDialogComponent:()=>nt,BulkAddFacetValuesDialogComponent:()=>be,COLLECTION_DETAIL_QUERY:()=>Ua,CatalogModule:()=>ae,CollectionBreadcrumbPipe:()=>qt,CollectionContentsComponent:()=>Vt,CollectionDataTableComponent:()=>Ut,CollectionDetailComponent:()=>ye,CollectionListComponent:()=>Oe,CollectionTreeComponent:()=>Ee,CollectionTreeNodeComponent:()=>ke,CollectionTreeService:()=>Yt,ConfirmVariantDeletionDialogComponent:()=>Be,CreateProductOptionGroupDialogComponent:()=>le,CreateProductVariantDialogComponent:()=>ue,FACET_DETAIL_QUERY:()=>fc,FACET_LIST_QUERY:()=>Uc,FacetDetailComponent:()=>Je,FacetListComponent:()=>De,GET_PRODUCTS_WITH_FACET_VALUES_BY_IDS:()=>dn,GET_PRODUCT_DETAIL:()=>Ys,GET_VARIANTS_WITH_FACET_VALUES_BY_IDS:()=>pn,GenerateProductVariantsComponent:()=>we,GeneratedVariant:()=>Zo,MoveCollectionsDialogComponent:()=>Fe,OPTION_VALUE_INPUT_VALUE_ACCESSOR:()=>en,OptionValueInputComponent:()=>pt,PRODUCT_LIST_QUERY:()=>id,PRODUCT_VARIANT_DETAIL_QUERY:()=>ad,PRODUCT_VARIANT_DETAIL_QUERY_PRODUCT_VARIANT_FRAGMENT:()=>We,PRODUCT_VARIANT_LIST_QUERY:()=>sd,PRODUCT_VARIANT_UPDATE_MUTATION:()=>rd,ProductDetailComponent:()=>Wt,ProductDetailService:()=>ct,ProductListComponent:()=>Ve,ProductOptionsEditorComponent:()=>se,ProductVariantDetailComponent:()=>Ne,ProductVariantListComponent:()=>Kt,ProductVariantQuickJumpComponent:()=>Ue,ProductVariantsEditorComponent:()=>ge,ProductVariantsResolver:()=>qe,ProductVariantsTableComponent:()=>Ke,UPDATE_PRODUCTS_BULK:()=>un,UPDATE_VARIANTS_BULK:()=>mn,UpdateProductOptionDialogComponent:()=>ze,VariantPriceDetailComponent:()=>Me,arrayToTree:()=>Tn,assignCollectionsToChannelBulkAction:()=>vn,assignFacetValuesToProductsBulkAction:()=>Jn,assignFacetsToChannelBulkAction:()=>An,assignProductVariantsToChannelBulkAction:()=>Dn,assignProductsToChannelBulkAction:()=>On,createRoutes:()=>nn,deleteCollectionsBulkAction:()=>fn,deleteFacetsBulkAction:()=>Zn,deleteProductVariantsBulkAction:()=>Vn,deleteProductsBulkAction:()=>Ln,moveCollectionsBulkAction:()=>hn,productOptionsEditorBreadcrumb:()=>on,removeCollectionsFromChannelBulkAction:()=>Cn,removeFacetsFromChannelBulkAction:()=>Pn,removeFacetsFromChannelBulkAction2:()=>hc,removeProductVariantsFromChannelBulkAction:()=>wn,removeProductsFromChannelBulkAction:()=>kn,replaceLast:()=>Qe});var rt,A=u(4285),p=u(186),s=u(848),t=u(6108),h=u(3044),d=u(5086),P=u(9034),at=u(3839),q=u(1441),Y=u(1452),U=u(6526),G=u(8761),ce=u(4415),k=u(3176),Mn=u(7198),xt=u(5808),C=u(4154);function Qe(o,n,e){if(!o)return"";const i=o.lastIndexOf(n);if(-1===i)return o;return o.substr(0,i)+o.substr(i).replace(n,e)}class ct{constructor(n){this.dataService=n}getTaxCategories(){return this.dataService.settings.getTaxCategories().mapSingle(n=>n.taxCategories.items).pipe((0,xt.d)(1))}createProductWithVariants(n,e,i){const a=this.dataService.product.createProduct(n),r=e.groups.filter(l=>0<l.values.length),c=this.createProductOptionGroups(r,i);return(0,at.D)(a,c).pipe((0,U.z)(([{createProduct:l},m])=>(m.length?(0,at.D)(m.map(v=>this.dataService.product.addOptionGroupToProduct({productId:l.id,optionGroupId:v.id}))):(0,k.of)([])).pipe((0,h.U)(()=>({createProduct:l,optionGroups:m})))),(0,U.z)(({createProduct:l,optionGroups:m})=>{const g=e.variants.map(T=>{const Z=m.length?T.optionValues.map((I,Q)=>{const D=m[Q].options.find(z=>z.name===I);if(!D)throw new Error(`Could not find a matching ProductOption "${I}" when creating variant`);return D.id}):[];return{...T,optionIds:Z}}),v=m.map(T=>T.options).reduce((T,Z)=>[...T,...Z],[]);return this.createProductVariants(l,g,v,i,e.stockLocationId)}))}createProductOptionGroups(n,e){return n.length?(0,at.D)(n.map(i=>this.dataService.product.createProductOptionGroups({code:(0,G.U)(i.name,"-"),translations:[{languageCode:e,name:i.name}],options:i.values.map(a=>({code:(0,G.U)(a,"-"),translations:[{languageCode:e,name:a}]}))}).pipe((0,h.U)(a=>a.createProductOptionGroup)))):(0,k.of)([])}createProductVariants(n,e,i,a,r){const c=e.map(l=>{const m=i.length?`${n.name} ${l.optionIds.map(g=>i.find(v=>v.id===g)).filter(ce.notNullOrUndefined).map(g=>g.name).join(" ")}`:n.name;return{productId:n.id,price:l.price,sku:l.sku,translations:[{languageCode:a,name:m}],stockLevels:[{stockLocationId:r,stockOnHand:l.stock}],optionIds:l.optionIds}});return this.dataService.product.createProductVariants(c).pipe((0,h.U)(({createProductVariants:l})=>({createProductVariants:l,productId:n.id})))}updateProduct(n){const{product:e,languageCode:i,autoUpdate:a,productInput:r,variantsInput:c}=n,l=[],m=c||[];return(a?this.dataService.product.getProductVariantsForProduct({},e.id).mapSingle(({productVariants:v})=>v.items):(0,k.of)([])).pipe((0,U.z)(v=>{if(r){l.push(this.dataService.product.updateProduct(r));const T=(0,s.ZIM)(e,i)?.name??"",Z=(0,s.ZIM)(r,i)?.name;if(Z&&T!==Z&&a)for(const I of v){const Q=(0,s.ZIM)(I,i)?.name||"";let D;const z=m.find(Xe=>Xe.id===I.id);z?D=z:(D={id:I.id,translations:[{languageCode:i,name:Q}]},m.push(D));const re=(0,s.ZIM)(D,i);re&&(re.name?re.name=Qe(re.name,T,Z):re.name=[Z,...I.options.map(Xe=>Xe.name)].join(" "))}}return m.length&&l.push(this.dataService.product.updateProductVariants(m)),(0,at.D)(l)}))}updateProductOption(n,e,i){return(n.autoUpdate?this.dataService.product.getProductVariantsForProduct({},e.id).mapSingle(({productVariants:r})=>r.items):(0,k.of)([])).pipe((0,U.z)(r=>{let c=(0,k.of)([]);if(n.autoUpdate){let l;const m=(0,s.ZIM)(n,i)?.name;m||(c=(0,k.of)([]));const g=[];for(const v of r)if(v.options.map(T=>T.id).includes(n.id)){l||(l=(0,s.ZIM)(v.options.find(Z=>Z.id===n.id),i)?.name);const T=(0,s.ZIM)(v,i)?.name||"";l&&m&&T.includes(l)&&g.push({id:v.id,translations:[{languageCode:i,name:Qe(T,l,m)}]})}g.length&&(c=this.dataService.product.updateProductVariants(g))}return this.dataService.product.updateProductOption(n).pipe((0,U.z)(()=>c))}))}deleteProductVariant(n,e){return this.dataService.product.deleteProductVariant(n).pipe((0,C.w)(i=>i.deleteProductVariant.result===s.PcR.DELETED?this.dataService.product.getProduct(e).single$:(0,Mn._)(i.deleteProductVariant.message)))}}(rt=ct).\u0275fac=function(n){return new(n||rt)(t.LFG(s.DoR))},rt.\u0275prov=t.Yz7({token:rt,factory:rt.\u0275fac,providedIn:"root"});var Tt,f=u(6445),_=u(8046),x=u(8621),$=u(8369),L=u(8251),E=u(1300),N=u(5796),st=u(7836),lt=u(106),R=u(2249),Un=u(1563),Nn=u(4437),Qn=u(7846),qn=u(8005),w=u(3850),bt=u(5276),W=u(8923),b=u(1317),B=u(9360),X=u(2388);function $n(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.pristine||e.detailForm.invalid),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}function Sn(o,n){if(1&o&&(t.ynx(0,19),t._UZ(1,"vdr-tabbed-custom-fields",20),t.ALo(2,"hasPermission"),t.BQk()),2&o){const e=t.oxw().$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("customFields",i.optionGroupCustomFields)("customFieldsFormGroup",e.get("customFields"))("readonly",!t.lcZ(2,3,i.updatePermission))}}function Yn(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.value.id," ")}}function Gn(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.value.createdAt,"short")," ")}}function En(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.value.updatedAt,"short")," ")}}function Bn(o,n){if(1&o&&(t._UZ(0,"input",28),t.ALo(1,"hasPermission")),2&o){const e=n.item,i=t.oxw(4);t.Q6J("formControl",e.get("name"))("readonly",!t.lcZ(1,2,i.updatePermission))}}function jn(o,n){if(1&o&&t._UZ(0,"input",29),2&o){const e=n.item;t.Q6J("formControl",e.get("code"))}}function Rn(o,n){if(1&o&&(t._UZ(0,"vdr-tabbed-custom-fields",30),t.ALo(1,"hasPermission")),2&o){const e=n.item,i=t.oxw(4);t.Q6J("customFields",i.optionCustomFields)("compact",!0)("customFieldsFormGroup",e.get("customFields"))("readonly",!t.lcZ(1,4,i.updatePermission))}}function Hn(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-data-table-2",21),t.NdJ("pageChange",function(a){t.CHM(e);const r=t.oxw().$implicit,c=t.oxw(2);return t.KtG(c.paginationSettings[r.value.id].currentPage=a)}),t.TgZ(1,"vdr-dt2-column",22),t.ALo(2,"translate"),t.YNc(3,Yn,1,1,"ng-template"),t.qZA(),t.TgZ(4,"vdr-dt2-column",23),t.ALo(5,"translate"),t.YNc(6,Gn,2,4,"ng-template"),t.qZA(),t.TgZ(7,"vdr-dt2-column",24),t.ALo(8,"translate"),t.YNc(9,En,2,4,"ng-template"),t.qZA(),t.TgZ(10,"vdr-dt2-column",25),t.ALo(11,"translate"),t.YNc(12,Bn,2,4,"ng-template"),t.qZA(),t.TgZ(13,"vdr-dt2-column",26),t.ALo(14,"translate"),t.YNc(15,jn,1,1,"ng-template"),t.qZA(),t.TgZ(16,"vdr-dt2-column",27),t.ALo(17,"translate"),t.YNc(18,Rn,2,6,"ng-template"),t.qZA()()}if(2&o){const e=n.ngIf,i=t.oxw().$implicit,a=t.oxw(2);t.Q6J("items",e)("itemsPerPage",null==a.paginationSettings[i.value.id]?null:a.paginationSettings[i.value.id].itemsPerPage)("currentPage",null==a.paginationSettings[i.value.id]?null:a.paginationSettings[i.value.id].currentPage)("totalItems",e.length),t.xp6(1),t.Q6J("heading",t.lcZ(2,16,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(5,18,"common.created-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(8,20,"common.updated-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(11,22,"common.name"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(14,24,"common.code"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(17,26,"common.custom-fields"))("hiddenByDefault",0===a.optionCustomFields.length)}}function Kn(o,n){if(1&o&&(t.TgZ(0,"vdr-card",10),t._UZ(1,"vdr-page-entity-info",11),t.TgZ(2,"div",12)(3,"vdr-form-field",13),t.ALo(4,"translate"),t._UZ(5,"input",14),t.ALo(6,"hasPermission"),t.qZA(),t.TgZ(7,"vdr-form-field",15),t.ALo(8,"translate"),t._UZ(9,"input",16),t.ALo(10,"hasPermission"),t.qZA()(),t.YNc(11,Sn,3,5,"ng-container",17),t.YNc(12,Hn,19,28,"vdr-data-table-2",18),t.qZA()),2&o){const e=n.$implicit,i=n.index,a=t.oxw(2);t.Q6J("formArrayName",i)("title",e.value.code),t.xp6(1),t.Q6J("entity",e.value),t.xp6(2),t.Q6J("label",t.lcZ(4,11,"common.name")),t.xp6(2),t.Q6J("id","name-"+i)("readonly",!t.lcZ(6,13,a.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(8,15,"common.code")),t.xp6(2),t.Q6J("id","code-"+i)("readonly",!t.lcZ(10,17,a.updatePermission)),t.xp6(2),t.Q6J("ngIf",a.optionGroupCustomFields.length),t.xp6(1),t.Q6J("ngIf",a.getOptions(e))}}function zn(o,n){if(1&o&&(t.TgZ(0,"form",7)(1,"div",8),t.YNc(2,Kn,13,19,"vdr-card",9),t.qZA()()),2&o){const e=t.oxw();t.Q6J("formGroup",e.detailForm),t.xp6(2),t.Q6J("ngForOf",e.getOptionGroups())}}class se extends s.UT_{constructor(n,e,i,a,r,c,l,m){super(n,e,i,a),this.route=n,this.router=e,this.serverConfigService=i,this.dataService=a,this.productDetailService=r,this.formBuilder=c,this.changeDetector=l,this.notificationService=m,this.autoUpdateVariantNames=!0,this.paginationSettings={},this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct],this.optionGroupCustomFields=this.getCustomFieldConfig("ProductOptionGroup"),this.optionCustomFields=this.getCustomFieldConfig("ProductOption")}ngOnInit(){this.optionGroups$=this.route.snapshot.data.entity.pipe((0,h.U)(n=>n.optionGroups),(0,q.b)(n=>{for(const e of n)this.paginationSettings[e.id]={currentPage:1,itemsPerPage:10}})),this.detailForm=new d.nJ({optionGroups:new d.vC([])}),super.init()}getOptionGroups(){return this.detailForm.get("optionGroups").controls}getOptions(n){return n.get("options").controls}save(){if(this.detailForm.invalid||this.detailForm.pristine)return;const n=this.dataService.product.getProduct(this.id).mapSingle(e=>e.product);(0,P.a)(this.entity$,this.languageCode$,n).pipe((0,Y.q)(1),(0,U.z)(([{optionGroups:e},i,a])=>{const r=[];for(const c of this.getOptionGroups()){if(c.dirty){const l=e.find(m=>m.id===c.value.id);if(l){const m=this.getUpdatedOptionGroup(l,c,i);r.push(this.dataService.product.updateProductOptionGroup(m))}}for(const l of this.getOptions(c))if(l.dirty){const m=e.find(g=>g.id===c.value.id)?.options.find(g=>g.id===l.value.id);if(m){const g=this.getUpdatedOption(m,l,i);r.push(this.productDetailService.updateProductOption({...g,autoUpdate:this.autoUpdateVariantNames},a,i))}}}return(0,at.D)(r)})).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"ProductOptionGroup"})},e=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"ProductOptionGroup"})})}getUpdatedOptionGroup(n,e,i){return(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionGroupCustomFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}})}getUpdatedOption(n,e,i){return(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionCustomFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}})}setFormValues(n,e){const i=this.detailForm.get("optionGroups");for(const a of n.optionGroups){const r=(0,s.ZIM)(a,e),c=this.setOptionGroupForm(a,i,r);this.setCustomFieldsForm(this.optionGroupCustomFields,c,a,r);let l=c.get("options");l||(l=this.formBuilder.array([]),c.addControl("options",l));for(const m of a.options){const g=(0,s.ZIM)(m,e),v=this.setOptionForm(m,l,g);this.setCustomFieldsForm(this.optionCustomFields,v,m,g)}}}setCustomFieldsForm(n,e,i,a){if(n.length){let r=e.get(["customFields"]);r||(r=this.formBuilder.group(n.reduce((c,l)=>({...c,[l.name]:""}),{})),e.addControl("customFields",r)),this.setCustomFieldFormValues(n,r,i,a)}}setOptionGroupForm(n,e,i){const a={id:n.id,createdAt:n.createdAt,updatedAt:n.updatedAt,code:n.code,name:i?.name??""};let r=e.controls.find(c=>c.value.id===n.id);return r?(r.get("id")?.setValue(a.id),r.get("code")?.setValue(a.code),r.get("name")?.setValue(a.name),r.get("createdAt")?.setValue(a.createdAt),r.get("updatedAt")?.setValue(a.updatedAt)):(r=this.formBuilder.group(a),e.push(r)),r}setOptionForm(n,e,i){const a={id:n.id,createdAt:n.createdAt,updatedAt:n.updatedAt,code:n.code,name:i?.name??""};let r=e.controls.find(c=>c.value.id===n.id);return r?(r.get("id")?.setValue(a.id),r.get("code")?.setValue(a.code),r.get("name")?.setValue(a.name),r.get("createdAt")?.setValue(a.createdAt),r.get("updatedAt")?.setValue(a.updatedAt)):(r=this.formBuilder.group(a),e.push(r)),r}}(Tt=se).\u0275fac=function(n){return new(n||Tt)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(s.iHG),t.Y36(s.DoR),t.Y36(ct),t.Y36(d.QS),t.Y36(t.sBO),t.Y36(s.gqp))},Tt.\u0275cmp=t.Xpm({type:Tt,selectors:[["vdr-product-options-editor"]],features:[t.qOj],decls:24,vars:17,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"flex","center"],[1,"mr-2"],["clrCheckbox","","type","checkbox","id","auto-update",3,"ngModel","ngModelChange"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],["class","form",3,"formGroup",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],[1,"form",3,"formGroup"],["formGroupName","optionGroups"],[3,"formArrayName","title",4,"ngFor","ngForOf"],[3,"formArrayName","title"],[3,"entity"],[1,"form-grid"],["for","name",3,"label"],["type","text","formControlName","name",3,"id","readonly"],["for","code",3,"label"],["type","text","formControlName","code",3,"id","readonly"],["formGroupName","customFields",4,"ngIf"],["id","edit-options-list",3,"items","itemsPerPage","currentPage","totalItems","pageChange",4,"ngIf"],["formGroupName","customFields"],["entityName","ProductOptionGroup",3,"customFields","customFieldsFormGroup","readonly"],["id","edit-options-list",3,"items","itemsPerPage","currentPage","totalItems","pageChange"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault"],["id","updated-at",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","code",3,"heading","optional"],["id","custom-fields",3,"heading","hiddenByDefault"],["type","text",3,"formControl","readonly"],["type","text",3,"formControl"],["entityName","ProductOption",3,"customFields","compact","customFieldsFormGroup","readonly"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-header"),t._UZ(1,"vdr-page-title"),t.TgZ(2,"vdr-page-header-description"),t._uU(3),t.ALo(4,"translate"),t.qZA()(),t.TgZ(5,"vdr-page-body")(6,"vdr-page-block")(7,"vdr-action-bar")(8,"vdr-ab-left")(9,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(10,"async"),t.ALo(11,"async"),t.qZA()(),t.TgZ(12,"vdr-ab-right")(13,"div",1)(14,"div",2)(15,"clr-checkbox-wrapper")(16,"input",3),t.NdJ("ngModelChange",function(a){return e.autoUpdateVariantNames=a}),t.qZA(),t.TgZ(17,"label"),t._uU(18),t.ALo(19,"translate"),t.qZA()()(),t.YNc(20,$n,3,4,"button",4),t.qZA()()()(),t.TgZ(21,"vdr-page-block"),t.YNc(22,zn,3,2,"form",5),t.ALo(23,"async"),t.qZA()()),2&n&&(t.xp6(3),t.Oqu(t.lcZ(4,7,"catalog.page-description-options-editor")),t.xp6(6),t.Q6J("availableLanguageCodes",t.lcZ(10,9,e.availableLanguages$))("currentLanguageCode",t.lcZ(11,11,e.languageCode$)),t.xp6(7),t.Q6J("ngModel",e.autoUpdateVariantNames),t.xp6(2),t.Oqu(t.lcZ(19,13,"catalog.auto-update-product-variant-name")),t.xp6(2),t.Q6J("vdrIfPermissions",e.updatePermission),t.xp6(2),t.Q6J("ngIf",t.lcZ(23,15,e.optionGroups$)))},dependencies:[f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.On,d.oH,d.sg,d.u,d.x0,d.CE,x.Kk,x.BN,x.mz,$.h,L.y,E.S,N.H,st.y,lt.e,R.U,Un.q,Nn.T,Qn._,qn.H,w.z,bt.D,W.A,_.Ov,b.X$,B.j,X.H],styles:[".option-group-header[_ngcontent-%COMP%]{display:flex;align-items:baseline}"],changeDetection:0});var Zt,J=u(7355),dt=u(7807),F=u(2701),S=u(6940),tt=u(4351),H=u(4073);function Wn(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.create-product-option-group"),"\n")}function Xn(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",7),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.confirm())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",e.form.invalid),t.xp6(1),t.hij(" ",t.lcZ(5,5,"common.confirm")," ")}}class le{constructor(n){this.formBuilder=n,this.form=this.formBuilder.group({name:["",d.kI.required],code:["",d.kI.required]})}updateCode(){const n=this.form.get("name"),e=this.form.get("code");n&&e&&e.pristine&&e.setValue((0,G.U)(`${n.value}`,"-"))}confirm(){const{name:n,code:e}=this.form.value;!n||!e||this.resolveWith({code:e,options:[],translations:[{languageCode:this.languageCode,name:n}]})}cancel(){this.resolveWith()}}(Zt=le).\u0275fac=function(n){return new(n||Zt)(t.Y36(d.qu))},Zt.\u0275cmp=t.Xpm({type:Zt,selectors:[["vdr-create-product-option-group-dialog"]],decls:9,vars:7,consts:[["vdrDialogTitle",""],[1,"form-grid",3,"formGroup"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"input"],["for","code",3,"label"],["id","code","type","text","formControlName","code"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,Wn,2,3,"ng-template",0),t.TgZ(1,"div",1)(2,"vdr-form-field",2),t.ALo(3,"translate"),t.TgZ(4,"input",3),t.NdJ("input",function(){return e.updateCode()}),t.qZA()(),t.TgZ(5,"vdr-form-field",4),t.ALo(6,"translate"),t._UZ(7,"input",5),t.qZA()(),t.YNc(8,Xn,6,7,"ng-template",6)),2&n&&(t.xp6(1),t.Q6J("formGroup",e.form),t.xp6(1),t.Q6J("label",t.lcZ(3,3,"common.name")),t.xp6(3),t.Q6J("label",t.lcZ(6,5,"common.code")))},dependencies:[d.Fj,d.JJ,d.JL,d.sg,d.u,$.h,L.y,tt.n,H.q,b.X$],changeDetection:0});var At,de=u(4992),pe=u(2089);function to(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.create-product-variant"),"\n")}function eo(o,n){if(1&o&&(t.TgZ(0,"vdr-form-field",7),t._UZ(1,"ng-select",12),t.qZA()),2&o){const e=n.$implicit;t.Q6J("label",e.name),t.xp6(1),t.Q6J("items",e.options)("formControlName",e.code)}}function no(o,n){1&o&&(t.TgZ(0,"clr-alert",13)(1,"clr-alert-item")(2,"span",14),t._uU(3),t.ALo(4,"translate"),t.qZA()()()),2&o&&(t.Q6J("clrAlertClosable",!1),t.xp6(3),t.hij(" ",t.lcZ(4,2,"catalog.cannot-create-variants-without-options")," "))}function oo(o,n){if(1&o&&(t.TgZ(0,"div",15)(1,"clr-alert",16)(2,"clr-alert-item")(3,"span",14),t._uU(4),t.ALo(5,"translate"),t.qZA()()()()),2&o){const e=t.oxw();t.xp6(1),t.Q6J("clrAlertClosable",!1),t.xp6(3),t.lnq(" ",t.lcZ(5,4,"catalog.product-variant-exists"),": ",e.existingVariant.name," (",e.existingVariant.sku,") ")}}function io(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",18),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.confirm())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",e.form.invalid||e.existingVariant||0===e.product.optionGroups.length),t.xp6(1),t.hij(" ",t.lcZ(5,5,"common.confirm")," ")}}class ue{constructor(n){this.formBuilder=n,this.form=this.formBuilder.group({name:["",d.kI.required],sku:["",d.kI.required],price:["",d.kI.required],options:this.formBuilder.record({})})}ngOnInit(){this.currencyCode=this.product.variants[0]?.currencyCode;for(const e of this.product.optionGroups)this.form.get("options").addControl(e.code,new d.NI("",d.kI.required));this.form.get("options").valueChanges.subscribe(e=>{const i=this.form.get("name");if(!Object.values(e).every(c=>null==c)&&e&&i&&!i.dirty){const c=Object.entries(e).map(([l,m])=>this.product.optionGroups.find(g=>g.code===l)?.options.find(g=>g.id===m)?.name).join(" ");i.setValue(`${this.product.name} ${c}`)}Object.values(e).every(c=>null!=c)&&(this.existingVariant=this.product.variants.find(c=>Object.entries(e).every(([l,m])=>c.options.find(g=>g.groupId===this.getGroupIdFromCode(l))?.id===m)))})}confirm(){const{name:n,sku:e,options:i,price:a}=this.form.value;if(!(n&&e&&i&&a))return;const r=Object.values(i).filter(ce.notNullOrUndefined);this.resolveWith({productId:this.product.id,sku:e,price:Number(a),optionIds:r,translations:[{languageCode:this.product.languageCode,name:n}]})}cancel(){this.resolveWith()}getGroupCodeFromId(n){return this.product.optionGroups.find(e=>e.id===n)?.code??""}getGroupIdFromCode(n){return this.product.optionGroups.find(e=>e.code===n)?.id??""}}(At=ue).\u0275fac=function(n){return new(n||At)(t.Y36(d.qu))},At.\u0275cmp=t.Xpm({type:At,selectors:[["vdr-create-product-variant-dialog"]],decls:17,vars:14,consts:[["vdrDialogTitle",""],[3,"formGroup"],["formGroupName","options",1,"form-grid"],[3,"label",4,"ngFor","ngForOf"],["clrAlertType","warning","class","form-grid-span",3,"clrAlertClosable",4,"ngIf"],["class","mt-2",4,"ngIf"],[1,"form-grid","mt-2"],[3,"label"],["type","text","formControlName","name"],["type","text","formControlName","sku"],["name","price","formControlName","price",3,"currencyCode"],["vdrDialogButtons",""],["bindLabel","name","bindValue","id","appendTo","body",3,"items","formControlName"],["clrAlertType","warning",1,"form-grid-span",3,"clrAlertClosable"],[1,"alert-text"],[1,"mt-2"],["clrAlertType","warning",1,"",3,"clrAlertClosable"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,to,2,3,"ng-template",0),t.TgZ(1,"form",1)(2,"div",2),t.YNc(3,eo,2,3,"vdr-form-field",3),t.YNc(4,no,5,4,"clr-alert",4),t.qZA(),t.YNc(5,oo,6,6,"div",5),t.TgZ(6,"div",6)(7,"vdr-form-field",7),t.ALo(8,"translate"),t._UZ(9,"input",8),t.qZA(),t.TgZ(10,"vdr-form-field",7),t.ALo(11,"translate"),t._UZ(12,"input",9),t.qZA(),t.TgZ(13,"vdr-form-field",7),t.ALo(14,"translate"),t._UZ(15,"vdr-currency-input",10),t.qZA()()(),t.YNc(16,io,6,7,"ng-template",11)),2&n&&(t.xp6(1),t.Q6J("formGroup",e.form),t.xp6(2),t.Q6J("ngForOf",e.product.optionGroups),t.xp6(1),t.Q6J("ngIf",0===e.product.optionGroups.length),t.xp6(1),t.Q6J("ngIf",e.existingVariant),t.xp6(2),t.Q6J("label",t.lcZ(8,8,"common.name")),t.xp6(3),t.Q6J("label",t.lcZ(11,10,"catalog.sku")),t.xp6(3),t.Q6J("label",t.lcZ(14,12,"catalog.price")),t.xp6(2),t.Q6J("currencyCode",e.currencyCode))},dependencies:[f.TIm,f.CyW,f.I9z,_.sg,_.O5,d._Y,d.Fj,d.JJ,d.JL,d.sg,d.u,d.x0,de.w9,pe.K,$.h,L.y,tt.n,H.q,b.X$],changeDetection:0});var Pt,j=u(7017),et=u(8269);const ao=["textArea"],ro=["editNameInput"];function co(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-chip",6),t.NdJ("iconClick",function(){const r=t.CHM(e).$implicit,c=t.oxw(2);return t.KtG(c.removeOption(r))}),t.TgZ(1,"span",7)(2,"input",8,9),t.NdJ("blur",function(a){const c=t.CHM(e).index,l=t.oxw(2);return t.KtG(l.updateOption(c,a))})("click",function(a){return a.cancelBubble=!0}),t.qZA()(),t.TgZ(4,"span",10),t.NdJ("click",function(a){const c=t.CHM(e).index,l=t.oxw(2);return t.KtG(l.editName(c,a))}),t._uU(5),t.qZA()()}if(2&o){const e=n.$implicit,i=n.last,a=n.index,r=t.oxw(2);t.ekj("selected",i&&r.lastSelected)("locked",e.locked),t.Q6J("icon",e.locked?"lock":"times")("colorFrom",r.groupName),t.xp6(1),t.Q6J("hidden",r.editingIndex!==a),t.xp6(1),t.Q6J("ngModel",e.name),t.xp6(2),t.ekj("editable",!e.locked&&!e.id),t.Q6J("hidden",r.editingIndex===a),t.xp6(1),t.Oqu(e.name)}}function so(o,n){if(1&o&&(t.TgZ(0,"div",4),t.YNc(1,co,6,12,"vdr-chip",5),t.qZA()),2&o){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.optionValues)}}const en={provide:d.JU,useExisting:(0,t.Gpc)(()=>pt),multi:!0};class pt{get optionValues(){return this.formValue??this.options??[]}constructor(n){this.changeDetector=n,this.groupName="",this.add=new t.vpe,this.remove=new t.vpe,this.edit=new t.vpe,this.disabled=!1,this.input="",this.isFocussed=!1,this.lastSelected=!1,this.editingIndex=-1}registerOnChange(n){this.onChangeFn=n}registerOnTouched(n){this.onTouchFn=n}setDisabledState(n){this.disabled=n,this.changeDetector.markForCheck()}writeValue(n){this.formValue=n||[]}focus(){this.textArea.nativeElement.focus()}editName(n,e){const i=this.optionValues[n];if(!i.locked&&!i.id){e.cancelBubble=!0,this.editingIndex=n;const a=this.nameInputs.get(n)?.nativeElement;setTimeout(()=>a?.focus())}}updateOption(n,e){const i=this.optionValues[n],a=e.target.value;i&&(a&&(i.name=a,this.edit.emit({index:n,option:i})),this.editingIndex=-1)}removeOption(n){n.locked||(this.formValue?(this.formValue=this.formValue?.filter(e=>e.name!==n.name),this.onChangeFn(this.formValue)):this.remove.emit(n))}handleKey(n){switch(n.key){case",":case"Enter":this.addOptionValue(),n.preventDefault();break;case"Backspace":this.lastSelected?(this.removeLastOption(),this.lastSelected=!1):""===this.input&&(this.lastSelected=!0);break;default:this.lastSelected=!1}}handleBlur(){this.isFocussed=!1,this.addOptionValue()}addOptionValue(){const n=this.parseInputIntoOptions(this.input).filter(e=>!(this.options??this.formValue)?.find(a=>a?.name===e.name));if(!this.formValue&&this.options)for(const e of n)this.add.emit(e);else this.formValue=(0,J.T)([...this.formValue,...n]),this.onChangeFn(this.formValue);this.input=""}parseInputIntoOptions(n){return n.split(/[,\n]/).map(e=>e.trim()).filter(e=>""!==e).map(e=>({name:e,locked:!1}))}removeLastOption(){if(this.optionValues.length){const n=this.optionValues[this.optionValues.length-1];this.removeOption(n)}}}(Pt=pt).\u0275fac=function(n){return new(n||Pt)(t.Y36(t.sBO))},Pt.\u0275cmp=t.Xpm({type:Pt,selectors:[["vdr-option-value-input"]],viewQuery:function(n,e){if(1&n&&(t.Gf(ao,7),t.Gf(ro,5,t.SBq)),2&n){let i;t.iGM(i=t.CRH())&&(e.textArea=i.first),t.iGM(i=t.CRH())&&(e.nameInputs=i)}},inputs:{groupName:"groupName",options:"options",disabled:"disabled"},outputs:{add:"add",remove:"remove",edit:"edit"},features:[t._Bn([en])],decls:4,vars:5,consts:[[1,"input-wrapper",3,"click"],["class","chips",4,"ngIf"],[3,"ngModel","disabled","keyup","focus","blur","ngModelChange"],["textArea",""],[1,"chips"],[3,"icon","selected","locked","colorFrom","iconClick",4,"ngFor","ngForOf"],[3,"icon","colorFrom","iconClick"],[3,"hidden"],["type","text",3,"ngModel","blur","click"],["editNameInput",""],[1,"option-name",3,"hidden","click"]],template:function(n,e){if(1&n){const i=t.EpF();t.TgZ(0,"div",0),t.NdJ("click",function(){t.CHM(i);const r=t.MAs(3);return t.KtG(r.focus())}),t.YNc(1,so,2,1,"div",1),t.TgZ(2,"textarea",2,3),t.NdJ("keyup",function(r){return e.handleKey(r)})("focus",function(){return e.isFocussed=!0})("blur",function(){return e.handleBlur()})("ngModelChange",function(r){return e.input=r}),t.qZA()()}2&n&&(t.ekj("focus",e.isFocussed),t.xp6(1),t.Q6J("ngIf",0<e.optionValues.length),t.xp6(1),t.Q6J("ngModel",e.input)("disabled",e.disabled))},dependencies:[_.sg,_.O5,d.Fj,d.JJ,d.On,j.Y,L.y],styles:[".input-wrapper[_ngcontent-%COMP%]{background-color:var(--color-form-input-bg);border-radius:3px!important;border:1px solid var(--color-grey-300)!important;cursor:text}.input-wrapper.focus[_ngcontent-%COMP%]{border-color:var(--color-primary-500)!important;box-shadow:0 0 1px 1px var(--color-primary-100)}.input-wrapper[_ngcontent-%COMP%] .chips[_ngcontent-%COMP%]{padding:5px}.input-wrapper[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{border:none;width:100%;height:24px;margin-top:3px;padding:0 6px}.input-wrapper[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus{outline:none;box-shadow:none}.input-wrapper[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:disabled{background-color:var(--color-component-bg-100)}vdr-chip[_ngcontent-%COMP%] .wrapper{margin:0 3px}vdr-chip.locked[_ngcontent-%COMP%]{opacity:.8}vdr-chip.selected[_ngcontent-%COMP%] .wrapper{border-color:var(--color-warning-500)!important;box-shadow:0 0 1px 1px var(--color-warning-400);opacity:.6}vdr-chip[_ngcontent-%COMP%] .option-name.editable[_ngcontent-%COMP%]:hover{outline:1px solid var(--color-component-bg-300);outline-offset:1px;border-radius:1px}vdr-chip[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:0!important;margin-top:-2px;margin-bottom:-2px}"]});var yt,ut,me=u(4531);function lo(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",17)(1,"vdr-form-field",18),t.ALo(2,"translate"),t.TgZ(3,"input",19),t.NdJ("ngModelChange",function(a){const c=t.CHM(e).$implicit;return t.KtG(c.name=a)}),t.qZA()(),t.TgZ(4,"vdr-form-field",20),t.ALo(5,"translate"),t.TgZ(6,"vdr-option-value-input",21,22),t.NdJ("add",function(a){const c=t.CHM(e).index,l=t.oxw();return t.KtG(l.addOption(c,a.name))})("remove",function(a){const c=t.CHM(e).index,l=t.oxw();return t.KtG(l.removeOption(c,a))}),t.qZA()(),t.TgZ(8,"div")(9,"button",23),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.removeOptionGroup(r))}),t._UZ(10,"clr-icon",24),t.qZA()()()}if(2&o){const e=n.$implicit;t.xp6(1),t.Q6J("label",t.lcZ(2,7,"catalog.option")),t.xp6(2),t.Q6J("ngModel",e.name)("readonly",!e.isNew),t.xp6(1),t.Q6J("label",t.lcZ(5,9,"catalog.option-values")),t.xp6(2),t.Q6J("options",e.values)("groupName",e.name)("disabled",""===e.name)}}function po(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function uo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function mo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function go(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.name," ")}}function _o(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.sku," ")}}function fo(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",28),t._uU(1),t.qZA()),2&o){const e=n.ngIf,i=t.oxw(2).$implicit;t.Q6J("colorFrom",i.code),t.xp6(1),t.Oqu(e.name)}}function ho(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",29)(1,"ng-select",30),t.NdJ("change",function(a){t.CHM(e);const r=t.oxw().item,c=t.oxw().$implicit,l=t.oxw();return t.KtG(l.setOptionToAddToVariant(r.id,c.id,null==a?null:a.id))}),t.qZA(),t.TgZ(2,"button",31),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw(2);return t.KtG(r.addOptionToVariant(a))}),t._UZ(3,"clr-icon",32),t.qZA()()}if(2&o){const e=t.oxw().item,i=t.oxw().$implicit,a=t.oxw();t.xp6(1),t.Q6J("items",i.options),t.xp6(1),t.ekj("primary",!(null==a.optionsToAddToVariant[e.id]||!a.optionsToAddToVariant[e.id][i.id])),t.Q6J("disabled",!(null!=a.optionsToAddToVariant[e.id]&&a.optionsToAddToVariant[e.id][i.id]))}}function vo(o,n){if(1&o&&(t.YNc(0,fo,2,2,"vdr-chip",26),t.YNc(1,ho,4,4,"ng-template",null,27,t.W1O)),2&o){const e=n.item,i=t.MAs(2),a=t.oxw().$implicit,r=t.oxw();t.Q6J("ngIf",r.getOption(e,a.id))("ngIfElse",i)}}function Co(o,n){if(1&o&&(t.TgZ(0,"vdr-dt2-column",25),t.YNc(1,vo,3,2,"ng-template"),t.qZA()),2&o){const e=n.$implicit;t.Q6J("heading",e.name)("id",e.code)}}function xo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.price,e.currencyCode)," ")}}function bo(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.priceWithTax,e.currencyCode)," ")}}function To(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",33),t.NdJ("click",function(){const r=t.CHM(e).item,c=t.oxw();return t.KtG(c.deleteVariant(r))}),t._UZ(1,"clr-icon",34),t.qZA()}}class Zo{constructor(n){for(const e of Object.keys(n))this[e]=n[e]}}class ge{constructor(n,e,i,a,r,c){this.route=n,this.dataService=e,this.productDetailService=i,this.notificationService=a,this.modalService=r,this.changeDetector=c,this.formValueChanged=!1,this.optionsChanged=!1,this.itemsPerPage=100,this.currentPage=1,this.searchTermControl=new d.NI(""),this.selectionManager=new s.ZE0({multiSelect:!0,itemsAreEqual:(l,m)=>l.id===m.id,additiveMode:!0}),this.optionsToAddToVariant={},this.refresh$=new dt.x}ngOnInit(){this.languageCode=this.route.snapshot.paramMap.get("lang")||(0,s.kAh)(),this.dataService.settings.getActiveChannel().single$.subscribe(e=>{this.currencyCode=e.activeChannel.defaultCurrencyCode});const n=this.refresh$.pipe((0,C.w)(()=>this.dataService.product.getProductVariantsOptions(this.route.parent?.snapshot.paramMap.get("id")).mapSingle(e=>e.product)),(0,S.O)(this.route.snapshot.data.product));this.variants$=n.pipe((0,C.w)(e=>this.searchTermControl.valueChanges.pipe((0,S.O)(""),(0,h.U)(i=>i?e.variants.filter(a=>a.name.toLowerCase().includes(i.toLowerCase())):e.variants)))),this.optionGroups$=n.pipe((0,h.U)(e=>e.optionGroups)),this.totalItems$=this.variants$.pipe((0,h.U)(e=>e.length)),n.subscribe(e=>{this.product=e;const i=e.variants.map(r=>r.options.map(c=>c.id)).flat(),a=e.variants.map(r=>r.options.map(c=>c.groupId)).flat();this.optionGroups=e.optionGroups.map(r=>({id:r.id,isNew:!1,name:r.name,locked:a.includes(r.id),values:r.options.map(c=>({id:c.id,name:c.name,locked:i.includes(c.id)}))}))})}setItemsPerPage(n){this.itemsPerPage=n,this.currentPage=1}setPageNumber(n){this.currentPage=n}onFormChanged(n){this.formValueChanged=!0,n.enabled=!0}canDeactivate(){return!this.formValueChanged}addOptionGroup(){this.modalService.fromComponent(le,{locals:{languageCode:this.languageCode}}).pipe((0,C.w)(n=>n?this.dataService.product.createProductOptionGroups(n).pipe((0,C.w)(({createProductOptionGroup:e})=>this.dataService.product.addOptionGroupToProduct({optionGroupId:e.id,productId:this.product.id}))):F.E)).subscribe(n=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"ProductOptionGroup"}),this.refresh$.next(),this.changeDetector.markForCheck()})}removeOptionGroup(n){const e=n.id,i=this.product.variants.filter(a=>a.options.map(r=>r.groupId).includes(e)).length;this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product-option-group"),body:i?(0,p.J)("catalog.confirm-delete-product-option-group-body"):"",translationVars:{name:n.name,count:i},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(a=>a?this.dataService.product.removeOptionGroupFromProduct({optionGroupId:e,productId:this.product.id,force:!0}):F.E)).subscribe(({removeOptionGroupFromProduct:a})=>{"Product"===a.__typename?(this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"ProductOptionGroup"}),this.refresh$.next()):"ProductOptionInUseError"===a.__typename&&this.notificationService.error(a.message??"")})}addOption(n,e){const i=this.optionGroups[n];i&&i.id&&this.dataService.product.addOptionToGroup({productOptionGroupId:i.id,code:(0,G.U)(e,"-"),translations:[{name:e,languageCode:this.languageCode}]}).subscribe(({createProductOption:a})=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"ProductOption"}),this.refresh$.next()})}removeOption(n,{id:e,name:i}){const a=this.optionGroups[n];a&&this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product-option"),translationVars:{name:i},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(r=>r?this.dataService.product.deleteProductOption(e):F.E)).subscribe(({deleteProductOption:r})=>{r.result===s.PcR.DELETED?(this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"ProductOption"}),a.values=a.values.filter(c=>c.id!==e),this.refresh$.next()):this.notificationService.error(r.message??"")})}setOptionToAddToVariant(n,e,i){this.optionsToAddToVariant[n]||(this.optionsToAddToVariant[n]={}),i?this.optionsToAddToVariant[n][e]=i:delete this.optionsToAddToVariant[n][e]}addOptionToVariant(n){const e=[...n.options.map(i=>i.id),...Object.values(this.optionsToAddToVariant[n.id])];this.dataService.product.updateProductVariants([{id:n.id,optionIds:(0,J.T)(e)}]).subscribe(({updateProductVariants:i})=>{this.refresh$.next()})}deleteVariant(n){this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product-variant"),translationVars:{name:n.name},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(e=>e?this.productDetailService.deleteProductVariant(n.id,this.product.id):F.E)).subscribe(()=>{this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"ProductVariant"}),this.refresh$.next()},e=>{this.notificationService.error((0,p.J)("common.notify-delete-error"),{entity:"ProductVariant"})})}createNewVariant(){this.modalService.fromComponent(ue,{locals:{product:this.product}}).pipe((0,C.w)(n=>n?this.dataService.product.createProductVariants([n]):F.E)).subscribe(n=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"ProductVariant"}),this.refresh$.next()})}getOption(n,e){return n.options.find(i=>i.groupId===e)}}(yt=ge).\u0275fac=function(n){return new(n||yt)(t.Y36(A.gz),t.Y36(s.DoR),t.Y36(ct),t.Y36(s.gqp),t.Y36(s.Z7U),t.Y36(t.sBO))},yt.\u0275cmp=t.Xpm({type:yt,selectors:[["vdr-product-variants-editor"]],decls:44,vars:55,consts:[["class","option-groups",4,"ngFor","ngForOf"],[1,"button","mt-1",3,"click"],["shape","plus"],[3,"paddingX"],[1,"mx-3"],[1,"button",3,"click"],["id","manage-product-variant-list",3,"items","itemsPerPage","totalItems","currentPage","pageChange","itemsPerPageChange"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault"],["id","updated-at",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","sku",3,"heading","optional"],[3,"heading","id",4,"ngFor","ngForOf"],["id","price",3,"heading","hiddenByDefault"],["id","price-with-tax",3,"heading","hiddenByDefault"],["id","delete",3,"heading","optional"],[1,"option-groups"],[3,"label"],["clrInput","","name","name",3,"ngModel","readonly","ngModelChange"],[1,"flex-spacer",3,"label"],[3,"options","groupName","disabled","add","remove"],["optionValueInputComponent",""],[1,"button-small","mt-4",3,"click"],["shape","trash"],[3,"heading","id"],[3,"colorFrom",4,"ngIf","ngIfElse"],["selectOption",""],[3,"colorFrom"],[1,"flex","center"],["bindLabel","name","bindValue","id","appendTo","body",3,"items","change"],[1,"button-small","ml-1",3,"disabled","click"],["shape","floppy"],[1,"button-small",3,"click"],["shape","trash is-danger"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-card"),t.YNc(2,lo,11,11,"div",0),t.TgZ(3,"button",1),t.NdJ("click",function(){return e.addOptionGroup()}),t._UZ(4,"clr-icon",2),t._uU(5),t.ALo(6,"translate"),t.qZA()(),t.TgZ(7,"vdr-card",3)(8,"div",4)(9,"button",5),t.NdJ("click",function(){return e.createNewVariant()}),t._UZ(10,"clr-icon",2),t._uU(11),t.ALo(12,"translate"),t.qZA()(),t.TgZ(13,"vdr-data-table-2",6),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(14,"async"),t.ALo(15,"async"),t._UZ(16,"vdr-dt2-search",7),t.ALo(17,"translate"),t.TgZ(18,"vdr-dt2-column",8),t.ALo(19,"translate"),t.YNc(20,po,1,1,"ng-template"),t.qZA(),t.TgZ(21,"vdr-dt2-column",9),t.ALo(22,"translate"),t.YNc(23,uo,2,4,"ng-template"),t.qZA(),t.TgZ(24,"vdr-dt2-column",10),t.ALo(25,"translate"),t.YNc(26,mo,2,4,"ng-template"),t.qZA(),t.TgZ(27,"vdr-dt2-column",11),t.ALo(28,"translate"),t.YNc(29,go,1,1,"ng-template"),t.qZA(),t.TgZ(30,"vdr-dt2-column",12),t.ALo(31,"translate"),t.YNc(32,_o,1,1,"ng-template"),t.qZA(),t.YNc(33,Co,2,2,"vdr-dt2-column",13),t.ALo(34,"async"),t.TgZ(35,"vdr-dt2-column",14),t.ALo(36,"translate"),t.YNc(37,xo,2,4,"ng-template"),t.qZA(),t.TgZ(38,"vdr-dt2-column",15),t.ALo(39,"translate"),t.YNc(40,bo,2,4,"ng-template"),t.qZA(),t.TgZ(41,"vdr-dt2-column",16),t.ALo(42,"translate"),t.YNc(43,To,2,0,"ng-template"),t.qZA()()()()),2&n&&(t.xp6(2),t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(6,27,"catalog.create-product-option-group")," "),t.xp6(2),t.Q6J("paddingX",!1),t.xp6(4),t.hij(" ",t.lcZ(12,29,"catalog.create-product-variant")," "),t.xp6(2),t.Q6J("items",t.lcZ(14,31,e.variants$))("itemsPerPage",e.itemsPerPage)("totalItems",t.lcZ(15,33,e.totalItems$))("currentPage",e.currentPage),t.xp6(3),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(17,35,"catalog.filter-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(19,37,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(22,39,"common.created-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(25,41,"common.updated-at"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(28,43,"catalog.name"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(31,45,"catalog.sku"))("optional",!1),t.xp6(3),t.Q6J("ngForOf",t.lcZ(34,47,e.optionGroups$)),t.xp6(2),t.Q6J("heading",t.lcZ(36,49,"common.price"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(39,51,"common.price-with-tax"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(42,53,"common.delete"))("optional",!1))},dependencies:[f.qvL,f.xRP,_.sg,_.O5,d.Fj,d.JJ,d.On,de.w9,j.Y,$.h,L.y,lt.e,R.U,et.J,w.z,W.A,pt,_.Ov,b.X$,X.H,me.k],styles:[".option-groups[_ngcontent-%COMP%]{display:flex;width:100%;gap:var(--space-unit)}.values[_ngcontent-%COMP%]{flex:1;margin:0 6px}.variants-preview[_ngcontent-%COMP%] tr.disabled[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}"]});class qe extends s.p_9{constructor(n,e){super(n,{__typename:"Product",id:"",createdAt:"",updatedAt:"",name:"",languageCode:"",optionGroups:[],variants:[]},i=>e.product.getProductVariantsOptions(i).mapStream(a=>a.product))}}(ut=qe).\u0275fac=function(n){return new(n||ut)(t.LFG(A.F0),t.LFG(s.DoR))},ut.\u0275prov=t.Yz7({token:ut,factory:ut.\u0275fac,providedIn:"root"});const nn=o=>[{path:"products",component:s.IIO,data:{locationId:"product-list",breadcrumb:(0,p.J)("breadcrumb.products")},children:o.getPageTabRoutes("product-list")},{path:"inventory",redirectTo:"products"},{path:"products/:id",component:s.IIO,data:{locationId:"product-detail",breadcrumb:{label:(0,p.J)("breadcrumb.products"),link:["../","products"]}},children:[{path:"manage-variants",component:ge,canDeactivate:[s.TSp],data:{breadcrumb:({product:n})=>[{label:`${n.name}`,link:["../"]},{label:(0,p.J)("breadcrumb.manage-variants"),link:["manage-variants"]}]},resolve:{product:n=>(0,t.f3M)(s.DoR).product.getProductVariantsOptions(n.parent?.params.id).mapSingle(e=>e.product)}},...o.getPageTabRoutes("product-detail")]},{path:"products/:productId/variants/:id",component:s.IIO,data:{locationId:"product-variant-detail",breadcrumb:{label:(0,p.J)("breadcrumb.products"),link:["../","products"]}},children:o.getPageTabRoutes("product-variant-detail")},{path:"products/:id/options",component:se,resolve:(0,s.Po4)(qe),canDeactivate:[s.TSp],data:{breadcrumb:on}},{path:"facets",component:s.IIO,data:{locationId:"facet-list",breadcrumb:(0,p.J)("breadcrumb.facets")},children:o.getPageTabRoutes("facet-list")},{path:"facets/:id",component:s.IIO,data:{locationId:"facet-detail",breadcrumb:{label:(0,p.J)("breadcrumb.facets"),link:["../","facets"]}},children:o.getPageTabRoutes("facet-detail")},{path:"collections",component:s.IIO,data:{locationId:"collection-list",breadcrumb:(0,p.J)("breadcrumb.collections")},children:o.getPageTabRoutes("collection-list")},{path:"collections/:id",component:s.IIO,data:{locationId:"collection-detail",breadcrumb:{label:(0,p.J)("breadcrumb.collections"),link:["../","collections"]}},children:o.getPageTabRoutes("collection-detail")},{path:"assets",component:s.IIO,data:{locationId:"asset-list",breadcrumb:(0,p.J)("breadcrumb.assets")},children:o.getPageTabRoutes("asset-list")},{path:"assets/:id",component:s.IIO,data:{locationId:"asset-detail",breadcrumb:{label:(0,p.J)("breadcrumb.assets"),link:["../","assets"]}},children:o.getPageTabRoutes("asset-detail")}];function on(o,n){return o.entity.pipe((0,h.U)(e=>[{label:(0,p.J)("breadcrumb.products"),link:["../","products"]},{label:`${e.name}`,link:["../","products",n.id]},{label:(0,p.J)("breadcrumb.product-options"),link:["options"]}]))}var Ft,an=u(9981);function Ao(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.Oqu(t.lcZ(1,1,"catalog.add-facets"))}function Po(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.selectValues())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",0===e.selectedValues.length),t.xp6(1),t.hij(" ",t.lcZ(5,5,"catalog.add-facets")," ")}}class It{constructor(n){this.changeDetector=n,this.selectedValues=[]}ngAfterViewInit(){setTimeout(()=>this.selector.focus(),0)}selectValues(){this.resolveWith(this.selectedValues)}cancel(){this.resolveWith()}}(Ft=It).\u0275fac=function(n){return new(n||Ft)(t.Y36(t.sBO))},Ft.\u0275cmp=t.Xpm({type:Ft,selectors:[["vdr-apply-facet-dialog"]],viewQuery:function(n,e){if(1&n&&t.Gf(s.$MF,5),2&n){let i;t.iGM(i=t.CRH())&&(e.selector=i.first)}},decls:3,vars:0,consts:[["vdrDialogTitle",""],[3,"selectedValuesChange"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,Ao,2,3,"ng-template",0),t.TgZ(1,"vdr-facet-value-selector",1),t.NdJ("selectedValuesChange",function(a){return e.selectedValues=a}),t.qZA(),t.YNc(2,Po,6,7,"ng-template",2))},dependencies:[an.$,tt.n,H.q,b.X$],changeDetection:0});var Lt,y=u(2840),yo=u(5734),K=u(7491);function Fo(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}const Io=function(){return["UpdateCatalog","UpdateAsset"]},Lo=y.Ps`
|
|
2
2
|
query AssetDetailQuery($id: ID!) {
|
|
3
3
|
asset(id: $id) {
|
|
4
4
|
...Asset
|
|
@@ -79,14 +79,14 @@
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
${s.vWg}
|
|
82
|
-
`;class ye extends s.VE7{constructor(n,e,i,a,r,c){super(),this.changeDetector=n,this.dataService=e,this.formBuilder=i,this.notificationService=a,this.modalService=r,this.localStorageService=c,this.customFields=this.getCustomFieldConfig("Collection"),this.detailForm=this.formBuilder.group({name:["",d.kI.required],slug:["",(0,s.Foo)(/^[\p{Letter}0-9._-]+$/)],description:"",visible:!1,inheritFilters:!0,filters:this.formBuilder.array([]),customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),this.assetChanges={},this.filters=[],this.allFilters=[],this.livePreview=!1,this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateCollection],this.filterRemoved$=new dt.x,this.livePreview=this.localStorageService.get("livePreviewCollectionContents")??!1}ngOnInit(){this.init(),this.dataService.collection.getCollectionFilters().single$.subscribe(i=>{this.allFilters=i.collectionFilters});const n=this.detailForm.get("filters"),e=this.detailForm.get("inheritFilters");this.inheritFilters$=e.valueChanges.pipe((0,M.x)()),this.updatedFilters$=(0,pa.T)(n.statusChanges,this.filterRemoved$).pipe((0,mt.b)(200),(0,Ge.h)(()=>n.touched),(0,h.U)(()=>this.mapOperationsToInputs(this.filters,n.value).filter(i=>{for(const a of i.arguments)if(""===a.value)return!1;return!0}))),this.parentId$=this.route.paramMap.pipe((0,h.U)(i=>i.get("parentId")||void 0),(0,C.w)(i=>i?(0,k.of)(i):this.entity$.pipe((0,h.U)(a=>a.parent?.id))))}ngOnDestroy(){this.destroy()}getFilterDefinition(n){return this.allFilters.find(e=>e.code===n.code)}assetsChanged(){return!!Object.values(this.assetChanges).length}updateSlug(n){const e=this.detailForm.get(["slug"]),i=this.entity?(0,s.ZIM)(this.entity,this.languageCode):void 0,a=!i||!i.slug;e&&e.pristine&&a&&e.setValue((0,G.U)(`${n}`,"-"))}addFilter(n){const e=this.detailForm.get("filters"),i=n.args.reduce((a,r)=>({...a,[r.name]:(0,s.sux)(r.value)}),{});e.push(this.formBuilder.control({code:n.code,args:i})),this.filters.push({code:n.code,args:n.args.map(a=>({name:a.name,value:(0,s.sux)(a.value)}))})}removeFilter(n){const e=this.detailForm.get("filters");-1!==n&&(e.removeAt(n),e.markAsDirty(),e.markAsTouched(),this.filters.splice(n,1),this.filterRemoved$.next())}create(){if(!this.detailForm.dirty)return;const n=this.getUpdatedCollection({id:"",createdAt:"",updatedAt:"",languageCode:this.languageCode,name:"",slug:"",isPrivate:!1,breadcrumbs:[],description:"",featuredAsset:null,assets:[],translations:[],inheritFilters:!0,filters:[],parent:{},children:null},this.detailForm,this.languageCode),e=this.route.snapshot.paramMap.get("parentId");e&&(n.parentId=e),this.dataService.collection.createCollection(n).subscribe(i=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"Collection"}),this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",i.createCollection.id],{relativeTo:this.route})},i=>{this.notificationService.error((0,p.J)("common.notify-create-error"),{entity:"Collection"})})}save(){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([n,e])=>{const i=this.getUpdatedCollection(n,this.detailForm,e);return this.dataService.collection.updateCollection(i)})).subscribe(()=>{this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"Collection"}),this.contentsComponent.refresh()},n=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"Collection"})})}canDeactivate(){return super.canDeactivate()&&!this.assetChanges.assets&&!this.assetChanges.featuredAsset}toggleLivePreview(){this.livePreview=!this.livePreview,this.localStorageService.set("livePreviewCollectionContents",this.livePreview)}trackByFn(n,e){return JSON.stringify(e)}setFormValues(n,e){const i=(0,s.ZIM)(n,e);this.detailForm.patchValue({name:i?i.name:"",slug:i?i.slug:"",description:i?i.description:"",visible:!n.isPrivate,inheritFilters:n.inheritFilters});const a=this.detailForm.get("filters");a.length!==n.filters.length&&(a.clear(),this.filters=[],n.filters.forEach(r=>this.addFilter(r))),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customFields"]),n,i)}getUpdatedCollection(n,e,i){return{...(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||"",slug:n.slug||"",description:n.description||""}}),assetIds:this.assetChanges.assets?.map(r=>r.id),featuredAssetId:this.assetChanges.featuredAsset?.id,isPrivate:!e.value.visible,filters:this.mapOperationsToInputs(this.filters,this.detailForm.value.filters)}}mapOperationsToInputs(n,e){return n.map((i,a)=>({code:i.code,arguments:Object.entries(e[a].args).map(([r,c],l)=>({name:r,value:(0,s.qrw)(c)}))}))}}var Qt,$t;(Nt=ye).\u0275fac=function(n){return new(n||Nt)(t.Y36(t.sBO),t.Y36(s.DoR),t.Y36(d.qu),t.Y36(s.gqp),t.Y36(s.Z7U),t.Y36(s.n2A))},Nt.\u0275cmp=t.Xpm({type:Nt,selectors:[["vdr-collection-detail"]],viewQuery:function(n,e){if(1&n&&t.Gf(ma,5),2&n){let i;t.iGM(i=t.CRH())&&(e.contentsComponent=i.first)}},features:[t.qOj],decls:73,vars:89,consts:[[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],[1,"form",3,"formGroup"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],[4,"ngIf"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","slug",3,"label","errors"],["id","slug","type","text","formControlName","slug",3,"readonly"],["for","slug",1,"form-grid-span",3,"label"],["formControlName","description",3,"readonly"],["formGroupName","customFields",3,"title",4,"ngIf"],["locationId","collection-detail",3,"entity$","detailForm"],[3,"title"],[3,"assets","featuredAsset","updatePermissions","change"],["for","inheritFilters",3,"label"],["type","checkbox","clrToggle","","formControlName","inheritFilters","id","inheritFilters",3,"vdrDisabled"],["noInherit",""],["formArrayName","filters"],[4,"ngFor","ngForOf","ngForTrackBy"],[4,"vdrIfPermissions"],[3,"title","paddingX"],[3,"collectionId","parentId","updatedFilters","inheritFilters","previewUpdatedFilters"],["collectionContents",""],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"entity"],["role","navigation"],[1,"collection-breadcrumbs"],[4,"ngFor","ngForOf"],[3,"routerLink",4,"ngIf"],[3,"routerLink"],["formGroupName","customFields",3,"title"],["entityName","Collection",3,"customFields","customFieldsFormGroup","readonly"],[3,"position","operation","operationDefinition","formControlName","readonly","remove"],["vdrDropdownTrigger","",1,"btn","btn-outline"],["shape","plus"],["shape","ellipsis-vertical"],["vdrPosition","bottom-left"],["type","button","vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["type","button","vdrDropdownItem","",3,"click"],[1,"ml-3"],[1,"contents-title"],["type","checkbox","clrCheckbox","",3,"ngModelOptions","disabled","ngModel","ngModelChange"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()(),t.TgZ(7,"vdr-ab-right"),t._UZ(8,"vdr-action-bar-items",1),t.YNc(9,ga,3,4,"button",2),t.ALo(10,"async"),t.YNc(11,fa,1,1,"ng-template",null,3,t.W1O),t.qZA()()(),t.TgZ(13,"form",4)(14,"vdr-page-detail-layout")(15,"vdr-page-detail-sidebar")(16,"vdr-card")(17,"vdr-form-field",5),t.ALo(18,"translate"),t.TgZ(19,"clr-toggle-wrapper"),t._UZ(20,"input",6),t.ALo(21,"hasPermission"),t.TgZ(22,"label",7),t.YNc(23,ha,3,3,"ng-container",8),t.YNc(24,va,2,3,"ng-template",null,9,t.W1O),t.qZA()()()(),t.YNc(26,Ca,2,1,"vdr-card",10),t.ALo(27,"async"),t.qZA(),t.YNc(28,ya,4,1,"vdr-page-block",10),t.ALo(29,"async"),t.TgZ(30,"vdr-page-block")(31,"vdr-card")(32,"div",11)(33,"vdr-form-field",12),t.ALo(34,"translate"),t.TgZ(35,"input",13),t.NdJ("input",function(a){return e.updateSlug(a.target.value)}),t.ALo(36,"hasPermission"),t.qZA()(),t.TgZ(37,"vdr-form-field",14),t.ALo(38,"translate"),t.ALo(39,"translate"),t._UZ(40,"input",15),t.ALo(41,"hasPermission"),t.qZA(),t.TgZ(42,"vdr-form-field",16),t.ALo(43,"translate"),t._UZ(44,"vdr-rich-text-editor",17),t.ALo(45,"hasPermission"),t.qZA()()(),t.YNc(46,Fa,4,8,"vdr-card",18),t._UZ(47,"vdr-custom-detail-component-host",19),t.TgZ(48,"vdr-card",20),t.ALo(49,"translate"),t.TgZ(50,"vdr-assets",21),t.NdJ("change",function(a){return e.assetChanges=a}),t.qZA()(),t.TgZ(51,"vdr-card",20),t.ALo(52,"translate"),t.TgZ(53,"vdr-form-field",22),t.ALo(54,"translate"),t.TgZ(55,"clr-toggle-wrapper"),t._UZ(56,"input",23),t.ALo(57,"hasPermission"),t.TgZ(58,"label",7),t.YNc(59,Ia,3,3,"ng-container",8),t.YNc(60,La,2,3,"ng-template",null,24,t.W1O),t.qZA()()(),t.TgZ(62,"div",25),t.YNc(63,Oa,3,7,"ng-container",26),t.qZA(),t.YNc(64,Ja,10,4,"div",27),t.qZA(),t.TgZ(65,"vdr-card",28),t.ALo(66,"translate"),t.TgZ(67,"vdr-collection-contents",29,30),t.ALo(69,"async"),t.ALo(70,"async"),t.ALo(71,"async"),t.YNc(72,Va,10,18,"ng-template"),t.qZA()()()()()),2&n){const i=t.MAs(12),a=t.MAs(25),r=t.MAs(61);t.xp6(3),t.Q6J("disabled",t.lcZ(4,41,e.isNew$))("availableLanguageCodes",t.lcZ(5,43,e.availableLanguages$))("currentLanguageCode",t.lcZ(6,45,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(10,47,e.isNew$))("ngIfElse",i),t.xp6(4),t.Q6J("formGroup",e.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(18,49,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(21,51,e.updatePermission)),t.xp6(3),t.Q6J("ngIf",e.detailForm.value.visible)("ngIfElse",a),t.xp6(3),t.Q6J("ngIf",t.lcZ(27,53,e.entity$)),t.xp6(2),t.Q6J("ngIf",t.lcZ(29,55,e.entity$)),t.xp6(5),t.Q6J("label",t.lcZ(34,57,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(36,59,e.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(38,61,"catalog.slug"))("errors",t.VKq(87,Ma,t.lcZ(39,63,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(41,65,e.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(43,67,"common.description")),t.xp6(2),t.Q6J("readonly",!t.lcZ(45,69,e.updatePermission)),t.xp6(2),t.Q6J("ngIf",e.customFields.length),t.xp6(1),t.Q6J("entity$",e.entity$)("detailForm",e.detailForm),t.xp6(1),t.Q6J("title",t.lcZ(49,71,"catalog.assets")),t.xp6(2),t.Q6J("assets",null==e.entity?null:e.entity.assets)("featuredAsset",null==e.entity?null:e.entity.featuredAsset)("updatePermissions",e.updatePermission),t.xp6(1),t.Q6J("title",t.lcZ(52,73,"catalog.filters")),t.xp6(2),t.Q6J("label",t.lcZ(54,75,"catalog.filter-inheritance")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(57,77,e.updatePermission)),t.xp6(3),t.Q6J("ngIf",e.detailForm.value.inheritFilters)("ngIfElse",r),t.xp6(4),t.Q6J("ngForOf",e.filters)("ngForTrackBy",e.trackByFn),t.xp6(1),t.Q6J("vdrIfPermissions",e.updatePermission),t.xp6(1),t.Q6J("title",t.lcZ(66,79,"common.contents"))("paddingX",!1),t.xp6(2),t.Q6J("collectionId",e.id)("parentId",t.lcZ(69,81,e.parentId$))("updatedFilters",t.lcZ(70,83,e.updatedFilters$))("inheritFilters",t.lcZ(71,85,e.inheritFilters$))("previewUpdatedFilters",e.livePreview)}},dependencies:[f.q0d,f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.On,d.sg,d.u,d.x0,d.CE,A.rH,x.Kk,x.BN,x.mz,ua.q,$.h,L.y,E.S,_n.Y,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Te.x,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,vt,Vt,_.Ov,b.X$,B.j],styles:['@charset "UTF-8";.visible-toggle[_ngcontent-%COMP%]{margin-top:-3px!important}clr-checkbox-wrapper[_ngcontent-%COMP%]{transition:opacity .3s}clr-checkbox-wrapper.disabled[_ngcontent-%COMP%]{opacity:.5}.collection-breadcrumbs[_ngcontent-%COMP%]{list-style-type:none;background-color:var(--color-component-bg-200);padding:2px 6px;margin-bottom:6px;border-radius:var(--clr-global-borderradius)}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{font-size:.65rem;display:inline-block;margin-inline-end:10px}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child{font-weight:600}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:last-child):after{content:"\\203a";top:0;color:var(--color-grey-400);margin-inline-start:10px}'],changeDetection:0});class qt{transform(n){return n?.breadcrumbs.slice(1,-1)}}function Na(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.move-collections"),"\n")}function Qa(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function qa(o,n){if(1&o&&t._UZ(0,"clr-icon",12),2&o){const e=t.oxw().depth;t.ekj("transparent",0===e)}}function $a(o,n){1&o&&t._UZ(0,"clr-icon",16)}function Sa(o,n){1&o&&t._UZ(0,"clr-icon",17)}function Ya(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",13),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw();return t.KtG(r.toggleExpanded(a))}),t.YNc(1,$a,1,0,"clr-icon",14),t.YNc(2,Sa,1,0,"clr-icon",15),t.qZA()}if(2&o){const e=t.oxw().item,i=t.oxw();t.xp6(1),t.Q6J("ngIf",!i.expandedIds.includes(e.id)),t.xp6(1),t.Q6J("ngIf",i.expandedIds.includes(e.id))}}function Ga(o,n){1&o&&(t.TgZ(0,"button",18),t._UZ(1,"clr-icon",19),t.qZA())}(Qt=qt).\u0275fac=function(n){return new(n||Qt)},Qt.\u0275pipe=t.Yjl({name:"collectionBreadcrumb",type:Qt,pure:!0});const Ea=function(o){return{name:o}};function Ba(o,n){if(1&o){const e=t.EpF();t._UZ(0,"div",7),t.YNc(1,qa,1,2,"clr-icon",8),t.YNc(2,Ya,3,2,"button",9),t.YNc(3,Ga,2,0,"button",10),t.TgZ(4,"button",11),t.NdJ("click",function(){const r=t.CHM(e).item,c=t.oxw();return t.KtG(c.resolveWith(r))}),t.TgZ(5,"span"),t._uU(6),t.ALo(7,"translate"),t.qZA()()}if(2&o){const e=n.item,i=n.depth;t.Q6J("ngClass","indent-"+i),t.xp6(1),t.Q6J("ngIf",!(null!=e.children&&e.children.length)&&"__"!==e.parentId),t.xp6(1),t.Q6J("ngIf",null==e.children?null:e.children.length),t.xp6(1),t.Q6J("ngIf","__"===e.parentId),t.xp6(3),t.Oqu(t.xi3(7,5,"catalog.move-collection-to",t.VKq(8,Ea,e.name)))}}function ja(o,n){if(1&o&&(t.TgZ(0,"div")(1,"span",24),t._uU(2,"/"),t.qZA(),t._uU(3),t.qZA()),2&o){const e=n.$implicit;t.xp6(3),t.hij("",e.name," ")}}function Ra(o,n){if(1&o&&(t.ynx(0),t.YNc(1,ja,4,1,"div",23),t.BQk()),2&o){const e=t.oxw().ngIf;t.xp6(1),t.Q6J("ngForOf",e)}}function Ha(o,n){1&o&&(t.TgZ(0,"span",24),t._uU(1,"/"),t.qZA())}function Ka(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Ra,2,1,"ng-container",21),t.YNc(2,Ha,2,0,"span",22),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length),t.xp6(1),t.Q6J("ngIf",!e.length)}}function za(o,n){if(1&o&&(t.TgZ(0,"div",20),t.YNc(1,Ka,3,2,"ng-container",21),t.ALo(2,"collectionBreadcrumb"),t.qZA()),2&o){const e=n.item;t.xp6(1),t.Q6J("ngIf",t.lcZ(2,1,e))}}function Wa(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.slug," ")}}class Fe{constructor(n,e){this.dataService=n,this.i18nService=e,this.searchTermControl=new d.NI(""),this.currentPage$=new V.X(1),this.itemsPerPage$=new V.X(10),this.expandedIds$=new dt.x,this.expandedIds=[]}ngOnInit(){const n=this.dataService.collection.getCollections(),e=this.searchTermControl.valueChanges.pipe((0,mt.b)(250),(0,M.x)(),(0,S.O)("")),i=this.currentPage$.pipe((0,M.x)()),a=this.itemsPerPage$.pipe((0,M.x)());(0,P.a)(e,i,a).subscribe(([c,l,m])=>{const g=""===c;n.ref.refetch({options:{skip:(l-1)*m,take:m,filter:{name:{contains:c}},topLevelOnly:g}})});const r=this.dataService.collection.getCollections({take:1,topLevelOnly:!0}).mapSingle(c=>c.collections.items[0].parentId);this.items$=(0,P.a)(n.mapStream(({collections:c})=>c),r).pipe((0,h.U)(([c,l])=>[...l?[{id:l,name:this.i18nService.translate("catalog.root-collection"),slug:"",parentId:"__",position:0,featuredAsset:null,children:[],breadcrumbs:[],isPrivate:!1,createdAt:"",updatedAt:""}]:[],...c.items])),this.totalItems$=n.mapStream(c=>c.collections.totalItems),this.subCollections$=this.expandedIds$.pipe((0,q.b)(c=>this.expandedIds=c),(0,C.w)(c=>c.length?this.dataService.collection.getCollections({take:999,filter:{parentId:{in:c}}}).mapStream(l=>l.collections.items):(0,k.of)([])))}toggleExpanded(n){let e=this.expandedIds;e.includes(n.id)?e=e.filter(i=>i!==n.id):e.push(n.id),this.expandedIds$.next(e)}}($t=Fe).\u0275fac=function(n){return new(n||$t)(t.Y36(s.DoR),t.Y36(s.Dp7))},$t.\u0275cmp=t.Xpm({type:$t,selectors:[["vdr-move-collections-dialog"]],decls:21,vars:33,consts:[["vdrDialogTitle",""],["id","move-collection-list",1,"mt-2",3,"items","subCollections","itemsPerPage","totalItems","currentPage","pageChange","itemsPerPageChange"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","breadcrumb",3,"heading"],["id","slug",3,"heading"],[3,"ngClass"],["class","child-arrow","shape","child-arrow",3,"transparent",4,"ngIf"],["class","icon-button folder-button",3,"click",4,"ngIf"],["class","icon-button folder-button","disabled","",4,"ngIf"],[1,"button-ghost",3,"click"],["shape","child-arrow",1,"child-arrow"],[1,"icon-button","folder-button",3,"click"],["shape","folder",4,"ngIf"],["shape","folder-open",4,"ngIf"],["shape","folder"],["shape","folder-open"],["disabled","",1,"icon-button","folder-button"],["shape","folder",1,"is-solid"],[1,"breadcrumb"],[4,"ngIf"],["class","separator",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"separator"]],template:function(n,e){1&n&&(t.YNc(0,Na,2,3,"ng-template",0),t.TgZ(1,"vdr-collection-data-table",1),t.NdJ("pageChange",function(a){return e.currentPage$.next(a)})("itemsPerPageChange",function(a){return e.itemsPerPage$.next(a)}),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t._UZ(7,"vdr-dt2-search",2),t.ALo(8,"translate"),t.TgZ(9,"vdr-dt2-column",3),t.ALo(10,"translate"),t.YNc(11,Qa,1,1,"ng-template"),t.qZA(),t.TgZ(12,"vdr-dt2-column",4),t.ALo(13,"translate"),t.YNc(14,Ba,8,10,"ng-template"),t.qZA(),t.TgZ(15,"vdr-dt2-column",5),t.ALo(16,"translate"),t.YNc(17,za,3,3,"ng-template"),t.qZA(),t.TgZ(18,"vdr-dt2-column",6),t.ALo(19,"translate"),t.YNc(20,Wa,1,1,"ng-template"),t.qZA()()),2&n&&(t.xp6(1),t.Q6J("items",t.lcZ(2,13,e.items$))("subCollections",t.lcZ(3,15,e.subCollections$))("itemsPerPage",t.lcZ(4,17,e.itemsPerPage$))("totalItems",t.lcZ(5,19,e.totalItems$))("currentPage",t.lcZ(6,21,e.currentPage$)),t.xp6(6),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(8,23,"common.search-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(10,25,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(13,27,"common.name"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(16,29,"common.breadcrumb")),t.xp6(3),t.Q6J("heading",t.lcZ(19,31,"common.slug")))},dependencies:[f.qvL,_.mk,_.sg,_.O5,H.q,R.U,et.J,Ut,_.Ov,b.X$,qt],styles:["[_nghost-%COMP%]{--indent-spacing: 18px}.indent-1[_ngcontent-%COMP%]{padding-inline-start:var(--indent-spacing)}.indent-2[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 2)}.indent-3[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 3)}.indent-4[_ngcontent-%COMP%], .indent-5[_ngcontent-%COMP%], .indent-6[_ngcontent-%COMP%], .indent-7[_ngcontent-%COMP%], .indent-8[_ngcontent-%COMP%], .indent-9[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 4)}.child-arrow[_ngcontent-%COMP%]{margin:1px 6px}.child-arrow.transparent[_ngcontent-%COMP%]{opacity:0}.breadcrumb[_ngcontent-%COMP%]{display:flex}.separator[_ngcontent-%COMP%]{color:var(--color-weight-500);margin:0 3px}"],changeDetection:0});const fn=(0,s.wwB)({location:"collection-list",requiresPermission:o=>o.includes(s.y3$.DeleteCollection)||o.includes(s.y3$.DeleteCatalog),getItemName:o=>o.name,bulkDelete:(o,n)=>o.collection.deleteCollections(n).pipe((0,h.U)(e=>e.deleteCollections))}),hn={location:"collection-list",label:(0,p.J)("catalog.move-collections"),icon:"drag-handle",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateCollection),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp);a.fromComponent(Fe,{size:"xl",closable:!0}).pipe((0,C.w)(l=>{if(l){const m=n.map(g=>({collectionId:g.id,parentId:l.id,index:0}));return r.collection.moveCollection(m)}return F.E})).subscribe(l=>{c.success((0,p.J)("catalog.move-collections-success"),{count:n.length}),i(),e.refresh()})}},vn=(0,s.z1G)({location:"collection-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateCollection),getItemName:o=>o.name,bulkAssignToChannel:(o,n,e)=>o.collection.assignCollectionsToChannel({collectionIds:n,channelId:e}).pipe((0,h.U)(i=>i.assignCollectionsToChannel))}),Cn=(0,s.RBx)({location:"collection-list",requiresPermission:o=>o.includes(s.y3$.DeleteCatalog)||o.includes(s.y3$.DeleteCollection),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e)=>o.collection.removeCollectionsFromChannel({channelId:e,collectionIds:n}).pipe((0,h.U)(i=>i.removeCollectionsFromChannel))});var St,Ie=u(7615),Le=u(419),Xa=u(9187),xn=u(5806);const tr=function(){return["./create"]};function er(o,n){1&o&&(t.TgZ(0,"a",6),t._UZ(1,"clr-icon",7),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,tr)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," "))}function nr(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function or(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function ir(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function ar(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.position," ")}}function rr(o,n){if(1&o&&t._UZ(0,"clr-icon",26),2&o){const e=t.oxw().depth;t.ekj("transparent",0===e)}}function cr(o,n){1&o&&t._UZ(0,"clr-icon",30)}function sr(o,n){1&o&&t._UZ(0,"clr-icon",31)}function lr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",27),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw(2);return t.KtG(r.toggleExpanded(a))}),t.YNc(1,cr,1,0,"clr-icon",28),t.YNc(2,sr,1,0,"clr-icon",29),t.qZA()}if(2&o){const e=t.oxw().item,i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",!i.expandedIds.includes(e.id)),t.xp6(1),t.Q6J("ngIf",i.expandedIds.includes(e.id))}}const bn=function(o){return["./",o]};function dr(o,n){if(1&o&&(t._UZ(0,"div",21),t.YNc(1,rr,1,2,"clr-icon",22),t.YNc(2,lr,3,2,"button",23),t.TgZ(3,"a",24)(4,"span"),t._uU(5),t.qZA(),t._UZ(6,"clr-icon",25),t.qZA()),2&o){const e=n.item,i=n.depth;t.Q6J("ngClass","indent-"+i),t.xp6(1),t.Q6J("ngIf",!(null!=e.children&&e.children.length)),t.xp6(1),t.Q6J("ngIf",null==e.children?null:e.children.length),t.xp6(1),t.Q6J("routerLink",t.VKq(5,bn,e.id)),t.xp6(2),t.Oqu(e.name)}}function pr(o,n){if(1&o&&(t.TgZ(0,"div")(1,"span",36),t._uU(2,"/"),t.qZA(),t._uU(3),t.qZA()),2&o){const e=n.$implicit;t.xp6(3),t.hij("",e.name," ")}}function ur(o,n){if(1&o&&(t.ynx(0),t.YNc(1,pr,4,1,"div",35),t.BQk()),2&o){const e=t.oxw().ngIf;t.xp6(1),t.Q6J("ngForOf",e)}}function mr(o,n){1&o&&(t.TgZ(0,"span",36),t._uU(1,"/"),t.qZA())}function gr(o,n){if(1&o&&(t.ynx(0),t.YNc(1,ur,2,1,"ng-container",33),t.YNc(2,mr,2,0,"span",34),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length),t.xp6(1),t.Q6J("ngIf",!e.length)}}function _r(o,n){if(1&o&&(t.TgZ(0,"div",32),t.YNc(1,gr,3,2,"ng-container",33),t.ALo(2,"collectionBreadcrumb"),t.qZA()),2&o){const e=n.item;t.xp6(1),t.Q6J("ngIf",t.lcZ(2,1,e))}}function fr(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.slug," ")}}function hr(o,n){1&o&&(t.TgZ(0,"vdr-chip",39),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.private")))}function vr(o,n){1&o&&(t.TgZ(0,"vdr-chip",40),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.public")))}function Cr(o,n){if(1&o&&(t.YNc(0,hr,3,3,"vdr-chip",37),t.YNc(1,vr,3,3,"vdr-chip",38)),2&o){const e=n.item;t.Q6J("ngIf",e.isPrivate),t.xp6(1),t.Q6J("ngIf",!e.isPrivate)}}const xr=function(o){return{contents:o}};function br(o,n){if(1&o&&(t.TgZ(0,"a",41)(1,"span"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"clr-icon",42),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.VKq(6,bn,t.VKq(4,xr,e.id))),t.xp6(2),t.Oqu(t.lcZ(3,2,"common.view-contents"))}}function Tr(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",43),2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("customField",e)("sorts",i.sorts)}}function Zr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-collection-data-table",8),t.NdJ("pageChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.setPageNumber(a))})("itemsPerPageChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.setItemsPerPage(a))})("changeOrder",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.onRearrange(a))}),t.ALo(1,"async"),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t._UZ(7,"vdr-bulk-action-menu",9)(8,"vdr-dt2-search",10),t.ALo(9,"translate"),t.TgZ(10,"vdr-dt2-column",11),t.ALo(11,"translate"),t.YNc(12,nr,1,1,"ng-template"),t.qZA(),t.TgZ(13,"vdr-dt2-column",12),t.ALo(14,"translate"),t.YNc(15,or,2,4,"ng-template"),t.qZA(),t.TgZ(16,"vdr-dt2-column",13),t.ALo(17,"translate"),t.YNc(18,ir,2,4,"ng-template"),t.qZA(),t.TgZ(19,"vdr-dt2-column",14),t.ALo(20,"translate"),t.YNc(21,ar,1,1,"ng-template"),t.qZA(),t.TgZ(22,"vdr-dt2-column",15),t.ALo(23,"translate"),t.YNc(24,dr,7,7,"ng-template"),t.qZA(),t.TgZ(25,"vdr-dt2-column",16),t.ALo(26,"translate"),t.YNc(27,_r,3,3,"ng-template"),t.qZA(),t.TgZ(28,"vdr-dt2-column",17),t.ALo(29,"translate"),t.YNc(30,fr,1,1,"ng-template"),t.qZA(),t.TgZ(31,"vdr-dt2-column",18),t.ALo(32,"translate"),t.YNc(33,Cr,2,2,"ng-template"),t.qZA(),t.TgZ(34,"vdr-dt2-column",19),t.ALo(35,"translate"),t.YNc(36,br,5,8,"ng-template"),t.qZA(),t.YNc(37,Tr,1,2,"vdr-dt2-custom-field-column",20),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("items",t.lcZ(1,32,e.items$))("subCollections",t.lcZ(2,34,e.subCollections$))("itemsPerPage",t.lcZ(3,36,e.itemsPerPage$))("totalItems",t.lcZ(4,38,e.totalItems$))("currentPage",t.lcZ(5,40,e.currentPage$))("filters",e.filters)("activeIndex",t.lcZ(6,42,e.activeCollectionIndex$)),t.xp6(7),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(9,44,"common.search-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(11,46,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(14,48,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(17,50,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(20,52,"common.position"))("hiddenByDefault",!0)("sort",e.sorts.get("position")),t.xp6(3),t.Q6J("heading",t.lcZ(23,54,"common.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(26,56,"common.breadcrumb")),t.xp6(3),t.Q6J("heading",t.lcZ(29,58,"common.slug"))("sort",e.sorts.get("slug")),t.xp6(3),t.Q6J("heading",t.lcZ(32,60,"common.visibility")),t.xp6(3),t.Q6J("heading",t.lcZ(35,62,"common.view-contents"))("optional",!1),t.xp6(3),t.Q6J("ngForOf",e.customFields)}}function Ar(o,n){if(1&o&&(t.ynx(0),t._UZ(1,"vdr-collection-contents",44),t.ALo(2,"async"),t.BQk()),2&o){const e=t.oxw(2);t.xp6(1),t.Q6J("collectionId",t.lcZ(2,1,e.activeCollectionId$))}}function Pr(o,n){if(1&o&&(t.YNc(0,Ar,3,3,"ng-container",33),t.ALo(1,"async")),2&o){const e=t.oxw();t.Q6J("ngIf",t.lcZ(1,1,e.activeCollectionId$))}}const yr=function(){return["CreateCatalog","CreateCollection"]};class Oe extends s.$ms{constructor(n,e){super(),this.dataService=n,this.notificationService=e,this.expandedIds=[],this.customFields=this.getCustomFieldConfig("Collection"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilter({name:"slug",label:(0,p.J)("common.slug"),type:{kind:"text"},filterField:"slug"}).addFilter({name:"visibility",type:{kind:"boolean"},label:(0,p.J)("common.visibility"),toFilterInput:i=>({isPrivate:{eq:!i}})}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("position","ASC").addSort({name:"createdAt"}).addSort({name:"updatedAt"}).addSort({name:"name"}).addSort({name:"slug"}).addSort({name:"position"}).addCustomFieldSorts(this.customFields).connectToRoute(this.route),super.configure({document:s.rcS,getItems:i=>i.collections,setVariables:(i,a)=>{const r=""===this.searchTermControl.value&&0===this.filters.activeFilters.length||void 0;return{options:{skip:i,take:a,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},topLevelOnly:r,sort:this.sorts.createSortInput()}}},refreshListOnChanges:[this.filters.valueChanges,this.sorts.valueChanges]})}ngOnInit(){super.ngOnInit(),this.activeCollectionId$=this.route.paramMap.pipe((0,h.U)(e=>e.get("contents")),(0,M.x)());const n=this.route.queryParamMap.pipe((0,h.U)(e=>e.get("expanded")),(0,M.x)(),(0,h.U)(e=>e?e.split(","):[]));n.pipe((0,fe.R)(this.destroy$)).subscribe(e=>{this.expandedIds=e}),this.subCollections$=(0,P.a)(n,this.refresh$).pipe((0,C.w)(([e])=>e.length?this.dataService.collection.getCollections({take:999,filter:{parentId:{in:e}}}).mapStream(i=>i.collections.items):(0,k.of)([]))),this.activeCollectionTitle$=(0,P.a)(this.activeCollectionId$,this.items$,this.subCollections$).pipe((0,h.U)(([e,i,a])=>{if(e){const r=[...i,...a].find(c=>c.id===e);return r?r.name:""}return""})),this.activeCollectionIndex$=(0,P.a)(this.activeCollectionId$,this.items$,this.subCollections$).pipe((0,h.U)(([e,i,a])=>{if(e){const r=[];for(const c of i){r.push(c);const l=a.filter(m=>m.parentId&&m.parentId===c.id);r.push(...l)}return r.findIndex(c=>c.id===e)}return-1}))}onRearrange(n){this.dataService.collection.moveCollection([n]).subscribe({next:()=>{this.notificationService.success((0,p.J)("common.notify-saved-changes")),this.refresh()},error:e=>{this.notificationService.error((0,p.J)("common.notify-save-changes-error"))}})}closeContents(){const n={...this.route.snapshot.params};delete n.contents,this.router.navigate(["./",n],{relativeTo:this.route,queryParamsHandling:"preserve"})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}toggleExpanded(n){let e=this.expandedIds;e.includes(n.id)?e=e.filter(i=>i!==n.id):e.push(n.id),this.router.navigate(["./"],{queryParams:{expanded:e.filter(i=>!!i).join(",")},queryParamsHandling:"merge",relativeTo:this.route})}}var Ct,ot;(St=Oe).\u0275fac=function(n){return new(n||St)(t.Y36(s.DoR),t.Y36(s.gqp))},St.\u0275cmp=t.Xpm({type:St,selectors:[["vdr-collection-list"]],features:[t.qOj],decls:14,vars:14,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"rightPanelOpen","closeClicked"],["vdrSplitViewLeft",""],["vdrSplitViewRight","",3,"splitViewTitle"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],["id","collection-list",1,"mt-2",3,"items","subCollections","itemsPerPage","totalItems","currentPage","filters","activeIndex","pageChange","itemsPerPageChange","changeOrder"],["locationId","collection-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","position",3,"heading","hiddenByDefault","sort"],["id","name",3,"heading","optional","sort"],["id","breadcrumb",3,"heading"],["id","slug",3,"heading","sort"],["id","visibility",3,"heading"],["id","view-contents",3,"heading","optional"],[3,"customField","sorts",4,"ngFor","ngForOf"],[3,"ngClass"],["class","child-arrow","shape","child-arrow",3,"transparent",4,"ngIf"],["class","icon-button folder-button",3,"click",4,"ngIf"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["shape","child-arrow",1,"child-arrow"],[1,"icon-button","folder-button",3,"click"],["shape","folder",4,"ngIf"],["shape","folder-open",4,"ngIf"],["shape","folder"],["shape","folder-open"],[1,"breadcrumb"],[4,"ngIf"],["class","separator",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"separator"],["colorType","warning",4,"ngIf"],["colorType","success",4,"ngIf"],["colorType","warning"],["colorType","success"],["queryParamsHandling","preserve",1,"button-small","bg-weight-150",3,"routerLink"],["shape","file-group"],[3,"customField","sorts"],[3,"collectionId"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()(),t.TgZ(6,"vdr-ab-right"),t._UZ(7,"vdr-action-bar-items",1),t.YNc(8,er,4,5,"a",2),t.qZA()()(),t.TgZ(9,"vdr-split-view",3),t.NdJ("closeClicked",function(){return e.closeContents()}),t.ALo(10,"async"),t.YNc(11,Zr,38,64,"ng-template",4),t.YNc(12,Pr,2,3,"ng-template",5),t.ALo(13,"async"),t.qZA()),2&n&&(t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(4,5,e.availableLanguages$))("currentLanguageCode",t.lcZ(5,7,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(13,yr)),t.xp6(1),t.Q6J("rightPanelOpen",t.lcZ(10,9,e.activeCollectionId$)),t.xp6(3),t.Q6J("splitViewTitle",t.lcZ(13,11,e.activeCollectionTitle$)))},dependencies:[f.qvL,_.mk,_.sg,_.O5,A.rH,x.Kk,x.BN,x.mz,j.Y,E.S,N.H,K.W,Ie.c,R.U,et.J,Le.j,Xa._,xn.L,xn.a,w.z,Vt,Ut,_.Ov,b.X$,X.H,qt],styles:["[_nghost-%COMP%]{--indent-spacing: 18px}.indent-1[_ngcontent-%COMP%]{padding-inline-start:var(--indent-spacing)}.indent-2[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 2)}.indent-3[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 3)}.indent-4[_ngcontent-%COMP%], .indent-5[_ngcontent-%COMP%], .indent-6[_ngcontent-%COMP%], .indent-7[_ngcontent-%COMP%], .indent-8[_ngcontent-%COMP%], .indent-9[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 4)}.child-arrow[_ngcontent-%COMP%]{margin:1px 6px}.child-arrow.transparent[_ngcontent-%COMP%]{opacity:0}.breadcrumb[_ngcontent-%COMP%]{display:flex}.separator[_ngcontent-%COMP%]{color:var(--color-weight-500);margin:0 3px}"],changeDetection:0});class Yt{constructor(){this.allMoveListItems=[],this._rearrange$=new dt.x,this._delete$=new dt.x,this.rearrange$=this._rearrange$.asObservable(),this.delete$=this._delete$.asObservable()}ngOnDestroy(){this._rearrange$.complete(),this._delete$.complete()}setCollectionTree(n){this.collectionTree=n}resetMoveList(){this.allMoveListItems=[]}getMoveListItems(n){return 0===this.allMoveListItems.length&&(this.allMoveListItems=this.calculateAllMoveListItems()),this.allMoveListItems.filter(e=>e.id!==n.id&&!e.ancestorIdPath.has(n.id)&&e.id!==n.parent?.id)}onDrop(n){const e=n.item.data,a=n.container.data.id;if(null==a)throw new Error("Could not determine the ID of the root Collection");this._rearrange$.next({collectionId:e.id,parentId:a,index:n.currentIndex})}onMove(n){this._rearrange$.next(n)}onDelete(n){this._delete$.next(n)}calculateAllMoveListItems(){const n=(e,i,a,r)=>{const c=i.concat(e.name);return r.push({path:c.slice(1).join(" / ")||"root",id:e.id,ancestorIdPath:a}),e.children.forEach(l=>n(l,c,new Set([...a,e.id]),r)),r};return n(this.collectionTree,[],new Set,[])}}function Fr(o,n){1&o&&t._UZ(0,"clr-icon",32)}function Ir(o,n){1&o&&t._UZ(0,"clr-icon",33)}function Lr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw();return t.KtG(r.toggleExpanded(a))}),t.YNc(1,Fr,1,0,"clr-icon",30),t.YNc(2,Ir,1,0,"clr-icon",31),t.qZA()}if(2&o){const e=t.oxw().$implicit,i=t.oxw();t.Q6J("disabled",i.expandAll),t.xp6(1),t.Q6J("ngIf",!e.expanded&&!i.expandAll),t.xp6(1),t.Q6J("ngIf",e.expanded||i.expandAll)}}function Or(o,n){1&o&&t._UZ(0,"div",34)}function kr(o,n){1&o&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.private")))}function Jr(o,n){1&o&&(t.TgZ(0,"div",35),t._UZ(1,"clr-icon",36),t.qZA())}(Ct=Yt).\u0275fac=function(n){return new(n||Ct)},Ct.\u0275prov=t.Yz7({token:Ct,factory:Ct.\u0275fac});const Dr=function(o){return{parentId:o}},wr=function(o){return["./","create",o]};function Vr(o,n){if(1&o&&(t.TgZ(0,"a",37),t._UZ(1,"clr-icon",38),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o){const e=t.oxw().$implicit;t.Q6J("routerLink",t.VKq(6,wr,t.VKq(4,Dr,e.id))),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," ")}}function Mr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",21),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw().$implicit,l=t.oxw();return t.KtG(l.move(c,r.id))}),t.ALo(1,"async"),t.TgZ(2,"div",39)(3,"div",40),t._UZ(4,"clr-icon",41),t.qZA(),t.TgZ(5,"div",42),t._uU(6),t.qZA()()()}if(2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("disabled",!t.lcZ(1,2,i.hasUpdatePermission$)),t.xp6(6),t.hij(" ",e.path," ")}}function Ur(o,n){if(1&o&&t._UZ(0,"vdr-collection-tree-node",43),2&o){const e=t.oxw().$implicit,i=t.oxw();t.Q6J("expandAll",i.expandAll)("collectionTree",e)("activeCollectionId",i.activeCollectionId)("selectionManager",i.selectionManager)}}const Nr=function(o){return{contents:o}},Qr=function(o){return["./",o]},qr=function(o){return["/catalog/collections/",o]},$r=function(){return["UpdateCatalog","UpdateCollection"]},Sr=function(){return["CreateCatalog","CreateCollection"]};function Yr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",3)(1,"div",4)(2,"div")(3,"input",5),t.NdJ("click",function(a){const c=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.selectionManager.toggleSelection(c,a))}),t.qZA()(),t.TgZ(4,"div",6),t.YNc(5,Lr,3,3,"button",7),t.YNc(6,Or,1,0,"ng-template",null,8,t.W1O),t._uU(8),t.qZA(),t._UZ(9,"div",9),t.YNc(10,kr,3,3,"vdr-chip",10),t.TgZ(11,"a",11),t._UZ(12,"clr-icon",12),t._uU(13),t.ALo(14,"translate"),t.qZA(),t.TgZ(15,"a",13),t._UZ(16,"clr-icon",14),t._uU(17),t.ALo(18,"translate"),t.qZA(),t.YNc(19,Jr,2,0,"div",15),t.TgZ(20,"vdr-dropdown")(21,"button",16),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.getMoveListItems(r))}),t._UZ(22,"clr-icon",17),t.qZA(),t.TgZ(23,"vdr-dropdown-menu",18),t.YNc(24,Vr,4,8,"a",19),t._UZ(25,"div",20),t.TgZ(26,"button",21),t.NdJ("click",function(){const a=t.CHM(e),r=a.$implicit,c=a.index,l=t.oxw();return t.KtG(l.moveUp(r,c))}),t.ALo(27,"async"),t._UZ(28,"clr-icon",22),t._uU(29),t.ALo(30,"translate"),t.qZA(),t.TgZ(31,"button",21),t.NdJ("click",function(){const a=t.CHM(e),r=a.$implicit,c=a.index,l=t.oxw();return t.KtG(l.moveDown(r,c))}),t.ALo(32,"async"),t._UZ(33,"clr-icon",23),t._uU(34),t.ALo(35,"translate"),t.qZA(),t.TgZ(36,"h4",24),t._uU(37),t.ALo(38,"translate"),t.qZA(),t.YNc(39,Mr,7,4,"button",25),t._UZ(40,"div",20),t.TgZ(41,"button",26),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.delete(r.id))}),t.ALo(42,"async"),t._UZ(43,"clr-icon",27),t._uU(44),t.ALo(45,"translate"),t.qZA()()()(),t.YNc(46,Ur,1,4,"vdr-collection-tree-node",28),t.qZA()}if(2&o){const e=n.$implicit,i=n.index,a=t.MAs(7),r=t.oxw();t.ekj("private",e.isPrivate),t.Q6J("cdkDragData",e),t.xp6(1),t.ekj("active",e.id===r.activeCollectionId),t.Q6J("ngClass","depth-"+r.depth),t.xp6(2),t.Q6J("checked",r.selectionManager.isSelected(e)),t.xp6(2),t.Q6J("ngIf",null==e.children?null:e.children.length)("ngIfElse",a),t.xp6(3),t.hij(" ",e.name," "),t.xp6(2),t.Q6J("ngIf",e.isPrivate),t.xp6(1),t.Q6J("routerLink",t.VKq(46,Qr,t.VKq(44,Nr,e.id))),t.xp6(2),t.hij(" ",t.lcZ(14,26,"catalog.view-contents")," "),t.xp6(2),t.Q6J("routerLink",t.VKq(48,qr,e.id)),t.xp6(2),t.hij(" ",t.lcZ(18,28,"common.edit")," "),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(50,$r)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(51,Sr)),t.xp6(2),t.Q6J("disabled",0===i||!t.lcZ(27,30,r.hasUpdatePermission$)),t.xp6(3),t.hij(" ",t.lcZ(30,32,"catalog.move-up")," "),t.xp6(2),t.Q6J("disabled",i===r.collectionTree.children.length-1||!t.lcZ(32,34,r.hasUpdatePermission$)),t.xp6(3),t.hij(" ",t.lcZ(35,36,"catalog.move-down")," "),t.xp6(3),t.Oqu(t.lcZ(38,38,"catalog.move-to")),t.xp6(2),t.Q6J("ngForOf",r.moveListItems),t.xp6(2),t.Q6J("disabled",!t.lcZ(42,40,r.hasDeletePermission$)),t.xp6(3),t.hij(" ",t.lcZ(45,42,"common.delete")," "),t.xp6(2),t.Q6J("ngIf",e.expanded||r.expandAll)}}class ke{constructor(n,e,i,a,r,c){this.parent=n,this.dataService=e,this.collectionTreeService=i,this.router=a,this.route=r,this.changeDetectorRef=c,this.depth=0,this.expandAll=!1,this.moveListItems=[],n&&(this.depth=n.depth+1)}ngOnInit(){this.parentName=this.collectionTree.name||"<root>";const n=this.dataService.client.userStatus().mapStream(e=>e.userStatus.permissions).pipe((0,xt.d)(1));this.hasUpdatePermission$=n.pipe((0,h.U)(e=>e.includes(s.y3$.UpdateCatalog)||e.includes(s.y3$.UpdateCollection))),this.hasDeletePermission$=n.pipe((0,h.U)(e=>e.includes(s.y3$.DeleteCatalog)||e.includes(s.y3$.DeleteCollection))),this.subscription=this.selectionManager?.selectionChanges$.subscribe(()=>this.changeDetectorRef.markForCheck())}ngOnChanges(n){const e=n.expandAll;e&&!0===e.previousValue&&!1===e.currentValue&&this.collectionTree.children.forEach(i=>i.expanded=!1)}ngOnDestroy(){this.subscription?.unsubscribe()}trackByFn(n,e){return e.id}toggleExpanded(n){n.expanded=!n.expanded;let e=this.route.snapshot.queryParamMap.get("expanded")?.split(",")??[];n.expanded?e.push(n.id):e=e.filter(i=>i!==n.id),this.router.navigate(["./"],{queryParams:{expanded:e.filter(i=>!!i).join(",")},queryParamsHandling:"merge",relativeTo:this.route})}getMoveListItems(n){this.moveListItems=this.collectionTreeService.getMoveListItems(n)}move(n,e){this.collectionTreeService.onMove({index:0,parentId:e,collectionId:n.id})}moveUp(n,e){n.parent&&this.collectionTreeService.onMove({index:e-1,parentId:n.parent.id,collectionId:n.id})}moveDown(n,e){n.parent&&this.collectionTreeService.onMove({index:e+1,parentId:n.parent.id,collectionId:n.id})}drop(n){(0,O.bA)(this.collectionTree.children,n.previousIndex,n.currentIndex),this.collectionTreeService.onDrop(n)}delete(n){this.collectionTreeService.onDelete(n)}}function Tn(o,n,e=[]){const i=[],a={},r=function Gr(o){const n=new Map;function e(i){n.set(i.id,i),i.children.forEach(e)}return o&&e(o),n}(n);for(const l of o)a[l.id]={...l,children:[]};for(const l of o.map(m=>m.id))if(a.hasOwnProperty(l)){const m=a[l];m.expanded=r.get(l)?.expanded??e.includes(l);const g=m.parent;if(!g)continue;a[g.id]?a[g.id]?a[g.id].children.push(m):a[g.id]={children:[m]}:i.push(m)}return{id:i.length?i[0].parent.id:void 0,children:i}}var Gt,Et;function Er(o,n){if(1&o&&t._UZ(0,"vdr-collection-tree-node",1),2&o){const e=t.oxw();t.Q6J("expandAll",e.expandAll)("collectionTree",e.collectionTree)("selectionManager",e.selectionManager)("activeCollectionId",e.activeCollectionId)}}(ot=ke).\u0275fac=function(n){return new(n||ot)(t.Y36(ot,12),t.Y36(s.DoR),t.Y36(Yt),t.Y36(A.F0),t.Y36(A.gz),t.Y36(t.sBO))},ot.\u0275cmp=t.Xpm({type:ot,selectors:[["vdr-collection-tree-node"]],inputs:{collectionTree:"collectionTree",activeCollectionId:"activeCollectionId",expandAll:"expandAll",selectionManager:"selectionManager"},features:[t.TTD],decls:4,vars:6,consts:[["cdkDropList","",1,"tree-node",3,"cdkDropListData","cdkDropListDisabled","cdkDropListDropped"],["dropList",""],["class","collection","cdkDrag","",3,"private","cdkDragData",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"collection",3,"cdkDragData"],[1,"collection-detail",3,"ngClass"],["type","checkbox","clrCheckbox","",3,"checked","click"],[1,"name"],["class","icon-button folder-button",3,"disabled","click",4,"ngIf","ngIfElse"],["folderSpacer",""],[1,"flex-spacer"],[4,"ngIf"],["queryParamsHandling","preserve",1,"btn","btn-link","btn-sm",3,"routerLink"],["shape","view-list"],[1,"btn","btn-link","btn-sm",3,"routerLink"],["shape","edit"],["class","drag-handle","cdkDragHandle","",4,"vdrIfPermissions"],["vdrDropdownTrigger","",1,"icon-button",3,"click"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["class","dropdown-item",3,"routerLink",4,"vdrIfPermissions"],[1,"dropdown-divider"],["type","button","vdrDropdownItem","",3,"disabled","click"],["shape","caret up"],["shape","caret down"],[1,"dropdown-header"],["type","button","vdrDropdownItem","",3,"disabled","click",4,"ngFor","ngForOf"],["vdrDropdownItem","",1,"button",3,"disabled","click"],["shape","trash",1,"is-danger"],[3,"expandAll","collectionTree","activeCollectionId","selectionManager",4,"ngIf"],[1,"icon-button","folder-button",3,"disabled","click"],["shape","folder",4,"ngIf"],["shape","folder-open",4,"ngIf"],["shape","folder"],["shape","folder-open"],[1,"folder-button-spacer"],["cdkDragHandle","",1,"drag-handle"],["shape","drag-handle","size","24"],[1,"dropdown-item",3,"routerLink"],["shape","plus"],[1,"move-to-item"],[1,"move-icon"],["shape","child-arrow"],[1,"path"],[3,"expandAll","collectionTree","activeCollectionId","selectionManager"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0,1),t.NdJ("cdkDropListDropped",function(a){return e.drop(a)}),t.ALo(2,"async"),t.YNc(3,Yr,47,52,"div",2),t.qZA()),2&n&&(t.Q6J("cdkDropListData",e.collectionTree)("cdkDropListDisabled",!t.lcZ(2,4,e.hasUpdatePermission$)),t.xp6(3),t.Q6J("ngForOf",e.collectionTree.children)("ngForTrackBy",e.trackByFn))},dependencies:[f.q0d,f.qvL,f.KKC,_.mk,_.sg,_.O5,A.rH,O.Wj,O.Zt,O.Bh,j.Y,L.y,gt.J,_t.N,ft.U,ht.H,N.H,ot,_.Ov,b.X$],styles:["[_nghost-%COMP%]{display:block}.collection[_ngcontent-%COMP%]{background-color:var(--clr-table-bgcolor);border-radius:var(--clr-global-borderradius);font-size:.65rem;transition:transform .25s cubic-bezier(0,0,.2,1);margin-bottom:2px;border-inline-start:2px solid transparent;transition:border-left-color .2s}.collection.private[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.collection[_ngcontent-%COMP%] .collection-detail[_ngcontent-%COMP%]{padding:6px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-component-border-100)}.collection[_ngcontent-%COMP%] .collection-detail.active[_ngcontent-%COMP%]{background-color:var(--clr-global-selection-color)}.collection[_ngcontent-%COMP%] .collection-detail.depth-1[_ngcontent-%COMP%]{padding-inline-start:36px}.collection[_ngcontent-%COMP%] .collection-detail.depth-2[_ngcontent-%COMP%]{padding-inline-start:60px}.collection[_ngcontent-%COMP%] .collection-detail.depth-3[_ngcontent-%COMP%]{padding-inline-start:84px}.collection[_ngcontent-%COMP%] .collection-detail.depth-4[_ngcontent-%COMP%]{padding-inline-start:108px}.collection[_ngcontent-%COMP%] .collection-detail[_ngcontent-%COMP%] .folder-button-spacer[_ngcontent-%COMP%]{display:inline-block;width:28px}.tree-node[_ngcontent-%COMP%]{display:block;background-color:var(--clr-table-bgcolor);border-radius:var(--clr-global-borderradius);overflow:hidden}.tree-node.cdk-drop-list-dragging[_ngcontent-%COMP%] > .collection[_ngcontent-%COMP%]{border-left-color:var(--color-primary-300)}.drag-placeholder[_ngcontent-%COMP%]{min-height:120px;background-color:var(--color-component-bg-300);transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview[_ngcontent-%COMP%]{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:0}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-list.cdk-drop-list-dragging[_ngcontent-%COMP%] .tree-node[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.move-to-item[_ngcontent-%COMP%]{display:flex;white-space:normal;align-items:baseline}.move-to-item[_ngcontent-%COMP%] .move-icon[_ngcontent-%COMP%]{flex:none;margin-inline-end:3px}.move-to-item[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{line-height:18px}"],changeDetection:0});class Ee{constructor(n){this.collectionTreeService=n,this.expandAll=!1,this.expandedIds=[],this.rearrange=new t.vpe,this.deleteCollection=new t.vpe}ngOnChanges(n){"collections"in n&&this.collections&&(this.collectionTree=Tn(this.collections,this.collectionTree,this.expandedIds),this.collectionTreeService.setCollectionTree(this.collectionTree),this.collectionTreeService.resetMoveList())}ngOnInit(){this.collectionTreeService.rearrange$.subscribe(n=>this.rearrange.emit(n)),this.collectionTreeService.delete$.subscribe(n=>this.deleteCollection.emit(n))}}function Br(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.confirm-deletion-of-unused-variants-title"),"\n")}function jr(o,n){if(1&o&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.xp6(1),t.AsE("",e.name," (",e.sku,")")}}function Rr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.confirm())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,2,"common.cancel")),t.xp6(3),t.hij(" ",t.lcZ(5,4,"common.confirm")," "))}(Gt=Ee).\u0275fac=function(n){return new(n||Gt)(t.Y36(Yt))},Gt.\u0275cmp=t.Xpm({type:Gt,selectors:[["vdr-collection-tree"]],inputs:{collections:"collections",activeCollectionId:"activeCollectionId",expandAll:"expandAll",expandedIds:"expandedIds",selectionManager:"selectionManager"},outputs:{rearrange:"rearrange",deleteCollection:"deleteCollection"},features:[t._Bn([Yt]),t.TTD],decls:1,vars:1,consts:[["cdkDropListGroup","",3,"expandAll","collectionTree","selectionManager","activeCollectionId",4,"ngIf"],["cdkDropListGroup","",3,"expandAll","collectionTree","selectionManager","activeCollectionId"]],template:function(n,e){1&n&&t.YNc(0,Er,1,4,"vdr-collection-tree-node",0),2&n&&t.Q6J("ngIf",e.collectionTree)},dependencies:[_.O5,O.Fd,ke],changeDetection:0});class Be{constructor(){this.variants=[]}confirm(){this.resolveWith(!0)}cancel(){this.resolveWith()}}(Et=Be).\u0275fac=function(n){return new(n||Et)},Et.\u0275cmp=t.Xpm({type:Et,selectors:[["vdr-confirm-variant-deletion-dialog"]],decls:6,vars:4,consts:[["vdrDialogTitle",""],[4,"ngFor","ngForOf"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"click"]],template:function(n,e){1&n&&(t.YNc(0,Br,2,3,"ng-template",0),t._uU(1),t.ALo(2,"translate"),t.TgZ(3,"ul"),t.YNc(4,jr,2,2,"li",1),t.qZA(),t.YNc(5,Rr,6,6,"ng-template",2)),2&n&&(t.xp6(1),t.hij("\n",t.lcZ(2,2,"catalog.confirm-deletion-of-unused-variants-body"),"\n"),t.xp6(3),t.Q6J("ngForOf",e.variants))},dependencies:[_.sg,tt.n,H.q,b.X$],changeDetection:0});var Bt,Hr=u(365),Kr=u(4687);function zr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",20),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.create())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.create")," ")}}function Wr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",20),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw(2);t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}function Xr(o,n){if(1&o&&t.YNc(0,Wr,3,4,"button",21),2&o){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermission)}}function tc(o,n){1&o&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function ec(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.Oqu(t.lcZ(1,1,"catalog.private"))}function nc(o,n){if(1&o&&t._UZ(0,"vdr-page-entity-info",22),2&o){const e=n.ngIf;t.Q6J("entity",e)}}function oc(o,n){if(1&o&&(t.TgZ(0,"vdr-card",23),t.ALo(1,"translate"),t._UZ(2,"vdr-tabbed-custom-fields",24),t.ALo(3,"hasPermission"),t.qZA()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get("facet.customFields"))("readonly",!t.lcZ(3,6,e.updatePermission))}}function ic(o,n){if(1&o&&(t._UZ(0,"input",29),t.ALo(1,"translate")),2&o){const e=t.oxw(2);t.Q6J("formControl",e.filterControl)("placeholder",t.lcZ(1,2,"catalog.filter-by-name"))}}function ac(o,n){1&o&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.BQk()),2&o&&(t.xp6(2),t.Oqu(t.lcZ(3,1,"common.custom-fields")))}const rc=function(o){return["values",o,"customFields"]};function cc(o,n){if(1&o&&(t.TgZ(0,"td",45),t._UZ(1,"vdr-tabbed-custom-fields",46),t.ALo(2,"hasPermission"),t.qZA()),2&o){const e=t.oxw().$implicit,i=t.oxw(3);t.xp6(1),t.Q6J("customFields",i.customValueFields)("compact",!0)("customFieldsFormGroup",i.detailForm.get(t.VKq(6,rc,e.id)))("readonly",!t.lcZ(2,4,i.updatePermission))}}const sc=function(o){return["values",o]};function lc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"tr",35)(1,"td",36),t._UZ(2,"vdr-entity-info",22),t.qZA(),t.TgZ(3,"td",36)(4,"input",37),t.NdJ("input",function(a){const c=t.CHM(e).$implicit,l=t.oxw(3);return t.KtG(l.updateValueCode(c.code,a.target.value,c.id))}),t.ALo(5,"hasPermission"),t.qZA()(),t.TgZ(6,"td",36),t._UZ(7,"input",38),t.qZA(),t.YNc(8,cc,3,8,"td",39),t.TgZ(9,"td",36)(10,"vdr-dropdown")(11,"button",40),t._UZ(12,"clr-icon",41),t.qZA(),t.TgZ(13,"vdr-dropdown-menu",42)(14,"button",43),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw(3);return t.KtG(c.deleteFacetValue(r.id))}),t.ALo(15,"hasPermission"),t._UZ(16,"clr-icon",44),t._uU(17),t.ALo(18,"translate"),t.qZA()()()()()}if(2&o){const e=n.$implicit,i=t.oxw(3);t.Q6J("formGroup",i.detailForm.get(t.VKq(12,sc,e.id))),t.xp6(2),t.Q6J("entity",e),t.xp6(2),t.Q6J("readonly",!t.lcZ(5,6,i.updatePermission)),t.xp6(4),t.Q6J("ngIf",i.customValueFields.length),t.xp6(6),t.Q6J("disabled",!t.lcZ(15,8,i.updatePermission)),t.xp6(3),t.hij(" ",t.lcZ(18,10,"common.delete")," ")}}const dc=function(o,n,e){return{currentPage:o,itemsPerPage:n,totalItems:e}};function pc(o,n){if(1&o){const e=t.EpF();t.ynx(0),t.TgZ(1,"table",30)(2,"thead")(3,"tr"),t._UZ(4,"th"),t.TgZ(5,"th"),t._uU(6),t.ALo(7,"translate"),t.qZA(),t.TgZ(8,"th"),t._uU(9),t.ALo(10,"translate"),t.qZA(),t.YNc(11,ac,4,3,"ng-container",27),t._UZ(12,"th"),t.qZA()(),t.TgZ(13,"tbody"),t.YNc(14,lc,19,14,"tr",31),t.ALo(15,"paginate"),t.qZA()(),t.TgZ(16,"div",32)(17,"vdr-items-per-page-controls",33),t.NdJ("itemsPerPageChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.itemsPerPage=a)}),t.qZA(),t.TgZ(18,"vdr-pagination-controls",34),t.NdJ("pageChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.currentPage=a)}),t.qZA()(),t.BQk()}if(2&o){const e=n.ngIf,i=t.oxw(2);t.xp6(6),t.Oqu(t.lcZ(7,8,"common.name")),t.xp6(3),t.Oqu(t.lcZ(10,10,"common.code")),t.xp6(2),t.Q6J("ngIf",i.customValueFields.length),t.xp6(3),t.Q6J("ngForOf",t.xi3(15,12,e,t.kEZ(15,dc,i.currentPage,i.itemsPerPage,e.length))),t.xp6(3),t.Q6J("itemsPerPage",i.itemsPerPage),t.xp6(1),t.Q6J("currentPage",i.currentPage)("itemsPerPage",i.itemsPerPage)("totalItems",e.length)}}function uc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",47),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.addFacetValue())}),t._UZ(1,"clr-icon",48),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&o&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facet-value")," "))}const mc=function(){return["CreateCatalog","CreateFacet"]};function gc(o,n){if(1&o&&(t.TgZ(0,"vdr-card",25),t.ALo(1,"translate"),t.YNc(2,ic,2,4,"ng-template",26),t.YNc(3,pc,19,19,"ng-container",27),t.ALo(4,"async"),t.TgZ(5,"div"),t.YNc(6,uc,4,3,"button",28),t.qZA()()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,4,"catalog.facet-values"))("paddingX",!1),t.xp6(3),t.Q6J("ngIf",t.lcZ(4,6,e.filteredValues$)),t.xp6(3),t.Q6J("vdrIfPermissions",t.DdM(8,mc))}}const _c=y.Ps`
|
|
82
|
+
`;class ye extends s.VE7{constructor(n,e,i,a,r,c){super(),this.changeDetector=n,this.dataService=e,this.formBuilder=i,this.notificationService=a,this.modalService=r,this.localStorageService=c,this.customFields=this.getCustomFieldConfig("Collection"),this.detailForm=this.formBuilder.group({name:["",d.kI.required],slug:["",(0,s.Foo)(/^[\p{Letter}0-9._-]+$/)],description:"",visible:!1,inheritFilters:!0,filters:this.formBuilder.array([]),customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),this.assetChanges={},this.filters=[],this.allFilters=[],this.livePreview=!1,this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateCollection],this.filterRemoved$=new dt.x,this.livePreview=this.localStorageService.get("livePreviewCollectionContents")??!1}ngOnInit(){this.init(),this.dataService.collection.getCollectionFilters().single$.subscribe(i=>{this.allFilters=i.collectionFilters});const n=this.detailForm.get("filters"),e=this.detailForm.get("inheritFilters");this.inheritFilters$=e.valueChanges.pipe((0,M.x)()),this.updatedFilters$=(0,pa.T)(n.statusChanges,this.filterRemoved$).pipe((0,mt.b)(200),(0,Ge.h)(()=>n.touched),(0,h.U)(()=>this.mapOperationsToInputs(this.filters,n.value).filter(i=>{for(const a of i.arguments)if(""===a.value)return!1;return!0}))),this.parentId$=this.route.paramMap.pipe((0,h.U)(i=>i.get("parentId")||void 0),(0,C.w)(i=>i?(0,k.of)(i):this.entity$.pipe((0,h.U)(a=>a.parent?.id))))}ngOnDestroy(){this.destroy()}getFilterDefinition(n){return this.allFilters.find(e=>e.code===n.code)}assetsChanged(){return!!Object.values(this.assetChanges).length}updateSlug(n){const e=this.detailForm.get(["slug"]),i=this.entity?(0,s.ZIM)(this.entity,this.languageCode):void 0,a=!i||!i.slug;e&&e.pristine&&a&&e.setValue((0,G.U)(`${n}`,"-"))}addFilter(n){const e=this.detailForm.get("filters"),i=n.args.reduce((a,r)=>({...a,[r.name]:(0,s.sux)(r.value)}),{});e.push(this.formBuilder.control({code:n.code,args:i})),this.filters.push({code:n.code,args:n.args.map(a=>({name:a.name,value:(0,s.sux)(a.value)}))})}removeFilter(n){const e=this.detailForm.get("filters");-1!==n&&(e.removeAt(n),e.markAsDirty(),e.markAsTouched(),this.filters.splice(n,1),this.filterRemoved$.next())}create(){if(!this.detailForm.dirty)return;const n=this.getUpdatedCollection({id:"",createdAt:"",updatedAt:"",languageCode:this.languageCode,name:"",slug:"",isPrivate:!1,breadcrumbs:[],description:"",featuredAsset:null,assets:[],translations:[],inheritFilters:!0,filters:[],parent:{},children:null},this.detailForm,this.languageCode),e=this.route.snapshot.paramMap.get("parentId");e&&(n.parentId=e),this.dataService.collection.createCollection(n).subscribe(i=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"Collection"}),this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",i.createCollection.id],{relativeTo:this.route})},i=>{this.notificationService.error((0,p.J)("common.notify-create-error"),{entity:"Collection"})})}save(){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([n,e])=>{const i=this.getUpdatedCollection(n,this.detailForm,e);return this.dataService.collection.updateCollection(i)})).subscribe(()=>{this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"Collection"}),this.contentsComponent.refresh()},n=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"Collection"})})}canDeactivate(){return super.canDeactivate()&&!this.assetChanges.assets&&!this.assetChanges.featuredAsset}toggleLivePreview(){this.livePreview=!this.livePreview,this.localStorageService.set("livePreviewCollectionContents",this.livePreview)}trackByFn(n,e){return JSON.stringify(e)}setFormValues(n,e){const i=(0,s.ZIM)(n,e);this.detailForm.patchValue({name:i?i.name:"",slug:i?i.slug:"",description:i?i.description:"",visible:!n.isPrivate,inheritFilters:n.inheritFilters});const a=this.detailForm.get("filters");a.length!==n.filters.length&&(a.clear(),this.filters=[],n.filters.forEach(r=>this.addFilter(r))),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customFields"]),n,i)}getUpdatedCollection(n,e,i){return{...(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||"",slug:n.slug||"",description:n.description||""}}),assetIds:this.assetChanges.assets?.map(r=>r.id),featuredAssetId:this.assetChanges.featuredAsset?.id,isPrivate:!e.value.visible,filters:this.mapOperationsToInputs(this.filters,this.detailForm.value.filters)}}mapOperationsToInputs(n,e){return n.map((i,a)=>({code:i.code,arguments:Object.entries(e[a].args).map(([r,c],l)=>({name:r,value:(0,s.qrw)(c)}))}))}}var Qt,$t;(Nt=ye).\u0275fac=function(n){return new(n||Nt)(t.Y36(t.sBO),t.Y36(s.DoR),t.Y36(d.qu),t.Y36(s.gqp),t.Y36(s.Z7U),t.Y36(s.n2A))},Nt.\u0275cmp=t.Xpm({type:Nt,selectors:[["vdr-collection-detail"]],viewQuery:function(n,e){if(1&n&&t.Gf(ma,5),2&n){let i;t.iGM(i=t.CRH())&&(e.contentsComponent=i.first)}},features:[t.qOj],decls:73,vars:89,consts:[[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],[1,"form",3,"formGroup"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],[4,"ngIf"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","slug",3,"label","errors"],["id","slug","type","text","formControlName","slug",3,"readonly"],["for","slug",1,"form-grid-span",3,"label"],["formControlName","description",3,"readonly"],["formGroupName","customFields",3,"title",4,"ngIf"],["locationId","collection-detail",3,"entity$","detailForm"],[3,"title"],[3,"assets","featuredAsset","updatePermissions","change"],["for","inheritFilters",3,"label"],["type","checkbox","clrToggle","","formControlName","inheritFilters","id","inheritFilters",3,"vdrDisabled"],["noInherit",""],["formArrayName","filters"],[4,"ngFor","ngForOf","ngForTrackBy"],[4,"vdrIfPermissions"],[3,"title","paddingX"],[3,"collectionId","parentId","updatedFilters","inheritFilters","previewUpdatedFilters"],["collectionContents",""],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"entity"],["role","navigation"],[1,"collection-breadcrumbs"],[4,"ngFor","ngForOf"],[3,"routerLink",4,"ngIf"],[3,"routerLink"],["formGroupName","customFields",3,"title"],["entityName","Collection",3,"customFields","customFieldsFormGroup","readonly"],[3,"position","operation","operationDefinition","formControlName","readonly","remove"],["vdrDropdownTrigger","",1,"btn","btn-outline"],["shape","plus"],["shape","ellipsis-vertical"],["vdrPosition","bottom-left"],["type","button","vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["type","button","vdrDropdownItem","",3,"click"],[1,"ml-3"],[1,"contents-title"],["type","checkbox","clrCheckbox","",3,"ngModelOptions","disabled","ngModel","ngModelChange"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()(),t.TgZ(7,"vdr-ab-right"),t._UZ(8,"vdr-action-bar-items",1),t.YNc(9,ga,3,4,"button",2),t.ALo(10,"async"),t.YNc(11,fa,1,1,"ng-template",null,3,t.W1O),t.qZA()()(),t.TgZ(13,"form",4)(14,"vdr-page-detail-layout")(15,"vdr-page-detail-sidebar")(16,"vdr-card")(17,"vdr-form-field",5),t.ALo(18,"translate"),t.TgZ(19,"clr-toggle-wrapper"),t._UZ(20,"input",6),t.ALo(21,"hasPermission"),t.TgZ(22,"label",7),t.YNc(23,ha,3,3,"ng-container",8),t.YNc(24,va,2,3,"ng-template",null,9,t.W1O),t.qZA()()()(),t.YNc(26,Ca,2,1,"vdr-card",10),t.ALo(27,"async"),t.qZA(),t.YNc(28,ya,4,1,"vdr-page-block",10),t.ALo(29,"async"),t.TgZ(30,"vdr-page-block")(31,"vdr-card")(32,"div",11)(33,"vdr-form-field",12),t.ALo(34,"translate"),t.TgZ(35,"input",13),t.NdJ("input",function(a){return e.updateSlug(a.target.value)}),t.ALo(36,"hasPermission"),t.qZA()(),t.TgZ(37,"vdr-form-field",14),t.ALo(38,"translate"),t.ALo(39,"translate"),t._UZ(40,"input",15),t.ALo(41,"hasPermission"),t.qZA(),t.TgZ(42,"vdr-form-field",16),t.ALo(43,"translate"),t._UZ(44,"vdr-rich-text-editor",17),t.ALo(45,"hasPermission"),t.qZA()()(),t.YNc(46,Fa,4,8,"vdr-card",18),t._UZ(47,"vdr-custom-detail-component-host",19),t.TgZ(48,"vdr-card",20),t.ALo(49,"translate"),t.TgZ(50,"vdr-assets",21),t.NdJ("change",function(a){return e.assetChanges=a}),t.qZA()(),t.TgZ(51,"vdr-card",20),t.ALo(52,"translate"),t.TgZ(53,"vdr-form-field",22),t.ALo(54,"translate"),t.TgZ(55,"clr-toggle-wrapper"),t._UZ(56,"input",23),t.ALo(57,"hasPermission"),t.TgZ(58,"label",7),t.YNc(59,Ia,3,3,"ng-container",8),t.YNc(60,La,2,3,"ng-template",null,24,t.W1O),t.qZA()()(),t.TgZ(62,"div",25),t.YNc(63,Oa,3,7,"ng-container",26),t.qZA(),t.YNc(64,Ja,10,4,"div",27),t.qZA(),t.TgZ(65,"vdr-card",28),t.ALo(66,"translate"),t.TgZ(67,"vdr-collection-contents",29,30),t.ALo(69,"async"),t.ALo(70,"async"),t.ALo(71,"async"),t.YNc(72,Va,10,18,"ng-template"),t.qZA()()()()()),2&n){const i=t.MAs(12),a=t.MAs(25),r=t.MAs(61);t.xp6(3),t.Q6J("disabled",t.lcZ(4,41,e.isNew$))("availableLanguageCodes",t.lcZ(5,43,e.availableLanguages$))("currentLanguageCode",t.lcZ(6,45,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(10,47,e.isNew$))("ngIfElse",i),t.xp6(4),t.Q6J("formGroup",e.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(18,49,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(21,51,e.updatePermission)),t.xp6(3),t.Q6J("ngIf",e.detailForm.value.visible)("ngIfElse",a),t.xp6(3),t.Q6J("ngIf",t.lcZ(27,53,e.entity$)),t.xp6(2),t.Q6J("ngIf",t.lcZ(29,55,e.entity$)),t.xp6(5),t.Q6J("label",t.lcZ(34,57,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(36,59,e.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(38,61,"catalog.slug"))("errors",t.VKq(87,Ma,t.lcZ(39,63,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(41,65,e.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(43,67,"common.description")),t.xp6(2),t.Q6J("readonly",!t.lcZ(45,69,e.updatePermission)),t.xp6(2),t.Q6J("ngIf",e.customFields.length),t.xp6(1),t.Q6J("entity$",e.entity$)("detailForm",e.detailForm),t.xp6(1),t.Q6J("title",t.lcZ(49,71,"catalog.assets")),t.xp6(2),t.Q6J("assets",null==e.entity?null:e.entity.assets)("featuredAsset",null==e.entity?null:e.entity.featuredAsset)("updatePermissions",e.updatePermission),t.xp6(1),t.Q6J("title",t.lcZ(52,73,"catalog.filters")),t.xp6(2),t.Q6J("label",t.lcZ(54,75,"catalog.filter-inheritance")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(57,77,e.updatePermission)),t.xp6(3),t.Q6J("ngIf",e.detailForm.value.inheritFilters)("ngIfElse",r),t.xp6(4),t.Q6J("ngForOf",e.filters)("ngForTrackBy",e.trackByFn),t.xp6(1),t.Q6J("vdrIfPermissions",e.updatePermission),t.xp6(1),t.Q6J("title",t.lcZ(66,79,"common.contents"))("paddingX",!1),t.xp6(2),t.Q6J("collectionId",e.id)("parentId",t.lcZ(69,81,e.parentId$))("updatedFilters",t.lcZ(70,83,e.updatedFilters$))("inheritFilters",t.lcZ(71,85,e.inheritFilters$))("previewUpdatedFilters",e.livePreview)}},dependencies:[f.q0d,f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.On,d.sg,d.u,d.x0,d.CE,A.rH,x.Kk,x.BN,x.mz,ua.q,$.h,L.y,E.S,_n.Y,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Te.x,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,vt,Vt,_.Ov,b.X$,B.j],styles:['@charset "UTF-8";.visible-toggle[_ngcontent-%COMP%]{margin-top:-3px!important}clr-checkbox-wrapper[_ngcontent-%COMP%]{transition:opacity .3s}clr-checkbox-wrapper.disabled[_ngcontent-%COMP%]{opacity:.5}.collection-breadcrumbs[_ngcontent-%COMP%]{list-style-type:none;background-color:var(--color-component-bg-200);padding:2px 6px;margin-bottom:6px;border-radius:var(--clr-global-borderradius)}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{font-size:.65rem;display:inline-block;margin-inline-end:10px}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child{font-weight:600}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:last-child):after{content:"\\203a";top:0;color:var(--color-grey-400);margin-inline-start:10px}'],changeDetection:0});class qt{transform(n){return n?.breadcrumbs.slice(1,-1)}}function Na(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.move-collections"),"\n")}function Qa(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function qa(o,n){if(1&o&&t._UZ(0,"clr-icon",12),2&o){const e=t.oxw().depth;t.ekj("transparent",0===e)}}function $a(o,n){1&o&&t._UZ(0,"clr-icon",16)}function Sa(o,n){1&o&&t._UZ(0,"clr-icon",17)}function Ya(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",13),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw();return t.KtG(r.toggleExpanded(a))}),t.YNc(1,$a,1,0,"clr-icon",14),t.YNc(2,Sa,1,0,"clr-icon",15),t.qZA()}if(2&o){const e=t.oxw().item,i=t.oxw();t.xp6(1),t.Q6J("ngIf",!i.expandedIds.includes(e.id)),t.xp6(1),t.Q6J("ngIf",i.expandedIds.includes(e.id))}}function Ga(o,n){1&o&&(t.TgZ(0,"button",18),t._UZ(1,"clr-icon",19),t.qZA())}(Qt=qt).\u0275fac=function(n){return new(n||Qt)},Qt.\u0275pipe=t.Yjl({name:"collectionBreadcrumb",type:Qt,pure:!0});const Ea=function(o){return{name:o}};function Ba(o,n){if(1&o){const e=t.EpF();t._UZ(0,"div",7),t.YNc(1,qa,1,2,"clr-icon",8),t.YNc(2,Ya,3,2,"button",9),t.YNc(3,Ga,2,0,"button",10),t.TgZ(4,"button",11),t.NdJ("click",function(){const r=t.CHM(e).item,c=t.oxw();return t.KtG(c.resolveWith(r))}),t.TgZ(5,"span"),t._uU(6),t.ALo(7,"translate"),t.qZA()()}if(2&o){const e=n.item,i=n.depth;t.Q6J("ngClass","indent-"+i),t.xp6(1),t.Q6J("ngIf",!(null!=e.children&&e.children.length)&&"__"!==e.parentId),t.xp6(1),t.Q6J("ngIf",null==e.children?null:e.children.length),t.xp6(1),t.Q6J("ngIf","__"===e.parentId),t.xp6(3),t.Oqu(t.xi3(7,5,"catalog.move-collection-to",t.VKq(8,Ea,e.name)))}}function ja(o,n){if(1&o&&(t.TgZ(0,"div")(1,"span",24),t._uU(2,"/"),t.qZA(),t._uU(3),t.qZA()),2&o){const e=n.$implicit;t.xp6(3),t.hij("",e.name," ")}}function Ra(o,n){if(1&o&&(t.ynx(0),t.YNc(1,ja,4,1,"div",23),t.BQk()),2&o){const e=t.oxw().ngIf;t.xp6(1),t.Q6J("ngForOf",e)}}function Ha(o,n){1&o&&(t.TgZ(0,"span",24),t._uU(1,"/"),t.qZA())}function Ka(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Ra,2,1,"ng-container",21),t.YNc(2,Ha,2,0,"span",22),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length),t.xp6(1),t.Q6J("ngIf",!e.length)}}function za(o,n){if(1&o&&(t.TgZ(0,"div",20),t.YNc(1,Ka,3,2,"ng-container",21),t.ALo(2,"collectionBreadcrumb"),t.qZA()),2&o){const e=n.item;t.xp6(1),t.Q6J("ngIf",t.lcZ(2,1,e))}}function Wa(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.slug," ")}}class Fe{constructor(n,e){this.dataService=n,this.i18nService=e,this.searchTermControl=new d.NI(""),this.currentPage$=new V.X(1),this.itemsPerPage$=new V.X(10),this.expandedIds$=new dt.x,this.expandedIds=[]}ngOnInit(){const n=this.dataService.collection.getCollections(),e=this.searchTermControl.valueChanges.pipe((0,mt.b)(250),(0,M.x)(),(0,S.O)("")),i=this.currentPage$.pipe((0,M.x)()),a=this.itemsPerPage$.pipe((0,M.x)());(0,P.a)(e,i,a).subscribe(([c,l,m])=>{const g=""===c;n.ref.refetch({options:{skip:(l-1)*m,take:m,filter:{name:{contains:c}},topLevelOnly:g}})});const r=this.dataService.collection.getCollections({take:1,topLevelOnly:!0}).mapSingle(c=>c.collections.items[0].parentId);this.items$=(0,P.a)(n.mapStream(({collections:c})=>c),r).pipe((0,h.U)(([c,l])=>[...l?[{id:l,name:this.i18nService.translate("catalog.root-collection"),slug:"",parentId:"__",position:0,featuredAsset:null,children:[],breadcrumbs:[],isPrivate:!1,createdAt:"",updatedAt:""}]:[],...c.items])),this.totalItems$=n.mapStream(c=>c.collections.totalItems),this.subCollections$=this.expandedIds$.pipe((0,q.b)(c=>this.expandedIds=c),(0,C.w)(c=>c.length?this.dataService.collection.getCollections({take:999,filter:{parentId:{in:c}}}).mapStream(l=>l.collections.items):(0,k.of)([])))}toggleExpanded(n){let e=this.expandedIds;e.includes(n.id)?e=e.filter(i=>i!==n.id):e.push(n.id),this.expandedIds$.next(e)}}($t=Fe).\u0275fac=function(n){return new(n||$t)(t.Y36(s.DoR),t.Y36(s.Dp7))},$t.\u0275cmp=t.Xpm({type:$t,selectors:[["vdr-move-collections-dialog"]],decls:21,vars:33,consts:[["vdrDialogTitle",""],["id","move-collection-list",1,"mt-2",3,"items","subCollections","itemsPerPage","totalItems","currentPage","pageChange","itemsPerPageChange"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","breadcrumb",3,"heading"],["id","slug",3,"heading"],[3,"ngClass"],["class","child-arrow","shape","child-arrow",3,"transparent",4,"ngIf"],["class","icon-button folder-button",3,"click",4,"ngIf"],["class","icon-button folder-button","disabled","",4,"ngIf"],[1,"button-ghost",3,"click"],["shape","child-arrow",1,"child-arrow"],[1,"icon-button","folder-button",3,"click"],["shape","folder",4,"ngIf"],["shape","folder-open",4,"ngIf"],["shape","folder"],["shape","folder-open"],["disabled","",1,"icon-button","folder-button"],["shape","folder",1,"is-solid"],[1,"breadcrumb"],[4,"ngIf"],["class","separator",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"separator"]],template:function(n,e){1&n&&(t.YNc(0,Na,2,3,"ng-template",0),t.TgZ(1,"vdr-collection-data-table",1),t.NdJ("pageChange",function(a){return e.currentPage$.next(a)})("itemsPerPageChange",function(a){return e.itemsPerPage$.next(a)}),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t._UZ(7,"vdr-dt2-search",2),t.ALo(8,"translate"),t.TgZ(9,"vdr-dt2-column",3),t.ALo(10,"translate"),t.YNc(11,Qa,1,1,"ng-template"),t.qZA(),t.TgZ(12,"vdr-dt2-column",4),t.ALo(13,"translate"),t.YNc(14,Ba,8,10,"ng-template"),t.qZA(),t.TgZ(15,"vdr-dt2-column",5),t.ALo(16,"translate"),t.YNc(17,za,3,3,"ng-template"),t.qZA(),t.TgZ(18,"vdr-dt2-column",6),t.ALo(19,"translate"),t.YNc(20,Wa,1,1,"ng-template"),t.qZA()()),2&n&&(t.xp6(1),t.Q6J("items",t.lcZ(2,13,e.items$))("subCollections",t.lcZ(3,15,e.subCollections$))("itemsPerPage",t.lcZ(4,17,e.itemsPerPage$))("totalItems",t.lcZ(5,19,e.totalItems$))("currentPage",t.lcZ(6,21,e.currentPage$)),t.xp6(6),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(8,23,"common.search-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(10,25,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(13,27,"common.name"))("optional",!1),t.xp6(3),t.Q6J("heading",t.lcZ(16,29,"common.breadcrumb")),t.xp6(3),t.Q6J("heading",t.lcZ(19,31,"common.slug")))},dependencies:[f.qvL,_.mk,_.sg,_.O5,H.q,R.U,et.J,Ut,_.Ov,b.X$,qt],styles:["[_nghost-%COMP%]{--indent-spacing: 18px}.indent-1[_ngcontent-%COMP%]{padding-inline-start:var(--indent-spacing)}.indent-2[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 2)}.indent-3[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 3)}.indent-4[_ngcontent-%COMP%], .indent-5[_ngcontent-%COMP%], .indent-6[_ngcontent-%COMP%], .indent-7[_ngcontent-%COMP%], .indent-8[_ngcontent-%COMP%], .indent-9[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 4)}.child-arrow[_ngcontent-%COMP%]{margin:1px 6px}.child-arrow.transparent[_ngcontent-%COMP%]{opacity:0}.breadcrumb[_ngcontent-%COMP%]{display:flex}.separator[_ngcontent-%COMP%]{color:var(--color-weight-500);margin:0 3px}"],changeDetection:0});const fn=(0,s.wwB)({location:"collection-list",requiresPermission:o=>o.includes(s.y3$.DeleteCollection)||o.includes(s.y3$.DeleteCatalog),getItemName:o=>o.name,bulkDelete:(o,n)=>o.collection.deleteCollections(n).pipe((0,h.U)(e=>e.deleteCollections))}),hn={location:"collection-list",label:(0,p.J)("catalog.move-collections"),icon:"drag-handle",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateCollection),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp);a.fromComponent(Fe,{size:"xl",closable:!0}).pipe((0,C.w)(l=>{if(l){const m=n.map(g=>({collectionId:g.id,parentId:l.id,index:0}));return r.collection.moveCollection(m)}return F.E})).subscribe(l=>{c.success((0,p.J)("catalog.move-collections-success"),{count:n.length}),i(),e.refresh()})}},vn=(0,s.z1G)({location:"collection-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateCollection),getItemName:o=>o.name,bulkAssignToChannel:(o,n,e)=>o.collection.assignCollectionsToChannel({collectionIds:n,channelId:e}).pipe((0,h.U)(i=>i.assignCollectionsToChannel))}),Cn=(0,s.RBx)({location:"collection-list",requiresPermission:o=>o.includes(s.y3$.DeleteCatalog)||o.includes(s.y3$.DeleteCollection),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e)=>o.collection.removeCollectionsFromChannel({channelId:e,collectionIds:n}).pipe((0,h.U)(i=>i.removeCollectionsFromChannel))});var St,Ie=u(7615),Le=u(419),Xa=u(9187),xn=u(5806);const tr=function(){return["./create"]};function er(o,n){1&o&&(t.TgZ(0,"a",6),t._UZ(1,"clr-icon",7),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,tr)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," "))}function nr(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function or(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function ir(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function ar(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.position," ")}}function rr(o,n){if(1&o&&t._UZ(0,"clr-icon",26),2&o){const e=t.oxw().depth;t.ekj("transparent",0===e)}}function cr(o,n){1&o&&t._UZ(0,"clr-icon",30)}function sr(o,n){1&o&&t._UZ(0,"clr-icon",31)}function lr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",27),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw(2);return t.KtG(r.toggleExpanded(a))}),t.YNc(1,cr,1,0,"clr-icon",28),t.YNc(2,sr,1,0,"clr-icon",29),t.qZA()}if(2&o){const e=t.oxw().item,i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",!i.expandedIds.includes(e.id)),t.xp6(1),t.Q6J("ngIf",i.expandedIds.includes(e.id))}}const bn=function(o){return["./",o]};function dr(o,n){if(1&o&&(t._UZ(0,"div",21),t.YNc(1,rr,1,2,"clr-icon",22),t.YNc(2,lr,3,2,"button",23),t.TgZ(3,"a",24)(4,"span"),t._uU(5),t.qZA(),t._UZ(6,"clr-icon",25),t.qZA()),2&o){const e=n.item,i=n.depth;t.Q6J("ngClass","indent-"+i),t.xp6(1),t.Q6J("ngIf",!(null!=e.children&&e.children.length)),t.xp6(1),t.Q6J("ngIf",null==e.children?null:e.children.length),t.xp6(1),t.Q6J("routerLink",t.VKq(5,bn,e.id)),t.xp6(2),t.Oqu(e.name)}}function pr(o,n){if(1&o&&(t.TgZ(0,"div")(1,"span",36),t._uU(2,"/"),t.qZA(),t._uU(3),t.qZA()),2&o){const e=n.$implicit;t.xp6(3),t.hij("",e.name," ")}}function ur(o,n){if(1&o&&(t.ynx(0),t.YNc(1,pr,4,1,"div",35),t.BQk()),2&o){const e=t.oxw().ngIf;t.xp6(1),t.Q6J("ngForOf",e)}}function mr(o,n){1&o&&(t.TgZ(0,"span",36),t._uU(1,"/"),t.qZA())}function gr(o,n){if(1&o&&(t.ynx(0),t.YNc(1,ur,2,1,"ng-container",33),t.YNc(2,mr,2,0,"span",34),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length),t.xp6(1),t.Q6J("ngIf",!e.length)}}function _r(o,n){if(1&o&&(t.TgZ(0,"div",32),t.YNc(1,gr,3,2,"ng-container",33),t.ALo(2,"collectionBreadcrumb"),t.qZA()),2&o){const e=n.item;t.xp6(1),t.Q6J("ngIf",t.lcZ(2,1,e))}}function fr(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.slug," ")}}function hr(o,n){1&o&&(t.TgZ(0,"vdr-chip",39),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.private")))}function vr(o,n){1&o&&(t.TgZ(0,"vdr-chip",40),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.public")))}function Cr(o,n){if(1&o&&(t.YNc(0,hr,3,3,"vdr-chip",37),t.YNc(1,vr,3,3,"vdr-chip",38)),2&o){const e=n.item;t.Q6J("ngIf",e.isPrivate),t.xp6(1),t.Q6J("ngIf",!e.isPrivate)}}const xr=function(o){return{contents:o}},br=function(){return{contentsPage:1}};function Tr(o,n){if(1&o&&(t.TgZ(0,"a",41)(1,"span"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"clr-icon",42),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.VKq(7,bn,t.VKq(5,xr,e.id)))("queryParams",t.DdM(9,br)),t.xp6(2),t.Oqu(t.lcZ(3,3,"common.view-contents"))}}function Zr(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",43),2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("customField",e)("sorts",i.sorts)}}function Ar(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-collection-data-table",8),t.NdJ("pageChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.setPageNumber(a))})("itemsPerPageChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.setItemsPerPage(a))})("changeOrder",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.onRearrange(a))}),t.ALo(1,"async"),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t._UZ(7,"vdr-bulk-action-menu",9)(8,"vdr-dt2-search",10),t.ALo(9,"translate"),t.TgZ(10,"vdr-dt2-column",11),t.ALo(11,"translate"),t.YNc(12,nr,1,1,"ng-template"),t.qZA(),t.TgZ(13,"vdr-dt2-column",12),t.ALo(14,"translate"),t.YNc(15,or,2,4,"ng-template"),t.qZA(),t.TgZ(16,"vdr-dt2-column",13),t.ALo(17,"translate"),t.YNc(18,ir,2,4,"ng-template"),t.qZA(),t.TgZ(19,"vdr-dt2-column",14),t.ALo(20,"translate"),t.YNc(21,ar,1,1,"ng-template"),t.qZA(),t.TgZ(22,"vdr-dt2-column",15),t.ALo(23,"translate"),t.YNc(24,dr,7,7,"ng-template"),t.qZA(),t.TgZ(25,"vdr-dt2-column",16),t.ALo(26,"translate"),t.YNc(27,_r,3,3,"ng-template"),t.qZA(),t.TgZ(28,"vdr-dt2-column",17),t.ALo(29,"translate"),t.YNc(30,fr,1,1,"ng-template"),t.qZA(),t.TgZ(31,"vdr-dt2-column",18),t.ALo(32,"translate"),t.YNc(33,Cr,2,2,"ng-template"),t.qZA(),t.TgZ(34,"vdr-dt2-column",19),t.ALo(35,"translate"),t.YNc(36,Tr,5,10,"ng-template"),t.qZA(),t.YNc(37,Zr,1,2,"vdr-dt2-custom-field-column",20),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("items",t.lcZ(1,32,e.items$))("subCollections",t.lcZ(2,34,e.subCollections$))("itemsPerPage",t.lcZ(3,36,e.itemsPerPage$))("totalItems",t.lcZ(4,38,e.totalItems$))("currentPage",t.lcZ(5,40,e.currentPage$))("filters",e.filters)("activeIndex",t.lcZ(6,42,e.activeCollectionIndex$)),t.xp6(7),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(9,44,"common.search-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(11,46,"common.id"))("hiddenByDefault",!0),t.xp6(3),t.Q6J("heading",t.lcZ(14,48,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(17,50,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(20,52,"common.position"))("hiddenByDefault",!0)("sort",e.sorts.get("position")),t.xp6(3),t.Q6J("heading",t.lcZ(23,54,"common.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(26,56,"common.breadcrumb")),t.xp6(3),t.Q6J("heading",t.lcZ(29,58,"common.slug"))("sort",e.sorts.get("slug")),t.xp6(3),t.Q6J("heading",t.lcZ(32,60,"common.visibility")),t.xp6(3),t.Q6J("heading",t.lcZ(35,62,"common.view-contents"))("optional",!1),t.xp6(3),t.Q6J("ngForOf",e.customFields)}}function Pr(o,n){if(1&o&&(t.ynx(0),t._UZ(1,"vdr-collection-contents",44),t.ALo(2,"async"),t.BQk()),2&o){const e=t.oxw(2);t.xp6(1),t.Q6J("collectionId",t.lcZ(2,1,e.activeCollectionId$))}}function yr(o,n){if(1&o&&(t.YNc(0,Pr,3,3,"ng-container",33),t.ALo(1,"async")),2&o){const e=t.oxw();t.Q6J("ngIf",t.lcZ(1,1,e.activeCollectionId$))}}const Fr=function(){return["CreateCatalog","CreateCollection"]};class Oe extends s.$ms{constructor(n,e){super(),this.dataService=n,this.notificationService=e,this.expandedIds=[],this.customFields=this.getCustomFieldConfig("Collection"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilter({name:"slug",label:(0,p.J)("common.slug"),type:{kind:"text"},filterField:"slug"}).addFilter({name:"visibility",type:{kind:"boolean"},label:(0,p.J)("common.visibility"),toFilterInput:i=>({isPrivate:{eq:!i}})}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("position","ASC").addSort({name:"createdAt"}).addSort({name:"updatedAt"}).addSort({name:"name"}).addSort({name:"slug"}).addSort({name:"position"}).addCustomFieldSorts(this.customFields).connectToRoute(this.route),super.configure({document:s.rcS,getItems:i=>i.collections,setVariables:(i,a)=>{const r=""===this.searchTermControl.value&&0===this.filters.activeFilters.length||void 0;return{options:{skip:i,take:a,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},topLevelOnly:r,sort:this.sorts.createSortInput()}}},refreshListOnChanges:[this.filters.valueChanges,this.sorts.valueChanges]})}ngOnInit(){super.ngOnInit(),this.activeCollectionId$=this.route.paramMap.pipe((0,h.U)(e=>e.get("contents")),(0,M.x)());const n=this.route.queryParamMap.pipe((0,h.U)(e=>e.get("expanded")),(0,M.x)(),(0,h.U)(e=>e?e.split(","):[]));n.pipe((0,fe.R)(this.destroy$)).subscribe(e=>{this.expandedIds=e}),this.subCollections$=(0,P.a)(n,this.refresh$).pipe((0,C.w)(([e])=>e.length?this.dataService.collection.getCollections({take:999,filter:{parentId:{in:e}}}).mapStream(i=>i.collections.items):(0,k.of)([]))),this.activeCollectionTitle$=(0,P.a)(this.activeCollectionId$,this.items$,this.subCollections$).pipe((0,h.U)(([e,i,a])=>{if(e){const r=[...i,...a].find(c=>c.id===e);return r?r.name:""}return""})),this.activeCollectionIndex$=(0,P.a)(this.activeCollectionId$,this.items$,this.subCollections$).pipe((0,h.U)(([e,i,a])=>{if(e){const r=[];for(const c of i){r.push(c);const l=a.filter(m=>m.parentId&&m.parentId===c.id);r.push(...l)}return r.findIndex(c=>c.id===e)}return-1}))}onRearrange(n){this.dataService.collection.moveCollection([n]).subscribe({next:()=>{this.notificationService.success((0,p.J)("common.notify-saved-changes")),this.refresh()},error:e=>{this.notificationService.error((0,p.J)("common.notify-save-changes-error"))}})}closeContents(){const n={...this.route.snapshot.params};delete n.contents,this.router.navigate(["./",n],{relativeTo:this.route,queryParamsHandling:"preserve"})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}toggleExpanded(n){let e=this.expandedIds;e.includes(n.id)?e=e.filter(i=>i!==n.id):e.push(n.id),this.router.navigate(["./"],{queryParams:{expanded:e.filter(i=>!!i).join(",")},queryParamsHandling:"merge",relativeTo:this.route})}}var Ct,ot;(St=Oe).\u0275fac=function(n){return new(n||St)(t.Y36(s.DoR),t.Y36(s.gqp))},St.\u0275cmp=t.Xpm({type:St,selectors:[["vdr-collection-list"]],features:[t.qOj],decls:14,vars:14,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"rightPanelOpen","closeClicked"],["vdrSplitViewLeft",""],["vdrSplitViewRight","",3,"splitViewTitle"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],["id","collection-list",1,"mt-2",3,"items","subCollections","itemsPerPage","totalItems","currentPage","filters","activeIndex","pageChange","itemsPerPageChange","changeOrder"],["locationId","collection-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","position",3,"heading","hiddenByDefault","sort"],["id","name",3,"heading","optional","sort"],["id","breadcrumb",3,"heading"],["id","slug",3,"heading","sort"],["id","visibility",3,"heading"],["id","view-contents",3,"heading","optional"],[3,"customField","sorts",4,"ngFor","ngForOf"],[3,"ngClass"],["class","child-arrow","shape","child-arrow",3,"transparent",4,"ngIf"],["class","icon-button folder-button",3,"click",4,"ngIf"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["shape","child-arrow",1,"child-arrow"],[1,"icon-button","folder-button",3,"click"],["shape","folder",4,"ngIf"],["shape","folder-open",4,"ngIf"],["shape","folder"],["shape","folder-open"],[1,"breadcrumb"],[4,"ngIf"],["class","separator",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"separator"],["colorType","warning",4,"ngIf"],["colorType","success",4,"ngIf"],["colorType","warning"],["colorType","success"],["queryParamsHandling","merge",1,"button-small","bg-weight-150",3,"routerLink","queryParams"],["shape","file-group"],[3,"customField","sorts"],[3,"collectionId"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()(),t.TgZ(6,"vdr-ab-right"),t._UZ(7,"vdr-action-bar-items",1),t.YNc(8,er,4,5,"a",2),t.qZA()()(),t.TgZ(9,"vdr-split-view",3),t.NdJ("closeClicked",function(){return e.closeContents()}),t.ALo(10,"async"),t.YNc(11,Ar,38,64,"ng-template",4),t.YNc(12,yr,2,3,"ng-template",5),t.ALo(13,"async"),t.qZA()),2&n&&(t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(4,5,e.availableLanguages$))("currentLanguageCode",t.lcZ(5,7,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(13,Fr)),t.xp6(1),t.Q6J("rightPanelOpen",t.lcZ(10,9,e.activeCollectionId$)),t.xp6(3),t.Q6J("splitViewTitle",t.lcZ(13,11,e.activeCollectionTitle$)))},dependencies:[f.qvL,_.mk,_.sg,_.O5,A.rH,x.Kk,x.BN,x.mz,j.Y,E.S,N.H,K.W,Ie.c,R.U,et.J,Le.j,Xa._,xn.L,xn.a,w.z,Vt,Ut,_.Ov,b.X$,X.H,qt],styles:["[_nghost-%COMP%]{--indent-spacing: 18px}.indent-1[_ngcontent-%COMP%]{padding-inline-start:var(--indent-spacing)}.indent-2[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 2)}.indent-3[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 3)}.indent-4[_ngcontent-%COMP%], .indent-5[_ngcontent-%COMP%], .indent-6[_ngcontent-%COMP%], .indent-7[_ngcontent-%COMP%], .indent-8[_ngcontent-%COMP%], .indent-9[_ngcontent-%COMP%]{padding-inline-start:calc(var(--indent-spacing) * 4)}.child-arrow[_ngcontent-%COMP%]{margin:1px 6px}.child-arrow.transparent[_ngcontent-%COMP%]{opacity:0}.breadcrumb[_ngcontent-%COMP%]{display:flex}.separator[_ngcontent-%COMP%]{color:var(--color-weight-500);margin:0 3px}"],changeDetection:0});class Yt{constructor(){this.allMoveListItems=[],this._rearrange$=new dt.x,this._delete$=new dt.x,this.rearrange$=this._rearrange$.asObservable(),this.delete$=this._delete$.asObservable()}ngOnDestroy(){this._rearrange$.complete(),this._delete$.complete()}setCollectionTree(n){this.collectionTree=n}resetMoveList(){this.allMoveListItems=[]}getMoveListItems(n){return 0===this.allMoveListItems.length&&(this.allMoveListItems=this.calculateAllMoveListItems()),this.allMoveListItems.filter(e=>e.id!==n.id&&!e.ancestorIdPath.has(n.id)&&e.id!==n.parent?.id)}onDrop(n){const e=n.item.data,a=n.container.data.id;if(null==a)throw new Error("Could not determine the ID of the root Collection");this._rearrange$.next({collectionId:e.id,parentId:a,index:n.currentIndex})}onMove(n){this._rearrange$.next(n)}onDelete(n){this._delete$.next(n)}calculateAllMoveListItems(){const n=(e,i,a,r)=>{const c=i.concat(e.name);return r.push({path:c.slice(1).join(" / ")||"root",id:e.id,ancestorIdPath:a}),e.children.forEach(l=>n(l,c,new Set([...a,e.id]),r)),r};return n(this.collectionTree,[],new Set,[])}}function Ir(o,n){1&o&&t._UZ(0,"clr-icon",32)}function Lr(o,n){1&o&&t._UZ(0,"clr-icon",33)}function Or(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw();return t.KtG(r.toggleExpanded(a))}),t.YNc(1,Ir,1,0,"clr-icon",30),t.YNc(2,Lr,1,0,"clr-icon",31),t.qZA()}if(2&o){const e=t.oxw().$implicit,i=t.oxw();t.Q6J("disabled",i.expandAll),t.xp6(1),t.Q6J("ngIf",!e.expanded&&!i.expandAll),t.xp6(1),t.Q6J("ngIf",e.expanded||i.expandAll)}}function kr(o,n){1&o&&t._UZ(0,"div",34)}function Jr(o,n){1&o&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.private")))}function Dr(o,n){1&o&&(t.TgZ(0,"div",35),t._UZ(1,"clr-icon",36),t.qZA())}(Ct=Yt).\u0275fac=function(n){return new(n||Ct)},Ct.\u0275prov=t.Yz7({token:Ct,factory:Ct.\u0275fac});const wr=function(o){return{parentId:o}},Vr=function(o){return["./","create",o]};function Mr(o,n){if(1&o&&(t.TgZ(0,"a",37),t._UZ(1,"clr-icon",38),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o){const e=t.oxw().$implicit;t.Q6J("routerLink",t.VKq(6,Vr,t.VKq(4,wr,e.id))),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," ")}}function Ur(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",21),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw().$implicit,l=t.oxw();return t.KtG(l.move(c,r.id))}),t.ALo(1,"async"),t.TgZ(2,"div",39)(3,"div",40),t._UZ(4,"clr-icon",41),t.qZA(),t.TgZ(5,"div",42),t._uU(6),t.qZA()()()}if(2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("disabled",!t.lcZ(1,2,i.hasUpdatePermission$)),t.xp6(6),t.hij(" ",e.path," ")}}function Nr(o,n){if(1&o&&t._UZ(0,"vdr-collection-tree-node",43),2&o){const e=t.oxw().$implicit,i=t.oxw();t.Q6J("expandAll",i.expandAll)("collectionTree",e)("activeCollectionId",i.activeCollectionId)("selectionManager",i.selectionManager)}}const Qr=function(o){return{contents:o}},qr=function(o){return["./",o]},$r=function(o){return["/catalog/collections/",o]},Sr=function(){return["UpdateCatalog","UpdateCollection"]},Yr=function(){return["CreateCatalog","CreateCollection"]};function Gr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",3)(1,"div",4)(2,"div")(3,"input",5),t.NdJ("click",function(a){const c=t.CHM(e).$implicit,l=t.oxw();return t.KtG(l.selectionManager.toggleSelection(c,a))}),t.qZA()(),t.TgZ(4,"div",6),t.YNc(5,Or,3,3,"button",7),t.YNc(6,kr,1,0,"ng-template",null,8,t.W1O),t._uU(8),t.qZA(),t._UZ(9,"div",9),t.YNc(10,Jr,3,3,"vdr-chip",10),t.TgZ(11,"a",11),t._UZ(12,"clr-icon",12),t._uU(13),t.ALo(14,"translate"),t.qZA(),t.TgZ(15,"a",13),t._UZ(16,"clr-icon",14),t._uU(17),t.ALo(18,"translate"),t.qZA(),t.YNc(19,Dr,2,0,"div",15),t.TgZ(20,"vdr-dropdown")(21,"button",16),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.getMoveListItems(r))}),t._UZ(22,"clr-icon",17),t.qZA(),t.TgZ(23,"vdr-dropdown-menu",18),t.YNc(24,Mr,4,8,"a",19),t._UZ(25,"div",20),t.TgZ(26,"button",21),t.NdJ("click",function(){const a=t.CHM(e),r=a.$implicit,c=a.index,l=t.oxw();return t.KtG(l.moveUp(r,c))}),t.ALo(27,"async"),t._UZ(28,"clr-icon",22),t._uU(29),t.ALo(30,"translate"),t.qZA(),t.TgZ(31,"button",21),t.NdJ("click",function(){const a=t.CHM(e),r=a.$implicit,c=a.index,l=t.oxw();return t.KtG(l.moveDown(r,c))}),t.ALo(32,"async"),t._UZ(33,"clr-icon",23),t._uU(34),t.ALo(35,"translate"),t.qZA(),t.TgZ(36,"h4",24),t._uU(37),t.ALo(38,"translate"),t.qZA(),t.YNc(39,Ur,7,4,"button",25),t._UZ(40,"div",20),t.TgZ(41,"button",26),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.delete(r.id))}),t.ALo(42,"async"),t._UZ(43,"clr-icon",27),t._uU(44),t.ALo(45,"translate"),t.qZA()()()(),t.YNc(46,Nr,1,4,"vdr-collection-tree-node",28),t.qZA()}if(2&o){const e=n.$implicit,i=n.index,a=t.MAs(7),r=t.oxw();t.ekj("private",e.isPrivate),t.Q6J("cdkDragData",e),t.xp6(1),t.ekj("active",e.id===r.activeCollectionId),t.Q6J("ngClass","depth-"+r.depth),t.xp6(2),t.Q6J("checked",r.selectionManager.isSelected(e)),t.xp6(2),t.Q6J("ngIf",null==e.children?null:e.children.length)("ngIfElse",a),t.xp6(3),t.hij(" ",e.name," "),t.xp6(2),t.Q6J("ngIf",e.isPrivate),t.xp6(1),t.Q6J("routerLink",t.VKq(46,qr,t.VKq(44,Qr,e.id))),t.xp6(2),t.hij(" ",t.lcZ(14,26,"catalog.view-contents")," "),t.xp6(2),t.Q6J("routerLink",t.VKq(48,$r,e.id)),t.xp6(2),t.hij(" ",t.lcZ(18,28,"common.edit")," "),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(50,Sr)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(51,Yr)),t.xp6(2),t.Q6J("disabled",0===i||!t.lcZ(27,30,r.hasUpdatePermission$)),t.xp6(3),t.hij(" ",t.lcZ(30,32,"catalog.move-up")," "),t.xp6(2),t.Q6J("disabled",i===r.collectionTree.children.length-1||!t.lcZ(32,34,r.hasUpdatePermission$)),t.xp6(3),t.hij(" ",t.lcZ(35,36,"catalog.move-down")," "),t.xp6(3),t.Oqu(t.lcZ(38,38,"catalog.move-to")),t.xp6(2),t.Q6J("ngForOf",r.moveListItems),t.xp6(2),t.Q6J("disabled",!t.lcZ(42,40,r.hasDeletePermission$)),t.xp6(3),t.hij(" ",t.lcZ(45,42,"common.delete")," "),t.xp6(2),t.Q6J("ngIf",e.expanded||r.expandAll)}}class ke{constructor(n,e,i,a,r,c){this.parent=n,this.dataService=e,this.collectionTreeService=i,this.router=a,this.route=r,this.changeDetectorRef=c,this.depth=0,this.expandAll=!1,this.moveListItems=[],n&&(this.depth=n.depth+1)}ngOnInit(){this.parentName=this.collectionTree.name||"<root>";const n=this.dataService.client.userStatus().mapStream(e=>e.userStatus.permissions).pipe((0,xt.d)(1));this.hasUpdatePermission$=n.pipe((0,h.U)(e=>e.includes(s.y3$.UpdateCatalog)||e.includes(s.y3$.UpdateCollection))),this.hasDeletePermission$=n.pipe((0,h.U)(e=>e.includes(s.y3$.DeleteCatalog)||e.includes(s.y3$.DeleteCollection))),this.subscription=this.selectionManager?.selectionChanges$.subscribe(()=>this.changeDetectorRef.markForCheck())}ngOnChanges(n){const e=n.expandAll;e&&!0===e.previousValue&&!1===e.currentValue&&this.collectionTree.children.forEach(i=>i.expanded=!1)}ngOnDestroy(){this.subscription?.unsubscribe()}trackByFn(n,e){return e.id}toggleExpanded(n){n.expanded=!n.expanded;let e=this.route.snapshot.queryParamMap.get("expanded")?.split(",")??[];n.expanded?e.push(n.id):e=e.filter(i=>i!==n.id),this.router.navigate(["./"],{queryParams:{expanded:e.filter(i=>!!i).join(",")},queryParamsHandling:"merge",relativeTo:this.route})}getMoveListItems(n){this.moveListItems=this.collectionTreeService.getMoveListItems(n)}move(n,e){this.collectionTreeService.onMove({index:0,parentId:e,collectionId:n.id})}moveUp(n,e){n.parent&&this.collectionTreeService.onMove({index:e-1,parentId:n.parent.id,collectionId:n.id})}moveDown(n,e){n.parent&&this.collectionTreeService.onMove({index:e+1,parentId:n.parent.id,collectionId:n.id})}drop(n){(0,O.bA)(this.collectionTree.children,n.previousIndex,n.currentIndex),this.collectionTreeService.onDrop(n)}delete(n){this.collectionTreeService.onDelete(n)}}function Tn(o,n,e=[]){const i=[],a={},r=function Er(o){const n=new Map;function e(i){n.set(i.id,i),i.children.forEach(e)}return o&&e(o),n}(n);for(const l of o)a[l.id]={...l,children:[]};for(const l of o.map(m=>m.id))if(a.hasOwnProperty(l)){const m=a[l];m.expanded=r.get(l)?.expanded??e.includes(l);const g=m.parent;if(!g)continue;a[g.id]?a[g.id]?a[g.id].children.push(m):a[g.id]={children:[m]}:i.push(m)}return{id:i.length?i[0].parent.id:void 0,children:i}}var Gt,Et;function Br(o,n){if(1&o&&t._UZ(0,"vdr-collection-tree-node",1),2&o){const e=t.oxw();t.Q6J("expandAll",e.expandAll)("collectionTree",e.collectionTree)("selectionManager",e.selectionManager)("activeCollectionId",e.activeCollectionId)}}(ot=ke).\u0275fac=function(n){return new(n||ot)(t.Y36(ot,12),t.Y36(s.DoR),t.Y36(Yt),t.Y36(A.F0),t.Y36(A.gz),t.Y36(t.sBO))},ot.\u0275cmp=t.Xpm({type:ot,selectors:[["vdr-collection-tree-node"]],inputs:{collectionTree:"collectionTree",activeCollectionId:"activeCollectionId",expandAll:"expandAll",selectionManager:"selectionManager"},features:[t.TTD],decls:4,vars:6,consts:[["cdkDropList","",1,"tree-node",3,"cdkDropListData","cdkDropListDisabled","cdkDropListDropped"],["dropList",""],["class","collection","cdkDrag","",3,"private","cdkDragData",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"collection",3,"cdkDragData"],[1,"collection-detail",3,"ngClass"],["type","checkbox","clrCheckbox","",3,"checked","click"],[1,"name"],["class","icon-button folder-button",3,"disabled","click",4,"ngIf","ngIfElse"],["folderSpacer",""],[1,"flex-spacer"],[4,"ngIf"],["queryParamsHandling","preserve",1,"btn","btn-link","btn-sm",3,"routerLink"],["shape","view-list"],[1,"btn","btn-link","btn-sm",3,"routerLink"],["shape","edit"],["class","drag-handle","cdkDragHandle","",4,"vdrIfPermissions"],["vdrDropdownTrigger","",1,"icon-button",3,"click"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["class","dropdown-item",3,"routerLink",4,"vdrIfPermissions"],[1,"dropdown-divider"],["type","button","vdrDropdownItem","",3,"disabled","click"],["shape","caret up"],["shape","caret down"],[1,"dropdown-header"],["type","button","vdrDropdownItem","",3,"disabled","click",4,"ngFor","ngForOf"],["vdrDropdownItem","",1,"button",3,"disabled","click"],["shape","trash",1,"is-danger"],[3,"expandAll","collectionTree","activeCollectionId","selectionManager",4,"ngIf"],[1,"icon-button","folder-button",3,"disabled","click"],["shape","folder",4,"ngIf"],["shape","folder-open",4,"ngIf"],["shape","folder"],["shape","folder-open"],[1,"folder-button-spacer"],["cdkDragHandle","",1,"drag-handle"],["shape","drag-handle","size","24"],[1,"dropdown-item",3,"routerLink"],["shape","plus"],[1,"move-to-item"],[1,"move-icon"],["shape","child-arrow"],[1,"path"],[3,"expandAll","collectionTree","activeCollectionId","selectionManager"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0,1),t.NdJ("cdkDropListDropped",function(a){return e.drop(a)}),t.ALo(2,"async"),t.YNc(3,Gr,47,52,"div",2),t.qZA()),2&n&&(t.Q6J("cdkDropListData",e.collectionTree)("cdkDropListDisabled",!t.lcZ(2,4,e.hasUpdatePermission$)),t.xp6(3),t.Q6J("ngForOf",e.collectionTree.children)("ngForTrackBy",e.trackByFn))},dependencies:[f.q0d,f.qvL,f.KKC,_.mk,_.sg,_.O5,A.rH,O.Wj,O.Zt,O.Bh,j.Y,L.y,gt.J,_t.N,ft.U,ht.H,N.H,ot,_.Ov,b.X$],styles:["[_nghost-%COMP%]{display:block}.collection[_ngcontent-%COMP%]{background-color:var(--clr-table-bgcolor);border-radius:var(--clr-global-borderradius);font-size:.65rem;transition:transform .25s cubic-bezier(0,0,.2,1);margin-bottom:2px;border-inline-start:2px solid transparent;transition:border-left-color .2s}.collection.private[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.collection[_ngcontent-%COMP%] .collection-detail[_ngcontent-%COMP%]{padding:6px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-component-border-100)}.collection[_ngcontent-%COMP%] .collection-detail.active[_ngcontent-%COMP%]{background-color:var(--clr-global-selection-color)}.collection[_ngcontent-%COMP%] .collection-detail.depth-1[_ngcontent-%COMP%]{padding-inline-start:36px}.collection[_ngcontent-%COMP%] .collection-detail.depth-2[_ngcontent-%COMP%]{padding-inline-start:60px}.collection[_ngcontent-%COMP%] .collection-detail.depth-3[_ngcontent-%COMP%]{padding-inline-start:84px}.collection[_ngcontent-%COMP%] .collection-detail.depth-4[_ngcontent-%COMP%]{padding-inline-start:108px}.collection[_ngcontent-%COMP%] .collection-detail[_ngcontent-%COMP%] .folder-button-spacer[_ngcontent-%COMP%]{display:inline-block;width:28px}.tree-node[_ngcontent-%COMP%]{display:block;background-color:var(--clr-table-bgcolor);border-radius:var(--clr-global-borderradius);overflow:hidden}.tree-node.cdk-drop-list-dragging[_ngcontent-%COMP%] > .collection[_ngcontent-%COMP%]{border-left-color:var(--color-primary-300)}.drag-placeholder[_ngcontent-%COMP%]{min-height:120px;background-color:var(--color-component-bg-300);transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview[_ngcontent-%COMP%]{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:0}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-list.cdk-drop-list-dragging[_ngcontent-%COMP%] .tree-node[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.move-to-item[_ngcontent-%COMP%]{display:flex;white-space:normal;align-items:baseline}.move-to-item[_ngcontent-%COMP%] .move-icon[_ngcontent-%COMP%]{flex:none;margin-inline-end:3px}.move-to-item[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{line-height:18px}"],changeDetection:0});class Ee{constructor(n){this.collectionTreeService=n,this.expandAll=!1,this.expandedIds=[],this.rearrange=new t.vpe,this.deleteCollection=new t.vpe}ngOnChanges(n){"collections"in n&&this.collections&&(this.collectionTree=Tn(this.collections,this.collectionTree,this.expandedIds),this.collectionTreeService.setCollectionTree(this.collectionTree),this.collectionTreeService.resetMoveList())}ngOnInit(){this.collectionTreeService.rearrange$.subscribe(n=>this.rearrange.emit(n)),this.collectionTreeService.delete$.subscribe(n=>this.deleteCollection.emit(n))}}function jr(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.hij(" ",t.lcZ(1,1,"catalog.confirm-deletion-of-unused-variants-title"),"\n")}function Rr(o,n){if(1&o&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.xp6(1),t.AsE("",e.name," (",e.sku,")")}}function Hr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.confirm())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,2,"common.cancel")),t.xp6(3),t.hij(" ",t.lcZ(5,4,"common.confirm")," "))}(Gt=Ee).\u0275fac=function(n){return new(n||Gt)(t.Y36(Yt))},Gt.\u0275cmp=t.Xpm({type:Gt,selectors:[["vdr-collection-tree"]],inputs:{collections:"collections",activeCollectionId:"activeCollectionId",expandAll:"expandAll",expandedIds:"expandedIds",selectionManager:"selectionManager"},outputs:{rearrange:"rearrange",deleteCollection:"deleteCollection"},features:[t._Bn([Yt]),t.TTD],decls:1,vars:1,consts:[["cdkDropListGroup","",3,"expandAll","collectionTree","selectionManager","activeCollectionId",4,"ngIf"],["cdkDropListGroup","",3,"expandAll","collectionTree","selectionManager","activeCollectionId"]],template:function(n,e){1&n&&t.YNc(0,Br,1,4,"vdr-collection-tree-node",0),2&n&&t.Q6J("ngIf",e.collectionTree)},dependencies:[_.O5,O.Fd,ke],changeDetection:0});class Be{constructor(){this.variants=[]}confirm(){this.resolveWith(!0)}cancel(){this.resolveWith()}}(Et=Be).\u0275fac=function(n){return new(n||Et)},Et.\u0275cmp=t.Xpm({type:Et,selectors:[["vdr-confirm-variant-deletion-dialog"]],decls:6,vars:4,consts:[["vdrDialogTitle",""],[4,"ngFor","ngForOf"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"click"]],template:function(n,e){1&n&&(t.YNc(0,jr,2,3,"ng-template",0),t._uU(1),t.ALo(2,"translate"),t.TgZ(3,"ul"),t.YNc(4,Rr,2,2,"li",1),t.qZA(),t.YNc(5,Hr,6,6,"ng-template",2)),2&n&&(t.xp6(1),t.hij("\n",t.lcZ(2,2,"catalog.confirm-deletion-of-unused-variants-body"),"\n"),t.xp6(3),t.Q6J("ngForOf",e.variants))},dependencies:[_.sg,tt.n,H.q,b.X$],changeDetection:0});var Bt,Kr=u(365),zr=u(4687);function Wr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",20),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.create())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.create")," ")}}function Xr(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",20),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw(2);t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}function tc(o,n){if(1&o&&t.YNc(0,Xr,3,4,"button",21),2&o){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermission)}}function ec(o,n){1&o&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function nc(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.Oqu(t.lcZ(1,1,"catalog.private"))}function oc(o,n){if(1&o&&t._UZ(0,"vdr-page-entity-info",22),2&o){const e=n.ngIf;t.Q6J("entity",e)}}function ic(o,n){if(1&o&&(t.TgZ(0,"vdr-card",23),t.ALo(1,"translate"),t._UZ(2,"vdr-tabbed-custom-fields",24),t.ALo(3,"hasPermission"),t.qZA()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get("facet.customFields"))("readonly",!t.lcZ(3,6,e.updatePermission))}}function ac(o,n){if(1&o&&(t._UZ(0,"input",29),t.ALo(1,"translate")),2&o){const e=t.oxw(2);t.Q6J("formControl",e.filterControl)("placeholder",t.lcZ(1,2,"catalog.filter-by-name"))}}function rc(o,n){1&o&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.BQk()),2&o&&(t.xp6(2),t.Oqu(t.lcZ(3,1,"common.custom-fields")))}const cc=function(o){return["values",o,"customFields"]};function sc(o,n){if(1&o&&(t.TgZ(0,"td",45),t._UZ(1,"vdr-tabbed-custom-fields",46),t.ALo(2,"hasPermission"),t.qZA()),2&o){const e=t.oxw().$implicit,i=t.oxw(3);t.xp6(1),t.Q6J("customFields",i.customValueFields)("compact",!0)("customFieldsFormGroup",i.detailForm.get(t.VKq(6,cc,e.id)))("readonly",!t.lcZ(2,4,i.updatePermission))}}const lc=function(o){return["values",o]};function dc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"tr",35)(1,"td",36),t._UZ(2,"vdr-entity-info",22),t.qZA(),t.TgZ(3,"td",36)(4,"input",37),t.NdJ("input",function(a){const c=t.CHM(e).$implicit,l=t.oxw(3);return t.KtG(l.updateValueCode(c.code,a.target.value,c.id))}),t.ALo(5,"hasPermission"),t.qZA()(),t.TgZ(6,"td",36),t._UZ(7,"input",38),t.qZA(),t.YNc(8,sc,3,8,"td",39),t.TgZ(9,"td",36)(10,"vdr-dropdown")(11,"button",40),t._UZ(12,"clr-icon",41),t.qZA(),t.TgZ(13,"vdr-dropdown-menu",42)(14,"button",43),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw(3);return t.KtG(c.deleteFacetValue(r.id))}),t.ALo(15,"hasPermission"),t._UZ(16,"clr-icon",44),t._uU(17),t.ALo(18,"translate"),t.qZA()()()()()}if(2&o){const e=n.$implicit,i=t.oxw(3);t.Q6J("formGroup",i.detailForm.get(t.VKq(12,lc,e.id))),t.xp6(2),t.Q6J("entity",e),t.xp6(2),t.Q6J("readonly",!t.lcZ(5,6,i.updatePermission)),t.xp6(4),t.Q6J("ngIf",i.customValueFields.length),t.xp6(6),t.Q6J("disabled",!t.lcZ(15,8,i.updatePermission)),t.xp6(3),t.hij(" ",t.lcZ(18,10,"common.delete")," ")}}const pc=function(o,n,e){return{currentPage:o,itemsPerPage:n,totalItems:e}};function uc(o,n){if(1&o){const e=t.EpF();t.ynx(0),t.TgZ(1,"table",30)(2,"thead")(3,"tr"),t._UZ(4,"th"),t.TgZ(5,"th"),t._uU(6),t.ALo(7,"translate"),t.qZA(),t.TgZ(8,"th"),t._uU(9),t.ALo(10,"translate"),t.qZA(),t.YNc(11,rc,4,3,"ng-container",27),t._UZ(12,"th"),t.qZA()(),t.TgZ(13,"tbody"),t.YNc(14,dc,19,14,"tr",31),t.ALo(15,"paginate"),t.qZA()(),t.TgZ(16,"div",32)(17,"vdr-items-per-page-controls",33),t.NdJ("itemsPerPageChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.itemsPerPage=a)}),t.qZA(),t.TgZ(18,"vdr-pagination-controls",34),t.NdJ("pageChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.currentPage=a)}),t.qZA()(),t.BQk()}if(2&o){const e=n.ngIf,i=t.oxw(2);t.xp6(6),t.Oqu(t.lcZ(7,8,"common.name")),t.xp6(3),t.Oqu(t.lcZ(10,10,"common.code")),t.xp6(2),t.Q6J("ngIf",i.customValueFields.length),t.xp6(3),t.Q6J("ngForOf",t.xi3(15,12,e,t.kEZ(15,pc,i.currentPage,i.itemsPerPage,e.length))),t.xp6(3),t.Q6J("itemsPerPage",i.itemsPerPage),t.xp6(1),t.Q6J("currentPage",i.currentPage)("itemsPerPage",i.itemsPerPage)("totalItems",e.length)}}function mc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",47),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.addFacetValue())}),t._UZ(1,"clr-icon",48),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&o&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facet-value")," "))}const gc=function(){return["CreateCatalog","CreateFacet"]};function _c(o,n){if(1&o&&(t.TgZ(0,"vdr-card",25),t.ALo(1,"translate"),t.YNc(2,ac,2,4,"ng-template",26),t.YNc(3,uc,19,19,"ng-container",27),t.ALo(4,"async"),t.TgZ(5,"div"),t.YNc(6,mc,4,3,"button",28),t.qZA()()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,4,"catalog.facet-values"))("paddingX",!1),t.xp6(3),t.Q6J("ngIf",t.lcZ(4,6,e.filteredValues$)),t.xp6(3),t.Q6J("vdrIfPermissions",t.DdM(8,gc))}}const fc=y.Ps`
|
|
83
83
|
query GetFacetDetail($id: ID!) {
|
|
84
84
|
facet(id: $id) {
|
|
85
85
|
...FacetWithValues
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
${s.nMi}
|
|
89
|
-
`;class Je extends s.VE7{constructor(n,e,i,a,r){super(),this.changeDetector=n,this.dataService=e,this.formBuilder=i,this.notificationService=a,this.modalService=r,this.customFields=this.getCustomFieldConfig("Facet"),this.customValueFields=this.getCustomFieldConfig("FacetValue"),this.detailForm=this.formBuilder.group({facet:this.formBuilder.group({code:["",d.kI.required],name:"",visible:!0,customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),values:this.formBuilder.record({})}),this.currentPage=1,this.itemsPerPage=10,this.filterControl=new d.NI(""),this.values$=new V.X([]),this.filteredValues$=new Hr.y,this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateFacet]}ngOnInit(){this.init(),this.filteredValues$=(0,P.a)([this.values$,this.filterControl.valueChanges.pipe((0,S.O)(""))]).pipe((0,h.U)(([n,e])=>{const i=e?.toLowerCase().trim();return i?n.filter(a=>a.name.toLowerCase().includes(i)||a.code.toLowerCase().includes(i)):n}),(0,q.b)(()=>{this.currentPage=1}))}ngOnDestroy(){this.destroy()}updateCode(n,e){if(!n){const i=this.detailForm.get(["facet","code"]);i&&i.pristine&&i.setValue((0,G.U)(e,"-"))}}updateValueCode(n,e,i){if(!n){const a=this.detailForm.get(["values",i,"code"]);a&&a.pristine&&a.setValue((0,G.U)(e,"-"))}}customValueFieldIsSet(n,e){return!!this.detailForm.get(["values",n,"customFields",e])}addFacetValue(){const n=this.detailForm.get("values");if(n){const e=this.createTempId(),i=this.formBuilder.group({id:e,name:["",d.kI.required],code:"",customFields:this.formBuilder.group({})}),a={id:e,name:"",code:""};if(this.customValueFields.length){const l=new d.nJ({});a.customFields={};for(const m of this.customValueFields){const g=m.name;l.addControl(g,new d.p4)}i.addControl("customFields",l)}n.addControl(e,i);const r=this.values$.value,c=this.currentPage*this.itemsPerPage-1;r.splice(c,0,a),this.values$.next(r)}}create(){const n=this.detailForm.get("facet");if(!n||!n.dirty)return;const e=this.getUpdatedFacet({id:"",createdAt:"",updatedAt:"",isPrivate:!1,languageCode:this.languageCode,name:"",code:"",translations:[],values:[]},n,this.languageCode);this.dataService.facet.createFacet(e).subscribe(i=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"Facet"}),this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",i.createFacet.id],{relativeTo:this.route})},i=>{this.notificationService.error((0,p.J)("common.notify-create-error"),{entity:"Facet"})})}save(){const n=this.detailForm.get("values");(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([e,i])=>{const a=this.detailForm.get("facet"),r=[];if(a&&a.dirty){const c=this.getUpdatedFacet(e,a,i);c&&r.push(this.dataService.facet.updateFacet(c))}if(n&&n.dirty){const c=this.getCreatedFacetValues(e,n,i);c.length&&r.push(this.dataService.facet.createFacetValues(c).pipe((0,C.w)(()=>this.dataService.query(s.m_w,{id:this.id}).single$)));const l=this.getUpdatedFacetValues(e,n,i);l.length&&r.push(this.dataService.facet.updateFacetValues(l))}return(0,at.D)(r)})).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"Facet"})},e=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"Facet"})})}deleteFacetValue(n){if(this.isTempId(n)){const e=this.detailForm.get("values");e&&e.removeControl(n);const i=this.values$.value;this.values$.next(i.filter(a=>a.id!==n))}else this.showModalAndDelete(n).pipe((0,C.w)(e=>e.result===s.PcR.DELETED?[!0]:this.showModalAndDelete(n,e.message||"").pipe((0,h.U)(i=>i.result===s.PcR.DELETED))),(0,C.w)(e=>e?this.dataService.query(s.m_w,{id:this.id}).single$:[])).subscribe(()=>{const e=this.detailForm.get("values");e&&e.removeControl(n),this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"FacetValue"})},e=>{this.notificationService.error((0,p.J)("common.notify-delete-error"),{entity:"FacetValue"})})}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-facet-value"),body:e,buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(i=>i?this.dataService.facet.deleteFacetValues([n],!!e):F.E),(0,h.U)(i=>i.deleteFacetValues[0]))}setFormValues(n,e){const i=(0,s.ZIM)(n,e);this.detailForm.patchValue({facet:{code:n.code,visible:!n.isPrivate,name:i?.name??""}}),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["facet","customFields"]),n,i);const a=this.detailForm.get("values");this.values$.next([...n.values]),n.values.forEach(r=>{const c=(0,s.ZIM)(r,e),l={id:r.id,code:r.code,name:c?c.name:""};let m=a.get(r.id);if(m?(m.get("id")?.setValue(l.id),m.get("code")?.setValue(l.code),m.get("name")?.setValue(l.name)):(m=this.formBuilder.group(l),a.addControl(r.id,m)),this.customValueFields.length){let g=m.get(["customFields"]);if(g||(g=new d.nJ({}),m.addControl("customFields",g)),g)for(const v of this.customValueFields){const T=v.name,Z="localeString"===v.type?c?.customFields?.[T]:r.customFields[T],I=g.get(T);I?I.setValue(Z):g.addControl(T,new d.p4(Z))}}})}getUpdatedFacet(n,e,i){const a=(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}});return a.isPrivate=!e.value.visible,a}getCreatedFacetValues(n,e,i){return Object.values(e.controls).filter(a=>a.value.id&&this.isTempId(a.value.id)).map(a=>a.value).map(a=>(0,s.iSy)({translatable:{...a,translations:[]},updatedFields:a??{},customFieldConfig:this.customValueFields,languageCode:i,defaultTranslation:{languageCode:i,name:""}})).map(a=>({facetId:n.id,code:a.code??"",...a,id:void 0}))}getUpdatedFacetValues(n,e,i){const a=n.values.filter(c=>{const l=e.get(c.id);return l&&l.dirty&&l.value.id}),r=Object.values(e.controls).filter(c=>c.dirty&&!this.isTempId(c.value.id)).map(c=>c.value);if(a.length!==r.length)throw new Error((0,p.J)("error.facet-value-form-values-do-not-match"));return a.map((c,l)=>(0,s.iSy)({translatable:c,updatedFields:r[l],customFieldConfig:this.customValueFields,languageCode:i,defaultTranslation:{languageCode:i,name:""}})).filter(ce.notNullOrUndefined)}createTempId(){return`temp-${Math.random().toString(36).substr(2,9)}`}isTempId(n){return n.startsWith("temp-")}}(Bt=Je).\u0275fac=function(n){return new(n||Bt)(t.Y36(t.sBO),t.Y36(s.DoR),t.Y36(d.qu),t.Y36(s.gqp),t.Y36(s.Z7U))},Bt.\u0275cmp=t.Xpm({type:Bt,selectors:[["vdr-facet-detail"]],features:[t.qOj],decls:44,vars:43,consts:[[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],[1,"form",3,"formGroup"],["formGroupName","facet"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],[3,"entity",4,"ngIf"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","code",3,"label"],["id","code","type","text","formControlName","code",3,"readonly"],[3,"title",4,"ngIf"],["locationId","facet-detail",3,"entity$","detailForm"],[3,"title","paddingX",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"entity"],[3,"title"],["entityName","Facet",3,"customFields","customFieldsFormGroup","readonly"],[3,"title","paddingX"],["vdrCardControls",""],[4,"ngIf"],["type","button","class","button m-3",3,"click",4,"vdrIfPermissions"],["type","text",1,"mr-3",3,"formControl","placeholder"],["formArrayName","values",1,"facet-values-list","table"],["class","facet-value",3,"formGroup",4,"ngFor","ngForOf"],[1,"pagination-wrapper"],[3,"itemsPerPage","itemsPerPageChange"],[3,"currentPage","itemsPerPage","totalItems","pageChange"],[1,"facet-value",3,"formGroup"],[1,"align-middle"],["type","text","formControlName","name",3,"readonly","input"],["type","text","formControlName","code"],["class","",4,"ngIf"],["type","button","vdrDropdownTrigger","",1,"icon-button"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",1,"delete-button",3,"disabled","click"],["shape","trash",1,"is-danger"],[1,""],["entityName","FacetValue",3,"customFields","compact","customFieldsFormGroup","readonly"],["type","button",1,"button","m-3",3,"click"],["shape","add"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()(),t.TgZ(7,"vdr-ab-right"),t._UZ(8,"vdr-action-bar-items",1),t.YNc(9,zr,3,4,"button",2),t.ALo(10,"async"),t.YNc(11,Xr,1,1,"ng-template",null,3,t.W1O),t.qZA()()(),t.TgZ(13,"form",4)(14,"vdr-page-detail-layout")(15,"vdr-page-detail-sidebar",5)(16,"vdr-card")(17,"vdr-form-field",6),t.ALo(18,"translate"),t.TgZ(19,"clr-toggle-wrapper"),t._UZ(20,"input",7),t.ALo(21,"hasPermission"),t.TgZ(22,"label",8),t.YNc(23,tc,3,3,"ng-container",9),t.YNc(24,ec,2,3,"ng-template",null,10,t.W1O),t.qZA()()()(),t.TgZ(26,"vdr-card"),t.YNc(27,nc,1,1,"vdr-page-entity-info",11),t.ALo(28,"async"),t.qZA()(),t.TgZ(29,"vdr-page-block")(30,"vdr-card",5)(31,"div",12)(32,"vdr-form-field",13),t.ALo(33,"translate"),t.TgZ(34,"input",14),t.NdJ("input",function(a){return e.updateCode(null==e.entity?null:e.entity.code,a.target.value)}),t.ALo(35,"hasPermission"),t.qZA()(),t.TgZ(36,"vdr-form-field",15),t.ALo(37,"translate"),t._UZ(38,"input",16),t.ALo(39,"hasPermission"),t.qZA()()(),t.YNc(40,oc,4,8,"vdr-card",17),t._UZ(41,"vdr-custom-detail-component-host",18),t.YNc(42,gc,7,9,"vdr-card",19),t.ALo(43,"async"),t.qZA()()()),2&n){const i=t.MAs(12),a=t.MAs(25);t.xp6(3),t.Q6J("disabled",t.lcZ(4,19,e.isNew$))("availableLanguageCodes",t.lcZ(5,21,e.availableLanguages$))("currentLanguageCode",t.lcZ(6,23,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(10,25,e.isNew$))("ngIfElse",i),t.xp6(4),t.Q6J("formGroup",e.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(18,27,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(21,29,e.updatePermission)),t.xp6(3),t.Q6J("ngIf",null==e.detailForm.value.facet?null:e.detailForm.value.facet.visible)("ngIfElse",a),t.xp6(4),t.Q6J("ngIf",t.lcZ(28,31,e.entity$)),t.xp6(5),t.Q6J("label",t.lcZ(33,33,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(35,35,e.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(37,37,"common.code")),t.xp6(2),t.Q6J("readonly",!t.lcZ(39,39,e.updatePermission)),t.xp6(2),t.Q6J("ngIf",e.customFields.length),t.xp6(1),t.Q6J("entity$",e.entity$)("detailForm",e.detailForm),t.xp6(1),t.Q6J("ngIf",!t.lcZ(43,41,e.isNew$))}},dependencies:[f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.oH,d.sg,d.u,d.x0,d.CE,x.Kk,x.BN,x.mz,$e.w,Se.L,$.h,L.y,E.S,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Te.x,Kr.V,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,W.D,_.Ov,he._s,b.X$,B.j],styles:[".visible-toggle[_ngcontent-%COMP%]{margin-top:-3px!important}tr.facet-value[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{vertical-align:middle}.pagination-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:var(--card-padding)}"],changeDetection:0});const Zn=(0,s.wwB)({location:"facet-list",requiresPermission:o=>o.includes(s.y3$.DeleteFacet)||o.includes(s.y3$.DeleteCatalog),getItemName:o=>o.name,shouldRetryItem:(o,n)=>!!o.message,bulkDelete:(o,n,e)=>o.facet.deleteFacets(n,e).pipe((0,h.U)(i=>i.deleteFacets))}),An=(0,s.z1G)({location:"facet-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateFacet),getItemName:o=>o.name,bulkAssignToChannel:(o,n,e)=>o.facet.assignFacetsToChannel({facetIds:n,channelId:e}).pipe((0,h.U)(i=>i.assignFacetsToChannel))}),Pn=(0,s.RBx)({location:"facet-list",requiresPermission:o=>o.includes(s.y3$.DeleteCatalog)||o.includes(s.y3$.DeleteFacet),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e,i)=>o.facet.removeFacetsFromChannel({channelId:e,facetIds:n,force:i}).pipe((0,h.U)(a=>a.removeFacetsFromChannel)),isErrorResult:o=>"FacetInUseError"===o.__typename?o.message:void 0}),fc={location:"facet-list",label:(0,p.J)("catalog.remove-from-channel"),getTranslationVars:({injector:o})=>(0,s.PDO)(o.get(s.DoR)),icon:"layers",iconClass:"is-warning",requiresPermission:o=>o.includes(s.y3$.UpdateFacet)||o.includes(s.y3$.UpdateCatalog),isVisible:({injector:o})=>(0,s._Nz)(o.get(s.DoR)),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp),l=r.client.userStatus().mapSingle(({userStatus:g})=>g.activeChannelId);function m(g,v){return a.dialog({title:(0,p.J)("catalog.remove-from-channel"),translationVars:{count:n.length},size:v?"lg":"md",body:v,buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:v?(0,p.J)("common.force-remove"):(0,p.J)("common.remove"),returnValue:!0}]}).pipe((0,C.w)(T=>T?l.pipe((0,C.w)(Z=>Z?r.facet.removeFacetsFromChannel({channelId:Z,facetIds:g,force:!!v}):F.E),(0,h.U)(Z=>Z.removeFacetsFromChannel)):F.E))}m((0,J.T)(n.map(g=>g.id))).pipe((0,C.w)(g=>{let v=n.length;const T=[],Z=[];let I=0;for(const Q of g)"FacetInUseError"===Q.__typename&&(T.push(Q.message),Z.push(n[I]?.id),v--),I++;return 0<Z.length?m(Z,T.join("\n")).pipe((0,h.U)(Q=>{const D=Q.filter(z=>"FacetInUseError"===z.__typename).length;return n.length-D})):(0,k.of)(v)}),(0,C.w)(g=>g?(0,s.PDO)(r).then(({channelCode:v})=>({channelCode:v,removedCount:g})):F.E)).subscribe(({removedCount:g,channelCode:v})=>{g&&(e.refresh(),i(),c.success((0,p.J)("catalog.notify-remove-facets-from-channel-success"),{count:g,channelCode:v}))})}};var jt;const hc=function(){return["./create"]};function vc(o,n){1&o&&(t.TgZ(0,"a",14),t._UZ(1,"clr-icon",15),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,hc)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-facet")," "))}function Cc(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function xc(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function bc(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}const Tc=function(o){return["./",o]};function Zc(o,n){if(1&o&&(t.TgZ(0,"a",16)(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"clr-icon",17),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.VKq(2,Tc,e.id)),t.xp6(2),t.Oqu(e.name)}}function Ac(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.code," ")}}function Pc(o,n){1&o&&(t.TgZ(0,"vdr-chip",20),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.private")))}function yc(o,n){1&o&&(t.TgZ(0,"vdr-chip",21),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.public")))}function Fc(o,n){if(1&o&&(t.YNc(0,Pc,3,3,"vdr-chip",18),t.YNc(1,yc,3,3,"vdr-chip",19)),2&o){const e=n.item;t.Q6J("ngIf",e.isPrivate),t.xp6(1),t.Q6J("ngIf",!e.isPrivate)}}function Ic(o,n){if(1&o&&t._UZ(0,"vdr-facet-value-chip",26),2&o){const e=n.$implicit;t.Q6J("facetValue",e)("removable",!1)("displayFacetName",!1)}}function Lc(o,n){if(1&o&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.qZA()),2&o){const e=t.oxw().item;t.xp6(1),t.hij(" ... + ",e.valueList.totalItems-e.valueList.items.length," ")}}function Oc(o,n){if(1&o&&(t.ynx(0),t._UZ(1,"clr-icon",15),t._uU(2),t.BQk()),2&o){const e=t.oxw(2).item,i=t.oxw();t.xp6(2),t.hij(" ",e.valueList.totalItems-i.initialLimit," ")}}function kc(o,n){1&o&&t._UZ(0,"clr-icon",30)}function Jc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",27),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw();return t.KtG(r.toggleDisplayLimit(a))}),t.YNc(1,Oc,3,1,"ng-container",28),t.YNc(2,kc,1,0,"ng-template",null,29,t.W1O),t.qZA()}if(2&o){const e=t.MAs(3),i=t.oxw().item,a=t.oxw();t.xp6(1),t.Q6J("ngIf",(a.displayLimit[i.id]||0)<i.valueList.items.length)("ngIfElse",e)}}function Dc(o,n){if(1&o&&(t.TgZ(0,"div",22),t.YNc(1,Ic,1,3,"vdr-facet-value-chip",23),t.ALo(2,"slice"),t.YNc(3,Lc,2,1,"vdr-chip",24),t.YNc(4,Jc,4,2,"button",25),t.qZA()),2&o){const e=n.item,i=t.oxw();t.xp6(1),t.Q6J("ngForOf",t.Dn7(2,3,e.valueList.items,0,i.displayLimit[e.id]||3)),t.xp6(2),t.Q6J("ngIf",i.displayLimit[e.id]<e.valueList.totalItems&&(i.displayLimit[e.id]||0)===e.valueList.items.length),t.xp6(1),t.Q6J("ngIf",e.valueList.items.length>i.initialLimit)}}function wc(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",31),2&o){const e=n.$implicit,i=t.oxw();t.Q6J("customField",e)("sorts",i.sorts)}}const Vc=function(){return["CreateCatalog","CreateFacet"]},Mc=y.Ps`
|
|
89
|
+
`;class Je extends s.VE7{constructor(n,e,i,a,r){super(),this.changeDetector=n,this.dataService=e,this.formBuilder=i,this.notificationService=a,this.modalService=r,this.customFields=this.getCustomFieldConfig("Facet"),this.customValueFields=this.getCustomFieldConfig("FacetValue"),this.detailForm=this.formBuilder.group({facet:this.formBuilder.group({code:["",d.kI.required],name:"",visible:!0,customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),values:this.formBuilder.record({})}),this.currentPage=1,this.itemsPerPage=10,this.filterControl=new d.NI(""),this.values$=new V.X([]),this.filteredValues$=new Kr.y,this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateFacet]}ngOnInit(){this.init(),this.filteredValues$=(0,P.a)([this.values$,this.filterControl.valueChanges.pipe((0,S.O)(""))]).pipe((0,h.U)(([n,e])=>{const i=e?.toLowerCase().trim();return i?n.filter(a=>a.name.toLowerCase().includes(i)||a.code.toLowerCase().includes(i)):n}),(0,q.b)(()=>{this.currentPage=1}))}ngOnDestroy(){this.destroy()}updateCode(n,e){if(!n){const i=this.detailForm.get(["facet","code"]);i&&i.pristine&&i.setValue((0,G.U)(e,"-"))}}updateValueCode(n,e,i){if(!n){const a=this.detailForm.get(["values",i,"code"]);a&&a.pristine&&a.setValue((0,G.U)(e,"-"))}}customValueFieldIsSet(n,e){return!!this.detailForm.get(["values",n,"customFields",e])}addFacetValue(){const n=this.detailForm.get("values");if(n){const e=this.createTempId(),i=this.formBuilder.group({id:e,name:["",d.kI.required],code:"",customFields:this.formBuilder.group({})}),a={id:e,name:"",code:""};if(this.customValueFields.length){const l=new d.nJ({});a.customFields={};for(const m of this.customValueFields){const g=m.name;l.addControl(g,new d.p4)}i.addControl("customFields",l)}n.addControl(e,i);const r=this.values$.value,c=this.currentPage*this.itemsPerPage-1;r.splice(c,0,a),this.values$.next(r)}}create(){const n=this.detailForm.get("facet");if(!n||!n.dirty)return;const e=this.getUpdatedFacet({id:"",createdAt:"",updatedAt:"",isPrivate:!1,languageCode:this.languageCode,name:"",code:"",translations:[],values:[]},n,this.languageCode);this.dataService.facet.createFacet(e).subscribe(i=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"Facet"}),this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",i.createFacet.id],{relativeTo:this.route})},i=>{this.notificationService.error((0,p.J)("common.notify-create-error"),{entity:"Facet"})})}save(){const n=this.detailForm.get("values");(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([e,i])=>{const a=this.detailForm.get("facet"),r=[];if(a&&a.dirty){const c=this.getUpdatedFacet(e,a,i);c&&r.push(this.dataService.facet.updateFacet(c))}if(n&&n.dirty){const c=this.getCreatedFacetValues(e,n,i);c.length&&r.push(this.dataService.facet.createFacetValues(c).pipe((0,C.w)(()=>this.dataService.query(s.m_w,{id:this.id}).single$)));const l=this.getUpdatedFacetValues(e,n,i);l.length&&r.push(this.dataService.facet.updateFacetValues(l))}return(0,at.D)(r)})).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"Facet"})},e=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"Facet"})})}deleteFacetValue(n){if(this.isTempId(n)){const e=this.detailForm.get("values");e&&e.removeControl(n);const i=this.values$.value;this.values$.next(i.filter(a=>a.id!==n))}else this.showModalAndDelete(n).pipe((0,C.w)(e=>e.result===s.PcR.DELETED?[!0]:this.showModalAndDelete(n,e.message||"").pipe((0,h.U)(i=>i.result===s.PcR.DELETED))),(0,C.w)(e=>e?this.dataService.query(s.m_w,{id:this.id}).single$:[])).subscribe(()=>{const e=this.detailForm.get("values");e&&e.removeControl(n),this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"FacetValue"})},e=>{this.notificationService.error((0,p.J)("common.notify-delete-error"),{entity:"FacetValue"})})}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-facet-value"),body:e,buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(i=>i?this.dataService.facet.deleteFacetValues([n],!!e):F.E),(0,h.U)(i=>i.deleteFacetValues[0]))}setFormValues(n,e){const i=(0,s.ZIM)(n,e);this.detailForm.patchValue({facet:{code:n.code,visible:!n.isPrivate,name:i?.name??""}}),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["facet","customFields"]),n,i);const a=this.detailForm.get("values");this.values$.next([...n.values]),n.values.forEach(r=>{const c=(0,s.ZIM)(r,e),l={id:r.id,code:r.code,name:c?c.name:""};let m=a.get(r.id);if(m?(m.get("id")?.setValue(l.id),m.get("code")?.setValue(l.code),m.get("name")?.setValue(l.name)):(m=this.formBuilder.group(l),a.addControl(r.id,m)),this.customValueFields.length){let g=m.get(["customFields"]);if(g||(g=new d.nJ({}),m.addControl("customFields",g)),g)for(const v of this.customValueFields){const T=v.name,Z="localeString"===v.type?c?.customFields?.[T]:r.customFields[T],I=g.get(T);I?I.setValue(Z):g.addControl(T,new d.p4(Z))}}})}getUpdatedFacet(n,e,i){const a=(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}});return a.isPrivate=!e.value.visible,a}getCreatedFacetValues(n,e,i){return Object.values(e.controls).filter(a=>a.value.id&&this.isTempId(a.value.id)).map(a=>a.value).map(a=>(0,s.iSy)({translatable:{...a,translations:[]},updatedFields:a??{},customFieldConfig:this.customValueFields,languageCode:i,defaultTranslation:{languageCode:i,name:""}})).map(a=>({facetId:n.id,code:a.code??"",...a,id:void 0}))}getUpdatedFacetValues(n,e,i){const a=n.values.filter(c=>{const l=e.get(c.id);return l&&l.dirty&&l.value.id}),r=Object.values(e.controls).filter(c=>c.dirty&&!this.isTempId(c.value.id)).map(c=>c.value);if(a.length!==r.length)throw new Error((0,p.J)("error.facet-value-form-values-do-not-match"));return a.map((c,l)=>(0,s.iSy)({translatable:c,updatedFields:r[l],customFieldConfig:this.customValueFields,languageCode:i,defaultTranslation:{languageCode:i,name:""}})).filter(ce.notNullOrUndefined)}createTempId(){return`temp-${Math.random().toString(36).substr(2,9)}`}isTempId(n){return n.startsWith("temp-")}}(Bt=Je).\u0275fac=function(n){return new(n||Bt)(t.Y36(t.sBO),t.Y36(s.DoR),t.Y36(d.qu),t.Y36(s.gqp),t.Y36(s.Z7U))},Bt.\u0275cmp=t.Xpm({type:Bt,selectors:[["vdr-facet-detail"]],features:[t.qOj],decls:44,vars:43,consts:[[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],[1,"form",3,"formGroup"],["formGroupName","facet"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],[3,"entity",4,"ngIf"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","code",3,"label"],["id","code","type","text","formControlName","code",3,"readonly"],[3,"title",4,"ngIf"],["locationId","facet-detail",3,"entity$","detailForm"],[3,"title","paddingX",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"entity"],[3,"title"],["entityName","Facet",3,"customFields","customFieldsFormGroup","readonly"],[3,"title","paddingX"],["vdrCardControls",""],[4,"ngIf"],["type","button","class","button m-3",3,"click",4,"vdrIfPermissions"],["type","text",1,"mr-3",3,"formControl","placeholder"],["formArrayName","values",1,"facet-values-list","table"],["class","facet-value",3,"formGroup",4,"ngFor","ngForOf"],[1,"pagination-wrapper"],[3,"itemsPerPage","itemsPerPageChange"],[3,"currentPage","itemsPerPage","totalItems","pageChange"],[1,"facet-value",3,"formGroup"],[1,"align-middle"],["type","text","formControlName","name",3,"readonly","input"],["type","text","formControlName","code"],["class","",4,"ngIf"],["type","button","vdrDropdownTrigger","",1,"icon-button"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",1,"delete-button",3,"disabled","click"],["shape","trash",1,"is-danger"],[1,""],["entityName","FacetValue",3,"customFields","compact","customFieldsFormGroup","readonly"],["type","button",1,"button","m-3",3,"click"],["shape","add"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()(),t.TgZ(7,"vdr-ab-right"),t._UZ(8,"vdr-action-bar-items",1),t.YNc(9,Wr,3,4,"button",2),t.ALo(10,"async"),t.YNc(11,tc,1,1,"ng-template",null,3,t.W1O),t.qZA()()(),t.TgZ(13,"form",4)(14,"vdr-page-detail-layout")(15,"vdr-page-detail-sidebar",5)(16,"vdr-card")(17,"vdr-form-field",6),t.ALo(18,"translate"),t.TgZ(19,"clr-toggle-wrapper"),t._UZ(20,"input",7),t.ALo(21,"hasPermission"),t.TgZ(22,"label",8),t.YNc(23,ec,3,3,"ng-container",9),t.YNc(24,nc,2,3,"ng-template",null,10,t.W1O),t.qZA()()()(),t.TgZ(26,"vdr-card"),t.YNc(27,oc,1,1,"vdr-page-entity-info",11),t.ALo(28,"async"),t.qZA()(),t.TgZ(29,"vdr-page-block")(30,"vdr-card",5)(31,"div",12)(32,"vdr-form-field",13),t.ALo(33,"translate"),t.TgZ(34,"input",14),t.NdJ("input",function(a){return e.updateCode(null==e.entity?null:e.entity.code,a.target.value)}),t.ALo(35,"hasPermission"),t.qZA()(),t.TgZ(36,"vdr-form-field",15),t.ALo(37,"translate"),t._UZ(38,"input",16),t.ALo(39,"hasPermission"),t.qZA()()(),t.YNc(40,ic,4,8,"vdr-card",17),t._UZ(41,"vdr-custom-detail-component-host",18),t.YNc(42,_c,7,9,"vdr-card",19),t.ALo(43,"async"),t.qZA()()()),2&n){const i=t.MAs(12),a=t.MAs(25);t.xp6(3),t.Q6J("disabled",t.lcZ(4,19,e.isNew$))("availableLanguageCodes",t.lcZ(5,21,e.availableLanguages$))("currentLanguageCode",t.lcZ(6,23,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(10,25,e.isNew$))("ngIfElse",i),t.xp6(4),t.Q6J("formGroup",e.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(18,27,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(21,29,e.updatePermission)),t.xp6(3),t.Q6J("ngIf",null==e.detailForm.value.facet?null:e.detailForm.value.facet.visible)("ngIfElse",a),t.xp6(4),t.Q6J("ngIf",t.lcZ(28,31,e.entity$)),t.xp6(5),t.Q6J("label",t.lcZ(33,33,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(35,35,e.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(37,37,"common.code")),t.xp6(2),t.Q6J("readonly",!t.lcZ(39,39,e.updatePermission)),t.xp6(2),t.Q6J("ngIf",e.customFields.length),t.xp6(1),t.Q6J("entity$",e.entity$)("detailForm",e.detailForm),t.xp6(1),t.Q6J("ngIf",!t.lcZ(43,41,e.isNew$))}},dependencies:[f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.oH,d.sg,d.u,d.x0,d.CE,x.Kk,x.BN,x.mz,$e.w,Se.L,$.h,L.y,E.S,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Te.x,zr.V,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,W.D,_.Ov,he._s,b.X$,B.j],styles:[".visible-toggle[_ngcontent-%COMP%]{margin-top:-3px!important}tr.facet-value[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{vertical-align:middle}.pagination-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:var(--card-padding)}"],changeDetection:0});const Zn=(0,s.wwB)({location:"facet-list",requiresPermission:o=>o.includes(s.y3$.DeleteFacet)||o.includes(s.y3$.DeleteCatalog),getItemName:o=>o.name,shouldRetryItem:(o,n)=>!!o.message,bulkDelete:(o,n,e)=>o.facet.deleteFacets(n,e).pipe((0,h.U)(i=>i.deleteFacets))}),An=(0,s.z1G)({location:"facet-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateFacet),getItemName:o=>o.name,bulkAssignToChannel:(o,n,e)=>o.facet.assignFacetsToChannel({facetIds:n,channelId:e}).pipe((0,h.U)(i=>i.assignFacetsToChannel))}),Pn=(0,s.RBx)({location:"facet-list",requiresPermission:o=>o.includes(s.y3$.DeleteCatalog)||o.includes(s.y3$.DeleteFacet),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e,i)=>o.facet.removeFacetsFromChannel({channelId:e,facetIds:n,force:i}).pipe((0,h.U)(a=>a.removeFacetsFromChannel)),isErrorResult:o=>"FacetInUseError"===o.__typename?o.message:void 0}),hc={location:"facet-list",label:(0,p.J)("catalog.remove-from-channel"),getTranslationVars:({injector:o})=>(0,s.PDO)(o.get(s.DoR)),icon:"layers",iconClass:"is-warning",requiresPermission:o=>o.includes(s.y3$.UpdateFacet)||o.includes(s.y3$.UpdateCatalog),isVisible:({injector:o})=>(0,s._Nz)(o.get(s.DoR)),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp),l=r.client.userStatus().mapSingle(({userStatus:g})=>g.activeChannelId);function m(g,v){return a.dialog({title:(0,p.J)("catalog.remove-from-channel"),translationVars:{count:n.length},size:v?"lg":"md",body:v,buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:v?(0,p.J)("common.force-remove"):(0,p.J)("common.remove"),returnValue:!0}]}).pipe((0,C.w)(T=>T?l.pipe((0,C.w)(Z=>Z?r.facet.removeFacetsFromChannel({channelId:Z,facetIds:g,force:!!v}):F.E),(0,h.U)(Z=>Z.removeFacetsFromChannel)):F.E))}m((0,J.T)(n.map(g=>g.id))).pipe((0,C.w)(g=>{let v=n.length;const T=[],Z=[];let I=0;for(const Q of g)"FacetInUseError"===Q.__typename&&(T.push(Q.message),Z.push(n[I]?.id),v--),I++;return 0<Z.length?m(Z,T.join("\n")).pipe((0,h.U)(Q=>{const D=Q.filter(z=>"FacetInUseError"===z.__typename).length;return n.length-D})):(0,k.of)(v)}),(0,C.w)(g=>g?(0,s.PDO)(r).then(({channelCode:v})=>({channelCode:v,removedCount:g})):F.E)).subscribe(({removedCount:g,channelCode:v})=>{g&&(e.refresh(),i(),c.success((0,p.J)("catalog.notify-remove-facets-from-channel-success"),{count:g,channelCode:v}))})}};var jt;const vc=function(){return["./create"]};function Cc(o,n){1&o&&(t.TgZ(0,"a",14),t._UZ(1,"clr-icon",15),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,vc)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-facet")," "))}function xc(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function bc(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function Tc(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}const Zc=function(o){return["./",o]};function Ac(o,n){if(1&o&&(t.TgZ(0,"a",16)(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"clr-icon",17),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.VKq(2,Zc,e.id)),t.xp6(2),t.Oqu(e.name)}}function Pc(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.code," ")}}function yc(o,n){1&o&&(t.TgZ(0,"vdr-chip",20),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.private")))}function Fc(o,n){1&o&&(t.TgZ(0,"vdr-chip",21),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.public")))}function Ic(o,n){if(1&o&&(t.YNc(0,yc,3,3,"vdr-chip",18),t.YNc(1,Fc,3,3,"vdr-chip",19)),2&o){const e=n.item;t.Q6J("ngIf",e.isPrivate),t.xp6(1),t.Q6J("ngIf",!e.isPrivate)}}function Lc(o,n){if(1&o&&t._UZ(0,"vdr-facet-value-chip",26),2&o){const e=n.$implicit;t.Q6J("facetValue",e)("removable",!1)("displayFacetName",!1)}}function Oc(o,n){if(1&o&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.qZA()),2&o){const e=t.oxw().item;t.xp6(1),t.hij(" ... + ",e.valueList.totalItems-e.valueList.items.length," ")}}function kc(o,n){if(1&o&&(t.ynx(0),t._UZ(1,"clr-icon",15),t._uU(2),t.BQk()),2&o){const e=t.oxw(2).item,i=t.oxw();t.xp6(2),t.hij(" ",e.valueList.totalItems-i.initialLimit," ")}}function Jc(o,n){1&o&&t._UZ(0,"clr-icon",30)}function Dc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",27),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item,r=t.oxw();return t.KtG(r.toggleDisplayLimit(a))}),t.YNc(1,kc,3,1,"ng-container",28),t.YNc(2,Jc,1,0,"ng-template",null,29,t.W1O),t.qZA()}if(2&o){const e=t.MAs(3),i=t.oxw().item,a=t.oxw();t.xp6(1),t.Q6J("ngIf",(a.displayLimit[i.id]||0)<i.valueList.items.length)("ngIfElse",e)}}function wc(o,n){if(1&o&&(t.TgZ(0,"div",22),t.YNc(1,Lc,1,3,"vdr-facet-value-chip",23),t.ALo(2,"slice"),t.YNc(3,Oc,2,1,"vdr-chip",24),t.YNc(4,Dc,4,2,"button",25),t.qZA()),2&o){const e=n.item,i=t.oxw();t.xp6(1),t.Q6J("ngForOf",t.Dn7(2,3,e.valueList.items,0,i.displayLimit[e.id]||3)),t.xp6(2),t.Q6J("ngIf",i.displayLimit[e.id]<e.valueList.totalItems&&(i.displayLimit[e.id]||0)===e.valueList.items.length),t.xp6(1),t.Q6J("ngIf",e.valueList.items.length>i.initialLimit)}}function Vc(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",31),2&o){const e=n.$implicit,i=t.oxw();t.Q6J("customField",e)("sorts",i.sorts)}}const Mc=function(){return["CreateCatalog","CreateFacet"]},Uc=y.Ps`
|
|
90
90
|
query GetFacetList($options: FacetListOptions) {
|
|
91
91
|
facets(options: $options) {
|
|
92
92
|
items {
|
|
@@ -96,14 +96,14 @@
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
${s.$ip}
|
|
99
|
-
`;class De extends s.$ms{constructor(n){super(),this.dataService=n,this.initialLimit=3,this.displayLimit={},this.customFields=this.getCustomFieldConfig("Facet"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilter({name:"visibility",type:{kind:"boolean"},label:(0,p.J)("common.visibility"),toFilterInput:e=>({isPrivate:{eq:!e}})}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("createdAt","DESC").addSort({name:"id"}).addSort({name:"createdAt"}).addSort({name:"updatedAt"}).addSort({name:"name"}).addSort({name:"code"}).addCustomFieldSorts(this.customFields).connectToRoute(this.route),super.configure({document:s.JJ4,getItems:e=>e.facets,setVariables:(e,i)=>({options:{skip:e,take:i,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.filters.valueChanges,this.sorts.valueChanges]})}toggleDisplayLimit(n){this.displayLimit[n.id]===n.valueList.items.length?this.displayLimit[n.id]=this.initialLimit:this.displayLimit[n.id]=n.valueList.items.length}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}}var Rt;(jt=De).\u0275fac=function(n){return new(n||jt)(t.Y36(s.DoR))},jt.\u0275cmp=t.Xpm({type:jt,selectors:[["vdr-facet-list"]],features:[t.qOj],decls:39,vars:57,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],["id","facet-list",1,"mt-2",3,"items","itemsPerPage","totalItems","currentPage","filters","pageChange","itemsPerPageChange"],["locationId","facet-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault","sort"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","name",3,"heading","optional","sort"],["id","code",3,"heading"],["id","visibility",3,"heading"],["id","values",3,"heading"],[3,"customField","sorts",4,"ngFor","ngForOf"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["colorType","warning",4,"ngIf"],["colorType","success",4,"ngIf"],["colorType","warning"],["colorType","success"],[1,"facet-values-list"],[3,"facetValue","removable","displayFacetName",4,"ngFor","ngForOf"],[4,"ngIf"],["class","button-small",3,"click",4,"ngIf"],[3,"facetValue","removable","displayFacetName"],[1,"button-small",3,"click"],[4,"ngIf","ngIfElse"],["collapse",""],["shape","minus"],[3,"customField","sorts"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()(),t.TgZ(6,"vdr-ab-right"),t._UZ(7,"vdr-action-bar-items",1),t.YNc(8,vc,4,5,"a",2),t.qZA()()(),t.TgZ(9,"vdr-data-table-2",3),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(10,"async"),t.ALo(11,"async"),t.ALo(12,"async"),t.ALo(13,"async"),t._UZ(14,"vdr-bulk-action-menu",4)(15,"vdr-dt2-search",5),t.ALo(16,"translate"),t.TgZ(17,"vdr-dt2-column",6),t.ALo(18,"translate"),t.YNc(19,Cc,1,1,"ng-template"),t.qZA(),t.TgZ(20,"vdr-dt2-column",7),t.ALo(21,"translate"),t.YNc(22,xc,2,4,"ng-template"),t.qZA(),t.TgZ(23,"vdr-dt2-column",8),t.ALo(24,"translate"),t.YNc(25,bc,2,4,"ng-template"),t.qZA(),t.TgZ(26,"vdr-dt2-column",9),t.ALo(27,"translate"),t.YNc(28,Zc,4,4,"ng-template"),t.qZA(),t.TgZ(29,"vdr-dt2-column",10),t.ALo(30,"translate"),t.YNc(31,Ac,1,1,"ng-template"),t.qZA(),t.TgZ(32,"vdr-dt2-column",11),t.ALo(33,"translate"),t.YNc(34,Fc,2,2,"ng-template"),t.qZA(),t.TgZ(35,"vdr-dt2-column",12),t.ALo(36,"translate"),t.YNc(37,Dc,5,7,"ng-template"),t.qZA(),t.YNc(38,wc,1,2,"vdr-dt2-custom-field-column",13),t.qZA()),2&n&&(t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(4,28,e.availableLanguages$))("currentLanguageCode",t.lcZ(5,30,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(56,Vc)),t.xp6(1),t.Q6J("items",t.lcZ(10,32,e.items$))("itemsPerPage",t.lcZ(11,34,e.itemsPerPage$))("totalItems",t.lcZ(12,36,e.totalItems$))("currentPage",t.lcZ(13,38,e.currentPage$))("filters",e.filters),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(16,40,"catalog.filter-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(18,42,"common.id"))("hiddenByDefault",!0)("sort",e.sorts.get("id")),t.xp6(3),t.Q6J("heading",t.lcZ(21,44,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(24,46,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(27,48,"common.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(30,50,"common.code")),t.xp6(3),t.Q6J("heading",t.lcZ(33,52,"common.visibility")),t.xp6(3),t.Q6J("heading",t.lcZ(36,54,"catalog.values")),t.xp6(3),t.Q6J("ngForOf",e.customFields))},dependencies:[f.qvL,_.sg,_.O5,A.rH,x.Kk,x.BN,x.mz,j.Y,xe.q,E.S,N.H,K.W,Ie.c,lt.e,R.U,et.J,Le.j,w.z,_.Ov,_.OU,b.X$,X.H],styles:[".facet-values-list[_ngcontent-%COMP%]{max-width:500px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}"]});const Uc=["optionGroupName"];function Nc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",4)(1,"div",5)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.TgZ(5,"input",6,7),t.NdJ("ngModelChange",function(a){const c=t.CHM(e).$implicit;return t.KtG(c.name=a)})("keydown.enter",function(a){t.CHM(e);const r=t.MAs(12),c=t.oxw();return t.KtG(c.handleEnter(a,r))}),t.qZA()(),t.TgZ(7,"div",8)(8,"label"),t._uU(9),t.ALo(10,"translate"),t.qZA(),t.TgZ(11,"vdr-option-value-input",9,10),t.NdJ("ngModelChange",function(a){const c=t.CHM(e).$implicit;return t.KtG(c.values=a)})("ngModelChange",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.generateVariants())})("edit",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.generateVariants())}),t.qZA()(),t.TgZ(13,"div",11)(14,"button",12),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.removeOption(r.name))}),t.ALo(15,"translate"),t._UZ(16,"clr-icon",13),t.qZA()()()}if(2&o){const e=n.$implicit;t.xp6(3),t.Oqu(t.lcZ(4,7,"catalog.option")),t.xp6(2),t.Q6J("ngModel",e.name),t.xp6(4),t.Oqu(t.lcZ(10,9,"catalog.option-values")),t.xp6(2),t.Q6J("ngModel",e.values)("groupName",e.name)("disabled",""===e.name),t.xp6(3),t.Q6J("title",t.lcZ(15,11,"catalog.remove-option"))}}function Qc(o,n){1&o&&(t.TgZ(0,"clr-alert",18)(1,"clr-alert-item")(2,"span",19),t._uU(3),t.ALo(4,"translate"),t.qZA()()()),2&o&&(t.Q6J("clrAlertClosable",!1),t.xp6(3),t.hij(" ",t.lcZ(4,2,"catalog.no-stock-locations-available-on-current-channel")," "))}function qc(o,n){if(1&o&&(t.TgZ(0,"option",23),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.Q6J("value",e.id),t.xp6(1),t.hij(" ",e.name," ")}}function $c(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-form-field",20),t.ALo(1,"translate"),t.TgZ(2,"select",21),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.selectedStockLocationId=a)}),t.YNc(3,qc,2,2,"option",22),t.qZA()()}if(2&o){const e=t.oxw().ngIf,i=t.oxw();t.Q6J("label",t.lcZ(1,3,"catalog.add-stock-to-location")),t.xp6(2),t.Q6J("ngModel",i.selectedStockLocationId),t.xp6(1),t.Q6J("ngForOf",e)}}function Sc(o,n){1&o&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.create")))}function Yc(o,n){1&o&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.variant")))}function Gc(o,n){1&o&&(t.TgZ(0,"td"),t._UZ(1,"input",31),t.qZA())}function Ec(o,n){if(1&o&&(t.TgZ(0,"td"),t._uU(1),t.qZA()),2&o){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.values.join(" ")," ")}}function Bc(o,n){if(1&o&&(t.TgZ(0,"tr",27),t.YNc(1,Gc,2,0,"td",3),t.YNc(2,Ec,2,1,"td",3),t.TgZ(3,"td")(4,"vdr-form-field"),t._UZ(5,"input",28),t.ALo(6,"translate"),t.qZA()(),t.TgZ(7,"td")(8,"vdr-form-field"),t._UZ(9,"vdr-currency-input",29),t.qZA()(),t.TgZ(10,"td")(11,"vdr-form-field"),t._UZ(12,"input",30),t.qZA()()()),2&o){const e=n.$implicit,i=t.oxw(3);t.ekj("disabled",!!i.variantFormValues[e.id].value.enabled),t.Q6J("formGroup",i.variantFormValues[e.id]),t.xp6(1),t.Q6J("ngIf",1<i.variants.length),t.xp6(1),t.Q6J("ngIf",1<i.variants.length),t.xp6(3),t.Q6J("placeholder",t.lcZ(6,7,"catalog.sku")),t.xp6(4),t.Q6J("currencyCode",i.currencyCode)}}function jc(o,n){if(1&o&&(t.TgZ(0,"div",24)(1,"table",25)(2,"thead")(3,"tr"),t.YNc(4,Sc,3,3,"th",3),t.YNc(5,Yc,3,3,"th",3),t.TgZ(6,"th"),t._uU(7),t.ALo(8,"translate"),t.qZA(),t.TgZ(9,"th"),t._uU(10),t.ALo(11,"translate"),t.qZA(),t.TgZ(12,"th"),t._uU(13),t.ALo(14,"translate"),t.qZA()()(),t.YNc(15,Bc,13,9,"tr",26),t.qZA()()),2&o){const e=t.oxw(2);t.xp6(4),t.Q6J("ngIf",1<e.variants.length),t.xp6(1),t.Q6J("ngIf",1<e.variants.length),t.xp6(2),t.Oqu(t.lcZ(8,7,"catalog.sku")),t.xp6(3),t.Oqu(t.lcZ(11,9,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(14,11,"catalog.stock-on-hand")),t.xp6(2),t.Q6J("ngForOf",e.variants)("ngForTrackBy",e.trackByFn)}}function Rc(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Qc,5,4,"clr-alert",14),t.TgZ(2,"div",15),t.YNc(3,$c,4,5,"vdr-form-field",16),t.qZA(),t.YNc(4,jc,16,13,"div",17),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",0===e.length),t.xp6(2),t.Q6J("ngIf",e.length),t.xp6(1),t.Q6J("ngIf",0<e.length)}}const je="__DEFAULT_VARIANT__";class we{constructor(n,e){this.dataService=n,this.formBuilder=e,this.variantsChange=new t.vpe,this.optionGroups=[],this.variantFormValues={},this.selectedStockLocationId=null}ngOnInit(){this.dataService.settings.getActiveChannel().single$.subscribe(n=>{this.currencyCode=n.activeChannel.defaultCurrencyCode}),this.stockLocations$=this.dataService.query(s.uQH,{options:{take:999}}).refetchOnChannelChange().mapStream(({stockLocations:n})=>n.items).pipe((0,q.b)(n=>{n.length&&(this.selectedStockLocationId=n[0].id)})),this.generateVariants()}addOption(){this.optionGroups.push({name:"",values:[]});const n=this.optionGroups.length-1;setTimeout(()=>{this.groupNameInputs.get(n)?.nativeElement?.focus()})}removeOption(n){this.optionGroups=this.optionGroups.filter(e=>e.name!==n),this.generateVariants()}generateVariants(){const e=this.optionGroups.reduce((i,a)=>i+a.values.length,0)?this.optionGroups.map(i=>i.values.map(a=>a.name)):[[je]];this.variants=(0,ce.generateAllCombinations)(e).map(i=>({id:i.join("|"),values:i})),this.variants.forEach((i,a)=>{if(!this.variantFormValues[i.id]){const r=this.formBuilder.nonNullable.group({optionValues:[i.values],enabled:!0,price:this.copyFromDefault(i.id,"price",0),sku:this.copyFromDefault(i.id,"sku",""),stock:this.copyFromDefault(i.id,"stock",0)});r.valueChanges.subscribe(()=>this.onFormChange()),0===a&&(r.get("price")?.valueChanges.subscribe(c=>{this.copyValuesToPristine("price",r.get("price"))}),r.get("sku")?.valueChanges.subscribe(c=>{this.copyValuesToPristine("sku",r.get("sku"))}),r.get("stock")?.valueChanges.subscribe(c=>{this.copyValuesToPristine("stock",r.get("stock"))})),this.variantFormValues[i.id]=r}})}trackByFn(n,e){return e.values.join("|")}handleEnter(n,e){n.preventDefault(),n.stopPropagation(),e.focus()}copyValuesToPristine(n,e){e&&Object.values(this.variantFormValues).forEach(i=>{const a=i.get(n);a&&a.pristine&&a.setValue(e.value,{emitEvent:!1})})}onFormChange(){const n=this.variants.map(e=>this.variantFormValues[e.id].value).filter(e=>e.enabled);this.variantsChange.emit({groups:this.optionGroups.map(e=>({name:e.name,values:e.values.map(i=>i.name)})),variants:n,stockLocationId:this.selectedStockLocationId})}copyFromDefault(n,e,i){return n!==je?this.variantFormValues[je].get(e)?.value:i}}(Rt=we).\u0275fac=function(n){return new(n||Rt)(t.Y36(s.DoR),t.Y36(d.qu))},Rt.\u0275cmp=t.Xpm({type:Rt,selectors:[["vdr-generate-product-variants"]],viewQuery:function(n,e){if(1&n&&t.Gf(Uc,5,t.SBq),2&n){let i;t.iGM(i=t.CRH())&&(e.groupNameInputs=i)}},outputs:{variantsChange:"variantsChange"},decls:7,vars:7,consts:[["class","option-groups",4,"ngFor","ngForOf"],[1,"button","mb-2",3,"click"],["shape","plus"],[4,"ngIf"],[1,"option-groups"],[1,"name"],["placeholder","e.g. Size","clrInput","","name","name","required","",3,"ngModel","ngModelChange","keydown.enter"],["optionGroupName",""],[1,"values"],[3,"ngModel","groupName","disabled","ngModelChange","edit"],["optionValueInputComponent",""],[1,"remove-group"],[1,"button-small","mt-2",3,"title","click"],["shape","trash"],["clrAlertType","warning","class","",3,"clrAlertClosable",4,"ngIf"],[1,"form-grid","mb-2"],[3,"label",4,"ngIf"],["class","variants-preview",4,"ngIf"],["clrAlertType","warning",1,"",3,"clrAlertClosable"],[1,"alert-text"],[3,"label"],[3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"variants-preview"],[1,"table"],[3,"disabled","formGroup",4,"ngFor","ngForOf","ngForTrackBy"],[3,"formGroup"],["type","text","formControlName","sku",3,"placeholder"],["formControlName","price",3,"currencyCode"],["type","number","formControlName","stock","min","0","step","1"],["type","checkbox","formControlName","enabled","clrCheckbox",""]],template:function(n,e){1&n&&(t.YNc(0,Nc,17,13,"div",0),t.TgZ(1,"button",1),t.NdJ("click",function(){return e.addOption()}),t._UZ(2,"clr-icon",2),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.YNc(5,Rc,5,3,"ng-container",3),t.ALo(6,"async")),2&n&&(t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(4,3,"catalog.add-option"),"\n"),t.xp6(2),t.Q6J("ngIf",t.lcZ(6,5,e.stockLocations$)))},dependencies:[f.TIm,f.CyW,f.I9z,f.q0d,f.qvL,f.MgK,f.KKC,f.xRP,_.sg,_.O5,d.YN,d.Kr,d.Fj,d.wV,d.Wl,d.EJ,d.JJ,d.JL,d.Q7,d.qQ,d.On,d.sg,d.u,pe.K,$.h,L.y,pt,_.Ov,b.X$],styles:["[_nghost-%COMP%]{display:block;margin-bottom:120px}.option-groups[_ngcontent-%COMP%]{display:flex}.values[_ngcontent-%COMP%]{flex:1;margin:0 6px}.remove-group[_ngcontent-%COMP%]{padding-top:18px}.variants-preview[_ngcontent-%COMP%] tr.disabled[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}"]});var Ht,Hc=u(2058),yn=u(7625),Fn=u(6010),Kc=u(2770),zc=u(176),Wc=u(3123);function Xc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-page-block")(1,"vdr-language-selector",15),t.NdJ("languageCodeChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.setLanguage(a))}),t.ALo(2,"async"),t.ALo(3,"async"),t.qZA()()}if(2&o){const e=t.oxw();t.xp6(1),t.Q6J("availableLanguageCodes",t.lcZ(2,2,e.availableLanguages$))("currentLanguageCode",t.lcZ(3,4,e.contentLanguage$))}}function ts(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function es(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function ns(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function os(o,n){if(1&o&&(t._UZ(0,"img",19),t.ALo(1,"assetPreview")),2&o){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function is(o,n){1&o&&(t.TgZ(0,"div",20),t._UZ(1,"clr-icon",21),t.qZA())}function as(o,n){if(1&o&&(t.TgZ(0,"div",16),t.YNc(1,os,2,4,"img",17),t.YNc(2,is,2,0,"ng-template",null,18,t.W1O),t.qZA()),2&o){const e=n.item,i=t.MAs(3);t.xp6(1),t.Q6J("ngIf",e.featuredAsset)("ngIfElse",i)}}const rs=function(o,n){return["/catalog/products",o,"variants",n]};function cs(o,n){if(1&o&&(t.TgZ(0,"a",22)(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"clr-icon",23),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.WLB(2,rs,e.productId,e.id)),t.xp6(2),t.Oqu(e.name)}}function ss(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.sku," ")}}function ls(o,n){1&o&&(t.TgZ(0,"vdr-chip",26),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.enabled")))}function ds(o,n){1&o&&(t.TgZ(0,"vdr-chip",27),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.disabled")))}function ps(o,n){if(1&o&&(t.YNc(0,ls,3,3,"vdr-chip",24),t.YNc(1,ds,3,3,"vdr-chip",25)),2&o){const e=n.item;t.Q6J("ngIf",e.enabled),t.xp6(1),t.Q6J("ngIf",!e.enabled)}}function us(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.price,e.currencyCode)," ")}}function ms(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.priceWithTax,e.currencyCode)," ")}}function gs(o,n){if(1&o&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&o){const e=t.oxw().$implicit;t.xp6(1),t.hij("(",e.stockAllocated," allocated)")}}function _s(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",29)(1,"div",30)(2,"div"),t._uU(3),t.YNc(4,gs,2,1,"span",31),t.qZA()()()),2&o){const e=n.$implicit;t.Q6J("title",null==e.stockLocation?null:e.stockLocation.name),t.xp6(3),t.hij(" ",e.stockOnHand,""),t.xp6(1),t.Q6J("ngIf",e.stockAllocated)}}function fs(o,n){if(1&o&&t.YNc(0,_s,5,3,"vdr-chip",28),2&o){const e=n.item;t.Q6J("ngForOf",e.stockLevels)}}function hs(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",33),2&o){const e=n.$implicit,i=t.oxw();t.Q6J("customField",e)("sorts",i.sorts)}}class Kt extends s.$ms{constructor(){super(),this.hideLanguageSelect=!1,this.customFields=this.getCustomFieldConfig("ProductVariant"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilters([{name:"name",type:{kind:"text"},label:(0,p.J)("common.name"),filterField:"name"},{name:"enabled",type:{kind:"boolean"},label:(0,p.J)("common.enabled"),filterField:"enabled"},{name:"sku",type:{kind:"text"},label:(0,p.J)("catalog.sku"),filterField:"sku"},{name:"price",type:{kind:"number",inputType:"currency"},label:(0,p.J)("common.price"),filterField:"price"},{name:"priceWithTax",type:{kind:"number",inputType:"currency"},label:(0,p.J)("common.price-with-tax"),filterField:"priceWithTax"}]).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().addSorts([{name:"id"},{name:"createdAt"},{name:"updatedAt"},{name:"name"},{name:"sku"},{name:"price"},{name:"priceWithTax"}]).addCustomFieldSorts(this.customFields).connectToRoute(this.route),this.configure({document:s.NKc,getItems:n=>n.productVariants,setVariables:(n,e)=>({options:{skip:n,take:e,filter:{sku:{contains:this.searchTermControl.value},...this.filters.createFilterInput(),...this.productId?{productId:{eq:this.productId}}:{}},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.sorts.valueChanges,this.filters.valueChanges]})}}(Ht=Kt).\u0275fac=function(n){return new(n||Ht)},Ht.\u0275cmp=t.Xpm({type:Ht,selectors:[["vdr-product-variant-list"]],inputs:{productId:"productId",hideLanguageSelect:"hideLanguageSelect",dataTableId:"dataTableId"},features:[t.qOj],decls:40,vars:65,consts:[[4,"ngIf"],[1,"mt-2",3,"id","items","itemsPerPage","totalItems","currentPage","filters","pageChange","itemsPerPageChange"],["locationId","product-variant-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault","sort"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","image",3,"heading"],["id","name",3,"heading","optional","sort"],["id","sku",3,"heading","sort"],["id","enabled",3,"heading"],["id","price",3,"heading","hiddenByDefault","sort"],["id","price-with-tax",3,"heading","sort"],["id","stock-on-hand",3,"heading","hiddenByDefault"],[3,"customField","sorts",4,"ngFor","ngForOf"],[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"image-placeholder"],[3,"src",4,"ngIf","ngIfElse"],["imagePlaceholder",""],[3,"src"],[1,"placeholder"],["shape","image","size","48"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["colorType","success",4,"ngIf"],["colorType","warning",4,"ngIf"],["colorType","success"],["colorType","warning"],[3,"title",4,"ngFor","ngForOf"],[3,"title"],[1,"flex","center"],["class","ml-1",4,"ngIf"],[1,"ml-1"],[3,"customField","sorts"]],template:function(n,e){1&n&&(t.YNc(0,Xc,4,6,"vdr-page-block",0),t.TgZ(1,"vdr-data-table-2",1),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t._UZ(6,"vdr-bulk-action-menu",2)(7,"vdr-dt2-search",3),t.ALo(8,"translate"),t.TgZ(9,"vdr-dt2-column",4),t.ALo(10,"translate"),t.YNc(11,ts,1,1,"ng-template"),t.qZA(),t.TgZ(12,"vdr-dt2-column",5),t.ALo(13,"translate"),t.YNc(14,es,2,4,"ng-template"),t.qZA(),t.TgZ(15,"vdr-dt2-column",6),t.ALo(16,"translate"),t.YNc(17,ns,2,4,"ng-template"),t.qZA(),t.TgZ(18,"vdr-dt2-column",7),t.ALo(19,"translate"),t.YNc(20,as,4,2,"ng-template"),t.qZA(),t.TgZ(21,"vdr-dt2-column",8),t.ALo(22,"translate"),t.YNc(23,cs,4,5,"ng-template"),t.qZA(),t.TgZ(24,"vdr-dt2-column",9),t.ALo(25,"translate"),t.YNc(26,ss,1,1,"ng-template"),t.qZA(),t.TgZ(27,"vdr-dt2-column",10),t.ALo(28,"translate"),t.YNc(29,ps,2,2,"ng-template"),t.qZA(),t.TgZ(30,"vdr-dt2-column",11),t.ALo(31,"translate"),t.YNc(32,us,2,4,"ng-template"),t.qZA(),t.TgZ(33,"vdr-dt2-column",12),t.ALo(34,"translate"),t.YNc(35,ms,2,4,"ng-template"),t.qZA(),t.TgZ(36,"vdr-dt2-column",13),t.ALo(37,"translate"),t.YNc(38,fs,1,1,"ng-template"),t.qZA(),t.YNc(39,hs,1,2,"vdr-dt2-custom-field-column",14),t.qZA()),2&n&&(t.Q6J("ngIf",!e.hideLanguageSelect),t.xp6(1),t.Q6J("id",e.dataTableId||"product-variant-list")("items",t.lcZ(2,35,e.items$))("itemsPerPage",t.lcZ(3,37,e.itemsPerPage$))("totalItems",t.lcZ(4,39,e.totalItems$))("currentPage",t.lcZ(5,41,e.currentPage$))("filters",e.filters),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(8,43,"catalog.filter-by-sku")),t.xp6(2),t.Q6J("heading",t.lcZ(10,45,"common.id"))("hiddenByDefault",!0)("sort",e.sorts.get("id")),t.xp6(3),t.Q6J("heading",t.lcZ(13,47,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(16,49,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(19,51,"common.image")),t.xp6(3),t.Q6J("heading",t.lcZ(22,53,"catalog.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(25,55,"catalog.sku"))("sort",e.sorts.get("sku")),t.xp6(3),t.Q6J("heading",t.lcZ(28,57,"common.enabled")),t.xp6(3),t.Q6J("heading",t.lcZ(31,59,"common.price"))("hiddenByDefault",!0)("sort",e.sorts.get("price")),t.xp6(3),t.Q6J("heading",t.lcZ(34,61,"common.price-with-tax"))("sort",e.sorts.get("priceWithTax")),t.xp6(3),t.Q6J("heading",t.lcZ(37,63,"catalog.stock-on-hand"))("hiddenByDefault",!1),t.xp6(3),t.Q6J("ngForOf",e.customFields))},dependencies:[f.qvL,_.sg,_.O5,A.rH,j.Y,E.S,Ie.c,lt.e,R.U,et.J,Le.j,w.z,_.Ov,b.X$,Ce.M,X.H,me.k],styles:[".image-col[_ngcontent-%COMP%]{width:70px}.image-placeholder[_ngcontent-%COMP%]{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:var(--border-radius-img)}.image-placeholder[_ngcontent-%COMP%] .placeholder[_ngcontent-%COMP%]{text-align:center;color:var(--color-grey-300)}.search-form[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%}vdr-product-search-input[_ngcontent-%COMP%]{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input[_ngcontent-%COMP%]{min-width:100px}}.search-settings-menu[_ngcontent-%COMP%]{margin:0 12px}td.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.search-index-button[_ngcontent-%COMP%]{position:relative}.search-index-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{right:0;top:0}.run-updates-button[_ngcontent-%COMP%]{position:relative}.run-updates-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{left:10px;top:10px}.edit-button[_ngcontent-%COMP%]{margin-inline-end:24px}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"]});var zt,Re=u(3899);function vs(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",28),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.create())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine||0===e.createVariantsConfig.variants.length),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.create")," ")}}function Cs(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",28),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw(2);t.Q6J("disabled",(e.detailForm.invalid||e.detailForm.pristine)&&!e.assetsChanged()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}function xs(o,n){if(1&o&&t.YNc(0,Cs,3,4,"button",29),2&o){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermissions)}}const bs=function(){return["enabled"]};function Ts(o,n){if(1&o&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",30),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&o){const e=t.oxw();t.xp6(1),t.Q6J("formControl",e.detailForm.get(t.DdM(4,bs))),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.enabled"))}}function Zs(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-chip",39),t.NdJ("iconClick",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw(4);return t.KtG(r.removeFromChannel(a.id))}),t._UZ(1,"vdr-channel-badge",40),t._uU(2),t.ALo(3,"channelCodeToLabel"),t.qZA()}if(2&o){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("channelCode",e.code),t.xp6(1),t.hij(" ",t.lcZ(3,2,e.code)," ")}}function As(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Zs,4,4,"vdr-chip",38),t.BQk()),2&o){const e=n.$implicit,i=t.oxw(4);t.xp6(1),t.Q6J("ngIf",!i.isDefaultChannel(e.code))}}function Ps(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-form-item")(1,"div",33)(2,"div",34),t.YNc(3,As,2,1,"ng-container",35),t.ALo(4,"async"),t.qZA(),t.TgZ(5,"button",36),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(3);return t.KtG(a.assignToChannel())}),t._UZ(6,"clr-icon",37),t._uU(7),t.ALo(8,"translate"),t.qZA()()()}if(2&o){const e=t.oxw(3);t.xp6(3),t.Q6J("ngForOf",t.lcZ(4,2,e.productChannels$)),t.xp6(4),t.hij(" ",t.lcZ(8,4,"catalog.assign-to-channel")," ")}}function ys(o,n){1&o&&(t.TgZ(0,"vdr-card",10),t.ALo(1,"translate"),t.YNc(2,Ps,9,6,"vdr-form-item",32),t.qZA()),2&o&&t.Q6J("title",t.lcZ(1,1,"common.channels"))}function Fs(o,n){1&o&&(t.ynx(0),t.YNc(1,ys,3,3,"vdr-card",31),t.BQk())}function Is(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",44),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.Q6J("colorFrom",e.code)("invert",!0),t.xp6(1),t.hij(" ",e.name," ")}}const Ls=function(){return["options"]};function Os(o,n){1&o&&(t.TgZ(0,"a",45),t._UZ(1,"clr-icon",46),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,Ls)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.edit-options")," "))}function ks(o,n){if(1&o&&(t.TgZ(0,"vdr-card",10),t.ALo(1,"translate"),t.TgZ(2,"div",41),t.YNc(3,Is,2,3,"vdr-chip",42),t.ALo(4,"sort"),t.qZA(),t.TgZ(5,"div"),t.YNc(6,Os,4,5,"a",43),t.qZA()()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,3,"catalog.product-options")),t.xp6(3),t.Q6J("ngForOf",t.xi3(4,5,null==e.entity?null:e.entity.optionGroups,"id")),t.xp6(3),t.Q6J("vdrIfPermissions",e.updatePermissions)}}function Js(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",47),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.removeProductFacetValue(r.id))}),t.ALo(1,"hasPermission"),t.qZA()}if(2&o){const e=n.$implicit,i=t.oxw();t.Q6J("facetValue",e)("removable",t.lcZ(1,2,i.updatePermissions))}}function Ds(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",48),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.selectProductFacetValue())}),t._UZ(1,"clr-icon",49),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&o&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}function ws(o,n){if(1&o&&(t.TgZ(0,"vdr-card"),t._UZ(1,"vdr-page-entity-info",50),t.qZA()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("entity",e)}}function Vs(o,n){1&o&&(t.TgZ(0,"div")(1,"clr-checkbox-wrapper"),t._UZ(2,"input",51),t.TgZ(3,"label"),t._uU(4),t.ALo(5,"translate"),t.qZA()()()),2&o&&(t.xp6(4),t.Oqu(t.lcZ(5,1,"catalog.auto-update-product-variant-name")))}function Ms(o,n){if(1&o&&(t.TgZ(0,"vdr-card",10),t.ALo(1,"translate"),t._UZ(2,"vdr-tabbed-custom-fields",52),t.ALo(3,"hasPermission"),t.qZA()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get("customFields"))("readonly",!t.lcZ(3,6,e.updatePermissions))}}function Us(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div")(1,"vdr-generate-product-variants",53),t.NdJ("variantsChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.createVariantsConfig=a)}),t.qZA()()}}function Ns(o,n){if(1&o&&t._UZ(0,"vdr-product-variant-list",54),2&o){const e=t.oxw();t.Q6J("productId",e.id)("hideLanguageSelect",!0)}}const Qs=function(){return["manage-variants"]};function qs(o,n){1&o&&(t.TgZ(0,"div",55)(1,"a",56),t._UZ(2,"clr-icon",57),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&o&&(t.xp6(1),t.Q6J("routerLink",t.DdM(4,Qs)),t.xp6(2),t.hij(" ",t.lcZ(4,2,"catalog.manage-variants"),""))}const $s=function(){return["name"]},In=function(o){return{pattern:o}},Ss=y.Ps`
|
|
99
|
+
`;class De extends s.$ms{constructor(n){super(),this.dataService=n,this.initialLimit=3,this.displayLimit={},this.customFields=this.getCustomFieldConfig("Facet"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilter({name:"visibility",type:{kind:"boolean"},label:(0,p.J)("common.visibility"),toFilterInput:e=>({isPrivate:{eq:!e}})}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("createdAt","DESC").addSort({name:"id"}).addSort({name:"createdAt"}).addSort({name:"updatedAt"}).addSort({name:"name"}).addSort({name:"code"}).addCustomFieldSorts(this.customFields).connectToRoute(this.route),super.configure({document:s.JJ4,getItems:e=>e.facets,setVariables:(e,i)=>({options:{skip:e,take:i,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.filters.valueChanges,this.sorts.valueChanges]})}toggleDisplayLimit(n){this.displayLimit[n.id]===n.valueList.items.length?this.displayLimit[n.id]=this.initialLimit:this.displayLimit[n.id]=n.valueList.items.length}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}}var Rt;(jt=De).\u0275fac=function(n){return new(n||jt)(t.Y36(s.DoR))},jt.\u0275cmp=t.Xpm({type:jt,selectors:[["vdr-facet-list"]],features:[t.qOj],decls:39,vars:57,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],["id","facet-list",1,"mt-2",3,"items","itemsPerPage","totalItems","currentPage","filters","pageChange","itemsPerPageChange"],["locationId","facet-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault","sort"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","name",3,"heading","optional","sort"],["id","code",3,"heading"],["id","visibility",3,"heading"],["id","values",3,"heading"],[3,"customField","sorts",4,"ngFor","ngForOf"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["colorType","warning",4,"ngIf"],["colorType","success",4,"ngIf"],["colorType","warning"],["colorType","success"],[1,"facet-values-list"],[3,"facetValue","removable","displayFacetName",4,"ngFor","ngForOf"],[4,"ngIf"],["class","button-small",3,"click",4,"ngIf"],[3,"facetValue","removable","displayFacetName"],[1,"button-small",3,"click"],[4,"ngIf","ngIfElse"],["collapse",""],["shape","minus"],[3,"customField","sorts"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()(),t.TgZ(6,"vdr-ab-right"),t._UZ(7,"vdr-action-bar-items",1),t.YNc(8,Cc,4,5,"a",2),t.qZA()()(),t.TgZ(9,"vdr-data-table-2",3),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(10,"async"),t.ALo(11,"async"),t.ALo(12,"async"),t.ALo(13,"async"),t._UZ(14,"vdr-bulk-action-menu",4)(15,"vdr-dt2-search",5),t.ALo(16,"translate"),t.TgZ(17,"vdr-dt2-column",6),t.ALo(18,"translate"),t.YNc(19,xc,1,1,"ng-template"),t.qZA(),t.TgZ(20,"vdr-dt2-column",7),t.ALo(21,"translate"),t.YNc(22,bc,2,4,"ng-template"),t.qZA(),t.TgZ(23,"vdr-dt2-column",8),t.ALo(24,"translate"),t.YNc(25,Tc,2,4,"ng-template"),t.qZA(),t.TgZ(26,"vdr-dt2-column",9),t.ALo(27,"translate"),t.YNc(28,Ac,4,4,"ng-template"),t.qZA(),t.TgZ(29,"vdr-dt2-column",10),t.ALo(30,"translate"),t.YNc(31,Pc,1,1,"ng-template"),t.qZA(),t.TgZ(32,"vdr-dt2-column",11),t.ALo(33,"translate"),t.YNc(34,Ic,2,2,"ng-template"),t.qZA(),t.TgZ(35,"vdr-dt2-column",12),t.ALo(36,"translate"),t.YNc(37,wc,5,7,"ng-template"),t.qZA(),t.YNc(38,Vc,1,2,"vdr-dt2-custom-field-column",13),t.qZA()),2&n&&(t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(4,28,e.availableLanguages$))("currentLanguageCode",t.lcZ(5,30,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(56,Mc)),t.xp6(1),t.Q6J("items",t.lcZ(10,32,e.items$))("itemsPerPage",t.lcZ(11,34,e.itemsPerPage$))("totalItems",t.lcZ(12,36,e.totalItems$))("currentPage",t.lcZ(13,38,e.currentPage$))("filters",e.filters),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(16,40,"catalog.filter-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(18,42,"common.id"))("hiddenByDefault",!0)("sort",e.sorts.get("id")),t.xp6(3),t.Q6J("heading",t.lcZ(21,44,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(24,46,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(27,48,"common.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(30,50,"common.code")),t.xp6(3),t.Q6J("heading",t.lcZ(33,52,"common.visibility")),t.xp6(3),t.Q6J("heading",t.lcZ(36,54,"catalog.values")),t.xp6(3),t.Q6J("ngForOf",e.customFields))},dependencies:[f.qvL,_.sg,_.O5,A.rH,x.Kk,x.BN,x.mz,j.Y,xe.q,E.S,N.H,K.W,Ie.c,lt.e,R.U,et.J,Le.j,w.z,_.Ov,_.OU,b.X$,X.H],styles:[".facet-values-list[_ngcontent-%COMP%]{max-width:500px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}"]});const Nc=["optionGroupName"];function Qc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div",4)(1,"div",5)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.TgZ(5,"input",6,7),t.NdJ("ngModelChange",function(a){const c=t.CHM(e).$implicit;return t.KtG(c.name=a)})("keydown.enter",function(a){t.CHM(e);const r=t.MAs(12),c=t.oxw();return t.KtG(c.handleEnter(a,r))}),t.qZA()(),t.TgZ(7,"div",8)(8,"label"),t._uU(9),t.ALo(10,"translate"),t.qZA(),t.TgZ(11,"vdr-option-value-input",9,10),t.NdJ("ngModelChange",function(a){const c=t.CHM(e).$implicit;return t.KtG(c.values=a)})("ngModelChange",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.generateVariants())})("edit",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.generateVariants())}),t.qZA()(),t.TgZ(13,"div",11)(14,"button",12),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.removeOption(r.name))}),t.ALo(15,"translate"),t._UZ(16,"clr-icon",13),t.qZA()()()}if(2&o){const e=n.$implicit;t.xp6(3),t.Oqu(t.lcZ(4,7,"catalog.option")),t.xp6(2),t.Q6J("ngModel",e.name),t.xp6(4),t.Oqu(t.lcZ(10,9,"catalog.option-values")),t.xp6(2),t.Q6J("ngModel",e.values)("groupName",e.name)("disabled",""===e.name),t.xp6(3),t.Q6J("title",t.lcZ(15,11,"catalog.remove-option"))}}function qc(o,n){1&o&&(t.TgZ(0,"clr-alert",18)(1,"clr-alert-item")(2,"span",19),t._uU(3),t.ALo(4,"translate"),t.qZA()()()),2&o&&(t.Q6J("clrAlertClosable",!1),t.xp6(3),t.hij(" ",t.lcZ(4,2,"catalog.no-stock-locations-available-on-current-channel")," "))}function $c(o,n){if(1&o&&(t.TgZ(0,"option",23),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.Q6J("value",e.id),t.xp6(1),t.hij(" ",e.name," ")}}function Sc(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-form-field",20),t.ALo(1,"translate"),t.TgZ(2,"select",21),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.selectedStockLocationId=a)}),t.YNc(3,$c,2,2,"option",22),t.qZA()()}if(2&o){const e=t.oxw().ngIf,i=t.oxw();t.Q6J("label",t.lcZ(1,3,"catalog.add-stock-to-location")),t.xp6(2),t.Q6J("ngModel",i.selectedStockLocationId),t.xp6(1),t.Q6J("ngForOf",e)}}function Yc(o,n){1&o&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.create")))}function Gc(o,n){1&o&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.variant")))}function Ec(o,n){1&o&&(t.TgZ(0,"td"),t._UZ(1,"input",31),t.qZA())}function Bc(o,n){if(1&o&&(t.TgZ(0,"td"),t._uU(1),t.qZA()),2&o){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.values.join(" ")," ")}}function jc(o,n){if(1&o&&(t.TgZ(0,"tr",27),t.YNc(1,Ec,2,0,"td",3),t.YNc(2,Bc,2,1,"td",3),t.TgZ(3,"td")(4,"vdr-form-field"),t._UZ(5,"input",28),t.ALo(6,"translate"),t.qZA()(),t.TgZ(7,"td")(8,"vdr-form-field"),t._UZ(9,"vdr-currency-input",29),t.qZA()(),t.TgZ(10,"td")(11,"vdr-form-field"),t._UZ(12,"input",30),t.qZA()()()),2&o){const e=n.$implicit,i=t.oxw(3);t.ekj("disabled",!!i.variantFormValues[e.id].value.enabled),t.Q6J("formGroup",i.variantFormValues[e.id]),t.xp6(1),t.Q6J("ngIf",1<i.variants.length),t.xp6(1),t.Q6J("ngIf",1<i.variants.length),t.xp6(3),t.Q6J("placeholder",t.lcZ(6,7,"catalog.sku")),t.xp6(4),t.Q6J("currencyCode",i.currencyCode)}}function Rc(o,n){if(1&o&&(t.TgZ(0,"div",24)(1,"table",25)(2,"thead")(3,"tr"),t.YNc(4,Yc,3,3,"th",3),t.YNc(5,Gc,3,3,"th",3),t.TgZ(6,"th"),t._uU(7),t.ALo(8,"translate"),t.qZA(),t.TgZ(9,"th"),t._uU(10),t.ALo(11,"translate"),t.qZA(),t.TgZ(12,"th"),t._uU(13),t.ALo(14,"translate"),t.qZA()()(),t.YNc(15,jc,13,9,"tr",26),t.qZA()()),2&o){const e=t.oxw(2);t.xp6(4),t.Q6J("ngIf",1<e.variants.length),t.xp6(1),t.Q6J("ngIf",1<e.variants.length),t.xp6(2),t.Oqu(t.lcZ(8,7,"catalog.sku")),t.xp6(3),t.Oqu(t.lcZ(11,9,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(14,11,"catalog.stock-on-hand")),t.xp6(2),t.Q6J("ngForOf",e.variants)("ngForTrackBy",e.trackByFn)}}function Hc(o,n){if(1&o&&(t.ynx(0),t.YNc(1,qc,5,4,"clr-alert",14),t.TgZ(2,"div",15),t.YNc(3,Sc,4,5,"vdr-form-field",16),t.qZA(),t.YNc(4,Rc,16,13,"div",17),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",0===e.length),t.xp6(2),t.Q6J("ngIf",e.length),t.xp6(1),t.Q6J("ngIf",0<e.length)}}const je="__DEFAULT_VARIANT__";class we{constructor(n,e){this.dataService=n,this.formBuilder=e,this.variantsChange=new t.vpe,this.optionGroups=[],this.variantFormValues={},this.selectedStockLocationId=null}ngOnInit(){this.dataService.settings.getActiveChannel().single$.subscribe(n=>{this.currencyCode=n.activeChannel.defaultCurrencyCode}),this.stockLocations$=this.dataService.query(s.uQH,{options:{take:999}}).refetchOnChannelChange().mapStream(({stockLocations:n})=>n.items).pipe((0,q.b)(n=>{n.length&&(this.selectedStockLocationId=n[0].id)})),this.generateVariants()}addOption(){this.optionGroups.push({name:"",values:[]});const n=this.optionGroups.length-1;setTimeout(()=>{this.groupNameInputs.get(n)?.nativeElement?.focus()})}removeOption(n){this.optionGroups=this.optionGroups.filter(e=>e.name!==n),this.generateVariants()}generateVariants(){const e=this.optionGroups.reduce((i,a)=>i+a.values.length,0)?this.optionGroups.map(i=>i.values.map(a=>a.name)):[[je]];this.variants=(0,ce.generateAllCombinations)(e).map(i=>({id:i.join("|"),values:i})),this.variants.forEach((i,a)=>{if(!this.variantFormValues[i.id]){const r=this.formBuilder.nonNullable.group({optionValues:[i.values],enabled:!0,price:this.copyFromDefault(i.id,"price",0),sku:this.copyFromDefault(i.id,"sku",""),stock:this.copyFromDefault(i.id,"stock",0)});r.valueChanges.subscribe(()=>this.onFormChange()),0===a&&(r.get("price")?.valueChanges.subscribe(c=>{this.copyValuesToPristine("price",r.get("price"))}),r.get("sku")?.valueChanges.subscribe(c=>{this.copyValuesToPristine("sku",r.get("sku"))}),r.get("stock")?.valueChanges.subscribe(c=>{this.copyValuesToPristine("stock",r.get("stock"))})),this.variantFormValues[i.id]=r}})}trackByFn(n,e){return e.values.join("|")}handleEnter(n,e){n.preventDefault(),n.stopPropagation(),e.focus()}copyValuesToPristine(n,e){e&&Object.values(this.variantFormValues).forEach(i=>{const a=i.get(n);a&&a.pristine&&a.setValue(e.value,{emitEvent:!1})})}onFormChange(){const n=this.variants.map(e=>this.variantFormValues[e.id].value).filter(e=>e.enabled);this.variantsChange.emit({groups:this.optionGroups.map(e=>({name:e.name,values:e.values.map(i=>i.name)})),variants:n,stockLocationId:this.selectedStockLocationId})}copyFromDefault(n,e,i){return n!==je?this.variantFormValues[je].get(e)?.value:i}}(Rt=we).\u0275fac=function(n){return new(n||Rt)(t.Y36(s.DoR),t.Y36(d.qu))},Rt.\u0275cmp=t.Xpm({type:Rt,selectors:[["vdr-generate-product-variants"]],viewQuery:function(n,e){if(1&n&&t.Gf(Nc,5,t.SBq),2&n){let i;t.iGM(i=t.CRH())&&(e.groupNameInputs=i)}},outputs:{variantsChange:"variantsChange"},decls:7,vars:7,consts:[["class","option-groups",4,"ngFor","ngForOf"],[1,"button","mb-2",3,"click"],["shape","plus"],[4,"ngIf"],[1,"option-groups"],[1,"name"],["placeholder","e.g. Size","clrInput","","name","name","required","",3,"ngModel","ngModelChange","keydown.enter"],["optionGroupName",""],[1,"values"],[3,"ngModel","groupName","disabled","ngModelChange","edit"],["optionValueInputComponent",""],[1,"remove-group"],[1,"button-small","mt-2",3,"title","click"],["shape","trash"],["clrAlertType","warning","class","",3,"clrAlertClosable",4,"ngIf"],[1,"form-grid","mb-2"],[3,"label",4,"ngIf"],["class","variants-preview",4,"ngIf"],["clrAlertType","warning",1,"",3,"clrAlertClosable"],[1,"alert-text"],[3,"label"],[3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"variants-preview"],[1,"table"],[3,"disabled","formGroup",4,"ngFor","ngForOf","ngForTrackBy"],[3,"formGroup"],["type","text","formControlName","sku",3,"placeholder"],["formControlName","price",3,"currencyCode"],["type","number","formControlName","stock","min","0","step","1"],["type","checkbox","formControlName","enabled","clrCheckbox",""]],template:function(n,e){1&n&&(t.YNc(0,Qc,17,13,"div",0),t.TgZ(1,"button",1),t.NdJ("click",function(){return e.addOption()}),t._UZ(2,"clr-icon",2),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.YNc(5,Hc,5,3,"ng-container",3),t.ALo(6,"async")),2&n&&(t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(4,3,"catalog.add-option"),"\n"),t.xp6(2),t.Q6J("ngIf",t.lcZ(6,5,e.stockLocations$)))},dependencies:[f.TIm,f.CyW,f.I9z,f.q0d,f.qvL,f.MgK,f.KKC,f.xRP,_.sg,_.O5,d.YN,d.Kr,d.Fj,d.wV,d.Wl,d.EJ,d.JJ,d.JL,d.Q7,d.qQ,d.On,d.sg,d.u,pe.K,$.h,L.y,pt,_.Ov,b.X$],styles:["[_nghost-%COMP%]{display:block;margin-bottom:120px}.option-groups[_ngcontent-%COMP%]{display:flex}.values[_ngcontent-%COMP%]{flex:1;margin:0 6px}.remove-group[_ngcontent-%COMP%]{padding-top:18px}.variants-preview[_ngcontent-%COMP%] tr.disabled[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}"]});var Ht,Kc=u(2058),yn=u(7625),Fn=u(6010),zc=u(2770),Wc=u(176),Xc=u(3123);function ts(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-page-block")(1,"vdr-language-selector",15),t.NdJ("languageCodeChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.setLanguage(a))}),t.ALo(2,"async"),t.ALo(3,"async"),t.qZA()()}if(2&o){const e=t.oxw();t.xp6(1),t.Q6J("availableLanguageCodes",t.lcZ(2,2,e.availableLanguages$))("currentLanguageCode",t.lcZ(3,4,e.contentLanguage$))}}function es(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function ns(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function os(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function is(o,n){if(1&o&&(t._UZ(0,"img",19),t.ALo(1,"assetPreview")),2&o){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function as(o,n){1&o&&(t.TgZ(0,"div",20),t._UZ(1,"clr-icon",21),t.qZA())}function rs(o,n){if(1&o&&(t.TgZ(0,"div",16),t.YNc(1,is,2,4,"img",17),t.YNc(2,as,2,0,"ng-template",null,18,t.W1O),t.qZA()),2&o){const e=n.item,i=t.MAs(3);t.xp6(1),t.Q6J("ngIf",e.featuredAsset)("ngIfElse",i)}}const cs=function(o,n){return["/catalog/products",o,"variants",n]};function ss(o,n){if(1&o&&(t.TgZ(0,"a",22)(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"clr-icon",23),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.WLB(2,cs,e.productId,e.id)),t.xp6(2),t.Oqu(e.name)}}function ls(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.sku," ")}}function ds(o,n){1&o&&(t.TgZ(0,"vdr-chip",26),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.enabled")))}function ps(o,n){1&o&&(t.TgZ(0,"vdr-chip",27),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.disabled")))}function us(o,n){if(1&o&&(t.YNc(0,ds,3,3,"vdr-chip",24),t.YNc(1,ps,3,3,"vdr-chip",25)),2&o){const e=n.item;t.Q6J("ngIf",e.enabled),t.xp6(1),t.Q6J("ngIf",!e.enabled)}}function ms(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.price,e.currencyCode)," ")}}function gs(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeCurrency")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.priceWithTax,e.currencyCode)," ")}}function _s(o,n){if(1&o&&(t.TgZ(0,"span",32),t._uU(1),t.qZA()),2&o){const e=t.oxw().$implicit;t.xp6(1),t.hij("(",e.stockAllocated," allocated)")}}function fs(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",29)(1,"div",30)(2,"div"),t._uU(3),t.YNc(4,_s,2,1,"span",31),t.qZA()()()),2&o){const e=n.$implicit;t.Q6J("title",null==e.stockLocation?null:e.stockLocation.name),t.xp6(3),t.hij(" ",e.stockOnHand,""),t.xp6(1),t.Q6J("ngIf",e.stockAllocated)}}function hs(o,n){if(1&o&&t.YNc(0,fs,5,3,"vdr-chip",28),2&o){const e=n.item;t.Q6J("ngForOf",e.stockLevels)}}function vs(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",33),2&o){const e=n.$implicit,i=t.oxw();t.Q6J("customField",e)("sorts",i.sorts)}}class Kt extends s.$ms{constructor(){super(),this.hideLanguageSelect=!1,this.customFields=this.getCustomFieldConfig("ProductVariant"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilters([{name:"name",type:{kind:"text"},label:(0,p.J)("common.name"),filterField:"name"},{name:"enabled",type:{kind:"boolean"},label:(0,p.J)("common.enabled"),filterField:"enabled"},{name:"sku",type:{kind:"text"},label:(0,p.J)("catalog.sku"),filterField:"sku"},{name:"price",type:{kind:"number",inputType:"currency"},label:(0,p.J)("common.price"),filterField:"price"},{name:"priceWithTax",type:{kind:"number",inputType:"currency"},label:(0,p.J)("common.price-with-tax"),filterField:"priceWithTax"}]).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().addSorts([{name:"id"},{name:"createdAt"},{name:"updatedAt"},{name:"name"},{name:"sku"},{name:"price"},{name:"priceWithTax"}]).addCustomFieldSorts(this.customFields).connectToRoute(this.route),this.configure({document:s.NKc,getItems:n=>n.productVariants,setVariables:(n,e)=>({options:{skip:n,take:e,filter:{sku:{contains:this.searchTermControl.value},...this.filters.createFilterInput(),...this.productId?{productId:{eq:this.productId}}:{}},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.sorts.valueChanges,this.filters.valueChanges]})}}(Ht=Kt).\u0275fac=function(n){return new(n||Ht)},Ht.\u0275cmp=t.Xpm({type:Ht,selectors:[["vdr-product-variant-list"]],inputs:{productId:"productId",hideLanguageSelect:"hideLanguageSelect",dataTableId:"dataTableId"},features:[t.qOj],decls:40,vars:65,consts:[[4,"ngIf"],[1,"mt-2",3,"id","items","itemsPerPage","totalItems","currentPage","filters","pageChange","itemsPerPageChange"],["locationId","product-variant-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault","sort"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","image",3,"heading"],["id","name",3,"heading","optional","sort"],["id","sku",3,"heading","sort"],["id","enabled",3,"heading"],["id","price",3,"heading","hiddenByDefault","sort"],["id","price-with-tax",3,"heading","sort"],["id","stock-on-hand",3,"heading","hiddenByDefault"],[3,"customField","sorts",4,"ngFor","ngForOf"],[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"image-placeholder"],[3,"src",4,"ngIf","ngIfElse"],["imagePlaceholder",""],[3,"src"],[1,"placeholder"],["shape","image","size","48"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["colorType","success",4,"ngIf"],["colorType","warning",4,"ngIf"],["colorType","success"],["colorType","warning"],[3,"title",4,"ngFor","ngForOf"],[3,"title"],[1,"flex","center"],["class","ml-1",4,"ngIf"],[1,"ml-1"],[3,"customField","sorts"]],template:function(n,e){1&n&&(t.YNc(0,ts,4,6,"vdr-page-block",0),t.TgZ(1,"vdr-data-table-2",1),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t._UZ(6,"vdr-bulk-action-menu",2)(7,"vdr-dt2-search",3),t.ALo(8,"translate"),t.TgZ(9,"vdr-dt2-column",4),t.ALo(10,"translate"),t.YNc(11,es,1,1,"ng-template"),t.qZA(),t.TgZ(12,"vdr-dt2-column",5),t.ALo(13,"translate"),t.YNc(14,ns,2,4,"ng-template"),t.qZA(),t.TgZ(15,"vdr-dt2-column",6),t.ALo(16,"translate"),t.YNc(17,os,2,4,"ng-template"),t.qZA(),t.TgZ(18,"vdr-dt2-column",7),t.ALo(19,"translate"),t.YNc(20,rs,4,2,"ng-template"),t.qZA(),t.TgZ(21,"vdr-dt2-column",8),t.ALo(22,"translate"),t.YNc(23,ss,4,5,"ng-template"),t.qZA(),t.TgZ(24,"vdr-dt2-column",9),t.ALo(25,"translate"),t.YNc(26,ls,1,1,"ng-template"),t.qZA(),t.TgZ(27,"vdr-dt2-column",10),t.ALo(28,"translate"),t.YNc(29,us,2,2,"ng-template"),t.qZA(),t.TgZ(30,"vdr-dt2-column",11),t.ALo(31,"translate"),t.YNc(32,ms,2,4,"ng-template"),t.qZA(),t.TgZ(33,"vdr-dt2-column",12),t.ALo(34,"translate"),t.YNc(35,gs,2,4,"ng-template"),t.qZA(),t.TgZ(36,"vdr-dt2-column",13),t.ALo(37,"translate"),t.YNc(38,hs,1,1,"ng-template"),t.qZA(),t.YNc(39,vs,1,2,"vdr-dt2-custom-field-column",14),t.qZA()),2&n&&(t.Q6J("ngIf",!e.hideLanguageSelect),t.xp6(1),t.Q6J("id",e.dataTableId||"product-variant-list")("items",t.lcZ(2,35,e.items$))("itemsPerPage",t.lcZ(3,37,e.itemsPerPage$))("totalItems",t.lcZ(4,39,e.totalItems$))("currentPage",t.lcZ(5,41,e.currentPage$))("filters",e.filters),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(8,43,"catalog.filter-by-sku")),t.xp6(2),t.Q6J("heading",t.lcZ(10,45,"common.id"))("hiddenByDefault",!0)("sort",e.sorts.get("id")),t.xp6(3),t.Q6J("heading",t.lcZ(13,47,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(16,49,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(19,51,"common.image")),t.xp6(3),t.Q6J("heading",t.lcZ(22,53,"catalog.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(25,55,"catalog.sku"))("sort",e.sorts.get("sku")),t.xp6(3),t.Q6J("heading",t.lcZ(28,57,"common.enabled")),t.xp6(3),t.Q6J("heading",t.lcZ(31,59,"common.price"))("hiddenByDefault",!0)("sort",e.sorts.get("price")),t.xp6(3),t.Q6J("heading",t.lcZ(34,61,"common.price-with-tax"))("sort",e.sorts.get("priceWithTax")),t.xp6(3),t.Q6J("heading",t.lcZ(37,63,"catalog.stock-on-hand"))("hiddenByDefault",!1),t.xp6(3),t.Q6J("ngForOf",e.customFields))},dependencies:[f.qvL,_.sg,_.O5,A.rH,j.Y,E.S,Ie.c,lt.e,R.U,et.J,Le.j,w.z,_.Ov,b.X$,Ce.M,X.H,me.k],styles:[".image-col[_ngcontent-%COMP%]{width:70px}.image-placeholder[_ngcontent-%COMP%]{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:var(--border-radius-img)}.image-placeholder[_ngcontent-%COMP%] .placeholder[_ngcontent-%COMP%]{text-align:center;color:var(--color-grey-300)}.search-form[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%}vdr-product-search-input[_ngcontent-%COMP%]{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input[_ngcontent-%COMP%]{min-width:100px}}.search-settings-menu[_ngcontent-%COMP%]{margin:0 12px}td.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.search-index-button[_ngcontent-%COMP%]{position:relative}.search-index-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{right:0;top:0}.run-updates-button[_ngcontent-%COMP%]{position:relative}.run-updates-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{left:10px;top:10px}.edit-button[_ngcontent-%COMP%]{margin-inline-end:24px}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"]});var zt,Re=u(3899);function Cs(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",28),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.create())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine||0===e.createVariantsConfig.variants.length),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.create")," ")}}function xs(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",28),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw(2);t.Q6J("disabled",(e.detailForm.invalid||e.detailForm.pristine)&&!e.assetsChanged()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}function bs(o,n){if(1&o&&t.YNc(0,xs,3,4,"button",29),2&o){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermissions)}}const Ts=function(){return["enabled"]};function Zs(o,n){if(1&o&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",30),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&o){const e=t.oxw();t.xp6(1),t.Q6J("formControl",e.detailForm.get(t.DdM(4,Ts))),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.enabled"))}}function As(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-chip",39),t.NdJ("iconClick",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw(4);return t.KtG(r.removeFromChannel(a.id))}),t._UZ(1,"vdr-channel-badge",40),t._uU(2),t.ALo(3,"channelCodeToLabel"),t.qZA()}if(2&o){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("channelCode",e.code),t.xp6(1),t.hij(" ",t.lcZ(3,2,e.code)," ")}}function Ps(o,n){if(1&o&&(t.ynx(0),t.YNc(1,As,4,4,"vdr-chip",38),t.BQk()),2&o){const e=n.$implicit,i=t.oxw(4);t.xp6(1),t.Q6J("ngIf",!i.isDefaultChannel(e.code))}}function ys(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-form-item")(1,"div",33)(2,"div",34),t.YNc(3,Ps,2,1,"ng-container",35),t.ALo(4,"async"),t.qZA(),t.TgZ(5,"button",36),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(3);return t.KtG(a.assignToChannel())}),t._UZ(6,"clr-icon",37),t._uU(7),t.ALo(8,"translate"),t.qZA()()()}if(2&o){const e=t.oxw(3);t.xp6(3),t.Q6J("ngForOf",t.lcZ(4,2,e.productChannels$)),t.xp6(4),t.hij(" ",t.lcZ(8,4,"catalog.assign-to-channel")," ")}}function Fs(o,n){1&o&&(t.TgZ(0,"vdr-card",10),t.ALo(1,"translate"),t.YNc(2,ys,9,6,"vdr-form-item",32),t.qZA()),2&o&&t.Q6J("title",t.lcZ(1,1,"common.channels"))}function Is(o,n){1&o&&(t.ynx(0),t.YNc(1,Fs,3,3,"vdr-card",31),t.BQk())}function Ls(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",44),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.Q6J("colorFrom",e.code)("invert",!0),t.xp6(1),t.hij(" ",e.name," ")}}const Os=function(){return["options"]};function ks(o,n){1&o&&(t.TgZ(0,"a",45),t._UZ(1,"clr-icon",46),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,Os)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.edit-options")," "))}function Js(o,n){if(1&o&&(t.TgZ(0,"vdr-card",10),t.ALo(1,"translate"),t.TgZ(2,"div",41),t.YNc(3,Ls,2,3,"vdr-chip",42),t.ALo(4,"sort"),t.qZA(),t.TgZ(5,"div"),t.YNc(6,ks,4,5,"a",43),t.qZA()()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,3,"catalog.product-options")),t.xp6(3),t.Q6J("ngForOf",t.xi3(4,5,null==e.entity?null:e.entity.optionGroups,"id")),t.xp6(3),t.Q6J("vdrIfPermissions",e.updatePermissions)}}function Ds(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",47),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,c=t.oxw();return t.KtG(c.removeProductFacetValue(r.id))}),t.ALo(1,"hasPermission"),t.qZA()}if(2&o){const e=n.$implicit,i=t.oxw();t.Q6J("facetValue",e)("removable",t.lcZ(1,2,i.updatePermissions))}}function ws(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",48),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.selectProductFacetValue())}),t._UZ(1,"clr-icon",49),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&o&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}function Vs(o,n){if(1&o&&(t.TgZ(0,"vdr-card"),t._UZ(1,"vdr-page-entity-info",50),t.qZA()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("entity",e)}}function Ms(o,n){1&o&&(t.TgZ(0,"div")(1,"clr-checkbox-wrapper"),t._UZ(2,"input",51),t.TgZ(3,"label"),t._uU(4),t.ALo(5,"translate"),t.qZA()()()),2&o&&(t.xp6(4),t.Oqu(t.lcZ(5,1,"catalog.auto-update-product-variant-name")))}function Us(o,n){if(1&o&&(t.TgZ(0,"vdr-card",10),t.ALo(1,"translate"),t._UZ(2,"vdr-tabbed-custom-fields",52),t.ALo(3,"hasPermission"),t.qZA()),2&o){const e=t.oxw();t.Q6J("title",t.lcZ(1,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get("customFields"))("readonly",!t.lcZ(3,6,e.updatePermissions))}}function Ns(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div")(1,"vdr-generate-product-variants",53),t.NdJ("variantsChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.createVariantsConfig=a)}),t.qZA()()}}function Qs(o,n){if(1&o&&t._UZ(0,"vdr-product-variant-list",54),2&o){const e=t.oxw();t.Q6J("productId",e.id)("hideLanguageSelect",!0)}}const qs=function(){return["manage-variants"]};function $s(o,n){1&o&&(t.TgZ(0,"div",55)(1,"a",56),t._UZ(2,"clr-icon",57),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&o&&(t.xp6(1),t.Q6J("routerLink",t.DdM(4,qs)),t.xp6(2),t.hij(" ",t.lcZ(4,2,"catalog.manage-variants"),""))}const Ss=function(){return["name"]},In=function(o){return{pattern:o}},Ys=y.Ps`
|
|
100
100
|
query GetProductDetail($id: ID!) {
|
|
101
101
|
product(id: $id) {
|
|
102
102
|
...ProductDetail
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
${s.c4F}
|
|
106
|
-
`;class Wt extends s.VE7{constructor(n,e,i,a,r,c){super(),this.productDetailService=n,this.formBuilder=e,this.modalService=i,this.notificationService=a,this.dataService=r,this.changeDetector=c,this.customFields=this.getCustomFieldConfig("Product"),this.detailForm=this.formBuilder.group({enabled:!0,name:["",d.kI.required],autoUpdateVariantNames:!0,slug:["",(0,s.Foo)(/^[\p{Letter}0-9._-]+$/)],description:"",facetValueIds:[[]],customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),this.assetChanges={},this.createVariantsConfig={groups:[],variants:[],stockLocationId:""},this.updatePermissions=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct]}ngOnInit(){this.init();const n=this.isNew$.pipe((0,C.w)(a=>a?(0,k.of)([]):this.entity$.pipe((0,h.U)(r=>r.facetValues)))),i=this.detailForm.get("facetValueIds").valueChanges.pipe((0,M.x)(),(0,C.w)(a=>this.dataService.facet.getFacetValues({filter:{id:{in:a}}}).mapSingle(({facetValues:r})=>r.items)),(0,xt.d)(1));this.facetValues$=(0,yn.z)(n.pipe((0,Y.q)(1)),n.pipe((0,C.w)(()=>i))),this.productChannels$=this.entity$.pipe((0,h.U)(a=>a.channels))}ngOnDestroy(){this.destroy()}isDefaultChannel(n){return n===Hc.z$}assignToChannel(){this.productChannels$.pipe((0,Y.q)(1),(0,C.w)(n=>this.modalService.fromComponent(nt,{size:"lg",locals:{productIds:[this.id],currentChannelIds:n.map(e=>e.id)}}))).subscribe()}removeFromChannel(n){(0,Ye.D)((0,s.PDO)(this.dataService,n)).pipe((0,C.w)(({channelCode:e})=>this.modalService.dialog({title:(0,p.J)("catalog.remove-product-from-channel"),buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("catalog.remove-from-channel"),translationVars:{channelCode:e},returnValue:!0}]})),(0,C.w)(e=>e?this.dataService.product.removeProductsFromChannel({channelId:n,productIds:[this.id]}):F.E)).subscribe(()=>{this.notificationService.success((0,p.J)("catalog.notify-remove-product-from-channel-success"))},e=>{this.notificationService.error((0,p.J)("catalog.notify-remove-product-from-channel-error"))})}assignVariantToChannel(n){return this.modalService.fromComponent(nt,{size:"lg",locals:{productIds:[this.id],productVariantIds:[n.id],currentChannelIds:n.channels.map(e=>e.id)}}).subscribe()}removeVariantFromChannel({channelId:n,variant:e}){(0,Ye.D)((0,s.PDO)(this.dataService,n)).pipe((0,C.w)(({channelCode:i})=>this.modalService.dialog({title:(0,p.J)("catalog.remove-product-variant-from-channel"),buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("catalog.remove-from-channel"),translationVars:{channelCode:i},returnValue:!0}]})),(0,C.w)(i=>i?this.dataService.product.removeVariantsFromChannel({channelId:n,productVariantIds:[e.id]}):F.E)).subscribe(()=>{this.notificationService.success((0,p.J)("catalog.notify-remove-variant-from-channel-success"))},i=>{this.notificationService.error((0,p.J)("catalog.notify-remove-variant-from-channel-error"))})}assetsChanged(){return!!Object.values(this.assetChanges).length}updateSlug(n){const e=this.detailForm.get("slug"),i=this.entity?(0,s.ZIM)(this.entity,this.languageCode):void 0,a=!i||!i.slug;e&&e.pristine&&a&&e.setValue((0,G.U)(`${n}`,"-"))}selectProductFacetValue(){this.displayFacetValueModal().subscribe(n=>{if(n){const e=this.detailForm,i=e.value.facetValueIds??[];e.patchValue({facetValueIds:(0,J.T)([...i,...n])}),e.markAsDirty(),this.changeDetector.markForCheck()}})}updateProductOption(n){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([e,i])=>this.productDetailService.updateProductOption(n,e,i))).subscribe(()=>{this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"ProductOption"})},e=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"ProductOption"})})}removeProductFacetValue(n){const e=this.detailForm,i=e.value.facetValueIds??[];e.patchValue({facetValueIds:i.filter(a=>a!==n)}),e.markAsDirty()}displayFacetValueModal(){return this.modalService.fromComponent(It,{size:"md",closable:!0}).pipe((0,h.U)(n=>n&&n.map(e=>e.id)))}create(){const n=this.detailForm;if(!n.dirty)return;const e=this.getUpdatedProduct({id:"",createdAt:"",updatedAt:"",enabled:!0,languageCode:this.languageCode,name:"",slug:"",featuredAsset:null,assets:[],description:"",translations:[],optionGroups:[],facetValues:[],channels:[]},n,this.languageCode);this.productDetailService.createProductWithVariants(e,this.createVariantsConfig,this.languageCode).subscribe(({createProductVariants:i,productId:a})=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"Product"}),this.assetChanges={},this.detailForm.markAsPristine(),this.router.navigate(["../",a],{relativeTo:this.route})},i=>{console.error(i),this.notificationService.error((0,p.J)("common.notify-create-error"),{entity:"Product"})})}save(){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([n,e])=>{const i=this.detailForm;let a;return(i.dirty||this.assetsChanged())&&(a=this.getUpdatedProduct(n,i,e)),this.productDetailService.updateProduct({product:n,languageCode:e,autoUpdate:this.detailForm.get(["autoUpdateVariantNames"])?.value??!1,productInput:a,variantsInput:undefined})})).subscribe(n=>{this.updateSlugAfterSave(n),this.detailForm.markAsPristine(),this.assetChanges={},this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"Product"}),this.changeDetector.markForCheck()},n=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"Product"})})}canDeactivate(){return super.canDeactivate()&&!this.assetChanges.assets&&!this.assetChanges.featuredAsset}setFormValues(n,e){const i=(0,s.ZIM)(n,e);this.detailForm.patchValue({enabled:n.enabled,name:i?i.name:"",slug:i?i.slug:"",description:i?i.description:"",facetValueIds:n.facetValues.map(a=>a.id)}),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customFields"]),n,i)}getUpdatedProduct(n,e,i){return{...(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||"",slug:n.slug||"",description:n.description||""}}),assetIds:this.assetChanges.assets?.map(r=>r.id),featuredAssetId:this.assetChanges.featuredAsset?.id,facetValueIds:e.value.facetValueIds}}updateSlugAfterSave(n){const e=n[0],i=this.detailForm.get(["product","slug"]);i&&function a(r){return r.hasOwnProperty("updateProduct")}(e)&&i.setValue(e.updateProduct.slug,{emitEvent:!1})}}(zt=Wt).\u0275fac=function(n){return new(n||zt)(t.Y36(ct),t.Y36(d.qu),t.Y36(s.Z7U),t.Y36(s.gqp),t.Y36(s.DoR),t.Y36(t.sBO))},zt.\u0275cmp=t.Xpm({type:zt,selectors:[["vdr-product-detail2"]],features:[t.qOj],decls:68,vars:86,consts:[[1,"flex","clr-flex-row"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],[1,"form",3,"formGroup"],["for","visibility",3,"label"],[4,"vdrIfPermissions"],[4,"ngIf"],[3,"title",4,"ngIf"],[3,"title"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"click",4,"vdrIfPermissions"],["type","submit","hidden","","x-data","prevents enter key from triggering other buttons"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","slug",3,"label","errors"],["id","slug","type","text","formControlName","slug",3,"readonly"],["for","slug",1,"form-grid-span",3,"label","errors"],["formControlName","description",3,"readonly"],["locationId","product-detail",3,"entity$","detailForm"],[3,"assets","featuredAsset","updatePermissions","change"],[3,"title","paddingX"],[4,"ngIf","ngIfElse"],["variantList",""],["class","mx-3",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],["type","checkbox","clrToggle","","name","enabled",3,"formControl"],[3,"title",4,"vdrIfMultichannel"],[4,"vdrIfDefaultChannelActive"],[1,"flex","channel-assignment"],[1,"mb-2"],[4,"ngFor","ngForOf"],[1,"button-small",3,"click"],["shape","layers"],["icon","times-circle",3,"iconClick",4,"ngIf"],["icon","times-circle",3,"iconClick"],[3,"channelCode"],[1,"options"],[3,"colorFrom","invert",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"routerLink",4,"vdrIfPermissions"],[3,"colorFrom","invert"],[1,"button-small","mt-2",3,"routerLink"],["shape","pencil"],[3,"facetValue","removable","remove"],[1,"button-small","mt-2",3,"click"],["shape","plus"],[3,"entity"],["clrCheckbox","","type","checkbox","id","auto-update","formControlName","autoUpdateVariantNames"],["entityName","Product",3,"customFields","customFieldsFormGroup","readonly"],[3,"variantsChange"],["dataTableId","product-detail-variants-list",3,"productId","hideLanguageSelect"],[1,"mx-3"],[1,"button",3,"routerLink"],["shape","add-text"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left"),t._UZ(3,"div",0),t.TgZ(4,"vdr-language-selector",1),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(5,"async"),t.ALo(6,"async"),t.ALo(7,"async"),t.qZA()(),t.TgZ(8,"vdr-ab-right"),t._UZ(9,"vdr-action-bar-items",2),t.YNc(10,vs,3,4,"button",3),t.ALo(11,"async"),t.YNc(12,xs,1,1,"ng-template",null,4,t.W1O),t.qZA()()(),t.TgZ(14,"form",5)(15,"vdr-page-detail-layout")(16,"vdr-page-detail-sidebar")(17,"vdr-card")(18,"vdr-form-field",6),t.ALo(19,"translate"),t.YNc(20,Ts,5,5,"clr-toggle-wrapper",7),t.qZA()(),t.YNc(21,Fs,2,0,"ng-container",8),t.ALo(22,"async"),t.YNc(23,ks,7,8,"vdr-card",9),t.TgZ(24,"vdr-card",10),t.ALo(25,"translate"),t.TgZ(26,"div",11),t.YNc(27,Js,2,4,"vdr-facet-value-chip",12),t.ALo(28,"async"),t.qZA(),t.TgZ(29,"div"),t.YNc(30,Ds,4,3,"button",13),t.qZA()(),t.YNc(31,ws,2,1,"vdr-card",8),t.ALo(32,"async"),t.qZA(),t.TgZ(33,"vdr-page-block"),t._UZ(34,"button",14),t.TgZ(35,"vdr-card")(36,"div",15)(37,"div")(38,"vdr-form-field",16),t.ALo(39,"translate"),t.TgZ(40,"input",17),t.NdJ("input",function(a){return e.updateSlug(a.target.value)}),t.ALo(41,"hasPermission"),t.qZA()(),t.YNc(42,Vs,6,3,"div",8),t.ALo(43,"async"),t.qZA(),t.TgZ(44,"vdr-form-field",18),t.ALo(45,"translate"),t.ALo(46,"translate"),t._UZ(47,"input",19),t.ALo(48,"hasPermission"),t.qZA(),t.TgZ(49,"vdr-form-field",20),t.ALo(50,"translate"),t.ALo(51,"translate"),t._UZ(52,"vdr-rich-text-editor",21),t.ALo(53,"hasPermission"),t.qZA()()(),t.YNc(54,Ms,4,8,"vdr-card",9),t._UZ(55,"vdr-custom-detail-component-host",22),t.TgZ(56,"vdr-card",10),t.ALo(57,"translate"),t.TgZ(58,"vdr-assets",23),t.NdJ("change",function(a){return e.assetChanges=a}),t.qZA()(),t.TgZ(59,"vdr-card",24),t.ALo(60,"translate"),t.ALo(61,"async"),t.YNc(62,Us,2,0,"div",25),t.ALo(63,"async"),t.YNc(64,Ns,1,2,"ng-template",null,26,t.W1O),t.YNc(66,qs,5,5,"div",27),t.ALo(67,"async"),t.qZA()()()()),2&n){const i=t.MAs(13),a=t.MAs(65);let r;t.xp6(4),t.Q6J("disabled",t.lcZ(5,35,e.isNew$))("availableLanguageCodes",t.lcZ(6,37,e.availableLanguages$))("currentLanguageCode",t.lcZ(7,39,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(11,41,e.isNew$))("ngIfElse",i),t.xp6(4),t.Q6J("formGroup",e.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(19,43,"catalog.visibility")),t.xp6(2),t.Q6J("vdrIfPermissions",e.updatePermissions),t.xp6(1),t.Q6J("ngIf",!t.lcZ(22,45,e.isNew$)),t.xp6(2),t.Q6J("ngIf",null==e.entity?null:e.entity.optionGroups.length),t.xp6(1),t.Q6J("title",t.lcZ(25,47,"catalog.facets")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(28,49,e.facetValues$)),t.xp6(3),t.Q6J("vdrIfPermissions",e.updatePermissions),t.xp6(1),t.Q6J("ngIf",t.lcZ(32,51,e.entity$)),t.xp6(7),t.Q6J("label",t.lcZ(39,53,"catalog.product-name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(41,55,e.updatePermissions)),t.xp6(2),t.Q6J("ngIf",!1===t.lcZ(43,57,e.isNew$)&&(null==(r=e.detailForm.get(t.DdM(81,$s)))?null:r.dirty)),t.xp6(2),t.Q6J("label",t.lcZ(45,59,"catalog.slug"))("errors",t.VKq(82,In,t.lcZ(46,61,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(48,63,e.updatePermissions)),t.xp6(2),t.Q6J("label",t.lcZ(50,65,"common.description"))("errors",t.VKq(84,In,t.lcZ(51,67,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(53,69,e.updatePermissions)),t.xp6(2),t.Q6J("ngIf",e.customFields.length),t.xp6(1),t.Q6J("entity$",e.entity$)("detailForm",e.detailForm),t.xp6(1),t.Q6J("title",t.lcZ(57,71,"catalog.assets")),t.xp6(2),t.Q6J("assets",e.assetChanges.assets||(null==e.entity?null:e.entity.assets))("featuredAsset",e.assetChanges.featuredAsset||(null==e.entity?null:e.entity.featuredAsset))("updatePermissions",e.updatePermissions),t.xp6(1),t.Q6J("title",t.lcZ(60,73,"catalog.product-variants"))("paddingX",t.lcZ(61,75,e.isNew$)),t.xp6(3),t.Q6J("ngIf",t.lcZ(63,77,e.isNew$))("ngIfElse",a),t.xp6(4),t.Q6J("ngIf",!1===t.lcZ(67,79,e.isNew$))}},dependencies:[f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.oH,d.sg,d.u,A.rH,x.Kk,x.BN,x.mz,j.Y,xe.q,$.h,L.y,Fn.J,E.S,_n.Y,N.H,Kc.u,K.W,zc.n,Wc.M,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,we,vt,Kt,_.Ov,b.X$,Re.U,B.j,sn.E],styles:["[_nghost-%COMP%] trix-toolbar{top:24px}.facets[_ngcontent-%COMP%], .options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:3px}vdr-action-bar[_ngcontent-%COMP%] clr-toggle-wrapper[_ngcontent-%COMP%]{margin-top:12px}.variant-filter[_ngcontent-%COMP%]{flex:1;display:flex}.variant-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;max-width:initial;border-radius:3px 0 0 3px!important}.variant-filter[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{border:1px solid var(--color-component-border-300);background-color:var(--color-component-bg-100);border-radius:0 3px 3px 0;border-inline-start:none}.group-name[_ngcontent-%COMP%]{padding-inline-end:6px}.view-mode[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:space-between}@media screen and (min-width: 768px){.view-mode[_ngcontent-%COMP%]{flex-direction:row}}.edit-variants-btn[_ngcontent-%COMP%]{margin-top:0}.channel-assignment[_ngcontent-%COMP%]{flex-wrap:wrap;max-height:144px}.pagination-row[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between}"],changeDetection:0});const Ln={location:"product-list",label:(0,p.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:o=>o.includes(s.y3$.DeleteProduct)||o.includes(s.y3$.DeleteCatalog),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp);a.dialog({title:(0,p.J)("catalog.confirm-bulk-delete-products"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(l=>l?r.product.deleteProducts((0,J.T)(n.map(m=>m.id))):F.E)).subscribe(l=>{let m=0;const g=[];for(const v of l.deleteProducts)v.result===s.PcR.DELETED?m++:v.message&&g.push(v.message);0<m&&c.success((0,p.J)("catalog.notify-bulk-delete-products-success"),{count:m}),0<g.length&&c.error(g.join("\n")),e.refresh(),i()})}},On={location:"product-list",label:(0,p.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),isVisible:({injector:o})=>(0,s.SDV)(o.get(s.DoR)),onClick:({injector:o,selection:n,clearSelection:e})=>{o.get(s.Z7U).fromComponent(nt,{size:"lg",locals:{productIds:(0,J.T)(n.map(a=>a.id)),currentChannelIds:[]}}).subscribe(a=>{a&&e()})}},kn=(0,s.RBx)({location:"product-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e)=>o.product.removeProductsFromChannel({channelId:e,productIds:n}).pipe((0,h.U)(i=>i.removeProductsFromChannel))}),Jn={location:"product-list",label:(0,p.J)("catalog.edit-facet-values"),icon:"tag",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),c=(o.get(s.DoR),o.get(s.gqp)),l="product",m=(0,J.T)(n.map(g=>g.id));return a.fromComponent(be,{size:"xl",locals:{mode:l,ids:m}}).subscribe(g=>{g&&(c.success((0,p.J)("common.notify-bulk-update-success"),{count:n.length,entity:"Products"}),i())})}};var Xt,Ys=u(9249);const Gs=function(){return["./create"]};function Es(o,n){1&o&&(t.TgZ(0,"a",20),t._UZ(1,"clr-icon",21),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,Gs)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-product")," "))}function Bs(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function js(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function Rs(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function Hs(o,n){if(1&o&&(t._UZ(0,"img",25),t.ALo(1,"assetPreview")),2&o){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function Ks(o,n){1&o&&(t.TgZ(0,"div",26),t._UZ(1,"clr-icon",27),t.qZA())}function zs(o,n){if(1&o&&(t.TgZ(0,"div",22),t.YNc(1,Hs,2,4,"img",23),t.YNc(2,Ks,2,0,"ng-template",null,24,t.W1O),t.qZA()),2&o){const e=n.item,i=t.MAs(3);t.xp6(1),t.Q6J("ngIf",e.featuredAsset)("ngIfElse",i)}}const Ws=function(o){return["./",o]};function Xs(o,n){if(1&o&&(t.TgZ(0,"a",28)(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"clr-icon",29),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.VKq(2,Ws,e.id)),t.xp6(2),t.Oqu(e.name)}}function tl(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.slug," ")}}function el(o,n){1&o&&(t.TgZ(0,"vdr-chip",32),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.enabled")))}function nl(o,n){1&o&&(t.TgZ(0,"vdr-chip",33),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.disabled")))}function ol(o,n){if(1&o&&(t.YNc(0,el,3,3,"vdr-chip",30),t.YNc(1,nl,3,3,"vdr-chip",31)),2&o){const e=n.item;t.Q6J("ngIf",e.enabled),t.xp6(1),t.Q6J("ngIf",!e.enabled)}}const il=function(o){return{count:o}};function al(o,n){if(1&o&&(t._uU(0),t.ALo(1,"translate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,"catalog.variant-count",t.VKq(4,il,null==e.variantList?null:e.variantList.totalItems))," ")}}function rl(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",34),2&o){const e=n.$implicit,i=t.oxw();t.Q6J("customField",e)("sorts",i.sorts)}}const cl=function(){return["CreateCatalog","CreateProduct"]};class Ve extends s.$ms{constructor(n,e,i,a){super(),this.dataService=n,this.modalService=e,this.notificationService=i,this.jobQueueService=a,this.pendingSearchIndexUpdates=0,this.customFields=this.getCustomFieldConfig("Product"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilters([{name:"enabled",type:{kind:"boolean"},label:(0,p.J)("common.enabled"),filterField:"enabled"},{name:"slug",type:{kind:"text"},label:(0,p.J)("common.slug"),filterField:"slug"}]).addFilter({name:"facetValues",type:{kind:"custom",component:s.qPP,serializeValue:r=>r.map(c=>c.id).join(","),deserializeValue:r=>r.split(",").map(c=>({id:c})),getLabel:r=>0===r.length?"":r[0].name?r.map(c=>c.name).join(", "):(0,cn.n)(this.dataService.facet.getFacetValues({filter:{id:{in:r.map(c=>c.id)}}}).mapSingle(({facetValues:c})=>c.items.map(l=>l.name).join(", ")))},label:(0,p.J)("catalog.facet-values"),toFilterInput:r=>({facetValueId:{in:r.map(c=>c.id)}})}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("createdAt","DESC").addSorts([{name:"id"},{name:"createdAt"},{name:"updatedAt"},{name:"name"},{name:"slug"}]).addCustomFieldSorts(this.customFields).connectToRoute(this.route),this.configure({document:s.Qek,getItems:r=>r.products,setVariables:(r,c)=>({options:{skip:r,take:c,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.sorts.valueChanges,this.filters.valueChanges]})}rebuildSearchIndex(){this.dataService.product.reindex().subscribe(({reindex:n})=>{this.notificationService.info((0,p.J)("catalog.reindexing")),this.jobQueueService.addJob(n.id,e=>{if(e.state===s.Zyh.COMPLETED){const i=(new Intl.NumberFormat).format(e.duration||0);this.notificationService.success((0,p.J)("catalog.reindex-successful"),{count:e.result.indexedItemCount,time:i}),this.refresh()}else this.notificationService.error((0,p.J)("catalog.reindex-error"))})})}deleteProduct(n){this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product"),buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(e=>e?this.dataService.product.deleteProduct(n):F.E),(0,Ys.g)(500)).subscribe(()=>{this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"Product"}),this.refresh()},e=>{this.notificationService.error((0,p.J)("common.notify-delete-error"),{entity:"Product"})})}}(Xt=Ve).\u0275fac=function(n){return new(n||Xt)(t.Y36(s.DoR),t.Y36(s.Z7U),t.Y36(s.gqp),t.Y36(s.u8d))},Xt.\u0275cmp=t.Xpm({type:Xt,selectors:[["vdr-products-list"]],features:[t.qOj],decls:50,vars:64,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-list"],["class","button primary mr-1",3,"routerLink",4,"vdrIfPermissions"],["vdrDropdownTrigger","",1,"icon-button"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",3,"click"],["shape","refresh",1,""],["id","product-list",1,"mt-2",3,"items","itemsPerPage","totalItems","currentPage","filters","pageChange","itemsPerPageChange"],["locationId","product-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault","sort"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","image",3,"heading"],["id","name",3,"heading","optional","sort"],["id","slug",3,"heading","sort"],["id","enabled",3,"heading"],["id","number-of-variants",3,"heading"],[3,"customField","sorts",4,"ngFor","ngForOf"],[1,"button","primary","mr-1",3,"routerLink"],["shape","plus"],[1,"image-placeholder"],[3,"src",4,"ngIf","ngIfElse"],["imagePlaceholder",""],[3,"src"],[1,"placeholder"],["shape","image","size","48"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["colorType","success",4,"ngIf"],["colorType","warning",4,"ngIf"],["colorType","success"],["colorType","warning"],[3,"customField","sorts"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()(),t.TgZ(6,"vdr-ab-right"),t._UZ(7,"vdr-action-bar-items",1),t.YNc(8,Es,4,5,"a",2),t.TgZ(9,"vdr-dropdown")(10,"button",3),t._UZ(11,"clr-icon",4),t.qZA(),t.TgZ(12,"vdr-dropdown-menu",5)(13,"button",6),t.NdJ("click",function(){return e.rebuildSearchIndex()}),t._UZ(14,"clr-icon",7),t._uU(15),t.ALo(16,"translate"),t.qZA()()()()()(),t.TgZ(17,"vdr-data-table-2",8),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(18,"async"),t.ALo(19,"async"),t.ALo(20,"async"),t.ALo(21,"async"),t._UZ(22,"vdr-bulk-action-menu",9)(23,"vdr-dt2-search",10),t.ALo(24,"translate"),t.TgZ(25,"vdr-dt2-column",11),t.ALo(26,"translate"),t.YNc(27,Bs,1,1,"ng-template"),t.qZA(),t.TgZ(28,"vdr-dt2-column",12),t.ALo(29,"translate"),t.YNc(30,js,2,4,"ng-template"),t.qZA(),t.TgZ(31,"vdr-dt2-column",13),t.ALo(32,"translate"),t.YNc(33,Rs,2,4,"ng-template"),t.qZA(),t.TgZ(34,"vdr-dt2-column",14),t.ALo(35,"translate"),t.YNc(36,zs,4,2,"ng-template"),t.qZA(),t.TgZ(37,"vdr-dt2-column",15),t.ALo(38,"translate"),t.YNc(39,Xs,4,4,"ng-template"),t.qZA(),t.TgZ(40,"vdr-dt2-column",16),t.ALo(41,"translate"),t.YNc(42,tl,1,1,"ng-template"),t.qZA(),t.TgZ(43,"vdr-dt2-column",17),t.ALo(44,"translate"),t.YNc(45,ol,2,2,"ng-template"),t.qZA(),t.TgZ(46,"vdr-dt2-column",18),t.ALo(47,"translate"),t.YNc(48,al,2,6,"ng-template"),t.qZA(),t.YNc(49,rl,1,2,"vdr-dt2-custom-field-column",19),t.qZA()),2&n&&(t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(4,31,e.availableLanguages$))("currentLanguageCode",t.lcZ(5,33,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(63,cl)),t.xp6(7),t.hij(" ",t.lcZ(16,35,"catalog.rebuild-search-index")," "),t.xp6(2),t.Q6J("items",t.lcZ(18,37,e.items$))("itemsPerPage",t.lcZ(19,39,e.itemsPerPage$))("totalItems",t.lcZ(20,41,e.totalItems$))("currentPage",t.lcZ(21,43,e.currentPage$))("filters",e.filters),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(24,45,"catalog.filter-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(26,47,"common.id"))("hiddenByDefault",!0)("sort",e.sorts.get("id")),t.xp6(3),t.Q6J("heading",t.lcZ(29,49,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(32,51,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(35,53,"common.image")),t.xp6(3),t.Q6J("heading",t.lcZ(38,55,"catalog.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(41,57,"common.slug"))("sort",e.sorts.get("slug")),t.xp6(3),t.Q6J("heading",t.lcZ(44,59,"common.enabled")),t.xp6(3),t.Q6J("heading",t.lcZ(47,61,"catalog.number-of-variants")),t.xp6(3),t.Q6J("ngForOf",e.customFields))},dependencies:[f.qvL,_.sg,_.O5,A.rH,x.Kk,x.BN,x.mz,j.Y,E.S,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Ie.c,lt.e,R.U,et.J,Le.j,w.z,_.Ov,b.X$,Ce.M,X.H],styles:[".image-col[_ngcontent-%COMP%]{width:70px}.image-placeholder[_ngcontent-%COMP%]{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:var(--border-radius-img)}.image-placeholder[_ngcontent-%COMP%] .placeholder[_ngcontent-%COMP%]{text-align:center;color:var(--color-grey-300)}.search-form[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%}vdr-product-search-input[_ngcontent-%COMP%]{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input[_ngcontent-%COMP%]{min-width:100px}}.search-settings-menu[_ngcontent-%COMP%]{margin:0 12px}td.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.search-index-button[_ngcontent-%COMP%]{position:relative}.search-index-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{right:0;top:0}.run-updates-button[_ngcontent-%COMP%]{position:relative}.run-updates-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{left:10px;top:10px}.edit-button[_ngcontent-%COMP%]{margin-inline-end:24px}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"]});var te,sl=u(7140),ll=u(3661),dl=u(7015);const ul=function(o){return{rate:o}};function ml(o,n){if(1&o&&(t.TgZ(0,"div",2),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"async"),t.qZA()),2&o){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-includes-tax-at",t.VKq(6,ul,t.lcZ(3,4,e.taxRate$))),"\n")}}const gl=function(o,n){return{price:o,rate:n}};function _l(o,n){if(1&o&&(t.TgZ(0,"div",2),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"localeCurrency"),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()),2&o){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-with-tax-in-default-zone",t.WLB(11,gl,t.xi3(3,4,t.lcZ(4,7,e.grossPrice$),e.currencyCode),t.lcZ(5,9,e.taxRate$))),"\n")}}class Me{constructor(n){this.dataService=n,this.priceChange$=new V.X(0),this.taxCategoryIdChange$=new V.X("")}ngOnInit(){const n=this.dataService.settings.getTaxRatesSimple(999,0,"cache-first").mapStream(i=>i.taxRates.items),e=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(i=>i.activeChannel);this.taxRate$=(0,P.a)(e,n,this.taxCategoryIdChange$).pipe((0,h.U)(([i,a,r])=>{const c=i.defaultTaxZone;if(!c)return 0;const l=a.find(m=>m.zone.id===c.id&&m.category.id===r);return l?l.value:0})),this.grossPrice$=(0,P.a)(this.taxRate$,this.priceChange$).pipe((0,h.U)(([i,a])=>Math.round(a*((100+i)/100))))}ngOnChanges(n){"price"in n&&this.priceChange$.next(n.price.currentValue),"taxCategoryId"in n&&this.taxCategoryIdChange$.next(n.taxCategoryId.currentValue)}}var ee;function fl(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.AsE(" ",e.name," (",e.sku,") ")}}function hl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"ng-select",1),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.selectedVariantId=a)})("change",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.onSelect(a))}),t.ALo(1,"async"),t.ALo(2,"translate"),t.YNc(3,fl,1,2,"ng-template",2),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("items",t.lcZ(1,5,e.variants$))("ngModel",e.selectedVariantId)("searchFn",e.searchFn)("clearable",!1)("placeholder",t.lcZ(2,7,"catalog.quick-jump-placeholder"))}}(te=Me).\u0275fac=function(n){return new(n||te)(t.Y36(s.DoR))},te.\u0275cmp=t.Xpm({type:te,selectors:[["vdr-variant-price-detail"]],inputs:{priceIncludesTax:"priceIncludesTax",price:"price",currencyCode:"currencyCode",taxCategoryId:"taxCategoryId"},features:[t.TTD],decls:5,vars:5,consts:[[1,"clr-control-label"],["class","value",4,"ngIf"],[1,"value"]],template:function(n,e){1&n&&(t.TgZ(0,"label",0),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.YNc(3,ml,4,8,"div",1),t.YNc(4,_l,6,14,"div",1)),2&n&&(t.xp6(1),t.Oqu(t.lcZ(2,3,"catalog.taxes")),t.xp6(2),t.Q6J("ngIf",e.priceIncludesTax),t.xp6(1),t.Q6J("ngIf",!e.priceIncludesTax))},dependencies:[f.MgK,_.O5,_.Ov,b.X$,me.k],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.value[_ngcontent-%COMP%]{margin-top:3px}"],changeDetection:0});y.Ps`
|
|
106
|
+
`;class Wt extends s.VE7{constructor(n,e,i,a,r,c){super(),this.productDetailService=n,this.formBuilder=e,this.modalService=i,this.notificationService=a,this.dataService=r,this.changeDetector=c,this.customFields=this.getCustomFieldConfig("Product"),this.detailForm=this.formBuilder.group({enabled:!0,name:["",d.kI.required],autoUpdateVariantNames:!0,slug:["",(0,s.Foo)(/^[\p{Letter}0-9._-]+$/)],description:"",facetValueIds:[[]],customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),this.assetChanges={},this.createVariantsConfig={groups:[],variants:[],stockLocationId:""},this.updatePermissions=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct]}ngOnInit(){this.init();const n=this.isNew$.pipe((0,C.w)(a=>a?(0,k.of)([]):this.entity$.pipe((0,h.U)(r=>r.facetValues)))),i=this.detailForm.get("facetValueIds").valueChanges.pipe((0,M.x)(),(0,C.w)(a=>this.dataService.facet.getFacetValues({filter:{id:{in:a}}}).mapSingle(({facetValues:r})=>r.items)),(0,xt.d)(1));this.facetValues$=(0,yn.z)(n.pipe((0,Y.q)(1)),n.pipe((0,C.w)(()=>i))),this.productChannels$=this.entity$.pipe((0,h.U)(a=>a.channels))}ngOnDestroy(){this.destroy()}isDefaultChannel(n){return n===Kc.z$}assignToChannel(){this.productChannels$.pipe((0,Y.q)(1),(0,C.w)(n=>this.modalService.fromComponent(nt,{size:"lg",locals:{productIds:[this.id],currentChannelIds:n.map(e=>e.id)}}))).subscribe()}removeFromChannel(n){(0,Ye.D)((0,s.PDO)(this.dataService,n)).pipe((0,C.w)(({channelCode:e})=>this.modalService.dialog({title:(0,p.J)("catalog.remove-product-from-channel"),buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("catalog.remove-from-channel"),translationVars:{channelCode:e},returnValue:!0}]})),(0,C.w)(e=>e?this.dataService.product.removeProductsFromChannel({channelId:n,productIds:[this.id]}):F.E)).subscribe(()=>{this.notificationService.success((0,p.J)("catalog.notify-remove-product-from-channel-success"))},e=>{this.notificationService.error((0,p.J)("catalog.notify-remove-product-from-channel-error"))})}assignVariantToChannel(n){return this.modalService.fromComponent(nt,{size:"lg",locals:{productIds:[this.id],productVariantIds:[n.id],currentChannelIds:n.channels.map(e=>e.id)}}).subscribe()}removeVariantFromChannel({channelId:n,variant:e}){(0,Ye.D)((0,s.PDO)(this.dataService,n)).pipe((0,C.w)(({channelCode:i})=>this.modalService.dialog({title:(0,p.J)("catalog.remove-product-variant-from-channel"),buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("catalog.remove-from-channel"),translationVars:{channelCode:i},returnValue:!0}]})),(0,C.w)(i=>i?this.dataService.product.removeVariantsFromChannel({channelId:n,productVariantIds:[e.id]}):F.E)).subscribe(()=>{this.notificationService.success((0,p.J)("catalog.notify-remove-variant-from-channel-success"))},i=>{this.notificationService.error((0,p.J)("catalog.notify-remove-variant-from-channel-error"))})}assetsChanged(){return!!Object.values(this.assetChanges).length}updateSlug(n){const e=this.detailForm.get("slug"),i=this.entity?(0,s.ZIM)(this.entity,this.languageCode):void 0,a=!i||!i.slug;e&&e.pristine&&a&&e.setValue((0,G.U)(`${n}`,"-"))}selectProductFacetValue(){this.displayFacetValueModal().subscribe(n=>{if(n){const e=this.detailForm,i=e.value.facetValueIds??[];e.patchValue({facetValueIds:(0,J.T)([...i,...n])}),e.markAsDirty(),this.changeDetector.markForCheck()}})}updateProductOption(n){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([e,i])=>this.productDetailService.updateProductOption(n,e,i))).subscribe(()=>{this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"ProductOption"})},e=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"ProductOption"})})}removeProductFacetValue(n){const e=this.detailForm,i=e.value.facetValueIds??[];e.patchValue({facetValueIds:i.filter(a=>a!==n)}),e.markAsDirty()}displayFacetValueModal(){return this.modalService.fromComponent(It,{size:"md",closable:!0}).pipe((0,h.U)(n=>n&&n.map(e=>e.id)))}create(){const n=this.detailForm;if(!n.dirty)return;const e=this.getUpdatedProduct({id:"",createdAt:"",updatedAt:"",enabled:!0,languageCode:this.languageCode,name:"",slug:"",featuredAsset:null,assets:[],description:"",translations:[],optionGroups:[],facetValues:[],channels:[]},n,this.languageCode);this.productDetailService.createProductWithVariants(e,this.createVariantsConfig,this.languageCode).subscribe(({createProductVariants:i,productId:a})=>{this.notificationService.success((0,p.J)("common.notify-create-success"),{entity:"Product"}),this.assetChanges={},this.detailForm.markAsPristine(),this.router.navigate(["../",a],{relativeTo:this.route})},i=>{console.error(i),this.notificationService.error((0,p.J)("common.notify-create-error"),{entity:"Product"})})}save(){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([n,e])=>{const i=this.detailForm;let a;return(i.dirty||this.assetsChanged())&&(a=this.getUpdatedProduct(n,i,e)),this.productDetailService.updateProduct({product:n,languageCode:e,autoUpdate:this.detailForm.get(["autoUpdateVariantNames"])?.value??!1,productInput:a,variantsInput:undefined})})).subscribe(n=>{this.updateSlugAfterSave(n),this.detailForm.markAsPristine(),this.assetChanges={},this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"Product"}),this.changeDetector.markForCheck()},n=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"Product"})})}canDeactivate(){return super.canDeactivate()&&!this.assetChanges.assets&&!this.assetChanges.featuredAsset}setFormValues(n,e){const i=(0,s.ZIM)(n,e);this.detailForm.patchValue({enabled:n.enabled,name:i?i.name:"",slug:i?i.slug:"",description:i?i.description:"",facetValueIds:n.facetValues.map(a=>a.id)}),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customFields"]),n,i)}getUpdatedProduct(n,e,i){return{...(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||"",slug:n.slug||"",description:n.description||""}}),assetIds:this.assetChanges.assets?.map(r=>r.id),featuredAssetId:this.assetChanges.featuredAsset?.id,facetValueIds:e.value.facetValueIds}}updateSlugAfterSave(n){const e=n[0],i=this.detailForm.get(["product","slug"]);i&&function a(r){return r.hasOwnProperty("updateProduct")}(e)&&i.setValue(e.updateProduct.slug,{emitEvent:!1})}}(zt=Wt).\u0275fac=function(n){return new(n||zt)(t.Y36(ct),t.Y36(d.qu),t.Y36(s.Z7U),t.Y36(s.gqp),t.Y36(s.DoR),t.Y36(t.sBO))},zt.\u0275cmp=t.Xpm({type:zt,selectors:[["vdr-product-detail2"]],features:[t.qOj],decls:68,vars:86,consts:[[1,"flex","clr-flex-row"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],[1,"form",3,"formGroup"],["for","visibility",3,"label"],[4,"vdrIfPermissions"],[4,"ngIf"],[3,"title",4,"ngIf"],[3,"title"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"click",4,"vdrIfPermissions"],["type","submit","hidden","","x-data","prevents enter key from triggering other buttons"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","slug",3,"label","errors"],["id","slug","type","text","formControlName","slug",3,"readonly"],["for","slug",1,"form-grid-span",3,"label","errors"],["formControlName","description",3,"readonly"],["locationId","product-detail",3,"entity$","detailForm"],[3,"assets","featuredAsset","updatePermissions","change"],[3,"title","paddingX"],[4,"ngIf","ngIfElse"],["variantList",""],["class","mx-3",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],["type","checkbox","clrToggle","","name","enabled",3,"formControl"],[3,"title",4,"vdrIfMultichannel"],[4,"vdrIfDefaultChannelActive"],[1,"flex","channel-assignment"],[1,"mb-2"],[4,"ngFor","ngForOf"],[1,"button-small",3,"click"],["shape","layers"],["icon","times-circle",3,"iconClick",4,"ngIf"],["icon","times-circle",3,"iconClick"],[3,"channelCode"],[1,"options"],[3,"colorFrom","invert",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"routerLink",4,"vdrIfPermissions"],[3,"colorFrom","invert"],[1,"button-small","mt-2",3,"routerLink"],["shape","pencil"],[3,"facetValue","removable","remove"],[1,"button-small","mt-2",3,"click"],["shape","plus"],[3,"entity"],["clrCheckbox","","type","checkbox","id","auto-update","formControlName","autoUpdateVariantNames"],["entityName","Product",3,"customFields","customFieldsFormGroup","readonly"],[3,"variantsChange"],["dataTableId","product-detail-variants-list",3,"productId","hideLanguageSelect"],[1,"mx-3"],[1,"button",3,"routerLink"],["shape","add-text"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left"),t._UZ(3,"div",0),t.TgZ(4,"vdr-language-selector",1),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(5,"async"),t.ALo(6,"async"),t.ALo(7,"async"),t.qZA()(),t.TgZ(8,"vdr-ab-right"),t._UZ(9,"vdr-action-bar-items",2),t.YNc(10,Cs,3,4,"button",3),t.ALo(11,"async"),t.YNc(12,bs,1,1,"ng-template",null,4,t.W1O),t.qZA()()(),t.TgZ(14,"form",5)(15,"vdr-page-detail-layout")(16,"vdr-page-detail-sidebar")(17,"vdr-card")(18,"vdr-form-field",6),t.ALo(19,"translate"),t.YNc(20,Zs,5,5,"clr-toggle-wrapper",7),t.qZA()(),t.YNc(21,Is,2,0,"ng-container",8),t.ALo(22,"async"),t.YNc(23,Js,7,8,"vdr-card",9),t.TgZ(24,"vdr-card",10),t.ALo(25,"translate"),t.TgZ(26,"div",11),t.YNc(27,Ds,2,4,"vdr-facet-value-chip",12),t.ALo(28,"async"),t.qZA(),t.TgZ(29,"div"),t.YNc(30,ws,4,3,"button",13),t.qZA()(),t.YNc(31,Vs,2,1,"vdr-card",8),t.ALo(32,"async"),t.qZA(),t.TgZ(33,"vdr-page-block"),t._UZ(34,"button",14),t.TgZ(35,"vdr-card")(36,"div",15)(37,"div")(38,"vdr-form-field",16),t.ALo(39,"translate"),t.TgZ(40,"input",17),t.NdJ("input",function(a){return e.updateSlug(a.target.value)}),t.ALo(41,"hasPermission"),t.qZA()(),t.YNc(42,Ms,6,3,"div",8),t.ALo(43,"async"),t.qZA(),t.TgZ(44,"vdr-form-field",18),t.ALo(45,"translate"),t.ALo(46,"translate"),t._UZ(47,"input",19),t.ALo(48,"hasPermission"),t.qZA(),t.TgZ(49,"vdr-form-field",20),t.ALo(50,"translate"),t.ALo(51,"translate"),t._UZ(52,"vdr-rich-text-editor",21),t.ALo(53,"hasPermission"),t.qZA()()(),t.YNc(54,Us,4,8,"vdr-card",9),t._UZ(55,"vdr-custom-detail-component-host",22),t.TgZ(56,"vdr-card",10),t.ALo(57,"translate"),t.TgZ(58,"vdr-assets",23),t.NdJ("change",function(a){return e.assetChanges=a}),t.qZA()(),t.TgZ(59,"vdr-card",24),t.ALo(60,"translate"),t.ALo(61,"async"),t.YNc(62,Ns,2,0,"div",25),t.ALo(63,"async"),t.YNc(64,Qs,1,2,"ng-template",null,26,t.W1O),t.YNc(66,$s,5,5,"div",27),t.ALo(67,"async"),t.qZA()()()()),2&n){const i=t.MAs(13),a=t.MAs(65);let r;t.xp6(4),t.Q6J("disabled",t.lcZ(5,35,e.isNew$))("availableLanguageCodes",t.lcZ(6,37,e.availableLanguages$))("currentLanguageCode",t.lcZ(7,39,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(11,41,e.isNew$))("ngIfElse",i),t.xp6(4),t.Q6J("formGroup",e.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(19,43,"catalog.visibility")),t.xp6(2),t.Q6J("vdrIfPermissions",e.updatePermissions),t.xp6(1),t.Q6J("ngIf",!t.lcZ(22,45,e.isNew$)),t.xp6(2),t.Q6J("ngIf",null==e.entity?null:e.entity.optionGroups.length),t.xp6(1),t.Q6J("title",t.lcZ(25,47,"catalog.facets")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(28,49,e.facetValues$)),t.xp6(3),t.Q6J("vdrIfPermissions",e.updatePermissions),t.xp6(1),t.Q6J("ngIf",t.lcZ(32,51,e.entity$)),t.xp6(7),t.Q6J("label",t.lcZ(39,53,"catalog.product-name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(41,55,e.updatePermissions)),t.xp6(2),t.Q6J("ngIf",!1===t.lcZ(43,57,e.isNew$)&&(null==(r=e.detailForm.get(t.DdM(81,Ss)))?null:r.dirty)),t.xp6(2),t.Q6J("label",t.lcZ(45,59,"catalog.slug"))("errors",t.VKq(82,In,t.lcZ(46,61,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(48,63,e.updatePermissions)),t.xp6(2),t.Q6J("label",t.lcZ(50,65,"common.description"))("errors",t.VKq(84,In,t.lcZ(51,67,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(53,69,e.updatePermissions)),t.xp6(2),t.Q6J("ngIf",e.customFields.length),t.xp6(1),t.Q6J("entity$",e.entity$)("detailForm",e.detailForm),t.xp6(1),t.Q6J("title",t.lcZ(57,71,"catalog.assets")),t.xp6(2),t.Q6J("assets",e.assetChanges.assets||(null==e.entity?null:e.entity.assets))("featuredAsset",e.assetChanges.featuredAsset||(null==e.entity?null:e.entity.featuredAsset))("updatePermissions",e.updatePermissions),t.xp6(1),t.Q6J("title",t.lcZ(60,73,"catalog.product-variants"))("paddingX",t.lcZ(61,75,e.isNew$)),t.xp6(3),t.Q6J("ngIf",t.lcZ(63,77,e.isNew$))("ngIfElse",a),t.xp6(4),t.Q6J("ngIf",!1===t.lcZ(67,79,e.isNew$))}},dependencies:[f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.Fj,d.Wl,d.JJ,d.JL,d.oH,d.sg,d.u,A.rH,x.Kk,x.BN,x.mz,j.Y,xe.q,$.h,L.y,Fn.J,E.S,_n.Y,N.H,zc.u,K.W,Wc.n,Xc.M,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,we,vt,Kt,_.Ov,b.X$,Re.U,B.j,sn.E],styles:["[_nghost-%COMP%] trix-toolbar{top:24px}.facets[_ngcontent-%COMP%], .options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:3px}vdr-action-bar[_ngcontent-%COMP%] clr-toggle-wrapper[_ngcontent-%COMP%]{margin-top:12px}.variant-filter[_ngcontent-%COMP%]{flex:1;display:flex}.variant-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;max-width:initial;border-radius:3px 0 0 3px!important}.variant-filter[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{border:1px solid var(--color-component-border-300);background-color:var(--color-component-bg-100);border-radius:0 3px 3px 0;border-inline-start:none}.group-name[_ngcontent-%COMP%]{padding-inline-end:6px}.view-mode[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:space-between}@media screen and (min-width: 768px){.view-mode[_ngcontent-%COMP%]{flex-direction:row}}.edit-variants-btn[_ngcontent-%COMP%]{margin-top:0}.channel-assignment[_ngcontent-%COMP%]{flex-wrap:wrap;max-height:144px}.pagination-row[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between}"],changeDetection:0});const Ln={location:"product-list",label:(0,p.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:o=>o.includes(s.y3$.DeleteProduct)||o.includes(s.y3$.DeleteCatalog),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp);a.dialog({title:(0,p.J)("catalog.confirm-bulk-delete-products"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(l=>l?r.product.deleteProducts((0,J.T)(n.map(m=>m.id))):F.E)).subscribe(l=>{let m=0;const g=[];for(const v of l.deleteProducts)v.result===s.PcR.DELETED?m++:v.message&&g.push(v.message);0<m&&c.success((0,p.J)("catalog.notify-bulk-delete-products-success"),{count:m}),0<g.length&&c.error(g.join("\n")),e.refresh(),i()})}},On={location:"product-list",label:(0,p.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),isVisible:({injector:o})=>(0,s.SDV)(o.get(s.DoR)),onClick:({injector:o,selection:n,clearSelection:e})=>{o.get(s.Z7U).fromComponent(nt,{size:"lg",locals:{productIds:(0,J.T)(n.map(a=>a.id)),currentChannelIds:[]}}).subscribe(a=>{a&&e()})}},kn=(0,s.RBx)({location:"product-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e)=>o.product.removeProductsFromChannel({channelId:e,productIds:n}).pipe((0,h.U)(i=>i.removeProductsFromChannel))}),Jn={location:"product-list",label:(0,p.J)("catalog.edit-facet-values"),icon:"tag",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),c=(o.get(s.DoR),o.get(s.gqp)),l="product",m=(0,J.T)(n.map(g=>g.id));return a.fromComponent(be,{size:"xl",locals:{mode:l,ids:m}}).subscribe(g=>{g&&(c.success((0,p.J)("common.notify-bulk-update-success"),{count:n.length,entity:"Products"}),i())})}};var Xt,Gs=u(9249);const Es=function(){return["./create"]};function Bs(o,n){1&o&&(t.TgZ(0,"a",20),t._UZ(1,"clr-icon",21),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,Es)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-product")," "))}function js(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.id," ")}}function Rs(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.createdAt,"short")," ")}}function Hs(o,n){if(1&o&&(t._uU(0),t.ALo(1,"localeDate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,e.updatedAt,"short")," ")}}function Ks(o,n){if(1&o&&(t._UZ(0,"img",25),t.ALo(1,"assetPreview")),2&o){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function zs(o,n){1&o&&(t.TgZ(0,"div",26),t._UZ(1,"clr-icon",27),t.qZA())}function Ws(o,n){if(1&o&&(t.TgZ(0,"div",22),t.YNc(1,Ks,2,4,"img",23),t.YNc(2,zs,2,0,"ng-template",null,24,t.W1O),t.qZA()),2&o){const e=n.item,i=t.MAs(3);t.xp6(1),t.Q6J("ngIf",e.featuredAsset)("ngIfElse",i)}}const Xs=function(o){return["./",o]};function tl(o,n){if(1&o&&(t.TgZ(0,"a",28)(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"clr-icon",29),t.qZA()),2&o){const e=n.item;t.Q6J("routerLink",t.VKq(2,Xs,e.id)),t.xp6(2),t.Oqu(e.name)}}function el(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.hij(" ",e.slug," ")}}function nl(o,n){1&o&&(t.TgZ(0,"vdr-chip",32),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.enabled")))}function ol(o,n){1&o&&(t.TgZ(0,"vdr-chip",33),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&o&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.disabled")))}function il(o,n){if(1&o&&(t.YNc(0,nl,3,3,"vdr-chip",30),t.YNc(1,ol,3,3,"vdr-chip",31)),2&o){const e=n.item;t.Q6J("ngIf",e.enabled),t.xp6(1),t.Q6J("ngIf",!e.enabled)}}const al=function(o){return{count:o}};function rl(o,n){if(1&o&&(t._uU(0),t.ALo(1,"translate")),2&o){const e=n.item;t.hij(" ",t.xi3(1,1,"catalog.variant-count",t.VKq(4,al,null==e.variantList?null:e.variantList.totalItems))," ")}}function cl(o,n){if(1&o&&t._UZ(0,"vdr-dt2-custom-field-column",34),2&o){const e=n.$implicit,i=t.oxw();t.Q6J("customField",e)("sorts",i.sorts)}}const sl=function(){return["CreateCatalog","CreateProduct"]};class Ve extends s.$ms{constructor(n,e,i,a){super(),this.dataService=n,this.modalService=e,this.notificationService=i,this.jobQueueService=a,this.pendingSearchIndexUpdates=0,this.customFields=this.getCustomFieldConfig("Product"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilters([{name:"enabled",type:{kind:"boolean"},label:(0,p.J)("common.enabled"),filterField:"enabled"},{name:"slug",type:{kind:"text"},label:(0,p.J)("common.slug"),filterField:"slug"}]).addFilter({name:"facetValues",type:{kind:"custom",component:s.qPP,serializeValue:r=>r.map(c=>c.id).join(","),deserializeValue:r=>r.split(",").map(c=>({id:c})),getLabel:r=>0===r.length?"":r[0].name?r.map(c=>c.name).join(", "):(0,cn.n)(this.dataService.facet.getFacetValues({filter:{id:{in:r.map(c=>c.id)}}}).mapSingle(({facetValues:c})=>c.items.map(l=>l.name).join(", ")))},label:(0,p.J)("catalog.facet-values"),toFilterInput:r=>({facetValueId:{in:r.map(c=>c.id)}})}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("createdAt","DESC").addSorts([{name:"id"},{name:"createdAt"},{name:"updatedAt"},{name:"name"},{name:"slug"}]).addCustomFieldSorts(this.customFields).connectToRoute(this.route),this.configure({document:s.Qek,getItems:r=>r.products,setVariables:(r,c)=>({options:{skip:r,take:c,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.sorts.valueChanges,this.filters.valueChanges]})}rebuildSearchIndex(){this.dataService.product.reindex().subscribe(({reindex:n})=>{this.notificationService.info((0,p.J)("catalog.reindexing")),this.jobQueueService.addJob(n.id,e=>{if(e.state===s.Zyh.COMPLETED){const i=(new Intl.NumberFormat).format(e.duration||0);this.notificationService.success((0,p.J)("catalog.reindex-successful"),{count:e.result.indexedItemCount,time:i}),this.refresh()}else this.notificationService.error((0,p.J)("catalog.reindex-error"))})})}deleteProduct(n){this.modalService.dialog({title:(0,p.J)("catalog.confirm-delete-product"),buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(e=>e?this.dataService.product.deleteProduct(n):F.E),(0,Gs.g)(500)).subscribe(()=>{this.notificationService.success((0,p.J)("common.notify-delete-success"),{entity:"Product"}),this.refresh()},e=>{this.notificationService.error((0,p.J)("common.notify-delete-error"),{entity:"Product"})})}}(Xt=Ve).\u0275fac=function(n){return new(n||Xt)(t.Y36(s.DoR),t.Y36(s.Z7U),t.Y36(s.gqp),t.Y36(s.u8d))},Xt.\u0275cmp=t.Xpm({type:Xt,selectors:[["vdr-products-list"]],features:[t.qOj],decls:50,vars:64,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-list"],["class","button primary mr-1",3,"routerLink",4,"vdrIfPermissions"],["vdrDropdownTrigger","",1,"icon-button"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",3,"click"],["shape","refresh",1,""],["id","product-list",1,"mt-2",3,"items","itemsPerPage","totalItems","currentPage","filters","pageChange","itemsPerPageChange"],["locationId","product-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault","sort"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","image",3,"heading"],["id","name",3,"heading","optional","sort"],["id","slug",3,"heading","sort"],["id","enabled",3,"heading"],["id","number-of-variants",3,"heading"],[3,"customField","sorts",4,"ngFor","ngForOf"],[1,"button","primary","mr-1",3,"routerLink"],["shape","plus"],[1,"image-placeholder"],[3,"src",4,"ngIf","ngIfElse"],["imagePlaceholder",""],[3,"src"],[1,"placeholder"],["shape","image","size","48"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["colorType","success",4,"ngIf"],["colorType","warning",4,"ngIf"],["colorType","success"],["colorType","warning"],[3,"customField","sorts"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left")(3,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()(),t.TgZ(6,"vdr-ab-right"),t._UZ(7,"vdr-action-bar-items",1),t.YNc(8,Bs,4,5,"a",2),t.TgZ(9,"vdr-dropdown")(10,"button",3),t._UZ(11,"clr-icon",4),t.qZA(),t.TgZ(12,"vdr-dropdown-menu",5)(13,"button",6),t.NdJ("click",function(){return e.rebuildSearchIndex()}),t._UZ(14,"clr-icon",7),t._uU(15),t.ALo(16,"translate"),t.qZA()()()()()(),t.TgZ(17,"vdr-data-table-2",8),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(18,"async"),t.ALo(19,"async"),t.ALo(20,"async"),t.ALo(21,"async"),t._UZ(22,"vdr-bulk-action-menu",9)(23,"vdr-dt2-search",10),t.ALo(24,"translate"),t.TgZ(25,"vdr-dt2-column",11),t.ALo(26,"translate"),t.YNc(27,js,1,1,"ng-template"),t.qZA(),t.TgZ(28,"vdr-dt2-column",12),t.ALo(29,"translate"),t.YNc(30,Rs,2,4,"ng-template"),t.qZA(),t.TgZ(31,"vdr-dt2-column",13),t.ALo(32,"translate"),t.YNc(33,Hs,2,4,"ng-template"),t.qZA(),t.TgZ(34,"vdr-dt2-column",14),t.ALo(35,"translate"),t.YNc(36,Ws,4,2,"ng-template"),t.qZA(),t.TgZ(37,"vdr-dt2-column",15),t.ALo(38,"translate"),t.YNc(39,tl,4,4,"ng-template"),t.qZA(),t.TgZ(40,"vdr-dt2-column",16),t.ALo(41,"translate"),t.YNc(42,el,1,1,"ng-template"),t.qZA(),t.TgZ(43,"vdr-dt2-column",17),t.ALo(44,"translate"),t.YNc(45,il,2,2,"ng-template"),t.qZA(),t.TgZ(46,"vdr-dt2-column",18),t.ALo(47,"translate"),t.YNc(48,rl,2,6,"ng-template"),t.qZA(),t.YNc(49,cl,1,2,"vdr-dt2-custom-field-column",19),t.qZA()),2&n&&(t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(4,31,e.availableLanguages$))("currentLanguageCode",t.lcZ(5,33,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(63,sl)),t.xp6(7),t.hij(" ",t.lcZ(16,35,"catalog.rebuild-search-index")," "),t.xp6(2),t.Q6J("items",t.lcZ(18,37,e.items$))("itemsPerPage",t.lcZ(19,39,e.itemsPerPage$))("totalItems",t.lcZ(20,41,e.totalItems$))("currentPage",t.lcZ(21,43,e.currentPage$))("filters",e.filters),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(1),t.Q6J("searchTermControl",e.searchTermControl)("searchTermPlaceholder",t.lcZ(24,45,"catalog.filter-by-name")),t.xp6(2),t.Q6J("heading",t.lcZ(26,47,"common.id"))("hiddenByDefault",!0)("sort",e.sorts.get("id")),t.xp6(3),t.Q6J("heading",t.lcZ(29,49,"common.created-at"))("hiddenByDefault",!0)("sort",e.sorts.get("createdAt")),t.xp6(3),t.Q6J("heading",t.lcZ(32,51,"common.updated-at"))("hiddenByDefault",!0)("sort",e.sorts.get("updatedAt")),t.xp6(3),t.Q6J("heading",t.lcZ(35,53,"common.image")),t.xp6(3),t.Q6J("heading",t.lcZ(38,55,"catalog.name"))("optional",!1)("sort",e.sorts.get("name")),t.xp6(3),t.Q6J("heading",t.lcZ(41,57,"common.slug"))("sort",e.sorts.get("slug")),t.xp6(3),t.Q6J("heading",t.lcZ(44,59,"common.enabled")),t.xp6(3),t.Q6J("heading",t.lcZ(47,61,"catalog.number-of-variants")),t.xp6(3),t.Q6J("ngForOf",e.customFields))},dependencies:[f.qvL,_.sg,_.O5,A.rH,x.Kk,x.BN,x.mz,j.Y,E.S,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Ie.c,lt.e,R.U,et.J,Le.j,w.z,_.Ov,b.X$,Ce.M,X.H],styles:[".image-col[_ngcontent-%COMP%]{width:70px}.image-placeholder[_ngcontent-%COMP%]{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:var(--border-radius-img)}.image-placeholder[_ngcontent-%COMP%] .placeholder[_ngcontent-%COMP%]{text-align:center;color:var(--color-grey-300)}.search-form[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%}vdr-product-search-input[_ngcontent-%COMP%]{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input[_ngcontent-%COMP%]{min-width:100px}}.search-settings-menu[_ngcontent-%COMP%]{margin:0 12px}td.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.search-index-button[_ngcontent-%COMP%]{position:relative}.search-index-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{right:0;top:0}.run-updates-button[_ngcontent-%COMP%]{position:relative}.run-updates-button[_ngcontent-%COMP%] vdr-status-badge[_ngcontent-%COMP%]{left:10px;top:10px}.edit-button[_ngcontent-%COMP%]{margin-inline-end:24px}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"]});var te,ll=u(7140),dl=u(3661),pl=u(7015);const ml=function(o){return{rate:o}};function gl(o,n){if(1&o&&(t.TgZ(0,"div",2),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"async"),t.qZA()),2&o){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-includes-tax-at",t.VKq(6,ml,t.lcZ(3,4,e.taxRate$))),"\n")}}const _l=function(o,n){return{price:o,rate:n}};function fl(o,n){if(1&o&&(t.TgZ(0,"div",2),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"localeCurrency"),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()),2&o){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-with-tax-in-default-zone",t.WLB(11,_l,t.xi3(3,4,t.lcZ(4,7,e.grossPrice$),e.currencyCode),t.lcZ(5,9,e.taxRate$))),"\n")}}class Me{constructor(n){this.dataService=n,this.priceChange$=new V.X(0),this.taxCategoryIdChange$=new V.X("")}ngOnInit(){const n=this.dataService.settings.getTaxRatesSimple(999,0,"cache-first").mapStream(i=>i.taxRates.items),e=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(i=>i.activeChannel);this.taxRate$=(0,P.a)(e,n,this.taxCategoryIdChange$).pipe((0,h.U)(([i,a,r])=>{const c=i.defaultTaxZone;if(!c)return 0;const l=a.find(m=>m.zone.id===c.id&&m.category.id===r);return l?l.value:0})),this.grossPrice$=(0,P.a)(this.taxRate$,this.priceChange$).pipe((0,h.U)(([i,a])=>Math.round(a*((100+i)/100))))}ngOnChanges(n){"price"in n&&this.priceChange$.next(n.price.currentValue),"taxCategoryId"in n&&this.taxCategoryIdChange$.next(n.taxCategoryId.currentValue)}}var ee;function hl(o,n){if(1&o&&t._uU(0),2&o){const e=n.item;t.AsE(" ",e.name," (",e.sku,") ")}}function vl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"ng-select",1),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.selectedVariantId=a)})("change",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.onSelect(a))}),t.ALo(1,"async"),t.ALo(2,"translate"),t.YNc(3,hl,1,2,"ng-template",2),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("items",t.lcZ(1,5,e.variants$))("ngModel",e.selectedVariantId)("searchFn",e.searchFn)("clearable",!1)("placeholder",t.lcZ(2,7,"catalog.quick-jump-placeholder"))}}(te=Me).\u0275fac=function(n){return new(n||te)(t.Y36(s.DoR))},te.\u0275cmp=t.Xpm({type:te,selectors:[["vdr-variant-price-detail"]],inputs:{priceIncludesTax:"priceIncludesTax",price:"price",currencyCode:"currencyCode",taxCategoryId:"taxCategoryId"},features:[t.TTD],decls:5,vars:5,consts:[[1,"clr-control-label"],["class","value",4,"ngIf"],[1,"value"]],template:function(n,e){1&n&&(t.TgZ(0,"label",0),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.YNc(3,gl,4,8,"div",1),t.YNc(4,fl,6,14,"div",1)),2&n&&(t.xp6(1),t.Oqu(t.lcZ(2,3,"catalog.taxes")),t.xp6(2),t.Q6J("ngIf",e.priceIncludesTax),t.xp6(1),t.Q6J("ngIf",!e.priceIncludesTax))},dependencies:[f.MgK,_.O5,_.Ov,b.X$,me.k],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.value[_ngcontent-%COMP%]{margin-top:3px}"],changeDetection:0});y.Ps`
|
|
107
107
|
query GetProductVariantsQuickJump($id: ID!) {
|
|
108
108
|
product(id: $id) {
|
|
109
109
|
id
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
`;class Ue{constructor(n,e){this.dataService=n,this.router=e,this.searchFn=(i,a)=>a.name.toLowerCase().includes(i.toLowerCase())||a.sku.toLowerCase().includes(i.toLowerCase())}ngOnInit(){this.variants$=this.dataService.query(s.aAr,{id:this.productId}).mapSingle(n=>n.product?.variants??[])}onSelect(n){n&&this.router.navigate(["catalog","products",this.productId,"variants",n.id]).then(()=>this.selectedVariantId=void 0)}}(ee=Ue).\u0275fac=function(n){return new(n||ee)(t.Y36(s.DoR),t.Y36(A.F0))},ee.\u0275cmp=t.Xpm({type:ee,selectors:[["vdr-product-variant-quick-jump"]],inputs:{productId:"productId"},decls:2,vars:3,consts:[["appendTo","body","bindValue","id",3,"items","ngModel","searchFn","clearable","placeholder","ngModelChange","change",4,"ngIf"],["appendTo","body","bindValue","id",3,"items","ngModel","searchFn","clearable","placeholder","ngModelChange","change"],["ng-option-tmp",""]],template:function(n,e){if(1&n&&(t.YNc(0,hl,4,9,"ng-select",0),t.ALo(1,"async")),2&n){let i;t.Q6J("ngIf",(null==(i=t.lcZ(1,1,e.variants$))?null:i.length)>1)}},dependencies:[_.O5,d.JJ,d.On,de.w9,de.ir,_.Ov,b.X$],changeDetection:0});var ne,vl=u(467);function Cl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-language-selector",8),t.NdJ("languageCodeChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.setLanguage(a))}),t.ALo(1,"async"),t.ALo(2,"async"),t.qZA()}if(2&o){const e=t.oxw().ngIf,i=t.oxw();t.Q6J("disabled",t.lcZ(1,3,i.isNew$))("availableLanguageCodes",e)("currentLanguageCode",t.lcZ(2,5,i.languageCode$))}}function xl(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Cl,3,7,"vdr-language-selector",7),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length>1)}}function bl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",(e.detailForm.invalid||e.stockLevelsForm.invalid||e.pricesForm.invalid||e.detailForm.pristine&&e.stockLevelsForm.pristine&&e.pricesForm.pristine)&&!e.assetsChanged()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}const Tl=function(){return["enabled"]};function Zl(o,n){if(1&o&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",38),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&o){const e=t.oxw(2);t.xp6(1),t.Q6J("formControl",e.detailForm.get(t.DdM(4,Tl))),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.enabled"))}}function Al(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",42)(1,"span"),t._uU(2),t.qZA(),t._uU(3),t.qZA()),2&o){const e=n.$implicit,i=t.oxw(3);t.Q6J("colorFrom",i.optionGroupCode(e.groupId))("invert",!0),t.xp6(2),t.hij("",i.optionGroupCode(e.groupId),":"),t.xp6(1),t.hij(" ",i.optionName(e)," ")}}const Pl=function(){return["../../","options"]};function yl(o,n){1&o&&(t.TgZ(0,"a",43),t._UZ(1,"clr-icon",44),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,Pl)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.edit-options")," "))}function Fl(o,n){if(1&o&&(t.TgZ(0,"vdr-card",14),t.ALo(1,"translate"),t.TgZ(2,"div",39),t.YNc(3,Al,4,4,"vdr-chip",40),t.ALo(4,"sort"),t.qZA(),t.TgZ(5,"div"),t.YNc(6,yl,4,5,"a",41),t.qZA()()),2&o){const e=t.oxw().ngIf,i=t.oxw();t.Q6J("title",t.lcZ(1,3,"catalog.product-options")),t.xp6(3),t.Q6J("ngForOf",t.xi3(4,5,e.options,"groupId")),t.xp6(3),t.Q6J("vdrIfPermissions",i.updatePermissions)}}function Il(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",45),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,c=t.oxw(2);return t.KtG(c.removeFacetValue(r.id))}),t.ALo(1,"hasPermission"),t.qZA()}if(2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("facetValue",e)("removable",t.lcZ(1,2,i.updatePermissions))}}function Ll(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",46),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.selectFacetValue())}),t._UZ(1,"clr-icon",47),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&o&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}function Ol(o,n){if(1&o&&t._UZ(0,"vdr-page-entity-info",48),2&o){const e=n.ngIf;t.Q6J("entity",e)}}function kl(o,n){if(1&o&&(t.TgZ(0,"vdr-card",14),t.ALo(1,"translate"),t._UZ(2,"vdr-tabbed-custom-fields",49),t.ALo(3,"hasPermission"),t.qZA()),2&o){const e=t.oxw(2);t.Q6J("title",t.lcZ(1,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get("customFields"))("readonly",!t.lcZ(3,6,e.updatePermissions))}}function Jl(o,n){if(1&o&&(t.TgZ(0,"option",33),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.Q6J("value",e.id),t.xp6(1),t.hij(" ",e.name," ")}}function Dl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div")(1,"button",55),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw(2);return t.KtG(r.toggleDeletePrice(a.get("delete")))}),t._UZ(2,"clr-icon",56),t.qZA()()}if(2&o){const e=t.oxw().$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("disabled",e.value.currencyCode===i.channelDefaultCurrencyCode)}}function wl(o,n){if(1&o&&(t.TgZ(0,"div",50)(1,"vdr-form-field",51),t.ALo(2,"translate"),t.ALo(3,"translate"),t.TgZ(4,"div",52),t._UZ(5,"vdr-currency-input",53),t.ALo(6,"hasPermission"),t.YNc(7,Dl,3,1,"div",2),t.qZA()(),t._UZ(8,"vdr-variant-price-detail",54),t.ALo(9,"async"),t.qZA()),2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("formGroup",e),t.xp6(1),t.Q6J("label",t.lcZ(2,12,"catalog.price")+(1<i.pricesForm.length?" ("+e.value.currencyCode+")":""))("tooltip",1<i.pricesForm.length&&e.value.currencyCode===i.channelDefaultCurrencyCode?t.lcZ(3,14,"catalog.default-currency"):void 0),t.xp6(3),t.ekj("pending-deletion",!0===e.value.delete),t.xp6(1),t.Q6J("currencyCode",e.value.currencyCode)("readonly",!t.lcZ(6,16,i.updatePermissions)||!0===e.value.delete),t.xp6(2),t.Q6J("ngIf",1<i.pricesForm.controls.length),t.xp6(1),t.Q6J("price",e.value.price)("currencyCode",e.value.currencyCode)("priceIncludesTax",t.lcZ(9,18,i.channelPriceIncludesTax$))("taxCategoryId",i.detailForm.get("taxCategoryId").value)}}function Vl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",60),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw(4);return t.KtG(c.addPriceInCurrency(r))}),t._uU(1),t.ALo(2,"localeCurrencyName"),t.qZA()}if(2&o){const e=n.$implicit;t.xp6(1),t.hij(" ",t.lcZ(2,1,e)," ")}}function Ml(o,n){if(1&o&&(t.TgZ(0,"div")(1,"vdr-dropdown")(2,"button",57),t._UZ(3,"clr-icon",47),t._uU(4),t.ALo(5,"translate"),t._UZ(6,"clr-icon",58),t.qZA(),t.TgZ(7,"vdr-dropdown-menu"),t.YNc(8,Vl,3,3,"button",59),t.qZA()()()),2&o){const e=t.oxw().ngIf;t.xp6(4),t.hij(" ",t.lcZ(5,2,"catalog.add-price-in-another-currency")," "),t.xp6(4),t.Q6J("ngForOf",e)}}function Ul(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Ml,9,4,"div",2),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length)}}function Nl(o,n){if(1&o&&(t.TgZ(0,"div",61)(1,"vdr-form-field",62),t.ALo(2,"translate"),t._UZ(3,"input",63),t.ALo(4,"hasPermission"),t.qZA(),t.TgZ(5,"vdr-form-item",64),t.ALo(6,"translate"),t._uU(7),t.qZA()()),2&o){const e=n.$implicit,i=t.oxw(2);let a,r,c,l,m;t.Q6J("formGroup",e),t.xp6(1),t.Q6J("label",(null==(a=e.get("stockLocationName"))?null:a.value)+": "+t.lcZ(2,7,"catalog.stock-on-hand"))("for","stockOnHand_"+(null==(r=e.get("stockLocationId"))?null:r.value)),t.xp6(2),t.Q6J("id","stockOnHand_"+(null==(c=e.get("stockLocationId"))?null:c.value))("readonly",!t.lcZ(4,9,i.updatePermissions)),t.xp6(2),t.Q6J("label",(null==(l=e.get("stockLocationName"))?null:l.value)+": "+t.lcZ(6,11,"catalog.stock-allocated")),t.xp6(2),t.hij(" ",null==(m=e.get("stockAllocated"))?null:m.value," ")}}function Ql(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",60),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw(4);return t.KtG(c.addStockLocation(r))}),t._UZ(1,"clr-icon",65),t._uU(2),t.qZA()}if(2&o){const e=n.$implicit;t.xp6(2),t.hij(" ",e.name," ")}}function ql(o,n){if(1&o&&(t.TgZ(0,"div")(1,"vdr-dropdown")(2,"button",57),t._UZ(3,"clr-icon",47),t._uU(4),t.ALo(5,"translate"),t._UZ(6,"clr-icon",58),t.qZA(),t.TgZ(7,"vdr-dropdown-menu"),t.YNc(8,Ql,3,1,"button",59),t.qZA()()()),2&o){const e=t.oxw().ngIf;t.xp6(4),t.hij(" ",t.lcZ(5,2,"catalog.add-stock-location")," "),t.xp6(4),t.Q6J("ngForOf",e)}}function $l(o,n){if(1&o&&(t.ynx(0),t.YNc(1,ql,9,4,"div",2),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length)}}const He=function(){return["UpdateCatalog","UpdateProduct"]};function Sl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"form",10)(1,"vdr-page-detail-layout")(2,"vdr-page-detail-sidebar")(3,"vdr-card")(4,"vdr-form-field",11),t.ALo(5,"translate"),t.YNc(6,Zl,5,5,"clr-toggle-wrapper",12),t.qZA()(),t.YNc(7,Fl,7,8,"vdr-card",13),t.TgZ(8,"vdr-card",14),t.ALo(9,"translate"),t.TgZ(10,"div",15),t.YNc(11,Il,2,4,"vdr-facet-value-chip",16),t.ALo(12,"async"),t.qZA(),t.TgZ(13,"div"),t.YNc(14,Ll,4,3,"button",17),t.qZA()(),t.TgZ(15,"vdr-card"),t.YNc(16,Ol,1,1,"vdr-page-entity-info",18),t.ALo(17,"async"),t.qZA()(),t.TgZ(18,"vdr-page-block"),t._UZ(19,"button",19),t.TgZ(20,"vdr-card")(21,"div",20)(22,"vdr-form-field",21),t.ALo(23,"translate"),t._UZ(24,"input",22),t.ALo(25,"hasPermission"),t.qZA(),t.TgZ(26,"vdr-form-field",23),t.ALo(27,"translate"),t._UZ(28,"input",24),t.ALo(29,"hasPermission"),t.qZA()()(),t.YNc(30,kl,4,8,"vdr-card",13),t._UZ(31,"vdr-custom-detail-component-host",25),t.TgZ(32,"vdr-card",14),t.ALo(33,"translate"),t.TgZ(34,"vdr-assets",26),t.NdJ("change",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.assetChanges=a)}),t.qZA()(),t.TgZ(35,"vdr-card",14),t.ALo(36,"translate"),t.TgZ(37,"div",20)(38,"vdr-form-field",27),t.ALo(39,"translate"),t.TgZ(40,"select",28),t.YNc(41,Jl,2,2,"option",29),t.ALo(42,"async"),t.qZA()()(),t.YNc(43,wl,10,20,"div",30),t.YNc(44,Ul,2,1,"ng-container",2),t.ALo(45,"async"),t.qZA(),t.TgZ(46,"vdr-card",14),t.ALo(47,"translate"),t.TgZ(48,"div",20)(49,"vdr-form-field",31),t.ALo(50,"translate"),t.ALo(51,"translate"),t.TgZ(52,"select",32),t.ALo(53,"hasPermission"),t.TgZ(54,"option",33),t._uU(55),t.ALo(56,"translate"),t.qZA(),t.TgZ(57,"option",33),t._uU(58),t.ALo(59,"translate"),t.qZA(),t.TgZ(60,"option",33),t._uU(61),t.ALo(62,"translate"),t.qZA()()(),t.TgZ(63,"vdr-form-item",34),t.ALo(64,"translate"),t.ALo(65,"translate"),t._UZ(66,"input",35),t.ALo(67,"hasPermission"),t.TgZ(68,"clr-toggle-wrapper"),t._UZ(69,"input",36),t.ALo(70,"hasPermission"),t.TgZ(71,"label"),t._uU(72),t.ALo(73,"translate"),t.qZA()()()(),t.YNc(74,Nl,8,13,"div",37),t.YNc(75,$l,2,1,"ng-container",2),t.ALo(76,"async"),t.qZA()()()()}if(2&o){const e=n.ngIf,i=t.oxw();let a;t.Q6J("formGroup",i.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(5,43,"catalog.visibility")),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(95,He)),t.xp6(1),t.Q6J("ngIf",e.options.length),t.xp6(1),t.Q6J("title",t.lcZ(9,45,"catalog.facets")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(12,47,i.facetValues$)),t.xp6(3),t.Q6J("vdrIfPermissions",i.updatePermissions),t.xp6(2),t.Q6J("ngIf",t.lcZ(17,49,i.entity$)),t.xp6(6),t.Q6J("label",t.lcZ(23,51,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(25,53,t.DdM(96,He))),t.xp6(2),t.Q6J("label",t.lcZ(27,55,"catalog.sku")),t.xp6(2),t.Q6J("readonly",!t.lcZ(29,57,i.updatePermissions)),t.xp6(2),t.Q6J("ngIf",i.customFields.length),t.xp6(1),t.Q6J("entity$",i.entity$)("detailForm",i.detailForm),t.xp6(1),t.Q6J("title",t.lcZ(33,59,"catalog.assets")),t.xp6(2),t.Q6J("assets",i.assetChanges.assets||e.assets)("featuredAsset",i.assetChanges.featuredAsset||e.featuredAsset)("updatePermissions",i.updatePermissions),t.xp6(1),t.Q6J("title",t.lcZ(36,61,"catalog.price-and-tax")),t.xp6(3),t.Q6J("label",t.lcZ(39,63,"catalog.tax-category")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(42,65,i.taxCategories$)),t.xp6(2),t.Q6J("ngForOf",i.pricesForm.controls),t.xp6(1),t.Q6J("ngIf",t.lcZ(45,67,i.unusedCurrencyCodes$)),t.xp6(2),t.Q6J("title",t.lcZ(47,69,"catalog.stock-levels")),t.xp6(3),t.Q6J("label",t.lcZ(50,71,"catalog.track-inventory"))("tooltip",t.lcZ(51,73,"catalog.track-inventory-tooltip")),t.xp6(3),t.Q6J("disabled",!t.lcZ(53,75,i.updatePermissions)),t.xp6(2),t.Q6J("value",i.GlobalFlag.TRUE),t.xp6(1),t.hij(" ",t.lcZ(56,77,"catalog.track-inventory-true")," "),t.xp6(2),t.Q6J("value",i.GlobalFlag.FALSE),t.xp6(1),t.hij(" ",t.lcZ(59,79,"catalog.track-inventory-false")," "),t.xp6(2),t.Q6J("value",i.GlobalFlag.INHERIT),t.xp6(1),t.hij(" ",t.lcZ(62,81,"catalog.track-inventory-inherit")," "),t.xp6(2),t.Q6J("label",t.lcZ(64,83,"catalog.out-of-stock-threshold"))("tooltip",t.lcZ(65,85,"catalog.out-of-stock-threshold-tooltip")),t.xp6(3),t.Q6J("readonly",!t.lcZ(67,87,i.updatePermissions))("vdrDisabled",!1!==(null==(a=i.detailForm.get("useGlobalOutOfStockThreshold"))?null:a.value)||i.inventoryIsNotTracked(i.detailForm)),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(70,89,i.updatePermissions)||i.inventoryIsNotTracked(i.detailForm)),t.xp6(3),t.AsE("",t.lcZ(73,91,"catalog.use-global-value")," (",i.globalOutOfStockThreshold,")"),t.xp6(2),t.Q6J("ngForOf",i.stockLevelsForm.controls),t.xp6(1),t.Q6J("ngIf",t.lcZ(76,93,i.unusedStockLocation$))}}class Ne extends s.VE7{constructor(n,e,i,a,r,c){super(),this.productDetailService=n,this.formBuilder=e,this.modalService=i,this.notificationService=a,this.dataService=r,this.changeDetector=c,this.updatePermissions=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct],this.customFields=this.getCustomFieldConfig("ProductVariant"),this.customOptionFields=this.getCustomFieldConfig("ProductOption"),this.detailForm=this.formBuilder.group({id:"",enabled:!1,sku:"",name:"",taxCategoryId:"",stockOnHand:0,useGlobalOutOfStockThreshold:!0,outOfStockThreshold:0,trackInventory:s.TvZ.TRUE,facetValueIds:[],customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),this.stockLevelsForm=this.formBuilder.array([]),this.pricesForm=this.formBuilder.array([]),this.assetChanges={},this.GlobalFlag=s.TvZ}ngOnInit(){this.init(),this.dataService.settings.getGlobalSettings("cache-first").single$.subscribe(({globalSettings:r})=>{this.globalTrackInventory=r.trackInventory,this.globalOutOfStockThreshold=r.outOfStockThreshold,this.changeDetector.markForCheck()}),this.taxCategories$=this.result$.pipe((0,h.U)(r=>r.taxCategories.items));const n=this.result$.pipe((0,q.b)(r=>this.channelDefaultCurrencyCode=r.activeChannel.defaultCurrencyCode),(0,h.U)(r=>r.activeChannel.availableCurrencyCodes));this.unusedCurrencyCodes$=(0,P.a)(this.pricesForm.valueChanges,n).pipe((0,h.U)(([r,c])=>c.filter(l=>!r.map(m=>m.currencyCode).includes(l))));const e=this.result$.pipe((0,h.U)(r=>r.stockLocations.items));this.unusedStockLocation$=(0,P.a)(this.entity$,e).pipe((0,h.U)(([r,c])=>{const l=r.stockLevels.map(m=>m.stockLocation.id);return c.filter(m=>!l.includes(m.id))})),this.channelPriceIncludesTax$=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(r=>r.activeChannel.pricesIncludeTax).pipe((0,xt.d)(1)),this.stockLevels$=this.entity$.pipe((0,h.U)(r=>r?.stockLevels??[]));const i=this.entity$.pipe((0,h.U)(r=>r.facetValues??[])),a=this.detailForm.get("facetValueIds").valueChanges.pipe((0,ll.T)(1),(0,M.x)(),(0,C.w)(r=>this.dataService.facet.getFacetValues({filter:{id:{in:r}}}).mapSingle(({facetValues:c})=>c.items)),(0,xt.d)(1));this.facetValues$=(0,yn.z)(i.pipe((0,Y.q)(1)),i.pipe(function pl(o,n){return(0,dl.m)(n)?(0,C.w)(()=>o,n):(0,C.w)(()=>o)}(a)))}ngOnDestroy(){this.destroy()}addPriceInCurrency(n){this.pricesForm.push(this.formBuilder.group({currencyCode:n,price:0,delete:!1}))}toggleDeletePrice(n){n.setValue(!n.value),n.markAsDirty()}addStockLocation(n){this.stockLevelsForm.push(this.formBuilder.group({stockLocationId:n.id,stockLocationName:n.name,stockOnHand:0,stockAllocated:0}))}save(){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([n,e])=>{const i=(0,sl.e)(this.getUpdatedVariant(n,this.detailForm,e),["id","enabled","translations","sku","taxCategoryId","facetValueIds","featuredAssetId","assetIds","trackInventory","outOfStockThreshold","useGlobalOutOfStockThreshold","customFields"]);return this.stockLevelsForm.dirty&&(i.stockLevels=this.stockLevelsForm.controls.filter(a=>a.dirty).map(a=>({stockLocationId:a.value.stockLocationId,stockOnHand:a.value.stockOnHand}))),this.pricesForm.dirty&&(i.prices=this.pricesForm.controls.filter(a=>a.dirty).map(a=>({price:a.value.price,currencyCode:a.value.currencyCode,delete:!0===a.value.delete}))),this.dataService.mutate(s.YZY,{input:[i]})})).subscribe(n=>{this.detailForm.markAsPristine(),this.stockLevelsForm.markAsPristine(),this.pricesForm.markAsPristine(),this.assetChanges={},this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"ProductVariant"}),this.changeDetector.markForCheck()},n=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"ProductVariant"})})}assetsChanged(){return!!Object.values(this.assetChanges).length}inventoryIsNotTracked(n){const e=n.get("trackInventory")?.value;return e===s.TvZ.FALSE||e===s.TvZ.INHERIT&&!1===this.globalTrackInventory}optionGroupCode(n){return this.entity?.product.optionGroups.find(i=>i.id===n)?.code}optionName(n){return(n.translations.find(i=>i.languageCode===this.languageCode)??n.translations[0]).name}removeFacetValue(n){const e=this.detailForm,i=e.value.facetValueIds??[];e.patchValue({facetValueIds:i.filter(a=>a!==n)}),e.markAsDirty()}selectFacetValue(){this.displayFacetValueModal().subscribe(n=>{if(n){const e=this.detailForm.value.facetValueIds??[];this.detailForm.patchValue({facetValueIds:(0,J.T)([...e,...n])}),this.detailForm.markAsDirty()}})}displayFacetValueModal(){return this.modalService.fromComponent(It,{size:"md",closable:!0}).pipe((0,h.U)(n=>n&&n.map(e=>e.id)))}setFormValues(n,e){const i=(0,s.ZIM)(n,e),a=n.facetValues.map(r=>r.id);this.detailForm.patchValue({id:n.id,enabled:n.enabled,sku:n.sku,name:i?i.name:"",taxCategoryId:n.taxCategory.id,stockOnHand:n.stockLevels[0]?.stockOnHand??0,useGlobalOutOfStockThreshold:n.useGlobalOutOfStockThreshold,outOfStockThreshold:n.outOfStockThreshold,trackInventory:n.trackInventory,facetValueIds:a}),this.stockLevelsForm.clear();for(const r of n.stockLevels)this.stockLevelsForm.push(this.formBuilder.group({stockLocationId:r.stockLocation.id,stockLocationName:r.stockLocation.name,stockOnHand:r.stockOnHand,stockAllocated:r.stockAllocated}));this.pricesForm.clear();for(const r of n.prices)this.pricesForm.push(this.formBuilder.group({price:r.price,currencyCode:r.currencyCode,delete:!1}));this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get("customFields"),n,i)}getUpdatedVariant(n,e,i){return{...(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}}),assetIds:this.assetChanges.assets?.map(r=>r.id),featuredAssetId:this.assetChanges.featuredAsset?.id,facetValueIds:e.value.facetValueIds,taxCategoryId:e.value.taxCategoryId}}}(ne=Ne).\u0275fac=function(n){return new(n||ne)(t.Y36(ct),t.Y36(d.qu),t.Y36(s.Z7U),t.Y36(s.gqp),t.Y36(s.DoR),t.Y36(t.sBO))},ne.\u0275cmp=t.Xpm({type:ne,selectors:[["vdr-product-variant-detail"]],features:[t.qOj],decls:12,vars:10,consts:[[3,"grow"],[1,"flex","center"],[4,"ngIf"],[3,"productId"],["locationId","product-variant-detail"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],["class","form",3,"formGroup",4,"ngIf"],["class","mr-2",3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange",4,"ngIf"],[1,"mr-2",3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"btn","btn-primary",3,"disabled","click"],[1,"form",3,"formGroup"],["for","visibility",3,"label"],[4,"vdrIfPermissions"],[3,"title",4,"ngIf"],[3,"title"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"click",4,"vdrIfPermissions"],[3,"entity",4,"ngIf"],["type","submit","hidden","","x-data","prevents enter key from triggering other buttons"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly"],["for","sku",3,"label"],["id","sku","type","text","formControlName","sku",3,"readonly"],["locationId","product-variant-detail",3,"entity$","detailForm"],[3,"assets","featuredAsset","updatePermissions","change"],["for","taxCategory",3,"label"],["name","taxCategory","formControlName","taxCategoryId"],[3,"value",4,"ngFor","ngForOf"],["class","form-grid prices",3,"formGroup",4,"ngFor","ngForOf"],["for","track-inventory",3,"label","tooltip"],["name","track-inventory","formControlName","trackInventory",3,"disabled"],[3,"value"],[3,"label","tooltip"],["type","number","formControlName","outOfStockThreshold",3,"readonly","vdrDisabled"],["type","checkbox","clrToggle","","name","useGlobalOutOfStockThreshold","formControlName","useGlobalOutOfStockThreshold",3,"vdrDisabled"],["class","form-grid stock-levels",3,"formGroup",4,"ngFor","ngForOf"],["type","checkbox","clrToggle","","name","enabled",3,"formControl"],[1,"options"],[3,"colorFrom","invert",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"routerLink",4,"vdrIfPermissions"],[3,"colorFrom","invert"],[1,"button-small","mt-2",3,"routerLink"],["shape","pencil"],[3,"facetValue","removable","remove"],[1,"button-small","mt-2",3,"click"],["shape","plus"],[3,"entity"],["entityName","ProductVariant",3,"customFields","customFieldsFormGroup","readonly"],[1,"form-grid","prices",3,"formGroup"],["for","price",3,"label","tooltip"],[1,"price-wrapper"],["name","price","formControlName","price",3,"currencyCode","readonly"],[3,"price","currencyCode","priceIncludesTax","taxCategoryId"],[1,"button-small","delete-button",3,"disabled","click"],["shape","trash"],["vdrDropdownTrigger","",1,"button","mt-2"],["shape","ellipsis-vertical"],["vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["vdrDropdownItem","",3,"click"],[1,"form-grid","stock-levels",3,"formGroup"],[3,"label","for"],["type","number","formControlName","stockOnHand",3,"id","readonly"],[3,"label"],["shape","map-marker"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left",0)(3,"div",1),t.YNc(4,xl,2,1,"ng-container",2),t.ALo(5,"async"),t._UZ(6,"vdr-product-variant-quick-jump",3),t.qZA()(),t.TgZ(7,"vdr-ab-right"),t._UZ(8,"vdr-action-bar-items",4),t.YNc(9,bl,3,4,"button",5),t.qZA()()(),t.YNc(10,Sl,77,97,"form",6),t.ALo(11,"async")),2&n&&(t.xp6(2),t.Q6J("grow",!0),t.xp6(2),t.Q6J("ngIf",t.lcZ(5,5,e.availableLanguages$)),t.xp6(2),t.Q6J("productId",null==e.entity?null:e.entity.product.id),t.xp6(3),t.Q6J("vdrIfPermissions",t.DdM(9,He)),t.xp6(1),t.Q6J("ngIf",t.lcZ(11,7,e.entity$)))},dependencies:[f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.YN,d.Kr,d.Fj,d.wV,d.Wl,d.EJ,d.JJ,d.JL,d.oH,d.sg,d.u,A.rH,x.Kk,x.BN,x.mz,j.Y,pe.K,xe.q,$.h,L.y,Fn.J,E.S,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Te.x,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,vt,Me,Ue,_.Ov,b.X$,vl.u,Re.U,B.j],styles:[".facets[_ngcontent-%COMP%], .options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:3px}vdr-product-variant-quick-jump[_ngcontent-%COMP%]{flex:1;margin-inline-end:calc(var(--space-unit) * 2)}.stock-levels[_ngcontent-%COMP%], .prices[_ngcontent-%COMP%]{margin-top:calc(var(--space-unit) * 2);padding-top:calc(var(--space-unit) * 2);border-top:1px solid var(--color-weight-150)}.price-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--space-unit);width:100%}.price-wrapper.pending-deletion[_ngcontent-%COMP%] vdr-currency-input[_ngcontent-%COMP%]{opacity:.7}.price-wrapper.pending-deletion[_ngcontent-%COMP%] .delete-button[_ngcontent-%COMP%]{background-color:var(--color-error-700);color:var(--color-error-100)}"],changeDetection:0});const Dn={location:"product-variant-list",label:(0,p.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),isVisible:({injector:o})=>(0,s.SDV)(o.get(s.DoR)),onClick:({injector:o,selection:n,clearSelection:e})=>{o.get(s.Z7U).fromComponent(nt,{size:"lg",locals:{productVariantIds:(0,J.T)(n.map(a=>a.id)),currentChannelIds:[]}}).subscribe(a=>{a&&e()})}},wn=(0,s.RBx)({location:"product-variant-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e)=>o.product.removeVariantsFromChannel({channelId:e,productVariantIds:n}).pipe((0,h.U)(i=>i.removeProductVariantsFromChannel))}),Vn={location:"product-variant-list",label:(0,p.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:o=>o.includes(s.y3$.DeleteProduct)||o.includes(s.y3$.DeleteCatalog),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp);a.dialog({title:(0,p.J)("common.confirm-bulk-delete"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(l=>l?r.product.deleteProductVariants((0,J.T)(n.map(m=>m.id))):F.E)).subscribe(l=>{let m=0;const g=[];for(const v of l.deleteProductVariants)v.result===s.PcR.DELETED?m++:v.message&&g.push(v.message);0<m&&c.success((0,p.J)("catalog.notify-bulk-delete-products-success"),{count:m}),0<g.length&&c.error(g.join("\n")),e.refresh(),i()})}};var oe,ie,Yl=u(4242);function Gl(o,n){if(1&o&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.qZA(),t.BQk()),2&o){const e=n.$implicit;t.xp6(2),t.Oqu(e.name)}}function El(o,n){if(1&o&&(t._UZ(0,"img",18),t.ALo(1,"assetPreview")),2&o){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function Bl(o,n){1&o&&(t.TgZ(0,"div",19),t._UZ(1,"clr-icon",20),t.qZA())}function jl(o,n){if(1&o&&(t.ynx(0),t.TgZ(1,"td",5),t.ALo(2,"stringToColor"),t._uU(3),t.qZA(),t.BQk()),2&o){const e=n.$implicit,i=t.oxw().ngIf,a=t.oxw(2);t.xp6(1),t.Udp("color",t.lcZ(2,5,a.optionGroupName(e.groupId))),t.ekj("disabled",!i.get("enabled").value),t.xp6(2),t.hij(" ",e.name," ")}}function Rl(o,n){if(1&o&&(t._UZ(0,"vdr-currency-input",21),t.ALo(1,"hasPermission")),2&o){const e=t.oxw(2).$implicit,i=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,i.updatePermission))}}function Hl(o,n){if(1&o&&(t._UZ(0,"vdr-currency-input",22),t.ALo(1,"hasPermission")),2&o){const e=t.oxw(2).$implicit,i=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,i.updatePermission))}}function Kl(o,n){if(1&o&&(t.ynx(0,4),t.TgZ(1,"td",5)(2,"div",6)(3,"div",7),t.YNc(4,El,2,4,"img",8),t.YNc(5,Bl,2,0,"ng-template",null,9,t.W1O),t.qZA()()(),t.TgZ(7,"td",5)(8,"clr-input-container"),t._UZ(9,"input",10),t.ALo(10,"hasPermission"),t.ALo(11,"translate"),t.qZA()(),t.TgZ(12,"td",5)(13,"clr-input-container"),t._UZ(14,"input",11),t.ALo(15,"hasPermission"),t.ALo(16,"translate"),t.qZA()(),t.YNc(17,jl,4,7,"ng-container",1),t.ALo(18,"sort"),t.TgZ(19,"td",12)(20,"clr-input-container"),t.YNc(21,Rl,2,4,"vdr-currency-input",13),t.YNc(22,Hl,2,4,"vdr-currency-input",14),t.qZA()(),t.TgZ(23,"td",15)(24,"clr-input-container"),t._UZ(25,"input",16),t.ALo(26,"hasPermission"),t.qZA()(),t.TgZ(27,"td",15)(28,"clr-toggle-wrapper"),t._UZ(29,"input",17),t.ALo(30,"hasPermission"),t.qZA()(),t.BQk()),2&o){const e=n.ngIf,i=t.MAs(6),a=t.oxw().$implicit,r=t.oxw();t.Q6J("formGroup",e),t.xp6(1),t.ekj("disabled",!e.get("enabled").value),t.xp6(3),t.Q6J("ngIf",r.getFeaturedAsset(a))("ngIfElse",i),t.xp6(3),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("readonly",!t.lcZ(10,24,r.updatePermission))("placeholder",t.lcZ(11,26,"common.name")),t.xp6(3),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("readonly",!t.lcZ(15,28,r.updatePermission))("placeholder",t.lcZ(16,30,"catalog.sku")),t.xp6(3),t.Q6J("ngForOf",t.xi3(18,32,a.options,"groupId")),t.xp6(2),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("ngIf",!r.channelPriceIncludesTax),t.xp6(1),t.Q6J("ngIf",r.channelPriceIncludesTax),t.xp6(1),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("readonly",!t.lcZ(26,35,r.updatePermission)),t.xp6(2),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("vdrDisabled",!t.lcZ(30,37,r.updatePermission))}}function zl(o,n){if(1&o&&(t.TgZ(0,"tr"),t.YNc(1,Kl,31,39,"ng-container",3),t.qZA()),2&o){const e=n.$implicit,i=t.oxw();t.xp6(1),t.Q6J("ngIf",i.formGroupMap.get(e.id))}}class Ke{constructor(n){this.changeDetector=n,this.formGroupMap=new Map,this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct]}ngOnInit(){this.subscription=this.formArray.valueChanges.pipe((0,h.U)(n=>n.length),(0,mt.b)(1),(0,M.x)()).subscribe(()=>{this.buildFormGroupMap()}),this.buildFormGroupMap()}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}trackByFn(n,e){return null!=e.id?e.id:n}getFeaturedAsset(n){return this.pendingAssetChanges[n.id]?.featuredAsset||n.featuredAsset}optionGroupName(n){const e=this.optionGroups.find(i=>i.id===n);return e&&e.name}buildFormGroupMap(){this.formGroupMap.clear();for(const n of this.formArray.controls)this.formGroupMap.set(n.value.id,n);this.changeDetector.markForCheck()}}function Wl(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.Oqu(t.lcZ(1,1,"catalog.update-product-option"))}(oe=Ke).\u0275fac=function(n){return new(n||oe)(t.Y36(t.sBO))},oe.\u0275cmp=t.Xpm({type:oe,selectors:[["vdr-product-variants-table"]],inputs:{formArray:["productVariantsFormArray","formArray"],variants:"variants",paginationConfig:"paginationConfig",channelPriceIncludesTax:"channelPriceIncludesTax",optionGroups:"optionGroups",pendingAssetChanges:"pendingAssetChanges"},decls:24,vars:24,consts:[[1,"table"],[4,"ngFor","ngForOf"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"left","align-middle"],[1,"card-img"],[1,"featured-asset"],[3,"src",4,"ngIf","ngIfElse"],["placeholder",""],["clrInput","","type","text","formControlName","name",3,"readonly","placeholder"],["clrInput","","type","text","formControlName","sku",3,"readonly","placeholder"],[1,"left","align-middle","price"],["clrInput","","formControlName","price",3,"currencyCode","readonly",4,"ngIf"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly",4,"ngIf"],[1,"left","align-middle","stock"],["clrInput","","type","number","min","0","step","1","formControlName","stockOnHand",3,"readonly"],["type","checkbox","clrToggle","","name","enabled","formControlName","enabled",3,"vdrDisabled"],[3,"src"],[1,"placeholder"],["shape","image","size","48"],["clrInput","","formControlName","price",3,"currencyCode","readonly"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly"]],template:function(n,e){1&n&&(t.TgZ(0,"table",0)(1,"thead")(2,"tr"),t._UZ(3,"th"),t.TgZ(4,"th"),t._uU(5),t.ALo(6,"translate"),t.qZA(),t.TgZ(7,"th"),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.YNc(10,Gl,3,1,"ng-container",1),t.ALo(11,"sort"),t.TgZ(12,"th"),t._uU(13),t.ALo(14,"translate"),t.qZA(),t.TgZ(15,"th"),t._uU(16),t.ALo(17,"translate"),t.qZA(),t.TgZ(18,"th"),t._uU(19),t.ALo(20,"translate"),t.qZA()()(),t.TgZ(21,"tbody"),t.YNc(22,zl,2,1,"tr",2),t.ALo(23,"paginate"),t.qZA()()),2&n&&(t.xp6(5),t.Oqu(t.lcZ(6,8,"common.name")),t.xp6(3),t.Oqu(t.lcZ(9,10,"catalog.sku")),t.xp6(2),t.Q6J("ngForOf",t.xi3(11,12,e.optionGroups,"id")),t.xp6(3),t.Oqu(t.lcZ(14,15,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(17,17,"catalog.stock-on-hand")),t.xp6(3),t.Oqu(t.lcZ(20,19,"common.enabled")),t.xp6(3),t.Q6J("ngForOf",t.xi3(23,21,e.variants,e.paginationConfig))("ngForTrackBy",e.trackByFn))},dependencies:[f.q0d,f.qvL,f.KKC,f.PEh,f.xRP,f.G55,_.sg,_.O5,d.Fj,d.wV,d.Wl,d.JJ,d.JL,d.qQ,d.sg,d.u,pe.K,L.y,Te.x,he._s,b.X$,Re.U,Yl.s,B.j,Ce.M],styles:[".placeholder[_ngcontent-%COMP%]{color:var(--color-grey-300)}.stock[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{max-width:96px}td[_ngcontent-%COMP%]{transition:background-color .2s}td.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}"],changeDetection:0});const Xl=function(){return["UpdateCatalog","UpdateProduct"]};function td(o,n){if(1&o&&(t.TgZ(0,"section")(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",10),t.ALo(5,"hasPermission"),t.qZA()),2&o){const e=t.oxw();t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.customFieldsForm)("readonly",!t.lcZ(5,6,t.DdM(8,Xl)))}}function ed(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",11),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",12),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.update())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw(),i=t.MAs(4),a=t.MAs(8);t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",i.invalid||a.invalid||i.pristine&&a.pristine&&e.customFieldsForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(5,5,"catalog.update-product-option")," ")}}class ze{constructor(){this.updateVariantName=!0,this.codeInputTouched=!1}ngOnInit(){const n=this.productOption.translations.find(e=>e.languageCode===this.activeLanguage);if(this.name=n?.name??"",this.code=this.productOption.code,this.customFieldsForm=new d.nJ({}),this.customFields){const e=n&&n.customFields||{};for(const i of this.customFields){const a=i.name,r="localeString"===i.type?e[a]:this.productOption.customFields[a];this.customFieldsForm.addControl(i.name,new d.p4(r))}}}update(){const n=(0,s.iSy)({translatable:this.productOption,languageCode:this.activeLanguage,updatedFields:{code:this.code,name:this.name,customFields:this.customFieldsForm.value},customFieldConfig:this.customFields,defaultTranslation:{languageCode:this.activeLanguage,name:""}});this.resolveWith({...n,autoUpdate:this.updateVariantName})}cancel(){this.resolveWith()}updateCode(n){!this.codeInputTouched&&!this.productOption.code&&(this.code=(0,G.U)(n,"-"))}}var it;(ie=ze).\u0275fac=function(n){return new(n||ie)},ie.\u0275cmp=t.Xpm({type:ie,selectors:[["vdr-update-product-option-dialog"]],decls:16,vars:13,consts:[["vdrDialogTitle",""],["for","name",3,"label"],["id","name","type","text","required","",3,"ngModel","ngModelChange","input"],["nameInput","ngModel"],["for","code",3,"label"],["id","code","type","text","required","","pattern","[a-z0-9_-]+",3,"ngModel","ngModelChange"],["codeInput","ngModel"],["type","checkbox","clrCheckbox","",3,"ngModel","ngModelChange"],[4,"ngIf"],["vdrDialogButtons",""],["entityName","ProductOption",3,"customFields","customFieldsFormGroup","readonly"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,Wl,2,3,"ng-template",0),t.TgZ(1,"vdr-form-field",1),t.ALo(2,"translate"),t.TgZ(3,"input",2,3),t.NdJ("ngModelChange",function(a){return e.name=a})("input",function(a){return e.updateCode(a.target.value)}),t.qZA()(),t.TgZ(5,"vdr-form-field",4),t.ALo(6,"translate"),t.TgZ(7,"input",5,6),t.NdJ("ngModelChange",function(a){return e.code=a}),t.qZA()(),t.TgZ(9,"clr-checkbox-wrapper")(10,"input",7),t.NdJ("ngModelChange",function(a){return e.updateVariantName=a}),t.qZA(),t.TgZ(11,"label"),t._uU(12),t.ALo(13,"translate"),t.qZA()(),t.YNc(14,td,6,9,"section",8),t.YNc(15,ed,6,7,"ng-template",9)),2&n&&(t.xp6(1),t.Q6J("label",t.lcZ(2,7,"catalog.option-name")),t.xp6(2),t.Q6J("ngModel",e.name),t.xp6(2),t.Q6J("label",t.lcZ(6,9,"common.code")),t.xp6(2),t.Q6J("ngModel",e.code),t.xp6(3),t.Q6J("ngModel",e.updateVariantName),t.xp6(2),t.Oqu(t.lcZ(13,11,"catalog.auto-update-option-variant-name")),t.xp6(2),t.Q6J("ngIf",e.customFields.length))},dependencies:[f.MgK,f.KKC,f.PEh,_.O5,d.Fj,d.Wl,d.JJ,d.Q7,d.c5,d.On,$.h,L.y,tt.n,H.q,st.y,b.X$,B.j],changeDetection:0});class ae{constructor(n,e){ae.hasRegisteredTabsAndBulkActions||(n.registerBulkAction(Jn),n.registerBulkAction(On),n.registerBulkAction(Dn),n.registerBulkAction(kn),n.registerBulkAction(wn),n.registerBulkAction(Ln),n.registerBulkAction(Vn),n.registerBulkAction(An),n.registerBulkAction(Pn),n.registerBulkAction(Zn),n.registerBulkAction(hn),n.registerBulkAction(vn),n.registerBulkAction(Cn),n.registerBulkAction(fn),e.registerPageTab({priority:0,location:"product-list",tab:(0,p.J)("catalog.products"),route:"",component:Ve}),e.registerPageTab({priority:0,location:"product-detail",tab:(0,p.J)("catalog.product"),route:"",component:(0,s.IX9)({component:Wt,query:s.R2H,entityKey:"product",getBreadcrumbs:i=>[{label:i?i.name:(0,p.J)("catalog.create-new-product"),link:[i?.id]}]})}),e.registerPageTab({priority:0,location:"product-list",tab:(0,p.J)("catalog.product-variants"),route:"variants",component:Kt}),e.registerPageTab({priority:0,location:"product-variant-detail",tab:(0,p.J)("catalog.product-variants"),route:"",component:(0,s.IX9)({component:Ne,query:s.EB8,entityKey:"productVariant",getBreadcrumbs:i=>[{label:`${i?.product.name}`,link:["/catalog","products",i?.product.id]},{label:`${i?.name} (${i?.sku})`,link:["variants",i?.id]}]})}),e.registerPageTab({priority:0,location:"facet-list",tab:(0,p.J)("catalog.facets"),route:"",component:De}),e.registerPageTab({priority:0,location:"facet-detail",tab:(0,p.J)("catalog.facet"),route:"",component:(0,s.IX9)({component:Je,query:s.m_w,entityKey:"facet",getBreadcrumbs:i=>[{label:i?i.name:(0,p.J)("catalog.create-new-facet"),link:[i?.id]}]})}),e.registerPageTab({priority:0,location:"collection-list",tab:(0,p.J)("catalog.collections"),route:"",component:Oe}),e.registerPageTab({priority:0,location:"collection-detail",tab:(0,p.J)("catalog.collection"),route:"",component:(0,s.IX9)({component:ye,query:s.B3M,entityKey:"collection",getBreadcrumbs:i=>[{label:i?i.name:(0,p.J)("catalog.create-new-collection"),link:[i?.id]}]})}),e.registerPageTab({priority:0,location:"asset-list",tab:(0,p.J)("catalog.assets"),route:"",component:ve}),e.registerPageTab({priority:0,location:"asset-detail",tab:(0,p.J)("catalog.asset"),route:"",component:(0,s.IX9)({component:_e,query:s.SS8,entityKey:"asset",getBreadcrumbs:i=>[{label:`${i?.name}`,link:[i?.id]}]})}),ae.hasRegisteredTabsAndBulkActions=!0)}}(it=ae).hasRegisteredTabsAndBulkActions=!1,it.\u0275fac=function(n){return new(n||it)(t.LFG(s._4w),t.LFG(s.PhL))},it.\u0275mod=t.oAB({type:it}),it.\u0275inj=t.cJS({providers:[{provide:A.Z6,useFactory:o=>nn(o),multi:!0,deps:[s.PhL]}],imports:[s.m81,A.Bz.forChild([])]});const nd=y.Ps`
|
|
117
|
+
`;class Ue{constructor(n,e){this.dataService=n,this.router=e,this.searchFn=(i,a)=>a.name.toLowerCase().includes(i.toLowerCase())||a.sku.toLowerCase().includes(i.toLowerCase())}ngOnInit(){this.variants$=this.dataService.query(s.aAr,{id:this.productId}).mapSingle(n=>n.product?.variants??[])}onSelect(n){n&&this.router.navigate(["catalog","products",this.productId,"variants",n.id]).then(()=>this.selectedVariantId=void 0)}}(ee=Ue).\u0275fac=function(n){return new(n||ee)(t.Y36(s.DoR),t.Y36(A.F0))},ee.\u0275cmp=t.Xpm({type:ee,selectors:[["vdr-product-variant-quick-jump"]],inputs:{productId:"productId"},decls:2,vars:3,consts:[["appendTo","body","bindValue","id",3,"items","ngModel","searchFn","clearable","placeholder","ngModelChange","change",4,"ngIf"],["appendTo","body","bindValue","id",3,"items","ngModel","searchFn","clearable","placeholder","ngModelChange","change"],["ng-option-tmp",""]],template:function(n,e){if(1&n&&(t.YNc(0,vl,4,9,"ng-select",0),t.ALo(1,"async")),2&n){let i;t.Q6J("ngIf",(null==(i=t.lcZ(1,1,e.variants$))?null:i.length)>1)}},dependencies:[_.O5,d.JJ,d.On,de.w9,de.ir,_.Ov,b.X$],changeDetection:0});var ne,Cl=u(467);function xl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-language-selector",8),t.NdJ("languageCodeChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.setLanguage(a))}),t.ALo(1,"async"),t.ALo(2,"async"),t.qZA()}if(2&o){const e=t.oxw().ngIf,i=t.oxw();t.Q6J("disabled",t.lcZ(1,3,i.isNew$))("availableLanguageCodes",e)("currentLanguageCode",t.lcZ(2,5,i.languageCode$))}}function bl(o,n){if(1&o&&(t.ynx(0),t.YNc(1,xl,3,7,"vdr-language-selector",7),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length>1)}}function Tl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.save())}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&o){const e=t.oxw();t.Q6J("disabled",(e.detailForm.invalid||e.stockLevelsForm.invalid||e.pricesForm.invalid||e.detailForm.pristine&&e.stockLevelsForm.pristine&&e.pricesForm.pristine)&&!e.assetsChanged()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}const Zl=function(){return["enabled"]};function Al(o,n){if(1&o&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",38),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&o){const e=t.oxw(2);t.xp6(1),t.Q6J("formControl",e.detailForm.get(t.DdM(4,Zl))),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.enabled"))}}function Pl(o,n){if(1&o&&(t.TgZ(0,"vdr-chip",42)(1,"span"),t._uU(2),t.qZA(),t._uU(3),t.qZA()),2&o){const e=n.$implicit,i=t.oxw(3);t.Q6J("colorFrom",i.optionGroupCode(e.groupId))("invert",!0),t.xp6(2),t.hij("",i.optionGroupCode(e.groupId),":"),t.xp6(1),t.hij(" ",i.optionName(e)," ")}}const yl=function(){return["../../","options"]};function Fl(o,n){1&o&&(t.TgZ(0,"a",43),t._UZ(1,"clr-icon",44),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&o&&(t.Q6J("routerLink",t.DdM(4,yl)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.edit-options")," "))}function Il(o,n){if(1&o&&(t.TgZ(0,"vdr-card",14),t.ALo(1,"translate"),t.TgZ(2,"div",39),t.YNc(3,Pl,4,4,"vdr-chip",40),t.ALo(4,"sort"),t.qZA(),t.TgZ(5,"div"),t.YNc(6,Fl,4,5,"a",41),t.qZA()()),2&o){const e=t.oxw().ngIf,i=t.oxw();t.Q6J("title",t.lcZ(1,3,"catalog.product-options")),t.xp6(3),t.Q6J("ngForOf",t.xi3(4,5,e.options,"groupId")),t.xp6(3),t.Q6J("vdrIfPermissions",i.updatePermissions)}}function Ll(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",45),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,c=t.oxw(2);return t.KtG(c.removeFacetValue(r.id))}),t.ALo(1,"hasPermission"),t.qZA()}if(2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("facetValue",e)("removable",t.lcZ(1,2,i.updatePermissions))}}function Ol(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",46),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.selectFacetValue())}),t._UZ(1,"clr-icon",47),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&o&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}function kl(o,n){if(1&o&&t._UZ(0,"vdr-page-entity-info",48),2&o){const e=n.ngIf;t.Q6J("entity",e)}}function Jl(o,n){if(1&o&&(t.TgZ(0,"vdr-card",14),t.ALo(1,"translate"),t._UZ(2,"vdr-tabbed-custom-fields",49),t.ALo(3,"hasPermission"),t.qZA()),2&o){const e=t.oxw(2);t.Q6J("title",t.lcZ(1,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get("customFields"))("readonly",!t.lcZ(3,6,e.updatePermissions))}}function Dl(o,n){if(1&o&&(t.TgZ(0,"option",33),t._uU(1),t.qZA()),2&o){const e=n.$implicit;t.Q6J("value",e.id),t.xp6(1),t.hij(" ",e.name," ")}}function wl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"div")(1,"button",55),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw(2);return t.KtG(r.toggleDeletePrice(a.get("delete")))}),t._UZ(2,"clr-icon",56),t.qZA()()}if(2&o){const e=t.oxw().$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("disabled",e.value.currencyCode===i.channelDefaultCurrencyCode)}}function Vl(o,n){if(1&o&&(t.TgZ(0,"div",50)(1,"vdr-form-field",51),t.ALo(2,"translate"),t.ALo(3,"translate"),t.TgZ(4,"div",52),t._UZ(5,"vdr-currency-input",53),t.ALo(6,"hasPermission"),t.YNc(7,wl,3,1,"div",2),t.qZA()(),t._UZ(8,"vdr-variant-price-detail",54),t.ALo(9,"async"),t.qZA()),2&o){const e=n.$implicit,i=t.oxw(2);t.Q6J("formGroup",e),t.xp6(1),t.Q6J("label",t.lcZ(2,12,"catalog.price")+(1<i.pricesForm.length?" ("+e.value.currencyCode+")":""))("tooltip",1<i.pricesForm.length&&e.value.currencyCode===i.channelDefaultCurrencyCode?t.lcZ(3,14,"catalog.default-currency"):void 0),t.xp6(3),t.ekj("pending-deletion",!0===e.value.delete),t.xp6(1),t.Q6J("currencyCode",e.value.currencyCode)("readonly",!t.lcZ(6,16,i.updatePermissions)||!0===e.value.delete),t.xp6(2),t.Q6J("ngIf",1<i.pricesForm.controls.length),t.xp6(1),t.Q6J("price",e.value.price)("currencyCode",e.value.currencyCode)("priceIncludesTax",t.lcZ(9,18,i.channelPriceIncludesTax$))("taxCategoryId",i.detailForm.get("taxCategoryId").value)}}function Ml(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",60),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw(4);return t.KtG(c.addPriceInCurrency(r))}),t._uU(1),t.ALo(2,"localeCurrencyName"),t.qZA()}if(2&o){const e=n.$implicit;t.xp6(1),t.hij(" ",t.lcZ(2,1,e)," ")}}function Ul(o,n){if(1&o&&(t.TgZ(0,"div")(1,"vdr-dropdown")(2,"button",57),t._UZ(3,"clr-icon",47),t._uU(4),t.ALo(5,"translate"),t._UZ(6,"clr-icon",58),t.qZA(),t.TgZ(7,"vdr-dropdown-menu"),t.YNc(8,Ml,3,3,"button",59),t.qZA()()()),2&o){const e=t.oxw().ngIf;t.xp6(4),t.hij(" ",t.lcZ(5,2,"catalog.add-price-in-another-currency")," "),t.xp6(4),t.Q6J("ngForOf",e)}}function Nl(o,n){if(1&o&&(t.ynx(0),t.YNc(1,Ul,9,4,"div",2),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length)}}function Ql(o,n){if(1&o&&(t.TgZ(0,"div",61)(1,"vdr-form-field",62),t.ALo(2,"translate"),t._UZ(3,"input",63),t.ALo(4,"hasPermission"),t.qZA(),t.TgZ(5,"vdr-form-item",64),t.ALo(6,"translate"),t._uU(7),t.qZA()()),2&o){const e=n.$implicit,i=t.oxw(2);let a,r,c,l,m;t.Q6J("formGroup",e),t.xp6(1),t.Q6J("label",(null==(a=e.get("stockLocationName"))?null:a.value)+": "+t.lcZ(2,7,"catalog.stock-on-hand"))("for","stockOnHand_"+(null==(r=e.get("stockLocationId"))?null:r.value)),t.xp6(2),t.Q6J("id","stockOnHand_"+(null==(c=e.get("stockLocationId"))?null:c.value))("readonly",!t.lcZ(4,9,i.updatePermissions)),t.xp6(2),t.Q6J("label",(null==(l=e.get("stockLocationName"))?null:l.value)+": "+t.lcZ(6,11,"catalog.stock-allocated")),t.xp6(2),t.hij(" ",null==(m=e.get("stockAllocated"))?null:m.value," ")}}function ql(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",60),t.NdJ("click",function(){const r=t.CHM(e).$implicit,c=t.oxw(4);return t.KtG(c.addStockLocation(r))}),t._UZ(1,"clr-icon",65),t._uU(2),t.qZA()}if(2&o){const e=n.$implicit;t.xp6(2),t.hij(" ",e.name," ")}}function $l(o,n){if(1&o&&(t.TgZ(0,"div")(1,"vdr-dropdown")(2,"button",57),t._UZ(3,"clr-icon",47),t._uU(4),t.ALo(5,"translate"),t._UZ(6,"clr-icon",58),t.qZA(),t.TgZ(7,"vdr-dropdown-menu"),t.YNc(8,ql,3,1,"button",59),t.qZA()()()),2&o){const e=t.oxw().ngIf;t.xp6(4),t.hij(" ",t.lcZ(5,2,"catalog.add-stock-location")," "),t.xp6(4),t.Q6J("ngForOf",e)}}function Sl(o,n){if(1&o&&(t.ynx(0),t.YNc(1,$l,9,4,"div",2),t.BQk()),2&o){const e=n.ngIf;t.xp6(1),t.Q6J("ngIf",e.length)}}const He=function(){return["UpdateCatalog","UpdateProduct"]};function Yl(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"form",10)(1,"vdr-page-detail-layout")(2,"vdr-page-detail-sidebar")(3,"vdr-card")(4,"vdr-form-field",11),t.ALo(5,"translate"),t.YNc(6,Al,5,5,"clr-toggle-wrapper",12),t.qZA()(),t.YNc(7,Il,7,8,"vdr-card",13),t.TgZ(8,"vdr-card",14),t.ALo(9,"translate"),t.TgZ(10,"div",15),t.YNc(11,Ll,2,4,"vdr-facet-value-chip",16),t.ALo(12,"async"),t.qZA(),t.TgZ(13,"div"),t.YNc(14,Ol,4,3,"button",17),t.qZA()(),t.TgZ(15,"vdr-card"),t.YNc(16,kl,1,1,"vdr-page-entity-info",18),t.ALo(17,"async"),t.qZA()(),t.TgZ(18,"vdr-page-block"),t._UZ(19,"button",19),t.TgZ(20,"vdr-card")(21,"div",20)(22,"vdr-form-field",21),t.ALo(23,"translate"),t._UZ(24,"input",22),t.ALo(25,"hasPermission"),t.qZA(),t.TgZ(26,"vdr-form-field",23),t.ALo(27,"translate"),t._UZ(28,"input",24),t.ALo(29,"hasPermission"),t.qZA()()(),t.YNc(30,Jl,4,8,"vdr-card",13),t._UZ(31,"vdr-custom-detail-component-host",25),t.TgZ(32,"vdr-card",14),t.ALo(33,"translate"),t.TgZ(34,"vdr-assets",26),t.NdJ("change",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.assetChanges=a)}),t.qZA()(),t.TgZ(35,"vdr-card",14),t.ALo(36,"translate"),t.TgZ(37,"div",20)(38,"vdr-form-field",27),t.ALo(39,"translate"),t.TgZ(40,"select",28),t.YNc(41,Dl,2,2,"option",29),t.ALo(42,"async"),t.qZA()()(),t.YNc(43,Vl,10,20,"div",30),t.YNc(44,Nl,2,1,"ng-container",2),t.ALo(45,"async"),t.qZA(),t.TgZ(46,"vdr-card",14),t.ALo(47,"translate"),t.TgZ(48,"div",20)(49,"vdr-form-field",31),t.ALo(50,"translate"),t.ALo(51,"translate"),t.TgZ(52,"select",32),t.ALo(53,"hasPermission"),t.TgZ(54,"option",33),t._uU(55),t.ALo(56,"translate"),t.qZA(),t.TgZ(57,"option",33),t._uU(58),t.ALo(59,"translate"),t.qZA(),t.TgZ(60,"option",33),t._uU(61),t.ALo(62,"translate"),t.qZA()()(),t.TgZ(63,"vdr-form-item",34),t.ALo(64,"translate"),t.ALo(65,"translate"),t._UZ(66,"input",35),t.ALo(67,"hasPermission"),t.TgZ(68,"clr-toggle-wrapper"),t._UZ(69,"input",36),t.ALo(70,"hasPermission"),t.TgZ(71,"label"),t._uU(72),t.ALo(73,"translate"),t.qZA()()()(),t.YNc(74,Ql,8,13,"div",37),t.YNc(75,Sl,2,1,"ng-container",2),t.ALo(76,"async"),t.qZA()()()()}if(2&o){const e=n.ngIf,i=t.oxw();let a;t.Q6J("formGroup",i.detailForm),t.xp6(4),t.Q6J("label",t.lcZ(5,43,"catalog.visibility")),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(95,He)),t.xp6(1),t.Q6J("ngIf",e.options.length),t.xp6(1),t.Q6J("title",t.lcZ(9,45,"catalog.facets")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(12,47,i.facetValues$)),t.xp6(3),t.Q6J("vdrIfPermissions",i.updatePermissions),t.xp6(2),t.Q6J("ngIf",t.lcZ(17,49,i.entity$)),t.xp6(6),t.Q6J("label",t.lcZ(23,51,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(25,53,t.DdM(96,He))),t.xp6(2),t.Q6J("label",t.lcZ(27,55,"catalog.sku")),t.xp6(2),t.Q6J("readonly",!t.lcZ(29,57,i.updatePermissions)),t.xp6(2),t.Q6J("ngIf",i.customFields.length),t.xp6(1),t.Q6J("entity$",i.entity$)("detailForm",i.detailForm),t.xp6(1),t.Q6J("title",t.lcZ(33,59,"catalog.assets")),t.xp6(2),t.Q6J("assets",i.assetChanges.assets||e.assets)("featuredAsset",i.assetChanges.featuredAsset||e.featuredAsset)("updatePermissions",i.updatePermissions),t.xp6(1),t.Q6J("title",t.lcZ(36,61,"catalog.price-and-tax")),t.xp6(3),t.Q6J("label",t.lcZ(39,63,"catalog.tax-category")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(42,65,i.taxCategories$)),t.xp6(2),t.Q6J("ngForOf",i.pricesForm.controls),t.xp6(1),t.Q6J("ngIf",t.lcZ(45,67,i.unusedCurrencyCodes$)),t.xp6(2),t.Q6J("title",t.lcZ(47,69,"catalog.stock-levels")),t.xp6(3),t.Q6J("label",t.lcZ(50,71,"catalog.track-inventory"))("tooltip",t.lcZ(51,73,"catalog.track-inventory-tooltip")),t.xp6(3),t.Q6J("disabled",!t.lcZ(53,75,i.updatePermissions)),t.xp6(2),t.Q6J("value",i.GlobalFlag.TRUE),t.xp6(1),t.hij(" ",t.lcZ(56,77,"catalog.track-inventory-true")," "),t.xp6(2),t.Q6J("value",i.GlobalFlag.FALSE),t.xp6(1),t.hij(" ",t.lcZ(59,79,"catalog.track-inventory-false")," "),t.xp6(2),t.Q6J("value",i.GlobalFlag.INHERIT),t.xp6(1),t.hij(" ",t.lcZ(62,81,"catalog.track-inventory-inherit")," "),t.xp6(2),t.Q6J("label",t.lcZ(64,83,"catalog.out-of-stock-threshold"))("tooltip",t.lcZ(65,85,"catalog.out-of-stock-threshold-tooltip")),t.xp6(3),t.Q6J("readonly",!t.lcZ(67,87,i.updatePermissions))("vdrDisabled",!1!==(null==(a=i.detailForm.get("useGlobalOutOfStockThreshold"))?null:a.value)||i.inventoryIsNotTracked(i.detailForm)),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(70,89,i.updatePermissions)||i.inventoryIsNotTracked(i.detailForm)),t.xp6(3),t.AsE("",t.lcZ(73,91,"catalog.use-global-value")," (",i.globalOutOfStockThreshold,")"),t.xp6(2),t.Q6J("ngForOf",i.stockLevelsForm.controls),t.xp6(1),t.Q6J("ngIf",t.lcZ(76,93,i.unusedStockLocation$))}}class Ne extends s.VE7{constructor(n,e,i,a,r,c){super(),this.productDetailService=n,this.formBuilder=e,this.modalService=i,this.notificationService=a,this.dataService=r,this.changeDetector=c,this.updatePermissions=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct],this.customFields=this.getCustomFieldConfig("ProductVariant"),this.customOptionFields=this.getCustomFieldConfig("ProductOption"),this.detailForm=this.formBuilder.group({id:"",enabled:!1,sku:"",name:"",taxCategoryId:"",stockOnHand:0,useGlobalOutOfStockThreshold:!0,outOfStockThreshold:0,trackInventory:s.TvZ.TRUE,facetValueIds:[],customFields:this.formBuilder.group((0,s.Lrj)(this.customFields))}),this.stockLevelsForm=this.formBuilder.array([]),this.pricesForm=this.formBuilder.array([]),this.assetChanges={},this.GlobalFlag=s.TvZ}ngOnInit(){this.init(),this.dataService.settings.getGlobalSettings("cache-first").single$.subscribe(({globalSettings:r})=>{this.globalTrackInventory=r.trackInventory,this.globalOutOfStockThreshold=r.outOfStockThreshold,this.changeDetector.markForCheck()}),this.taxCategories$=this.result$.pipe((0,h.U)(r=>r.taxCategories.items));const n=this.result$.pipe((0,q.b)(r=>this.channelDefaultCurrencyCode=r.activeChannel.defaultCurrencyCode),(0,h.U)(r=>r.activeChannel.availableCurrencyCodes));this.unusedCurrencyCodes$=(0,P.a)(this.pricesForm.valueChanges,n).pipe((0,h.U)(([r,c])=>c.filter(l=>!r.map(m=>m.currencyCode).includes(l))));const e=this.result$.pipe((0,h.U)(r=>r.stockLocations.items));this.unusedStockLocation$=(0,P.a)(this.entity$,e).pipe((0,h.U)(([r,c])=>{const l=r.stockLevels.map(m=>m.stockLocation.id);return c.filter(m=>!l.includes(m.id))})),this.channelPriceIncludesTax$=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(r=>r.activeChannel.pricesIncludeTax).pipe((0,xt.d)(1)),this.stockLevels$=this.entity$.pipe((0,h.U)(r=>r?.stockLevels??[]));const i=this.entity$.pipe((0,h.U)(r=>r.facetValues??[])),a=this.detailForm.get("facetValueIds").valueChanges.pipe((0,dl.T)(1),(0,M.x)(),(0,C.w)(r=>this.dataService.facet.getFacetValues({filter:{id:{in:r}}}).mapSingle(({facetValues:c})=>c.items)),(0,xt.d)(1));this.facetValues$=(0,yn.z)(i.pipe((0,Y.q)(1)),i.pipe(function ul(o,n){return(0,pl.m)(n)?(0,C.w)(()=>o,n):(0,C.w)(()=>o)}(a)))}ngOnDestroy(){this.destroy()}addPriceInCurrency(n){this.pricesForm.push(this.formBuilder.group({currencyCode:n,price:0,delete:!1}))}toggleDeletePrice(n){n.setValue(!n.value),n.markAsDirty()}addStockLocation(n){this.stockLevelsForm.push(this.formBuilder.group({stockLocationId:n.id,stockLocationName:n.name,stockOnHand:0,stockAllocated:0}))}save(){(0,P.a)(this.entity$,this.languageCode$).pipe((0,Y.q)(1),(0,U.z)(([n,e])=>{const i=(0,ll.e)(this.getUpdatedVariant(n,this.detailForm,e),["id","enabled","translations","sku","taxCategoryId","facetValueIds","featuredAssetId","assetIds","trackInventory","outOfStockThreshold","useGlobalOutOfStockThreshold","customFields"]);return this.stockLevelsForm.dirty&&(i.stockLevels=this.stockLevelsForm.controls.filter(a=>a.dirty).map(a=>({stockLocationId:a.value.stockLocationId,stockOnHand:a.value.stockOnHand}))),this.pricesForm.dirty&&(i.prices=this.pricesForm.controls.filter(a=>a.dirty).map(a=>({price:a.value.price,currencyCode:a.value.currencyCode,delete:!0===a.value.delete}))),this.dataService.mutate(s.YZY,{input:[i]})})).subscribe(n=>{this.detailForm.markAsPristine(),this.stockLevelsForm.markAsPristine(),this.pricesForm.markAsPristine(),this.assetChanges={},this.notificationService.success((0,p.J)("common.notify-update-success"),{entity:"ProductVariant"}),this.changeDetector.markForCheck()},n=>{this.notificationService.error((0,p.J)("common.notify-update-error"),{entity:"ProductVariant"})})}assetsChanged(){return!!Object.values(this.assetChanges).length}inventoryIsNotTracked(n){const e=n.get("trackInventory")?.value;return e===s.TvZ.FALSE||e===s.TvZ.INHERIT&&!1===this.globalTrackInventory}optionGroupCode(n){return this.entity?.product.optionGroups.find(i=>i.id===n)?.code}optionName(n){return(n.translations.find(i=>i.languageCode===this.languageCode)??n.translations[0]).name}removeFacetValue(n){const e=this.detailForm,i=e.value.facetValueIds??[];e.patchValue({facetValueIds:i.filter(a=>a!==n)}),e.markAsDirty()}selectFacetValue(){this.displayFacetValueModal().subscribe(n=>{if(n){const e=this.detailForm.value.facetValueIds??[];this.detailForm.patchValue({facetValueIds:(0,J.T)([...e,...n])}),this.detailForm.markAsDirty()}})}displayFacetValueModal(){return this.modalService.fromComponent(It,{size:"md",closable:!0}).pipe((0,h.U)(n=>n&&n.map(e=>e.id)))}setFormValues(n,e){const i=(0,s.ZIM)(n,e),a=n.facetValues.map(r=>r.id);this.detailForm.patchValue({id:n.id,enabled:n.enabled,sku:n.sku,name:i?i.name:"",taxCategoryId:n.taxCategory.id,stockOnHand:n.stockLevels[0]?.stockOnHand??0,useGlobalOutOfStockThreshold:n.useGlobalOutOfStockThreshold,outOfStockThreshold:n.outOfStockThreshold,trackInventory:n.trackInventory,facetValueIds:a}),this.stockLevelsForm.clear();for(const r of n.stockLevels)this.stockLevelsForm.push(this.formBuilder.group({stockLocationId:r.stockLocation.id,stockLocationName:r.stockLocation.name,stockOnHand:r.stockOnHand,stockAllocated:r.stockAllocated}));this.pricesForm.clear();for(const r of n.prices)this.pricesForm.push(this.formBuilder.group({price:r.price,currencyCode:r.currencyCode,delete:!1}));this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get("customFields"),n,i)}getUpdatedVariant(n,e,i){return{...(0,s.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:i,defaultTranslation:{languageCode:i,name:n.name||""}}),assetIds:this.assetChanges.assets?.map(r=>r.id),featuredAssetId:this.assetChanges.featuredAsset?.id,facetValueIds:e.value.facetValueIds,taxCategoryId:e.value.taxCategoryId}}}(ne=Ne).\u0275fac=function(n){return new(n||ne)(t.Y36(ct),t.Y36(d.qu),t.Y36(s.Z7U),t.Y36(s.gqp),t.Y36(s.DoR),t.Y36(t.sBO))},ne.\u0275cmp=t.Xpm({type:ne,selectors:[["vdr-product-variant-detail"]],features:[t.qOj],decls:12,vars:10,consts:[[3,"grow"],[1,"flex","center"],[4,"ngIf"],[3,"productId"],["locationId","product-variant-detail"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],["class","form",3,"formGroup",4,"ngIf"],["class","mr-2",3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange",4,"ngIf"],[1,"mr-2",3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"btn","btn-primary",3,"disabled","click"],[1,"form",3,"formGroup"],["for","visibility",3,"label"],[4,"vdrIfPermissions"],[3,"title",4,"ngIf"],[3,"title"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"click",4,"vdrIfPermissions"],[3,"entity",4,"ngIf"],["type","submit","hidden","","x-data","prevents enter key from triggering other buttons"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly"],["for","sku",3,"label"],["id","sku","type","text","formControlName","sku",3,"readonly"],["locationId","product-variant-detail",3,"entity$","detailForm"],[3,"assets","featuredAsset","updatePermissions","change"],["for","taxCategory",3,"label"],["name","taxCategory","formControlName","taxCategoryId"],[3,"value",4,"ngFor","ngForOf"],["class","form-grid prices",3,"formGroup",4,"ngFor","ngForOf"],["for","track-inventory",3,"label","tooltip"],["name","track-inventory","formControlName","trackInventory",3,"disabled"],[3,"value"],[3,"label","tooltip"],["type","number","formControlName","outOfStockThreshold",3,"readonly","vdrDisabled"],["type","checkbox","clrToggle","","name","useGlobalOutOfStockThreshold","formControlName","useGlobalOutOfStockThreshold",3,"vdrDisabled"],["class","form-grid stock-levels",3,"formGroup",4,"ngFor","ngForOf"],["type","checkbox","clrToggle","","name","enabled",3,"formControl"],[1,"options"],[3,"colorFrom","invert",4,"ngFor","ngForOf"],["class","button-small mt-2",3,"routerLink",4,"vdrIfPermissions"],[3,"colorFrom","invert"],[1,"button-small","mt-2",3,"routerLink"],["shape","pencil"],[3,"facetValue","removable","remove"],[1,"button-small","mt-2",3,"click"],["shape","plus"],[3,"entity"],["entityName","ProductVariant",3,"customFields","customFieldsFormGroup","readonly"],[1,"form-grid","prices",3,"formGroup"],["for","price",3,"label","tooltip"],[1,"price-wrapper"],["name","price","formControlName","price",3,"currencyCode","readonly"],[3,"price","currencyCode","priceIncludesTax","taxCategoryId"],[1,"button-small","delete-button",3,"disabled","click"],["shape","trash"],["vdrDropdownTrigger","",1,"button","mt-2"],["shape","ellipsis-vertical"],["vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["vdrDropdownItem","",3,"click"],[1,"form-grid","stock-levels",3,"formGroup"],[3,"label","for"],["type","number","formControlName","stockOnHand",3,"id","readonly"],[3,"label"],["shape","map-marker"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-page-block")(1,"vdr-action-bar")(2,"vdr-ab-left",0)(3,"div",1),t.YNc(4,bl,2,1,"ng-container",2),t.ALo(5,"async"),t._UZ(6,"vdr-product-variant-quick-jump",3),t.qZA()(),t.TgZ(7,"vdr-ab-right"),t._UZ(8,"vdr-action-bar-items",4),t.YNc(9,Tl,3,4,"button",5),t.qZA()()(),t.YNc(10,Yl,77,97,"form",6),t.ALo(11,"async")),2&n&&(t.xp6(2),t.Q6J("grow",!0),t.xp6(2),t.Q6J("ngIf",t.lcZ(5,5,e.availableLanguages$)),t.xp6(2),t.Q6J("productId",null==e.entity?null:e.entity.product.id),t.xp6(3),t.Q6J("vdrIfPermissions",t.DdM(9,He)),t.xp6(1),t.Q6J("ngIf",t.lcZ(11,7,e.entity$)))},dependencies:[f.qvL,f.MgK,f.KKC,f.PEh,_.sg,_.O5,d._Y,d.YN,d.Kr,d.Fj,d.wV,d.Wl,d.EJ,d.JJ,d.JL,d.oH,d.sg,d.u,A.rH,x.Kk,x.BN,x.mz,j.Y,pe.K,xe.q,$.h,L.y,Fn.J,E.S,gt.J,_t.N,ft.U,ht.H,N.H,K.W,Te.x,st.y,Ze.C,w.z,bt.D,Ae.T,Pe.W,W.A,vt,Me,Ue,_.Ov,b.X$,Cl.u,Re.U,B.j],styles:[".facets[_ngcontent-%COMP%], .options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:3px}vdr-product-variant-quick-jump[_ngcontent-%COMP%]{flex:1;margin-inline-end:calc(var(--space-unit) * 2)}.stock-levels[_ngcontent-%COMP%], .prices[_ngcontent-%COMP%]{margin-top:calc(var(--space-unit) * 2);padding-top:calc(var(--space-unit) * 2);border-top:1px solid var(--color-weight-150)}.price-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--space-unit);width:100%}.price-wrapper.pending-deletion[_ngcontent-%COMP%] vdr-currency-input[_ngcontent-%COMP%]{opacity:.7}.price-wrapper.pending-deletion[_ngcontent-%COMP%] .delete-button[_ngcontent-%COMP%]{background-color:var(--color-error-700);color:var(--color-error-100)}"],changeDetection:0});const Dn={location:"product-variant-list",label:(0,p.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),isVisible:({injector:o})=>(0,s.SDV)(o.get(s.DoR)),onClick:({injector:o,selection:n,clearSelection:e})=>{o.get(s.Z7U).fromComponent(nt,{size:"lg",locals:{productVariantIds:(0,J.T)(n.map(a=>a.id)),currentChannelIds:[]}}).subscribe(a=>{a&&e()})}},wn=(0,s.RBx)({location:"product-variant-list",requiresPermission:o=>o.includes(s.y3$.UpdateCatalog)||o.includes(s.y3$.UpdateProduct),getItemName:o=>o.name,bulkRemoveFromChannel:(o,n,e)=>o.product.removeVariantsFromChannel({channelId:e,productVariantIds:n}).pipe((0,h.U)(i=>i.removeProductVariantsFromChannel))}),Vn={location:"product-variant-list",label:(0,p.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:o=>o.includes(s.y3$.DeleteProduct)||o.includes(s.y3$.DeleteCatalog),onClick:({injector:o,selection:n,hostComponent:e,clearSelection:i})=>{const a=o.get(s.Z7U),r=o.get(s.DoR),c=o.get(s.gqp);a.dialog({title:(0,p.J)("common.confirm-bulk-delete"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,p.J)("common.cancel")},{type:"danger",label:(0,p.J)("common.delete"),returnValue:!0}]}).pipe((0,C.w)(l=>l?r.product.deleteProductVariants((0,J.T)(n.map(m=>m.id))):F.E)).subscribe(l=>{let m=0;const g=[];for(const v of l.deleteProductVariants)v.result===s.PcR.DELETED?m++:v.message&&g.push(v.message);0<m&&c.success((0,p.J)("catalog.notify-bulk-delete-products-success"),{count:m}),0<g.length&&c.error(g.join("\n")),e.refresh(),i()})}};var oe,ie,Gl=u(4242);function El(o,n){if(1&o&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.qZA(),t.BQk()),2&o){const e=n.$implicit;t.xp6(2),t.Oqu(e.name)}}function Bl(o,n){if(1&o&&(t._UZ(0,"img",18),t.ALo(1,"assetPreview")),2&o){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function jl(o,n){1&o&&(t.TgZ(0,"div",19),t._UZ(1,"clr-icon",20),t.qZA())}function Rl(o,n){if(1&o&&(t.ynx(0),t.TgZ(1,"td",5),t.ALo(2,"stringToColor"),t._uU(3),t.qZA(),t.BQk()),2&o){const e=n.$implicit,i=t.oxw().ngIf,a=t.oxw(2);t.xp6(1),t.Udp("color",t.lcZ(2,5,a.optionGroupName(e.groupId))),t.ekj("disabled",!i.get("enabled").value),t.xp6(2),t.hij(" ",e.name," ")}}function Hl(o,n){if(1&o&&(t._UZ(0,"vdr-currency-input",21),t.ALo(1,"hasPermission")),2&o){const e=t.oxw(2).$implicit,i=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,i.updatePermission))}}function Kl(o,n){if(1&o&&(t._UZ(0,"vdr-currency-input",22),t.ALo(1,"hasPermission")),2&o){const e=t.oxw(2).$implicit,i=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,i.updatePermission))}}function zl(o,n){if(1&o&&(t.ynx(0,4),t.TgZ(1,"td",5)(2,"div",6)(3,"div",7),t.YNc(4,Bl,2,4,"img",8),t.YNc(5,jl,2,0,"ng-template",null,9,t.W1O),t.qZA()()(),t.TgZ(7,"td",5)(8,"clr-input-container"),t._UZ(9,"input",10),t.ALo(10,"hasPermission"),t.ALo(11,"translate"),t.qZA()(),t.TgZ(12,"td",5)(13,"clr-input-container"),t._UZ(14,"input",11),t.ALo(15,"hasPermission"),t.ALo(16,"translate"),t.qZA()(),t.YNc(17,Rl,4,7,"ng-container",1),t.ALo(18,"sort"),t.TgZ(19,"td",12)(20,"clr-input-container"),t.YNc(21,Hl,2,4,"vdr-currency-input",13),t.YNc(22,Kl,2,4,"vdr-currency-input",14),t.qZA()(),t.TgZ(23,"td",15)(24,"clr-input-container"),t._UZ(25,"input",16),t.ALo(26,"hasPermission"),t.qZA()(),t.TgZ(27,"td",15)(28,"clr-toggle-wrapper"),t._UZ(29,"input",17),t.ALo(30,"hasPermission"),t.qZA()(),t.BQk()),2&o){const e=n.ngIf,i=t.MAs(6),a=t.oxw().$implicit,r=t.oxw();t.Q6J("formGroup",e),t.xp6(1),t.ekj("disabled",!e.get("enabled").value),t.xp6(3),t.Q6J("ngIf",r.getFeaturedAsset(a))("ngIfElse",i),t.xp6(3),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("readonly",!t.lcZ(10,24,r.updatePermission))("placeholder",t.lcZ(11,26,"common.name")),t.xp6(3),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("readonly",!t.lcZ(15,28,r.updatePermission))("placeholder",t.lcZ(16,30,"catalog.sku")),t.xp6(3),t.Q6J("ngForOf",t.xi3(18,32,a.options,"groupId")),t.xp6(2),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("ngIf",!r.channelPriceIncludesTax),t.xp6(1),t.Q6J("ngIf",r.channelPriceIncludesTax),t.xp6(1),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("readonly",!t.lcZ(26,35,r.updatePermission)),t.xp6(2),t.ekj("disabled",!e.get("enabled").value),t.xp6(2),t.Q6J("vdrDisabled",!t.lcZ(30,37,r.updatePermission))}}function Wl(o,n){if(1&o&&(t.TgZ(0,"tr"),t.YNc(1,zl,31,39,"ng-container",3),t.qZA()),2&o){const e=n.$implicit,i=t.oxw();t.xp6(1),t.Q6J("ngIf",i.formGroupMap.get(e.id))}}class Ke{constructor(n){this.changeDetector=n,this.formGroupMap=new Map,this.updatePermission=[s.y3$.UpdateCatalog,s.y3$.UpdateProduct]}ngOnInit(){this.subscription=this.formArray.valueChanges.pipe((0,h.U)(n=>n.length),(0,mt.b)(1),(0,M.x)()).subscribe(()=>{this.buildFormGroupMap()}),this.buildFormGroupMap()}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}trackByFn(n,e){return null!=e.id?e.id:n}getFeaturedAsset(n){return this.pendingAssetChanges[n.id]?.featuredAsset||n.featuredAsset}optionGroupName(n){const e=this.optionGroups.find(i=>i.id===n);return e&&e.name}buildFormGroupMap(){this.formGroupMap.clear();for(const n of this.formArray.controls)this.formGroupMap.set(n.value.id,n);this.changeDetector.markForCheck()}}function Xl(o,n){1&o&&(t._uU(0),t.ALo(1,"translate")),2&o&&t.Oqu(t.lcZ(1,1,"catalog.update-product-option"))}(oe=Ke).\u0275fac=function(n){return new(n||oe)(t.Y36(t.sBO))},oe.\u0275cmp=t.Xpm({type:oe,selectors:[["vdr-product-variants-table"]],inputs:{formArray:["productVariantsFormArray","formArray"],variants:"variants",paginationConfig:"paginationConfig",channelPriceIncludesTax:"channelPriceIncludesTax",optionGroups:"optionGroups",pendingAssetChanges:"pendingAssetChanges"},decls:24,vars:24,consts:[[1,"table"],[4,"ngFor","ngForOf"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"left","align-middle"],[1,"card-img"],[1,"featured-asset"],[3,"src",4,"ngIf","ngIfElse"],["placeholder",""],["clrInput","","type","text","formControlName","name",3,"readonly","placeholder"],["clrInput","","type","text","formControlName","sku",3,"readonly","placeholder"],[1,"left","align-middle","price"],["clrInput","","formControlName","price",3,"currencyCode","readonly",4,"ngIf"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly",4,"ngIf"],[1,"left","align-middle","stock"],["clrInput","","type","number","min","0","step","1","formControlName","stockOnHand",3,"readonly"],["type","checkbox","clrToggle","","name","enabled","formControlName","enabled",3,"vdrDisabled"],[3,"src"],[1,"placeholder"],["shape","image","size","48"],["clrInput","","formControlName","price",3,"currencyCode","readonly"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly"]],template:function(n,e){1&n&&(t.TgZ(0,"table",0)(1,"thead")(2,"tr"),t._UZ(3,"th"),t.TgZ(4,"th"),t._uU(5),t.ALo(6,"translate"),t.qZA(),t.TgZ(7,"th"),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.YNc(10,El,3,1,"ng-container",1),t.ALo(11,"sort"),t.TgZ(12,"th"),t._uU(13),t.ALo(14,"translate"),t.qZA(),t.TgZ(15,"th"),t._uU(16),t.ALo(17,"translate"),t.qZA(),t.TgZ(18,"th"),t._uU(19),t.ALo(20,"translate"),t.qZA()()(),t.TgZ(21,"tbody"),t.YNc(22,Wl,2,1,"tr",2),t.ALo(23,"paginate"),t.qZA()()),2&n&&(t.xp6(5),t.Oqu(t.lcZ(6,8,"common.name")),t.xp6(3),t.Oqu(t.lcZ(9,10,"catalog.sku")),t.xp6(2),t.Q6J("ngForOf",t.xi3(11,12,e.optionGroups,"id")),t.xp6(3),t.Oqu(t.lcZ(14,15,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(17,17,"catalog.stock-on-hand")),t.xp6(3),t.Oqu(t.lcZ(20,19,"common.enabled")),t.xp6(3),t.Q6J("ngForOf",t.xi3(23,21,e.variants,e.paginationConfig))("ngForTrackBy",e.trackByFn))},dependencies:[f.q0d,f.qvL,f.KKC,f.PEh,f.xRP,f.G55,_.sg,_.O5,d.Fj,d.wV,d.Wl,d.JJ,d.JL,d.qQ,d.sg,d.u,pe.K,L.y,Te.x,he._s,b.X$,Re.U,Gl.s,B.j,Ce.M],styles:[".placeholder[_ngcontent-%COMP%]{color:var(--color-grey-300)}.stock[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{max-width:96px}td[_ngcontent-%COMP%]{transition:background-color .2s}td.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}"],changeDetection:0});const td=function(){return["UpdateCatalog","UpdateProduct"]};function ed(o,n){if(1&o&&(t.TgZ(0,"section")(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",10),t.ALo(5,"hasPermission"),t.qZA()),2&o){const e=t.oxw();t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.customFieldsForm)("readonly",!t.lcZ(5,6,t.DdM(8,td)))}}function nd(o,n){if(1&o){const e=t.EpF();t.TgZ(0,"button",11),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cancel())}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",12),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.update())}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&o){const e=t.oxw(),i=t.MAs(4),a=t.MAs(8);t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",i.invalid||a.invalid||i.pristine&&a.pristine&&e.customFieldsForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(5,5,"catalog.update-product-option")," ")}}class ze{constructor(){this.updateVariantName=!0,this.codeInputTouched=!1}ngOnInit(){const n=this.productOption.translations.find(e=>e.languageCode===this.activeLanguage);if(this.name=n?.name??"",this.code=this.productOption.code,this.customFieldsForm=new d.nJ({}),this.customFields){const e=n&&n.customFields||{};for(const i of this.customFields){const a=i.name,r="localeString"===i.type?e[a]:this.productOption.customFields[a];this.customFieldsForm.addControl(i.name,new d.p4(r))}}}update(){const n=(0,s.iSy)({translatable:this.productOption,languageCode:this.activeLanguage,updatedFields:{code:this.code,name:this.name,customFields:this.customFieldsForm.value},customFieldConfig:this.customFields,defaultTranslation:{languageCode:this.activeLanguage,name:""}});this.resolveWith({...n,autoUpdate:this.updateVariantName})}cancel(){this.resolveWith()}updateCode(n){!this.codeInputTouched&&!this.productOption.code&&(this.code=(0,G.U)(n,"-"))}}var it;(ie=ze).\u0275fac=function(n){return new(n||ie)},ie.\u0275cmp=t.Xpm({type:ie,selectors:[["vdr-update-product-option-dialog"]],decls:16,vars:13,consts:[["vdrDialogTitle",""],["for","name",3,"label"],["id","name","type","text","required","",3,"ngModel","ngModelChange","input"],["nameInput","ngModel"],["for","code",3,"label"],["id","code","type","text","required","","pattern","[a-z0-9_-]+",3,"ngModel","ngModelChange"],["codeInput","ngModel"],["type","checkbox","clrCheckbox","",3,"ngModel","ngModelChange"],[4,"ngIf"],["vdrDialogButtons",""],["entityName","ProductOption",3,"customFields","customFieldsFormGroup","readonly"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.YNc(0,Xl,2,3,"ng-template",0),t.TgZ(1,"vdr-form-field",1),t.ALo(2,"translate"),t.TgZ(3,"input",2,3),t.NdJ("ngModelChange",function(a){return e.name=a})("input",function(a){return e.updateCode(a.target.value)}),t.qZA()(),t.TgZ(5,"vdr-form-field",4),t.ALo(6,"translate"),t.TgZ(7,"input",5,6),t.NdJ("ngModelChange",function(a){return e.code=a}),t.qZA()(),t.TgZ(9,"clr-checkbox-wrapper")(10,"input",7),t.NdJ("ngModelChange",function(a){return e.updateVariantName=a}),t.qZA(),t.TgZ(11,"label"),t._uU(12),t.ALo(13,"translate"),t.qZA()(),t.YNc(14,ed,6,9,"section",8),t.YNc(15,nd,6,7,"ng-template",9)),2&n&&(t.xp6(1),t.Q6J("label",t.lcZ(2,7,"catalog.option-name")),t.xp6(2),t.Q6J("ngModel",e.name),t.xp6(2),t.Q6J("label",t.lcZ(6,9,"common.code")),t.xp6(2),t.Q6J("ngModel",e.code),t.xp6(3),t.Q6J("ngModel",e.updateVariantName),t.xp6(2),t.Oqu(t.lcZ(13,11,"catalog.auto-update-option-variant-name")),t.xp6(2),t.Q6J("ngIf",e.customFields.length))},dependencies:[f.MgK,f.KKC,f.PEh,_.O5,d.Fj,d.Wl,d.JJ,d.Q7,d.c5,d.On,$.h,L.y,tt.n,H.q,st.y,b.X$,B.j],changeDetection:0});class ae{constructor(n,e){ae.hasRegisteredTabsAndBulkActions||(n.registerBulkAction(Jn),n.registerBulkAction(On),n.registerBulkAction(Dn),n.registerBulkAction(kn),n.registerBulkAction(wn),n.registerBulkAction(Ln),n.registerBulkAction(Vn),n.registerBulkAction(An),n.registerBulkAction(Pn),n.registerBulkAction(Zn),n.registerBulkAction(hn),n.registerBulkAction(vn),n.registerBulkAction(Cn),n.registerBulkAction(fn),e.registerPageTab({priority:0,location:"product-list",tab:(0,p.J)("catalog.products"),route:"",component:Ve}),e.registerPageTab({priority:0,location:"product-detail",tab:(0,p.J)("catalog.product"),route:"",component:(0,s.IX9)({component:Wt,query:s.R2H,entityKey:"product",getBreadcrumbs:i=>[{label:i?i.name:(0,p.J)("catalog.create-new-product"),link:[i?.id]}]})}),e.registerPageTab({priority:0,location:"product-list",tab:(0,p.J)("catalog.product-variants"),route:"variants",component:Kt}),e.registerPageTab({priority:0,location:"product-variant-detail",tab:(0,p.J)("catalog.product-variants"),route:"",component:(0,s.IX9)({component:Ne,query:s.EB8,entityKey:"productVariant",getBreadcrumbs:i=>[{label:`${i?.product.name}`,link:["/catalog","products",i?.product.id]},{label:`${i?.name} (${i?.sku})`,link:["variants",i?.id]}]})}),e.registerPageTab({priority:0,location:"facet-list",tab:(0,p.J)("catalog.facets"),route:"",component:De}),e.registerPageTab({priority:0,location:"facet-detail",tab:(0,p.J)("catalog.facet"),route:"",component:(0,s.IX9)({component:Je,query:s.m_w,entityKey:"facet",getBreadcrumbs:i=>[{label:i?i.name:(0,p.J)("catalog.create-new-facet"),link:[i?.id]}]})}),e.registerPageTab({priority:0,location:"collection-list",tab:(0,p.J)("catalog.collections"),route:"",component:Oe}),e.registerPageTab({priority:0,location:"collection-detail",tab:(0,p.J)("catalog.collection"),route:"",component:(0,s.IX9)({component:ye,query:s.B3M,entityKey:"collection",getBreadcrumbs:i=>[{label:i?i.name:(0,p.J)("catalog.create-new-collection"),link:[i?.id]}]})}),e.registerPageTab({priority:0,location:"asset-list",tab:(0,p.J)("catalog.assets"),route:"",component:ve}),e.registerPageTab({priority:0,location:"asset-detail",tab:(0,p.J)("catalog.asset"),route:"",component:(0,s.IX9)({component:_e,query:s.SS8,entityKey:"asset",getBreadcrumbs:i=>[{label:`${i?.name}`,link:[i?.id]}]})}),ae.hasRegisteredTabsAndBulkActions=!0)}}(it=ae).hasRegisteredTabsAndBulkActions=!1,it.\u0275fac=function(n){return new(n||it)(t.LFG(s._4w),t.LFG(s.PhL))},it.\u0275mod=t.oAB({type:it}),it.\u0275inj=t.cJS({providers:[{provide:A.Z6,useFactory:o=>nn(o),multi:!0,deps:[s.PhL]}],imports:[s.m81,A.Bz.forChild([])]});const od=y.Ps`
|
|
118
118
|
fragment ProductListQueryProductFragment on Product {
|
|
119
119
|
id
|
|
120
120
|
createdAt
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
totalItems
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
`,
|
|
140
|
+
`,id=y.Ps`
|
|
141
141
|
query ProductListQuery($options: ProductListOptions) {
|
|
142
142
|
products(options: $options) {
|
|
143
143
|
items {
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
totalItems
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
${
|
|
149
|
+
${od}
|
|
150
150
|
`,We=y.Ps`
|
|
151
151
|
fragment ProductVariantDetailQueryProductVariantFragment on ProductVariant {
|
|
152
152
|
id
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
|
-
`,
|
|
236
|
+
`,ad=y.Ps`
|
|
237
237
|
query GetProductVariantDetail($id: ID!) {
|
|
238
238
|
productVariant(id: $id) {
|
|
239
239
|
...ProductVariantDetailQueryProductVariantFragment
|
|
@@ -264,14 +264,14 @@
|
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
266
|
${We}
|
|
267
|
-
`,
|
|
267
|
+
`,rd=y.Ps`
|
|
268
268
|
mutation ProductVariantUpdateMutation($input: [UpdateProductVariantInput!]!) {
|
|
269
269
|
updateProductVariants(input: $input) {
|
|
270
270
|
...ProductVariantDetailQueryProductVariantFragment
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
${We}
|
|
274
|
-
`,
|
|
274
|
+
`,cd=y.Ps`
|
|
275
275
|
fragment ProductVariantListQueryProductVariantFragment on ProductVariant {
|
|
276
276
|
id
|
|
277
277
|
createdAt
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
${s.fed}
|
|
310
|
-
`,
|
|
310
|
+
`,sd=y.Ps`
|
|
311
311
|
query ProductVariantListQuery($options: ProductVariantListOptions!) {
|
|
312
312
|
productVariants(options: $options) {
|
|
313
313
|
items {
|
|
@@ -316,6 +316,6 @@
|
|
|
316
316
|
totalItems
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
-
${
|
|
319
|
+
${cd}
|
|
320
320
|
`}}]);
|
|
321
|
-
//# sourceMappingURL=976.
|
|
321
|
+
//# sourceMappingURL=976.d934e59ba4861463.js.map
|