@vendure/admin-ui-plugin 2.0.0-next.25 → 2.0.0-next.27
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/{430.827b68efffc7eada.js → 430.4469edebdd7335b3.js} +3 -3
- package/lib/admin-ui/430.4469edebdd7335b3.js.map +1 -0
- package/lib/admin-ui/625.b3ffd6dd39d19338.js +2 -0
- package/lib/admin-ui/625.b3ffd6dd39d19338.js.map +1 -0
- package/lib/admin-ui/index.html +1 -1
- package/lib/admin-ui/{main.ababafd376eafebb.js → main.c25877ffe4ebfda0.js} +2 -2
- package/lib/admin-ui/{main.ababafd376eafebb.js.map → main.c25877ffe4ebfda0.js.map} +1 -1
- package/lib/admin-ui/{runtime.8da96dfa2596505b.js → runtime.bb59058c40cd3ad0.js} +2 -2
- package/lib/admin-ui/{runtime.8da96dfa2596505b.js.map → runtime.bb59058c40cd3ad0.js.map} +1 -1
- package/package.json +4 -4
- package/lib/admin-ui/430.827b68efffc7eada.js.map +0 -1
- package/lib/admin-ui/625.a3f9b49f4b9723db.js +0 -2
- package/lib/admin-ui/625.a3f9b49f4b9723db.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkvendure_admin=self.webpackChunkvendure_admin||[]).push([[430],{1430:(Qr,de,g)=>{g.r(de),g.d(de,{ApplyFacetDialogComponent:()=>ot,AssetDetailComponent:()=>rt,AssetListComponent:()=>st,AssetResolver:()=>Mt,AssetsComponent:()=>j,AssignProductsToChannelDialogComponent:()=>z,AssignToChannelDialogComponent:()=>at,BulkAddFacetValuesDialogComponent:()=>wt,CatalogModule:()=>St,CollectionContentsComponent:()=>nt,CollectionDetailComponent:()=>gt,CollectionListComponent:()=>ft,CollectionResolver:()=>kt,CollectionTreeComponent:()=>ht,CollectionTreeNodeComponent:()=>H,CollectionTreeService:()=>B,ConfirmVariantDeletionDialogComponent:()=>Ot,FacetDetailComponent:()=>vt,FacetListComponent:()=>Ct,FacetResolver:()=>Lt,GET_PRODUCTS_WITH_FACET_VALUES_BY_IDS:()=>Se,GET_VARIANTS_WITH_FACET_VALUES_BY_IDS:()=>$e,GenerateProductVariantsComponent:()=>xt,GeneratedVariant:()=>Le,OPTION_VALUE_INPUT_VALUE_ACCESSOR:()=>Oe,OptionValueInputComponent:()=>W,ProductDetailComponent:()=>yt,ProductDetailService:()=>K,ProductListComponent:()=>Pt,ProductOptionsEditorComponent:()=>Ft,ProductResolver:()=>Vt,ProductVariantsEditorComponent:()=>It,ProductVariantsListComponent:()=>At,ProductVariantsResolver:()=>it,ProductVariantsTableComponent:()=>bt,UPDATE_PRODUCTS_BULK:()=>Qe,UPDATE_VARIANTS_BULK:()=>Ee,UpdateProductOptionDialogComponent:()=>Zt,VariantPriceDetailComponent:()=>Tt,arrayToTree:()=>he,assetBreadcrumb:()=>qe,assignCollectionsToChannelBulkAction:()=>Ge,assignFacetValuesToProductsBulkAction:()=>Xe,assignFacetsToChannelBulkAction:()=>He,assignProductsToChannelBulkAction:()=>Ke,catalogRoutes:()=>Ve,collectionBreadcrumb:()=>Ne,deleteCollectionsBulkAction:()=>Ye,deleteFacetsBulkAction:()=>Be,deleteProductsBulkAction:()=>ze,facetBreadcrumb:()=>Ue,productBreadcrumb:()=>we,productOptionsEditorBreadcrumb:()=>De,productVariantEditorBreadcrumb:()=>Je,removeCollectionsFromChannelBulkAction:()=>je,removeFacetsFromChannelBulkAction:()=>Re,removeProductsFromChannelBulkAction:()=>We,replaceLast:()=>se});var A=g(9720),c=g(9950),u=g(8270),C=g(635),p=g(587),t=g(3184),P=g(7346),Dt=g(3146),tt=g(8276),D=g(9416),en=g(3616),x=g(6362),O=g(7514);function nn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 on=function(){return["UpdateCatalog","UpdateAsset"]};class rt extends c.UT_{constructor(n,e,o,a,r,s){super(e,n,o,r),this.notificationService=a,this.dataService=r,this.formBuilder=s,this.detailForm=new p.cw({}),this.customFields=this.getCustomFieldConfig("Asset")}ngOnInit(){this.detailForm=new p.cw({name:new p.NI(""),tags:new p.NI([]),customFields:this.formBuilder.group(this.customFields.reduce((n,e)=>Object.assign(Object.assign({},n),{[e.name]:""}),{}))}),this.init()}ngOnDestroy(){this.destroy()}onAssetChange(n){var e,o;null===(e=this.detailForm.get("name"))||void 0===e||e.setValue(n.name),null===(o=this.detailForm.get("tags"))||void 0===o||o.setValue(n.tags),this.detailForm.markAsDirty()}save(){this.dataService.product.updateAsset({id:this.id,name:this.detailForm.value.name,tags:this.detailForm.value.tags,customFields:this.detailForm.value.customFields}).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Asset"})},n=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"Asset"})})}setFormValues(n,e){var o,a;null===(o=this.detailForm.get("name"))||void 0===o||o.setValue(n.name),null===(a=this.detailForm.get("tags"))||void 0===a||a.setValue(n.tags),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customFields"]),n)}}rt.\u0275fac=function(n){return new(n||rt)(t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(c.gqp),t.Y36(c.DoR),t.Y36(p.qu))},rt.\u0275cmp=t.Xpm({type:rt,selectors:[["vdr-asset-detail"]],features:[t.qOj],decls:9,vars:11,consts:[[3,"entity"],["locationId","asset-detail"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"asset","editable","customFields","customFieldsForm","assetChange"],[1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left"),t._UZ(2,"vdr-entity-info",0),t.ALo(3,"async"),t.qZA(),t.TgZ(4,"vdr-ab-right"),t._UZ(5,"vdr-action-bar-items",1),t.YNc(6,nn,3,4,"button",2),t.qZA()(),t.TgZ(7,"vdr-asset-preview",3),t.NdJ("assetChange",function(a){return e.onAssetChange(a)}),t.ALo(8,"async"),t.qZA()),2&n&&(t.xp6(2),t.Q6J("entity",t.lcZ(3,6,e.entity$)),t.xp6(4),t.Q6J("vdrIfPermissions",t.DdM(10,on)),t.xp6(1),t.Q6J("asset",t.lcZ(8,8,e.entity$))("editable",!0)("customFields",e.customFields)("customFieldsForm",e.detailForm.get("customFields")))},directives:[P.Kk,P.BN,Dt.V,P.mz,tt.W,D.H,en.A],pipes:[x.Ov,O.X$],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}"],changeDetection:0});var U=g(6317),I=g(6562),M=g(591),E=g(1989),S=g(8951),pe=g(2313),b=g(2673),an=g(2688),rn=g(4042),sn=g(9206),ue=g(6940),me=g(322),Xt=g(5595),N=g(7388);const cn=function(){return{}},ln=function(){return["DeleteCatalog","DeleteAsset"]};class st extends c.t7C{constructor(n,e,o,a,r){super(a,r),this.notificationService=n,this.modalService=e,this.dataService=o,this.searchTerm$=new U.X(void 0),this.filterByTags$=new U.X(void 0),this.uploading=!1,super.setQueryFn((...s)=>this.dataService.product.getAssetList(...s),s=>s.assets,(s,d)=>{var l;const m=this.searchTerm$.value,_=null===(l=this.filterByTags$.value)||void 0===l?void 0:l.map(f=>f.value);return{options:Object.assign(Object.assign({skip:s,take:d},m?{filter:{name:{contains:m}}}:{}),{sort:{createdAt:c.Asd.DESC},tags:_,tagsOperator:c.FnJ.AND})}},{take:25,skip:0})}ngOnInit(){super.ngOnInit(),this.paginationConfig$=(0,I.a)(this.itemsPerPage$,this.currentPage$,this.totalItems$).pipe((0,C.U)(([n,e,o])=>({itemsPerPage:n,currentPage:e,totalItems:o}))),this.searchTerm$.pipe((0,E.b)(250),(0,S.R)(this.destroy$)).subscribe(()=>this.refresh()),this.filterByTags$.pipe((0,S.R)(this.destroy$)).subscribe(()=>this.refresh()),this.allTags$=this.dataService.product.getTagList().mapStream(n=>n.tags.items)}filesSelected(n){n.length&&(this.uploading=!0,this.dataService.product.createAssets(n).pipe((0,pe.x)(()=>this.uploading=!1)).subscribe(({createAssets:e})=>{let o=0;for(const a of e)switch(a.__typename){case"Asset":o++;break;case"MimeTypeError":this.notificationService.error(a.message)}0<o&&(super.refresh(),this.notificationService.success((0,u.J)("asset.notify-create-assets-success"),{count:o}))}))}deleteAssets(n){this.showModalAndDelete(n.map(e=>e.id)).pipe((0,b.w)(e=>e.result===c.PcR.DELETED?[!0]:this.showModalAndDelete(n.map(o=>o.id),e.message||"").pipe((0,C.U)(o=>o.result===c.PcR.DELETED)))).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"Assets"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"Assets"})})}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-assets"),translationVars:{count:n.length},body:e,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.product.deleteAssets(n,!!e):M.E),(0,C.U)(o=>o.deleteAssets))}}st.\u0275fac=function(n){return new(n||st)(t.Y36(c.gqp),t.Y36(c.Z7U),t.Y36(c.DoR),t.Y36(A.F0),t.Y36(A.gz))},st.\u0275cmp=t.Xpm({type:st,selectors:[["vdr-asset-list"]],features:[t.qOj],decls:19,vars:31,consts:[[3,"grow"],[1,"pr4","mt1",3,"tags","searchTermChange","tagsChange"],["locationId","asset-list"],["dropZoneTarget",".content-area",3,"uploading","selectFiles"],[3,"assets","multiSelect","canDelete","deleteAssets"],[1,"paging-controls"],[3,"itemsPerPage","itemsPerPageChange"],[3,"currentPage","itemsPerPage","totalItems","pageChange"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left",0)(2,"vdr-asset-search-input",1),t.NdJ("searchTermChange",function(a){return e.searchTerm$.next(a)})("tagsChange",function(a){return e.filterByTags$.next(a)}),t.ALo(3,"async"),t.qZA()(),t.TgZ(4,"vdr-ab-right"),t._UZ(5,"vdr-action-bar-items",2),t.TgZ(6,"vdr-asset-file-input",3),t.NdJ("selectFiles",function(a){return e.filesSelected(a)}),t.qZA()()(),t.TgZ(7,"vdr-asset-gallery",4),t.NdJ("deleteAssets",function(a){return e.deleteAssets(a)}),t.ALo(8,"paginate"),t.ALo(9,"async"),t.ALo(10,"async"),t.ALo(11,"hasPermission"),t.qZA(),t.TgZ(12,"div",5)(13,"vdr-items-per-page-controls",6),t.NdJ("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(14,"async"),t.qZA(),t.TgZ(15,"vdr-pagination-controls",7),t.NdJ("pageChange",function(a){return e.setPageNumber(a)}),t.ALo(16,"async"),t.ALo(17,"async"),t.ALo(18,"async"),t.qZA()()),2&n&&(t.xp6(1),t.Q6J("grow",!0),t.xp6(1),t.Q6J("tags",t.lcZ(3,10,e.allTags$)),t.xp6(4),t.Q6J("uploading",e.uploading),t.xp6(1),t.Q6J("assets",t.xi3(8,12,t.lcZ(9,15,e.items$),t.lcZ(10,17,e.paginationConfig$)||t.DdM(29,cn)))("multiSelect",!0)("canDelete",t.lcZ(11,19,t.DdM(30,ln))),t.xp6(6),t.Q6J("itemsPerPage",t.lcZ(14,21,e.itemsPerPage$)),t.xp6(2),t.Q6J("currentPage",t.lcZ(16,23,e.currentPage$))("itemsPerPage",t.lcZ(17,25,e.itemsPerPage$))("totalItems",t.lcZ(18,27,e.totalItems$)))},directives:[P.Kk,P.BN,an.V,P.mz,tt.W,rn.e,sn.K,ue.w,me.L],pipes:[x.Ov,Xt._s,N.j],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}vdr-asset-gallery[_ngcontent-%COMP%]{flex:1}.paging-controls[_ngcontent-%COMP%]{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}.search-input[_ngcontent-%COMP%]{margin-top:6px;min-width:300px}"]});var et=g(2604),$t=g(253),ge=g(6646),k=g(745),Y=g(8977),Qt=g(116),w=g(9295),F=g(9525),ct=g(7425),Et=g(4652),h=g(2748),V=g(7890),Ht=g(3516),_e=g(3628),Yt=g(837),te=g(2505),G=g(6998),J=g(9493),lt=g(735),dt=g(1519),pt=g(8854),ut=g(5111),ee=g(1353);function dn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"img",11),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return a.previewAsset(a.featuredAsset)}),t.ALo(1,"assetPreview"),t.qZA()}if(2&i){const e=t.oxw(2);t.Q6J("src",t.xi3(1,1,e.featuredAsset,"small"),t.LSH)}}function pn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t._UZ(1,"clr-icon",13),t.TgZ(2,"div"),t._uU(3),t.ALo(4,"translate"),t.qZA()()}2&i&&(t.xp6(3),t.Oqu(t.lcZ(4,1,"catalog.no-featured-asset")))}function un(i,n){1&i&&t.GkF(0)}function mn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",14)(1,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t._UZ(2,"clr-icon",16),t._uU(3),t.ALo(4,"translate"),t.qZA()()}2&i&&(t.xp6(3),t.hij(" ",t.lcZ(4,1,"asset.add-asset")," "))}function gn(i,n){if(1&i&&(t.TgZ(0,"div",3)(1,"div",4)(2,"div",5),t.YNc(3,dn,2,4,"img",6),t.YNc(4,pn,5,3,"div",7),t.qZA()(),t.TgZ(5,"div",8),t.YNc(6,un,1,0,"ng-container",9),t.qZA(),t.YNc(7,mn,5,3,"div",10),t.qZA()),2&i){const e=t.oxw(),o=t.MAs(4);t.xp6(3),t.Q6J("ngIf",e.featuredAsset),t.xp6(1),t.Q6J("ngIf",!e.featuredAsset),t.xp6(2),t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("vdrIfPermissions",e.updatePermissions)}}function _n(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"img",11),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return a.previewAsset(a.featuredAsset)}),t.ALo(1,"assetPreview"),t.qZA()}if(2&i){const e=t.oxw(2);t.Q6J("src",t.xi3(1,1,e.featuredAsset,"thumb"),t.LSH)}}function hn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t._UZ(1,"clr-icon",19),t.qZA()}}function fn(i,n){1&i&&t.GkF(0)}function vn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",20),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t.ALo(1,"translate"),t._UZ(2,"clr-icon",16),t._uU(3),t.ALo(4,"translate"),t.qZA()}2&i&&(t.Q6J("title",t.lcZ(1,2,"asset.add-asset")),t.xp6(3),t.hij(" ",t.lcZ(4,4,"asset.add-asset")," "))}function Cn(i,n){if(1&i&&(t.TgZ(0,"div",17),t.YNc(1,_n,2,4,"img",6),t.YNc(2,hn,2,0,"div",7),t.qZA(),t.YNc(3,fn,1,0,"ng-container",9),t.YNc(4,vn,5,6,"button",18)),2&i){const e=t.oxw(),o=t.MAs(4);t.xp6(1),t.Q6J("ngIf",e.featuredAsset),t.xp6(1),t.Q6J("ngIf",!e.featuredAsset),t.xp6(1),t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("vdrIfPermissions",e.updatePermissions)}}function xn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",23),t.NdJ("cdkDropListDropped",function(a){return t.CHM(e),t.oxw(2).dropListDropped(a)}),t.ALo(1,"hasPermission"),t.TgZ(2,"vdr-dropdown",24)(3,"div",25),t._UZ(4,"img",26),t.ALo(5,"assetPreview"),t.qZA(),t.TgZ(6,"vdr-dropdown-menu",27)(7,"button",28),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(2).previewAsset(r)}),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"button",29),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(2).setAsFeatured(r)}),t.ALo(11,"hasPermission"),t._uU(12),t.ALo(13,"translate"),t.qZA(),t._UZ(14,"div",30),t.TgZ(15,"button",31),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(2).removeAsset(r)}),t.ALo(16,"hasPermission"),t._uU(17),t.ALo(18,"translate"),t.qZA()()()()}if(2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.Q6J("cdkDropListData",o)("cdkDropListDisabled",!t.lcZ(1,10,a.updatePermissions)),t.xp6(3),t.ekj("featured",a.isFeatured(e)),t.xp6(1),t.Q6J("src",t.xi3(5,12,e,"tiny"),t.LSH),t.xp6(4),t.hij(" ",t.lcZ(9,15,"asset.preview")," "),t.xp6(2),t.Q6J("disabled",a.isFeatured(e)||!t.lcZ(11,17,a.updatePermissions)),t.xp6(2),t.hij(" ",t.lcZ(13,19,"asset.set-as-featured-asset")," "),t.xp6(3),t.Q6J("disabled",!t.lcZ(16,21,a.updatePermissions)),t.xp6(2),t.hij(" ",t.lcZ(18,23,"asset.remove-asset")," ")}}function bn(i,n){if(1&i&&(t.TgZ(0,"div",21),t.YNc(1,xn,19,25,"div",22),t.qZA()),2&i){const e=t.oxw();t.ekj("compact",e.compact),t.xp6(1),t.Q6J("ngForOf",e.assets)}}class j{constructor(n,e){this.modalService=n,this.changeDetector=e,this.compact=!1,this.change=new t.vpe,this.assets=[]}set assetsSetter(n){this.assets=(n||[]).slice()}selectAssets(){this.modalService.fromComponent(c.V61,{size:"xl"}).subscribe(n=>{n&&n.length&&(this.assets=(0,J.T)(this.assets.concat(n),"id"),this.featuredAsset||(this.featuredAsset=n[0]),this.emitChangeEvent(this.assets,this.featuredAsset),this.changeDetector.markForCheck())})}setAsFeatured(n){this.featuredAsset=n,this.emitChangeEvent(this.assets,n)}isFeatured(n){return!!this.featuredAsset&&this.featuredAsset.id===n.id}previewAsset(n){this.modalService.fromComponent(c.IW,{size:"xl",closable:!0,locals:{asset:n}}).subscribe()}removeAsset(n){this.assets=this.assets.filter(e=>e.id!==n.id),this.featuredAsset&&this.featuredAsset.id===n.id&&(this.featuredAsset=this.assets.length>0?this.assets[0]:void 0),this.emitChangeEvent(this.assets,this.featuredAsset)}emitChangeEvent(n,e){this.change.emit({assets:n,featuredAsset:e})}dropListDropped(n){(0,G.bA)(this.assets,n.previousContainer.data,n.container.data),this.emitChangeEvent(this.assets,this.featuredAsset)}}j.\u0275fac=function(n){return new(n||j)(t.Y36(c.Z7U),t.Y36(t.sBO))},j.\u0275cmp=t.Xpm({type:j,selectors:[["vdr-assets"]],hostVars:2,hostBindings:function(n,e){2&n&&t.ekj("compact",e.compact)},inputs:{assetsSetter:["assets","assetsSetter"],featuredAsset:"featuredAsset",compact:"compact",updatePermissions:"updatePermissions"},outputs:{change:"change"},decls:5,vars:2,consts:[["class","card",4,"ngIf","ngIfElse"],["compactView",""],["assetList",""],[1,"card"],[1,"card-img"],[1,"featured-asset"],[3,"src","click",4,"ngIf"],["class","placeholder",3,"click",4,"ngIf"],[1,"card-block"],[4,"ngTemplateOutlet"],["class","card-footer",4,"vdrIfPermissions"],[3,"src","click"],[1,"placeholder",3,"click"],["shape","image","size","128"],[1,"card-footer"],[1,"btn",3,"click"],["shape","attachment"],[1,"featured-asset","compact"],["class","compact-select btn btn-icon btn-sm btn-block",3,"title","click",4,"vdrIfPermissions"],["shape","image","size","150"],[1,"compact-select","btn","btn-icon","btn-sm","btn-block",3,"title","click"],["cdkDropListGroup","",1,"all-assets"],["class","drop-list","cdkDropList","","cdkDropListOrientation","horizontal",3,"cdkDropListData","cdkDropListDisabled","cdkDropListDropped",4,"ngFor","ngForOf"],["cdkDropList","","cdkDropListOrientation","horizontal",1,"drop-list",3,"cdkDropListData","cdkDropListDisabled","cdkDropListDropped"],["cdkDrag",""],["vdrDropdownTrigger","","tabindex","0",1,"asset-thumb",3,"title"],[3,"src"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",3,"click"],["type","button","vdrDropdownItem","",3,"disabled","click"],[1,"dropdown-divider"],["type","button","vdrDropdownItem","",1,"remove-asset",3,"disabled","click"]],template:function(n,e){if(1&n&&(t.YNc(0,gn,8,4,"div",0),t.YNc(1,Cn,5,4,"ng-template",null,1,t.W1O),t.YNc(3,bn,2,3,"ng-template",null,2,t.W1O)),2&n){const o=t.MAs(2);t.Q6J("ngIf",!e.compact)("ngIfElse",o)}},directives:[x.O5,h.qvL,x.tP,D.H,G.Fd,x.sg,G.Wj,lt.J,G.Zt,dt.U,pt.N,ut.H],pipes:[ee.M,O.X$,N.j],styles:["[_nghost-%COMP%]{width:340px;display:block}.compact[_nghost-%COMP%]{width:162px}.placeholder[_ngcontent-%COMP%]{text-align:center;color:var(--color-grey-300)}.featured-asset[_ngcontent-%COMP%]{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer;border-radius:var(--border-radius-img)}.featured-asset[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:var(--border-radius-img)}.featured-asset.compact[_ngcontent-%COMP%]{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset[_ngcontent-%COMP%] .compact-select[_ngcontent-%COMP%]{position:absolute;bottom:6px;right:6px;margin:0}.all-assets[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.all-assets[_ngcontent-%COMP%] .drop-list[_ngcontent-%COMP%]{min-width:60px}.all-assets[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%]{margin:3px;padding:0;border:2px solid var(--color-component-border-100);border-radius:var(--border-radius-img);cursor:pointer}.all-assets[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:50px;height:50px;border-radius:var(--border-radius-img)}.all-assets[_ngcontent-%COMP%] .asset-thumb.featured[_ngcontent-%COMP%]{border-color:var(--color-primary-500);border-radius:calc(var(--border-radius-img) + 2px)}.all-assets[_ngcontent-%COMP%] .remove-asset[_ngcontent-%COMP%]{color:var(--color-warning-500)}.all-assets.compact[_ngcontent-%COMP%] .drop-list[_ngcontent-%COMP%]{min-width:54px}.all-assets.compact[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%]{margin:1px;border-width:1px}.all-assets.compact[_ngcontent-%COMP%] .cdk-drag-placeholder[_ngcontent-%COMP%], .all-assets.compact[_ngcontent-%COMP%] .cdk-drag-placeholder[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%]{width:50px}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box[_ngcontent-%COMP%]:last-child{border:none}.all-assets.cdk-drop-list-dragging[_ngcontent-%COMP%] vdr-dropdown[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){display:none}"],changeDetection:0});var Zn=g(8931),mt=g(4874),$=g(9337),Tn=g(3158),ne=g(365),oe=g(8899);function An(i,n){1&i&&t.GkF(0)}const yn=function(){return{tab:"variants"}},Pn=function(i,n){return["/catalog/products",i,n]};function Fn(i,n){if(1&i&&(t.TgZ(0,"td",7),t._uU(1),t.qZA(),t.TgZ(2,"td",7)(3,"small",8),t._uU(4),t.qZA()(),t.TgZ(5,"td",9),t._UZ(6,"vdr-table-row-action",10),t.ALo(7,"translate"),t.qZA()),2&i){const e=n.item;t.xp6(1),t.Oqu(e.name),t.xp6(3),t.Oqu(e.sku),t.xp6(2),t.Q6J("label",t.lcZ(7,4,"common.edit"))("linkTo",t.WLB(7,Pn,e.productId,t.DdM(6,yn)))}}const On=function(i){return{$implicit:i}};class nt{constructor(n,e,o){this.route=n,this.router=e,this.dataService=o,this.previewUpdatedFilters=!1,this.filterTermControl=new p.NI(""),this.isLoading=!1,this.collectionIdChange$=new U.X(""),this.parentIdChange$=new U.X(""),this.filterChanges$=new U.X([]),this.inheritFiltersChanges$=new U.X(!0),this.refresh$=new U.X(!0),this.destroy$=new $t.x}ngOnInit(){this.contentsCurrentPage$=this.route.queryParamMap.pipe((0,C.U)(s=>s.get("contentsPage")),(0,C.U)(s=>s?+s:1),(0,mt.O)(1),(0,Y.x)()),this.contentsItemsPerPage$=this.route.queryParamMap.pipe((0,C.U)(s=>s.get("contentsPerPage")),(0,C.U)(s=>s?+s:10),(0,mt.O)(10),(0,Y.x)());const n=this.filterTermControl.valueChanges.pipe((0,E.b)(250),(0,$.b)(()=>this.setContentsPageNumber(1)),(0,mt.O)("")),e=this.filterChanges$.asObservable().pipe((0,Qt.h)(()=>this.previewUpdatedFilters),(0,$.b)(()=>this.setContentsPageNumber(1)),(0,mt.O)([])),o=this.inheritFiltersChanges$.asObservable().pipe((0,Qt.h)(()=>null!=this.inheritFilters),(0,Y.x)(),(0,$.b)(()=>this.setContentsPageNumber(1)),(0,mt.O)(!0)),r=(0,I.a)(this.collectionIdChange$,this.parentIdChange$,this.contentsCurrentPage$,this.contentsItemsPerPage$,n,e,o,this.refresh$).pipe((0,S.R)(this.destroy$),(0,$.b)(()=>this.isLoading=!0),(0,E.b)(50),(0,b.w)(([s,d,l,m,_,f,v])=>{const Z=m,T=(l-1)*m;if(f.length&&this.previewUpdatedFilters){const y=_?{name:{contains:_}}:void 0;return this.dataService.collection.previewCollectionVariants({parentId:d,filters:f,inheritFilters:v},{take:Z,skip:T,filter:y}).mapSingle(L=>L.previewCollectionVariants).pipe((0,Tn.K)(()=>(0,k.of)({items:[],totalItems:0})))}return s?this.dataService.collection.getCollectionContents(s,Z,T,_).mapSingle(y=>{var L;return null===(L=y.collection)||void 0===L?void 0:L.productVariants}):(0,k.of)(null)}),(0,$.b)(()=>this.isLoading=!1),(0,pe.x)(()=>this.isLoading=!1));this.contents$=r.pipe((0,C.U)(s=>s?s.items:[])),this.contentsTotalItems$=r.pipe((0,C.U)(s=>s?s.totalItems:0))}ngOnChanges(n){"collectionId"in n&&this.collectionIdChange$.next(n.collectionId.currentValue),"parentId"in n&&this.parentIdChange$.next(n.parentId.currentValue),"inheritFilters"in n&&this.inheritFiltersChanges$.next(n.inheritFilters.currentValue),"updatedFilters"in n&&this.updatedFilters&&this.filterChanges$.next(this.updatedFilters)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setContentsPageNumber(n){this.setParam("contentsPage",n)}setContentsItemsPerPage(n){this.setParam("contentsPerPage",n)}refresh(){this.refresh$.next(!0)}setParam(n,e){this.router.navigate(["./"],{relativeTo:this.route,queryParams:{[n]:e},queryParamsHandling:"merge",replaceUrl:!0})}}nt.\u0275fac=function(n){return new(n||nt)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(c.DoR))},nt.\u0275cmp=t.Xpm({type:nt,selectors:[["vdr-collection-contents"]],contentQueries:function(n,e,o){if(1&n&&t.Suo(o,t.Rgc,7),2&n){let a;t.iGM(a=t.CRH())&&(e.headerTemplate=a.first)}},inputs:{collectionId:"collectionId",parentId:"parentId",inheritFilters:"inheritFilters",updatedFilters:"updatedFilters",previewUpdatedFilters:"previewUpdatedFilters"},features:[t.TTD],decls:14,vars:26,consts:[[1,"contents-header"],[1,"header-title-row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text",3,"placeholder","formControl"],[1,"table-wrapper"],[1,"progress","loop"],[3,"items","itemsPerPage","totalItems","currentPage","pageChange","itemsPerPageChange"],[1,"left","align-middle"],[1,"sku"],[1,"right","align-middle"],["iconShape","edit",3,"label","linkTo"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0)(1,"div",1),t.YNc(2,An,1,0,"ng-container",2),t.ALo(3,"async"),t.qZA(),t._UZ(4,"input",3),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"div",4),t._UZ(7,"div",5),t.TgZ(8,"vdr-data-table",6),t.NdJ("pageChange",function(a){return e.setContentsPageNumber(a)})("itemsPerPageChange",function(a){return e.setContentsItemsPerPage(a)}),t.ALo(9,"async"),t.ALo(10,"async"),t.ALo(11,"async"),t.ALo(12,"async"),t.YNc(13,Fn,8,10,"ng-template"),t.qZA()()),2&n&&(t.xp6(2),t.Q6J("ngTemplateOutlet",e.headerTemplate)("ngTemplateOutletContext",t.VKq(24,On,t.lcZ(3,12,e.contentsTotalItems$))),t.xp6(2),t.Q6J("placeholder",t.lcZ(5,14,"catalog.filter-by-name"))("formControl",e.filterTermControl),t.xp6(3),t.ekj("visible",e.isLoading),t.xp6(1),t.ekj("loading",e.isLoading),t.Q6J("items",t.lcZ(9,16,e.contents$))("itemsPerPage",t.lcZ(10,18,e.contentsItemsPerPage$))("totalItems",t.lcZ(11,20,e.contentsTotalItems$))("currentPage",t.lcZ(12,22,e.contentsCurrentPage$)))},directives:[x.tP,V.y,p.Fj,p.JJ,p.oH,ne.Q,oe.v],pipes:[x.Ov,O.X$],styles:[".contents-header[_ngcontent-%COMP%]{background-color:var(--color-component-bg-100);position:sticky;top:0;padding:6px;z-index:1;border-bottom:1px solid var(--color-component-border-200)}.contents-header[_ngcontent-%COMP%] .header-title-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.contents-header[_ngcontent-%COMP%] .clr-input[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] table{margin-top:-1px}vdr-data-table[_ngcontent-%COMP%]{opacity:1;transition:opacity .3s}vdr-data-table.loading[_ngcontent-%COMP%]{opacity:.5}.table-wrapper[_ngcontent-%COMP%]{position:relative}.progress[_ngcontent-%COMP%]{position:absolute;top:0;left:0;overflow:hidden;height:6px;opacity:0;transition:opacity .1s}.progress.visible[_ngcontent-%COMP%]{opacity:1}.sku[_ngcontent-%COMP%]{color:var(--color-text-200)}"],changeDetection:0});const In=["collectionContents"];function Mn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw().create()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 kn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 Ln(i,n){if(1&i&&t.YNc(0,kn,3,4,"button",7),2&i){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermission)}}const Vn=function(){return["/catalog/collections"]};function wn(i,n){1&i&&(t.TgZ(0,"a",38),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,Vn)),t.xp6(1),t.Oqu(t.lcZ(2,2,"catalog.root-collection")))}const Jn=function(i){return["/catalog/collections",i]};function Dn(i,n){if(1&i&&(t.TgZ(0,"a",38),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i){const e=t.oxw().$implicit;t.Q6J("routerLink",t.VKq(4,Jn,e.id)),t.xp6(1),t.Oqu(t.lcZ(2,2,e.name))}}function Un(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(t.lcZ(2,1,e.name))}}function Nn(i,n){if(1&i&&(t.TgZ(0,"li"),t.YNc(1,wn,3,5,"a",36),t.YNc(2,Dn,3,6,"a",36),t.YNc(3,Un,3,3,"ng-container",37),t.qZA()),2&i){const e=n.first,o=n.last;t.xp6(1),t.Q6J("ngIf",e),t.xp6(1),t.Q6J("ngIf",!e&&!o),t.xp6(1),t.Q6J("ngIf",o)}}function qn(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function Sn(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.private"))}const $n=function(){return["customFields"]};function Qn(i,n){if(1&i&&(t.TgZ(0,"section",39)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",40),t.ALo(5,"hasPermission"),t.qZA()),2&i){const e=t.oxw(2);t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get(t.DdM(8,$n)))("readonly",!t.lcZ(5,6,e.updatePermission))}}function En(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.inherit-filters-from-parent")))}function Yn(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.do-not-inherit-filters"))}function Gn(i,n){if(1&i){const e=t.EpF();t.ynx(0),t.TgZ(1,"vdr-configurable-input",41),t.NdJ("remove",function(){const r=t.CHM(e).index;return t.oxw(2).removeFilter(r)}),t.ALo(2,"hasPermission"),t.qZA(),t.BQk()}if(2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.xp6(1),t.Q6J("position",o)("operation",e)("operationDefinition",a.getFilterDefinition(e))("formControlName",o)("readonly",!t.lcZ(2,5,a.updatePermission))}}function jn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",46),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(3).addFilter(r)}),t._uU(1),t.qZA()}if(2&i){const e=n.$implicit;t.xp6(1),t.hij(" ",e.description," ")}}function Bn(i,n){if(1&i&&(t.TgZ(0,"div")(1,"vdr-dropdown")(2,"button",42),t._UZ(3,"clr-icon",43),t._uU(4),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"vdr-dropdown-menu",44),t.YNc(7,jn,2,1,"button",45),t.qZA()()()),2&i){const e=t.oxw(2);t.xp6(4),t.hij(" ",t.lcZ(5,2,"marketing.add-condition")," "),t.xp6(3),t.Q6J("ngForOf",e.allFilters)}}const Hn=function(i){return{count:i}},Rn=function(){return{standalone:!0}};function zn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",47),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"clr-checkbox-wrapper")(5,"input",48),t.NdJ("ngModelChange",function(){return t.CHM(e),t.oxw(2).toggleLivePreview()}),t.qZA(),t.TgZ(6,"label"),t._uU(7),t.ALo(8,"translate"),t.qZA()()}if(2&i){const e=n.$implicit,o=t.oxw(2);let a,r;t.xp6(1),t.AsE(" ",t.lcZ(2,8,"catalog.collection-contents")," (",t.xi3(3,10,"common.results-count",t.VKq(15,Hn,e)),") "),t.xp6(3),t.ekj("disabled",null==(a=o.detailForm.get("filters"))?null:a.pristine),t.xp6(1),t.Q6J("ngModelOptions",t.DdM(17,Rn))("disabled",null==(r=o.detailForm.get("filters"))?null:r.pristine)("ngModel",o.livePreview),t.xp6(2),t.Oqu(t.lcZ(8,13,"catalog.live-preview-contents"))}}const Kn=function(i){return{pattern:i}};function Wn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"form",8)(1,"nav",9)(2,"ul",10),t.YNc(3,Nn,4,3,"li",11),t.qZA()(),t.TgZ(4,"div",12)(5,"div",13)(6,"vdr-form-field",14),t.ALo(7,"translate"),t.TgZ(8,"clr-toggle-wrapper"),t._UZ(9,"input",15),t.ALo(10,"hasPermission"),t.TgZ(11,"label",16),t.YNc(12,qn,3,3,"ng-container",17),t.YNc(13,Sn,2,3,"ng-template",null,18,t.W1O),t.qZA()()(),t.TgZ(15,"vdr-form-field",19),t.ALo(16,"translate"),t.TgZ(17,"input",20),t.NdJ("input",function(a){return t.CHM(e),t.oxw().updateSlug(a.target.value)}),t.ALo(18,"hasPermission"),t.qZA()(),t.TgZ(19,"vdr-form-field",21),t.ALo(20,"translate"),t.ALo(21,"translate"),t._UZ(22,"input",22),t.ALo(23,"hasPermission"),t.qZA(),t._UZ(24,"vdr-rich-text-editor",23),t.ALo(25,"hasPermission"),t.ALo(26,"translate"),t.YNc(27,Qn,6,9,"section",24),t._UZ(28,"vdr-custom-detail-component-host",25),t.qZA(),t.TgZ(29,"div",26)(30,"vdr-assets",27),t.NdJ("change",function(a){t.CHM(e);return t.oxw().assetChanges=a}),t.qZA()()(),t.TgZ(31,"div",12)(32,"div",13)(33,"label"),t._uU(34),t.ALo(35,"translate"),t.qZA(),t.TgZ(36,"vdr-form-field",28),t.ALo(37,"translate"),t.TgZ(38,"clr-toggle-wrapper"),t._UZ(39,"input",29),t.ALo(40,"hasPermission"),t.TgZ(41,"label",16),t.YNc(42,En,3,3,"ng-container",17),t.YNc(43,Yn,2,3,"ng-template",null,30,t.W1O),t.qZA()()(),t.TgZ(45,"div",31),t.YNc(46,Gn,3,7,"ng-container",32),t.qZA(),t.YNc(47,Bn,8,4,"div",33),t.qZA(),t.TgZ(48,"div",13)(49,"vdr-collection-contents",34,35),t.ALo(51,"async"),t.ALo(52,"async"),t.ALo(53,"async"),t.YNc(54,zn,9,18,"ng-template"),t.qZA()()()()}if(2&i){const e=n.ngIf,o=t.MAs(14),a=t.MAs(44),r=t.oxw();t.Q6J("formGroup",r.detailForm),t.xp6(3),t.Q6J("ngForOf",e.breadcrumbs),t.xp6(3),t.Q6J("label",t.lcZ(7,32,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(10,34,r.updatePermission)),t.xp6(3),t.Q6J("ngIf",r.detailForm.value.visible)("ngIfElse",o),t.xp6(3),t.Q6J("label",t.lcZ(16,36,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(18,38,r.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(20,40,"catalog.slug"))("errors",t.VKq(62,Kn,t.lcZ(21,42,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(23,44,r.updatePermission)),t.xp6(2),t.Q6J("readonly",!t.lcZ(25,46,r.updatePermission))("label",t.lcZ(26,48,"common.description")),t.xp6(3),t.Q6J("ngIf",r.customFields.length),t.xp6(1),t.Q6J("entity$",r.entity$)("detailForm",r.detailForm),t.xp6(2),t.Q6J("assets",e.assets)("featuredAsset",e.featuredAsset)("updatePermissions",r.updatePermission),t.xp6(4),t.Oqu(t.lcZ(35,50,"catalog.filters")),t.xp6(2),t.Q6J("label",t.lcZ(37,52,"catalog.filter-inheritance")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(40,54,r.updatePermission)),t.xp6(3),t.Q6J("ngIf",r.detailForm.value.inheritFilters)("ngIfElse",a),t.xp6(4),t.Q6J("ngForOf",r.filters)("ngForTrackBy",r.trackByFn),t.xp6(1),t.Q6J("vdrIfPermissions",r.updatePermission),t.xp6(2),t.Q6J("collectionId",r.id)("parentId",t.lcZ(51,56,r.parentId$))("updatedFilters",t.lcZ(52,58,r.updatedFilters$))("inheritFilters",t.lcZ(53,60,r.inheritFilters$))("previewUpdatedFilters",r.livePreview)}}class gt extends c.UT_{constructor(n,e,o,a,r,s,d,l,m){var _;super(e,n,o,r),this.changeDetector=a,this.dataService=r,this.formBuilder=s,this.notificationService=d,this.modalService=l,this.localStorageService=m,this.assetChanges={},this.filters=[],this.allFilters=[],this.livePreview=!1,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateCollection],this.filterRemoved$=new $t.x,this.customFields=this.getCustomFieldConfig("Collection"),this.detailForm=this.formBuilder.group({name:["",p.kI.required],slug:["",(0,c.Foo)(/^[\p{Letter}0-9_-]+$/)],description:"",visible:!1,inheritFilters:!0,filters:this.formBuilder.array([]),customFields:this.formBuilder.group(this.customFields.reduce((f,v)=>Object.assign(Object.assign({},f),{[v.name]:""}),{}))}),this.livePreview=null!==(_=this.localStorageService.get("livePreviewCollectionContents"))&&void 0!==_&&_}ngOnInit(){this.init(),this.dataService.collection.getCollectionFilters().single$.subscribe(o=>{this.allFilters=o.collectionFilters});const n=this.detailForm.get("filters"),e=this.detailForm.get("inheritFilters");this.inheritFilters$=e.valueChanges.pipe((0,Y.x)()),this.updatedFilters$=(0,ge.T)(n.statusChanges,this.filterRemoved$).pipe((0,E.b)(200),(0,Qt.h)(()=>n.touched),(0,C.U)(()=>this.mapOperationsToInputs(this.filters,n.value).filter(o=>{for(const a of o.arguments)if(""===a.value)return!1;return!0}))),this.parentId$=this.route.paramMap.pipe((0,C.U)(o=>o.get("parentId")||void 0),(0,b.w)(o=>o?(0,k.of)(o):this.entity$.pipe((0,C.U)(a=>{var r;return null===(r=a.parent)||void 0===r?void 0:r.id}))))}ngOnDestroy(){this.destroy()}getFilterDefinition(n){return this.allFilters.find(e=>e.code===n.code)}assetsChanged(){return!!Object.values(this.assetChanges).length}updateSlug(n){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1)).subscribe(([e,o])=>{const a=this.detailForm.get(["slug"]),r=(0,c.ZIM)(e,o),s=!r||!r.slug;a&&a.pristine&&s&&a.setValue((0,et.U)(`${n}`,"-"))})}addFilter(n){const e=this.detailForm.get("filters"),o=n.args.reduce((a,r)=>Object.assign(Object.assign({},a),{[r.name]:(0,c.sux)(r.value)}),{});e.push(this.formBuilder.control({code:n.code,args:o})),this.filters.push({code:n.code,args:n.args.map(a=>({name:a.name,value:(0,c.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(){!this.detailForm.dirty||(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([n,e])=>{const o=this.getUpdatedCollection(n,this.detailForm,e),a=this.route.snapshot.paramMap.get("parentId");return a&&(o.parentId=a),this.dataService.collection.createCollection(o)})).subscribe(n=>{this.notificationService.success((0,u.J)("common.notify-create-success"),{entity:"Collection"}),this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",n.createCollection.id],{relativeTo:this.route})},n=>{this.notificationService.error((0,u.J)("common.notify-create-error"),{entity:"Collection"})})}save(){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([n,e])=>{const o=this.getUpdatedCollection(n,this.detailForm,e);return this.dataService.collection.updateCollection(o)})).subscribe(()=>{this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Collection"}),this.contentsComponent.refresh()},n=>{this.notificationService.error((0,u.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 o=(0,c.ZIM)(n,e);this.detailForm.patchValue({name:o?o.name:"",slug:o?o.slug:"",description:o?o.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,o)}getUpdatedCollection(n,e,o){var a,r;const s=(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||"",slug:n.slug||"",description:n.description||""}});return Object.assign(Object.assign({},s),{assetIds:null===(a=this.assetChanges.assets)||void 0===a?void 0:a.map(d=>d.id),featuredAssetId:null===(r=this.assetChanges.featuredAsset)||void 0===r?void 0:r.id,isPrivate:!e.value.visible,filters:this.mapOperationsToInputs(this.filters,this.detailForm.value.filters)})}mapOperationsToInputs(n,e){return n.map((o,a)=>({code:o.code,arguments:Object.entries(e[a].args).map(([r,s],d)=>({name:r,value:(0,c.qrw)(s)}))}))}}gt.\u0275fac=function(n){return new(n||gt)(t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(t.sBO),t.Y36(c.DoR),t.Y36(p.qu),t.Y36(c.gqp),t.Y36(c.Z7U),t.Y36(c.n2A))},gt.\u0275cmp=t.Xpm({type:gt,selectors:[["vdr-collection-detail"]],viewQuery:function(n,e){if(1&n&&t.Gf(In,5),2&n){let o;t.iGM(o=t.CRH())&&(e.contentsComponent=o.first)}},features:[t.qOj],decls:16,vars:19,consts:[[3,"entity"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],["class","form",3,"formGroup",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[1,"form",3,"formGroup"],["role","navigation"],[1,"collection-breadcrumbs"],[4,"ngFor","ngForOf"],[1,"clr-row"],[1,"clr-col"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],["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"],["formControlName","description",3,"readonly","label"],["formGroupName","customFields",4,"ngIf"],["locationId","collection-detail",3,"entity$","detailForm"],[1,"clr-col-md-auto"],[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,"collectionId","parentId","updatedFilters","inheritFilters","previewUpdatedFilters"],["collectionContents",""],[3,"routerLink",4,"ngIf"],[4,"ngIf"],[3,"routerLink"],["formGroupName","customFields"],["entityName","Collection",3,"customFields","customFieldsFormGroup","readonly"],[3,"position","operation","operationDefinition","formControlName","readonly","remove"],["vdrDropdownTrigger","",1,"btn","btn-outline"],["shape","plus"],["vdrPosition","bottom-left"],["type","button","vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["type","button","vdrDropdownItem","",3,"click"],[1,"contents-title"],["type","checkbox","clrCheckbox","",3,"ngModelOptions","disabled","ngModel","ngModelChange"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left"),t._UZ(2,"vdr-entity-info",0),t.ALo(3,"async"),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,Mn,3,4,"button",3),t.ALo(11,"async"),t.YNc(12,Ln,1,1,"ng-template",null,4,t.W1O),t.qZA()(),t.YNc(14,Wn,55,64,"form",5),t.ALo(15,"async")),2&n){const o=t.MAs(13);t.xp6(2),t.Q6J("entity",t.lcZ(3,7,e.entity$)),t.xp6(2),t.Q6J("disabled",t.lcZ(5,9,e.isNew$))("availableLanguageCodes",t.lcZ(6,11,e.availableLanguages$))("currentLanguageCode",t.lcZ(7,13,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(11,15,e.isNew$))("ngIfElse",o),t.xp6(4),t.Q6J("ngIf",t.lcZ(15,17,e.entity$))}},directives:[P.Kk,P.BN,Dt.V,ct.S,P.mz,tt.W,x.O5,D.H,p._Y,p.JL,p.sg,x.sg,A.yS,Et.h,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.u,Ht.x,h.MgK,p.Fj,_e.Y,p.x0,Yt.y,te.C,j,p.CE,h.q0d,Zn.q,lt.J,dt.U,h.qvL,pt.N,ut.H,nt,p.On],pipes:[x.Ov,O.X$,N.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-right:10px}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:last-child):after{content:"\\203a";top:0;color:var(--color-grey-400);margin-left:10px}'],changeDetection:0});var _t=g(9196),ie=g(5236);function he(i,n,e=[]){var o,a;const r=[],s={},d=function Xn(i){const n=new Map;function e(o){n.set(o.id,o),o.children.forEach(e)}return i&&e(i),n}(n);for(const m of i)s[m.id]=Object.assign(Object.assign({},m),{children:[]});for(const m of i.map(_=>_.id))if(s.hasOwnProperty(m)){const _=s[m];_.expanded=null!==(a=null===(o=d.get(m))||void 0===o?void 0:o.expanded)&&void 0!==a?a:e.includes(m);const f=_.parent;if(!f)continue;s[f.id]?s[f.id]?s[f.id].children.push(_):s[f.id]={children:[_]}:r.push(_)}return{id:r.length?r[0].parent.id:void 0,children:r}}class B{constructor(){this.allMoveListItems=[],this._rearrange$=new $t.x,this._delete$=new $t.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=>{var o;return e.id!==n.id&&!e.ancestorIdPath.has(n.id)&&e.id!==(null===(o=n.parent)||void 0===o?void 0:o.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,o,a,r)=>{const s=o.concat(e.name);return r.push({path:s.slice(1).join(" / ")||"root",id:e.id,ancestorIdPath:a}),e.children.forEach(d=>n(d,s,new Set([...a,e.id]),r)),r};return n(this.collectionTree,[],new Set,[])}}B.\u0275fac=function(n){return new(n||B)},B.\u0275prov=t.Yz7({token:B,factory:B.\u0275fac});var Ut=g(4447);function to(i,n){1&i&&t._UZ(0,"clr-icon",32)}function eo(i,n){1&i&&t._UZ(0,"clr-icon",33)}function no(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().toggleExpanded(a)}),t.YNc(1,to,1,0,"clr-icon",30),t.YNc(2,eo,1,0,"clr-icon",31),t.qZA()}if(2&i){const e=t.oxw().$implicit,o=t.oxw();t.Q6J("disabled",o.expandAll),t.xp6(1),t.Q6J("ngIf",!e.expanded&&!o.expandAll),t.xp6(1),t.Q6J("ngIf",e.expanded||o.expandAll)}}function oo(i,n){1&i&&t._UZ(0,"div",34)}function io(i,n){1&i&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.private")))}function ao(i,n){1&i&&(t.TgZ(0,"div",35),t._UZ(1,"clr-icon",36),t.qZA())}const ro=function(i){return{parentId:i}},so=function(i){return["./","create",i]};function co(i,n){if(1&i&&(t.TgZ(0,"a",37),t._UZ(1,"clr-icon",38),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i){const e=t.oxw().$implicit;t.Q6J("routerLink",t.VKq(6,so,t.VKq(4,ro,e.id))),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," ")}}function lo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",21),t.NdJ("click",function(){const r=t.CHM(e).$implicit,s=t.oxw().$implicit;return t.oxw().move(s,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&i){const e=n.$implicit,o=t.oxw(2);t.Q6J("disabled",!t.lcZ(1,2,o.hasUpdatePermission$)),t.xp6(6),t.hij(" ",e.path," ")}}function po(i,n){if(1&i&&t._UZ(0,"vdr-collection-tree-node",43),2&i){const e=t.oxw().$implicit,o=t.oxw();t.Q6J("expandAll",o.expandAll)("collectionTree",e)("activeCollectionId",o.activeCollectionId)("selectionManager",o.selectionManager)}}const uo=function(i){return{contents:i}},mo=function(i){return["./",i]},go=function(i){return["/catalog/collections/",i]},_o=function(){return["UpdateCatalog","UpdateCollection"]},ho=function(){return["CreateCatalog","CreateCollection"]};function fo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",3)(1,"div",4)(2,"div")(3,"input",5),t.NdJ("click",function(a){const s=t.CHM(e).$implicit;return t.oxw().selectionManager.toggleSelection(s,a)}),t.qZA()(),t.TgZ(4,"div",6),t.YNc(5,no,3,3,"button",7),t.YNc(6,oo,1,0,"ng-template",null,8,t.W1O),t._uU(8),t.qZA(),t._UZ(9,"div",9),t.YNc(10,io,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,ao,2,0,"div",15),t.TgZ(20,"vdr-dropdown")(21,"button",16),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().getMoveListItems(r)}),t._UZ(22,"clr-icon",17),t.qZA(),t.TgZ(23,"vdr-dropdown-menu",18),t.YNc(24,co,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,s=a.index;return t.oxw().moveUp(r,s)}),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,s=a.index;return t.oxw().moveDown(r,s)}),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,lo,7,4,"button",25),t._UZ(40,"div",20),t.TgZ(41,"button",26),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().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,po,1,4,"vdr-collection-tree-node",28),t.qZA()}if(2&i){const e=n.$implicit,o=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,mo,t.VKq(44,uo,e.id))),t.xp6(2),t.hij(" ",t.lcZ(14,26,"catalog.view-contents")," "),t.xp6(2),t.Q6J("routerLink",t.VKq(48,go,e.id)),t.xp6(2),t.hij(" ",t.lcZ(18,28,"common.edit")," "),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(50,_o)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(51,ho)),t.xp6(2),t.Q6J("disabled",0===o||!t.lcZ(27,30,r.hasUpdatePermission$)),t.xp6(3),t.hij(" ",t.lcZ(30,32,"catalog.move-up")," "),t.xp6(2),t.Q6J("disabled",o===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 H{constructor(n,e,o,a,r,s){this.parent=n,this.dataService=e,this.collectionTreeService=o,this.router=a,this.route=r,this.changeDetectorRef=s,this.depth=0,this.expandAll=!1,this.moveListItems=[],n&&(this.depth=n.depth+1)}ngOnInit(){var n;this.parentName=this.collectionTree.name||"<root>";const e=this.dataService.client.userStatus().mapStream(o=>o.userStatus.permissions).pipe((0,_t.d)(1));this.hasUpdatePermission$=e.pipe((0,C.U)(o=>o.includes(c.y3$.UpdateCatalog)||o.includes(c.y3$.UpdateCollection))),this.hasDeletePermission$=e.pipe((0,C.U)(o=>o.includes(c.y3$.DeleteCatalog)||o.includes(c.y3$.DeleteCollection))),this.subscription=null===(n=this.selectionManager)||void 0===n?void 0:n.selectionChanges$.subscribe(()=>this.changeDetectorRef.markForCheck())}ngOnChanges(n){const e=n.expandAll;e&&!0===e.previousValue&&!1===e.currentValue&&this.collectionTree.children.forEach(o=>o.expanded=!1)}ngOnDestroy(){var n;null===(n=this.subscription)||void 0===n||n.unsubscribe()}trackByFn(n,e){return e.id}toggleExpanded(n){var e,o;n.expanded=!n.expanded;let a=null!==(o=null===(e=this.route.snapshot.queryParamMap.get("expanded"))||void 0===e?void 0:e.split(","))&&void 0!==o?o:[];n.expanded?a.push(n.id):a=a.filter(r=>r!==n.id),this.router.navigate(["./"],{queryParams:{expanded:a.filter(r=>!!r).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,G.bA)(this.collectionTree.children,n.previousIndex,n.currentIndex),this.collectionTreeService.onDrop(n)}delete(n){this.collectionTreeService.onDelete(n)}}function vo(i,n){if(1&i&&t._UZ(0,"vdr-collection-tree-node",1),2&i){const e=t.oxw();t.Q6J("expandAll",e.expandAll)("collectionTree",e.collectionTree)("selectionManager",e.selectionManager)("activeCollectionId",e.activeCollectionId)}}H.\u0275fac=function(n){return new(n||H)(t.Y36(H,12),t.Y36(c.DoR),t.Y36(B),t.Y36(A.F0),t.Y36(A.gz),t.Y36(t.sBO))},H.\u0275cmp=t.Xpm({type:H,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,fo,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))},directives:[G.Wj,x.sg,h.q0d,G.Zt,x.mk,V.y,h.KKC,x.O5,h.qvL,Ut.Y,A.yS,D.H,G.Bh,lt.J,dt.U,pt.N,ut.H,H],pipes:[x.Ov,O.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-left: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-left:36px}.collection[_ngcontent-%COMP%] .collection-detail.depth-2[_ngcontent-%COMP%]{padding-left:60px}.collection[_ngcontent-%COMP%] .collection-detail.depth-3[_ngcontent-%COMP%]{padding-left:84px}.collection[_ngcontent-%COMP%] .collection-detail.depth-4[_ngcontent-%COMP%]{padding-left: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-right:3px}.move-to-item[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{line-height:18px}"],changeDetection:0});class ht{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=he(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))}}ht.\u0275fac=function(n){return new(n||ht)(t.Y36(B))},ht.\u0275cmp=t.Xpm({type:ht,selectors:[["vdr-collection-tree"]],inputs:{collections:"collections",activeCollectionId:"activeCollectionId",expandAll:"expandAll",expandedIds:"expandedIds",selectionManager:"selectionManager"},outputs:{rearrange:"rearrange",deleteCollection:"deleteCollection"},features:[t._Bn([B]),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,vo,1,4,"vdr-collection-tree-node",0),2&n&&t.Q6J("ngIf",e.collectionTree)},directives:[x.O5,H,G.Fd],styles:[""],changeDetection:0});const Co=function(){return["./create"]};function xo(i,n){1&i&&(t.TgZ(0,"a",15),t._UZ(1,"clr-icon",16),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,Co)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," "))}const bo=function(i){return{count:i}};function Zo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",17),t._uU(1),t.ALo(2,"async"),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"button",18),t.NdJ("click",function(){return t.CHM(e),t.oxw().closeContents()}),t._UZ(5,"clr-icon",19),t.qZA()}if(2&i){const e=n.$implicit,o=t.oxw();t.xp6(1),t.AsE(" ",t.lcZ(2,2,o.activeCollectionTitle$)," (",t.xi3(3,4,"common.results-count",t.VKq(7,bo,e)),") ")}}const To=function(){return["CreateCatalog","CreateCollection"]};class ft{constructor(n,e,o,a,r,s,d){this.dataService=n,this.notificationService=e,this.modalService=o,this.router=a,this.route=r,this.serverConfigService=s,this.changeDetectorRef=d,this.filterTermControl=new p.NI(""),this.expandAll=!1,this.expandedIds=[],this.destroy$=new $t.x,this.selectionManager=new c.ZE0({additiveMode:!0,multiSelect:!0,itemsAreEqual:(l,m)=>l.id===m.id})}ngOnInit(){var n,e;this.queryResult=this.dataService.collection.getCollections(1e3,0).refetchOnChannelChange(),this.items$=this.queryResult.mapStream(o=>o.collections.items).pipe((0,$.b)(o=>this.selectionManager.setCurrentItems(o)),(0,_t.d)(1)),this.activeCollectionId$=this.route.paramMap.pipe((0,C.U)(o=>o.get("contents")),(0,Y.x)()),this.expandedIds=null!==(e=null===(n=this.route.snapshot.queryParamMap.get("expanded"))||void 0===n?void 0:n.split(","))&&void 0!==e?e:[],this.expandAll="all"===this.route.snapshot.queryParamMap.get("expanded"),this.activeCollectionTitle$=(0,I.a)(this.activeCollectionId$,this.items$).pipe((0,C.U)(([o,a])=>{if(o){const r=a.find(s=>s.id===o);return r?r.name:""}return""})),this.availableLanguages$=this.serverConfigService.getAvailableLanguages(),this.contentLanguage$=this.dataService.client.uiState().mapStream(({uiState:o})=>o.contentLanguage).pipe((0,$.b)(()=>this.refresh())),this.filterTermControl.valueChanges.pipe((0,E.b)(250),(0,S.R)(this.destroy$)).subscribe(o=>{this.router.navigate(["./"],{queryParams:{q:o||void 0},queryParamsHandling:"merge",relativeTo:this.route})}),this.route.queryParamMap.pipe((0,C.U)(o=>o.get("q")),(0,Y.x)(),(0,S.R)(this.destroy$)).subscribe(()=>this.refresh()),this.filterTermControl.patchValue(this.route.snapshot.queryParamMap.get("q"))}ngOnDestroy(){this.queryResult.completed$.next(),this.destroy$.next(void 0),this.destroy$.complete()}toggleExpandAll(){this.router.navigate(["./"],{queryParams:{expanded:this.expandAll?"all":void 0},queryParamsHandling:"merge",relativeTo:this.route})}onRearrange(n){this.dataService.collection.moveCollection([n]).subscribe({next:()=>{this.notificationService.success((0,u.J)("common.notify-saved-changes")),this.refresh()},error:e=>{this.notificationService.error((0,u.J)("common.notify-save-changes-error"))}})}deleteCollection(n){this.items$.pipe((0,w.q)(1),(0,C.U)(e=>-1<e.findIndex(o=>o.parent&&o.parent.id===n)),(0,b.w)(e=>this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-collection"),body:e?(0,u.J)("catalog.confirm-delete-collection-and-children-body"):void 0,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]})),(0,b.w)(e=>e?this.dataService.collection.deleteCollection(n):M.E)).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"Collection"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"Collection"})})}closeContents(){const n=Object.assign({},this.route.snapshot.params);delete n.contents,this.router.navigate(["./",n],{relativeTo:this.route,queryParamsHandling:"preserve"})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}refresh(){const n=this.route.snapshot.queryParamMap.get("q");this.queryResult.ref.refetch({options:Object.assign({skip:0,take:1e3},n?{filter:{name:{contains:n}}}:{})})}}ft.\u0275fac=function(n){return new(n||ft)(t.Y36(c.DoR),t.Y36(c.gqp),t.Y36(c.Z7U),t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(t.sBO))},ft.\u0275cmp=t.Xpm({type:ft,selectors:[["vdr-collection-list"]],decls:29,vars:35,consts:[[1,""],["type","text","name","searchTerm",1,"clr-input","search-input",3,"formControl","placeholder"],[1,"flex","center"],[1,"expand-all-toggle","mt2"],["type","checkbox","clrToggle","",3,"ngModel","ngModelChange","change"],[1,"mt2",3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[1,"bulk-select-controls"],["type","checkbox","clrCheckbox","",3,"checked","click"],["locationId","collection-list",1,"ml2",3,"hostComponent","selectionManager"],[1,"collection-wrapper"],[3,"collections","activeCollectionId","expandAll","expandedIds","selectionManager","rearrange","deleteCollection"],[1,"collection-contents"],[3,"collectionId"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"collection-title"],["type","button",1,"close-button",3,"click"],["shape","close"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"div",0),t._UZ(3,"input",1),t.ALo(4,"translate"),t.TgZ(5,"div",2)(6,"clr-toggle-wrapper",3)(7,"input",4),t.NdJ("ngModelChange",function(a){return e.expandAll=a})("change",function(){return e.toggleExpandAll()}),t.qZA(),t.TgZ(8,"label"),t._uU(9),t.ALo(10,"translate"),t.qZA()(),t.TgZ(11,"vdr-language-selector",5),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(12,"async"),t.ALo(13,"async"),t.qZA()()()(),t.TgZ(14,"vdr-ab-right"),t._UZ(15,"vdr-action-bar-items",6),t.YNc(16,xo,4,5,"a",7),t.qZA()(),t.TgZ(17,"div",8)(18,"input",9),t.NdJ("click",function(){return e.selectionManager.toggleSelectAll()}),t.qZA(),t._UZ(19,"vdr-bulk-action-menu",10),t.qZA(),t.TgZ(20,"div",11)(21,"vdr-collection-tree",12),t.NdJ("rearrange",function(a){return e.onRearrange(a)})("deleteCollection",function(a){return e.deleteCollection(a)}),t.ALo(22,"async"),t.ALo(23,"async"),t.qZA(),t.TgZ(24,"div",13),t.ALo(25,"async"),t.TgZ(26,"vdr-collection-contents",14),t.ALo(27,"async"),t.YNc(28,Zo,6,9,"ng-template"),t.qZA()()()),2&n&&(t.xp6(3),t.Q6J("formControl",e.filterTermControl)("placeholder",t.lcZ(4,18,"catalog.filter-by-name")),t.xp6(4),t.Q6J("ngModel",e.expandAll),t.xp6(2),t.hij(" ",t.lcZ(10,20,"catalog.expand-all-collections")," "),t.xp6(2),t.Q6J("availableLanguageCodes",t.lcZ(12,22,e.availableLanguages$))("currentLanguageCode",t.lcZ(13,24,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(34,To)),t.xp6(2),t.Q6J("checked",e.selectionManager.areAllCurrentItemsSelected()),t.xp6(1),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(2),t.Q6J("collections",t.lcZ(22,26,e.items$))("activeCollectionId",t.lcZ(23,28,e.activeCollectionId$))("expandAll",e.expandAll)("expandedIds",e.expandedIds)("selectionManager",e.selectionManager),t.xp6(3),t.ekj("expanded",t.lcZ(25,30,e.activeCollectionId$)),t.xp6(2),t.Q6J("collectionId",t.lcZ(27,32,e.activeCollectionId$)))},directives:[P.Kk,P.BN,V.y,p.Fj,p.JJ,p.oH,h.PEh,p.Wl,h.KKC,p.On,h.MgK,ct.S,P.mz,tt.W,D.H,A.yS,h.qvL,ie.c,ht,nt],pipes:[O.X$,x.Ov],styles:["[_nghost-%COMP%]{height:100%;display:flex;flex-direction:column}.bulk-select-controls[_ngcontent-%COMP%]{min-height:36px;padding-left:14px;display:flex;align-items:center;border-bottom:1px solid var(--color-component-border-200)}.expand-all-toggle[_ngcontent-%COMP%]{display:block}.collection-wrapper[_ngcontent-%COMP%]{display:flex;height:calc(100% - 50px)}.collection-wrapper[_ngcontent-%COMP%] vdr-collection-tree[_ngcontent-%COMP%]{flex:1;height:100%;overflow:auto}.collection-wrapper[_ngcontent-%COMP%] .collection-contents[_ngcontent-%COMP%]{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.collection-wrapper[_ngcontent-%COMP%] .collection-contents.expanded[_ngcontent-%COMP%]{width:30vw;visibility:visible;opacity:1;padding-left:12px}.collection-wrapper[_ngcontent-%COMP%] .collection-contents[_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin:0;background:none;border:none;cursor:pointer}.paging-controls[_ngcontent-%COMP%]{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}"],changeDetection:0});var R=g(234),Q=g(1640),Gt=g(73);function Ao(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw().create()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 yo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 Po(i,n){if(1&i&&t.YNc(0,yo,3,4,"button",7),2&i){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermission)}}function Fo(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function Oo(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.private"))}const Io=function(){return["facet","customFields"]};function Mo(i,n){if(1&i&&(t.TgZ(0,"section",22)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",23),t.ALo(5,"hasPermission"),t.qZA()),2&i){const e=t.oxw(2);t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get(t.DdM(8,Io)))("readonly",!t.lcZ(5,6,e.updatePermission))}}function ko(i,n){1&i&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.BQk()),2&i&&(t.xp6(2),t.Oqu(t.lcZ(3,1,"common.custom-fields")))}const Lo=function(i){return["values",i,"customFields"]};function Vo(i,n){if(1&i&&(t.TgZ(0,"td",40),t._UZ(1,"vdr-tabbed-custom-fields",41),t.ALo(2,"hasPermission"),t.qZA()),2&i){const e=t.oxw().index,o=t.oxw(4);t.xp6(1),t.Q6J("customFields",o.customValueFields)("compact",!0)("customFieldsFormGroup",o.detailForm.get(t.VKq(6,Lo,e)))("readonly",!t.lcZ(2,4,o.updatePermission))}}function wo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"tr",30)(1,"td",31),t._UZ(2,"vdr-entity-info",0),t.qZA(),t.TgZ(3,"td",31)(4,"input",32),t.NdJ("input",function(a){const s=t.CHM(e).index,d=t.oxw(3).ngIf;return t.oxw().updateValueCode(null==d.values[s]?null:d.values[s].code,a.target.value,s)}),t.ALo(5,"hasPermission"),t.qZA()(),t.TgZ(6,"td",31),t._UZ(7,"input",33),t.qZA(),t.YNc(8,Vo,3,8,"td",34),t.TgZ(9,"td",31)(10,"vdr-dropdown")(11,"button",35),t._uU(12),t.ALo(13,"translate"),t._UZ(14,"clr-icon",36),t.qZA(),t.TgZ(15,"vdr-dropdown-menu",37)(16,"button",38),t.NdJ("click",function(){const r=t.CHM(e).index,s=t.oxw(3).ngIf;return t.oxw().deleteFacetValue(null==s.values[r]?null:s.values[r].id,r)}),t.ALo(17,"hasPermission"),t._UZ(18,"clr-icon",39),t._uU(19),t.ALo(20,"translate"),t.qZA()()()()()}if(2&i){const e=n.$implicit,o=n.index,a=t.oxw(4);t.Q6J("formGroupName",o),t.xp6(2),t.Q6J("entity",e),t.xp6(2),t.Q6J("readonly",!t.lcZ(5,7,a.updatePermission)),t.xp6(4),t.Q6J("ngIf",a.customValueFields.length),t.xp6(4),t.hij(" ",t.lcZ(13,9,"common.actions")," "),t.xp6(4),t.Q6J("disabled",!t.lcZ(17,11,a.updatePermission)),t.xp6(3),t.hij(" ",t.lcZ(20,13,"common.delete")," ")}}function Jo(i,n){if(1&i&&(t.TgZ(0,"table",27)(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,ko,4,3,"ng-container",28),t._UZ(11,"th"),t.qZA()(),t.TgZ(12,"tbody"),t.YNc(13,wo,21,15,"tr",29),t.qZA()()),2&i){const e=t.oxw(3);t.xp6(5),t.Oqu(t.lcZ(6,4,"common.name")),t.xp6(3),t.Oqu(t.lcZ(9,6,"common.code")),t.xp6(2),t.Q6J("ngIf",e.customValueFields.length),t.xp6(3),t.Q6J("ngForOf",e.values)}}function Do(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",42),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).addFacetValue()}),t._UZ(1,"clr-icon",43),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&i&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facet-value")," "))}const Uo=function(){return["CreateCatalog","CreateFacet"]};function No(i,n){if(1&i&&(t.TgZ(0,"section",24)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.YNc(4,Jo,14,8,"table",25),t.TgZ(5,"div"),t.YNc(6,Do,4,3,"button",26),t.qZA()()),2&i){const e=t.oxw(2);t.xp6(2),t.Oqu(t.lcZ(3,3,"catalog.facet-values")),t.xp6(2),t.Q6J("ngIf",0<e.getValuesFormArray().length),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(5,Uo))}}function qo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"form",8)(1,"section",9)(2,"vdr-form-field",10),t.ALo(3,"translate"),t.TgZ(4,"clr-toggle-wrapper"),t._UZ(5,"input",11),t.ALo(6,"hasPermission"),t.TgZ(7,"label",12),t.YNc(8,Fo,3,3,"ng-container",13),t.YNc(9,Oo,2,3,"ng-template",null,14,t.W1O),t.qZA()()(),t.TgZ(11,"vdr-form-field",15),t.ALo(12,"translate"),t.TgZ(13,"input",16),t.NdJ("input",function(a){const s=t.CHM(e).ngIf;return t.oxw().updateCode(s.code,a.target.value)}),t.ALo(14,"hasPermission"),t.qZA()(),t.TgZ(15,"vdr-form-field",17),t.ALo(16,"translate"),t.ALo(17,"hasPermission"),t._UZ(18,"input",18),t.ALo(19,"hasPermission"),t.qZA(),t.YNc(20,Mo,6,9,"section",19),t._UZ(21,"vdr-custom-detail-component-host",20),t.qZA(),t.YNc(22,No,7,6,"section",21),t.ALo(23,"async"),t.qZA()}if(2&i){const e=t.MAs(10),o=t.oxw();t.Q6J("formGroup",o.detailForm),t.xp6(2),t.Q6J("label",t.lcZ(3,14,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(6,16,o.updatePermission)),t.xp6(3),t.Q6J("ngIf",o.detailForm.value.facet.visible)("ngIfElse",e),t.xp6(3),t.Q6J("label",t.lcZ(12,18,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(14,20,o.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(16,22,"common.code"))("readOnlyToggle",t.lcZ(17,24,o.updatePermission)),t.xp6(3),t.Q6J("readonly",!t.lcZ(19,26,o.updatePermission)),t.xp6(2),t.Q6J("ngIf",o.customFields.length),t.xp6(1),t.Q6J("entity$",o.entity$)("detailForm",o.detailForm),t.xp6(1),t.Q6J("ngIf",!t.lcZ(23,28,o.isNew$))}}class vt extends c.UT_{constructor(n,e,o,a,r,s,d,l){super(e,n,o,r),this.changeDetector=a,this.dataService=r,this.formBuilder=s,this.notificationService=d,this.modalService=l,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateFacet],this.customFields=this.getCustomFieldConfig("Facet"),this.customValueFields=this.getCustomFieldConfig("FacetValue"),this.detailForm=this.formBuilder.group({facet:this.formBuilder.group({code:["",p.kI.required],name:"",visible:!0,customFields:this.formBuilder.group(this.customFields.reduce((m,_)=>Object.assign(Object.assign({},m),{[_.name]:""}),{}))}),values:this.formBuilder.array([])})}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}updateCode(n,e){if(!n){const o=this.detailForm.get(["facet","code"]);o&&o.pristine&&o.setValue((0,et.U)(e,"-"))}}updateValueCode(n,e,o){if(!n){const a=this.detailForm.get(["values",o,"code"]);a&&a.pristine&&a.setValue((0,et.U)(e,"-"))}}customValueFieldIsSet(n,e){return!!this.detailForm.get(["values",n,"customFields",e])}getValuesFormArray(){return this.detailForm.get("values")}addFacetValue(){const n=this.detailForm.get("values");if(n){const e=this.formBuilder.group({id:"",name:["",p.kI.required],code:""}),o={name:"",code:""};if(this.customValueFields.length){const a=new p.cw({});o.customFields={};for(const r of this.customValueFields){const s=r.name;a.addControl(s,new p.NI)}e.addControl("customFields",a)}n.insert(n.length,e),this.values.push(o)}}create(){const n=this.detailForm.get("facet");!n||!n.dirty||(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([e,o])=>{const a=this.getUpdatedFacet(e,n,o);return this.dataService.facet.createFacet(a)}),(0,b.w)(e=>this.dataService.facet.getAllFacets().single$.pipe((0,Gt.h)(e)))).subscribe(e=>{this.notificationService.success((0,u.J)("common.notify-create-success"),{entity:"Facet"}),this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",e.createFacet.id],{relativeTo:this.route})},e=>{this.notificationService.error((0,u.J)("common.notify-create-error"),{entity:"Facet"})})}save(){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([n,e])=>{const o=this.detailForm.get("facet"),a=[];if(o&&o.dirty){const s=this.getUpdatedFacet(n,o,e);s&&a.push(this.dataService.facet.updateFacet(s))}const r=this.detailForm.get("values");if(r&&r.dirty){const s=this.getCreatedFacetValues(n,r,e);s.length&&a.push(this.dataService.facet.createFacetValues(s).pipe((0,b.w)(()=>this.dataService.facet.getFacet(this.id).single$)));const d=this.getUpdatedFacetValues(n,r,e);d.length&&a.push(this.dataService.facet.updateFacetValues(d))}return(0,Q.D)(a)}),(0,b.w)(()=>this.dataService.facet.getAllFacets().single$)).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Facet"})},n=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"Facet"})})}deleteFacetValue(n,e){if(!n){const o=this.detailForm.get("values");return o&&o.removeAt(e),void this.values.splice(e,1)}this.showModalAndDelete(n).pipe((0,b.w)(o=>o.result===c.PcR.DELETED?[!0]:this.showModalAndDelete(n,o.message||"").pipe((0,C.U)(a=>a.result===c.PcR.DELETED))),(0,b.w)(o=>o?this.dataService.facet.getFacet(this.id).single$:[])).subscribe(()=>{const o=this.detailForm.get("values");o&&o.removeAt(e),this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"FacetValue"})},o=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"FacetValue"})})}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-facet-value"),body:e,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.facet.deleteFacetValues([n],!!e):M.E),(0,C.U)(o=>o.deleteFacetValues[0]))}setFormValues(n,e){var o;const a=(0,c.ZIM)(n,e);if(this.detailForm.patchValue({facet:{code:n.code,visible:!n.isPrivate,name:null!==(o=null==a?void 0:a.name)&&void 0!==o?o:""}}),this.customFields.length){this.detailForm.get(["facet","customFields"]);this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["facet","customFields"]),n,a)}const r=this.detailForm.get("values");this.values=[...n.values],n.values.forEach(s=>{var d,l,m,_,f;const v=(0,c.ZIM)(s,e),Z={id:s.id,code:s.code,name:v?v.name:""};let T=r.controls.find(y=>y.value.id===s.id);if(T?(null===(d=T.get("id"))||void 0===d||d.setValue(Z.id),null===(l=T.get("code"))||void 0===l||l.setValue(Z.code),null===(m=T.get("name"))||void 0===m||m.setValue(Z.name)):(T=this.formBuilder.group(Z),r.push(T)),this.customValueFields.length){let y=T.get(["customFields"]);if(y||(y=new p.cw({}),T.addControl("customFields",y)),y)for(const L of this.customValueFields){const q=L.name,Wt="localeString"===L.type?null===(f=null===(_=v)||void 0===_?void 0:_.customFields)||void 0===f?void 0:f[q]:s.customFields[q],Jt=y.get(q);Jt?Jt.setValue(Wt):y.addControl(q,new p.NI(Wt))}}})}getUpdatedFacet(n,e,o){const a=(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||""}});return a.isPrivate=!e.value.visible,a}getCreatedFacetValues(n,e,o){return e.controls.filter(a=>!a.value.id).map(a=>a.value).map(a=>(0,c.iSy)({translatable:Object.assign(Object.assign({},a),{translations:[]}),updatedFields:a,customFieldConfig:this.customValueFields,languageCode:o,defaultTranslation:{languageCode:o,name:""}})).map(a=>Object.assign({facetId:n.id},a))}getUpdatedFacetValues(n,e,o){const a=n.values.filter((s,d)=>{const l=e.get(d.toString());return l&&l.dirty&&l.value.id}),r=e.controls.filter(s=>s.dirty&&s.value.id).map(s=>s.value);if(a.length!==r.length)throw new Error((0,u.J)("error.facet-value-form-values-do-not-match"));return a.map((s,d)=>(0,c.iSy)({translatable:s,updatedFields:r[d],customFieldConfig:this.customValueFields,languageCode:o,defaultTranslation:{languageCode:o,name:""}})).filter(R.notNullOrUndefined)}}vt.\u0275fac=function(n){return new(n||vt)(t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(t.sBO),t.Y36(c.DoR),t.Y36(p.qu),t.Y36(c.gqp),t.Y36(c.Z7U))},vt.\u0275cmp=t.Xpm({type:vt,selectors:[["vdr-facet-detail"]],features:[t.qOj],decls:16,vars:19,consts:[[3,"entity"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],["class","form",3,"formGroup",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[1,"form",3,"formGroup"],["formGroupName","facet",1,"form-block"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","code",3,"label","readOnlyToggle"],["id","code","type","text","formControlName","code",3,"readonly"],["formGroupName","customFields",4,"ngIf"],["locationId","facet-detail",3,"entity$","detailForm"],["class","form-block",4,"ngIf"],["formGroupName","customFields"],["entityName","Facet",3,"customFields","customFieldsFormGroup","readonly"],[1,"form-block"],["class","facet-values-list table","formArrayName","values",4,"ngIf"],["type","button","class","btn btn-secondary",3,"click",4,"vdrIfPermissions"],["formArrayName","values",1,"facet-values-list","table"],[4,"ngIf"],["class","facet-value",3,"formGroupName",4,"ngFor","ngForOf"],[1,"facet-value",3,"formGroupName"],[1,"align-middle"],["type","text","formControlName","name",3,"readonly","input"],["type","text","formControlName","code","readonly",""],["class","",4,"ngIf"],["type","button","vdrDropdownTrigger","",1,"btn","btn-link","btn-sm"],["shape","caret down"],["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,"btn","btn-secondary",3,"click"],["shape","add"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left"),t._UZ(2,"vdr-entity-info",0),t.ALo(3,"async"),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,Ao,3,4,"button",3),t.ALo(11,"async"),t.YNc(12,Po,1,1,"ng-template",null,4,t.W1O),t.qZA()(),t.YNc(14,qo,24,30,"form",5),t.ALo(15,"async")),2&n){const o=t.MAs(13);t.xp6(2),t.Q6J("entity",t.lcZ(3,7,e.entity$)),t.xp6(2),t.Q6J("disabled",t.lcZ(5,9,e.isNew$))("availableLanguageCodes",t.lcZ(6,11,e.availableLanguages$))("currentLanguageCode",t.lcZ(7,13,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(11,15,e.isNew$))("ngIfElse",o),t.xp6(4),t.Q6J("ngIf",t.lcZ(15,17,e.entity$))}},directives:[P.Kk,P.BN,Dt.V,ct.S,P.mz,tt.W,x.O5,D.H,p._Y,p.JL,p.sg,p.x0,Et.h,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.u,Ht.x,h.MgK,p.Fj,Yt.y,te.C,p.CE,x.sg,lt.J,dt.U,h.qvL,pt.N,ut.H],pipes:[x.Ov,O.X$,N.j],styles:[".visible-toggle[_ngcontent-%COMP%]{margin-top:-3px!important}"],changeDetection:0});var So=g(8165),fe=g(901),Rt=g(6074);const $o=function(){return["./create"]};function Qo(i,n){1&i&&(t.TgZ(0,"a",8),t._UZ(1,"clr-icon",9),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,$o)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-facet")," "))}function Eo(i,n){if(1&i&&t._UZ(0,"vdr-facet-value-chip",22),2&i){const e=n.$implicit;t.Q6J("facetValue",e)("removable",!1)("displayFacetName",!1)}}function Yo(i,n){if(1&i&&(t.ynx(0),t._UZ(1,"clr-icon",9),t._uU(2),t.BQk()),2&i){const e=t.oxw(2).item,o=t.oxw();t.xp6(2),t.hij(" ",e.values.length-o.initialLimit," ")}}function Go(i,n){1&i&&t._UZ(0,"clr-icon",25)}function jo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",23),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item;return t.oxw().toggleDisplayLimit(a)}),t.YNc(1,Yo,3,1,"ng-container",13),t.YNc(2,Go,1,0,"ng-template",null,24,t.W1O),t.qZA()}if(2&i){const e=t.MAs(3),o=t.oxw().item,a=t.oxw();t.xp6(1),t.Q6J("ngIf",(a.displayLimit[o.id]||0)<o.values.length)("ngIfElse",e)}}function Bo(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function Ho(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.private"))}const Ro=function(i){return["./",i]},zo=function(){return["DeleteCatalog","DeleteFacet"]};function Ko(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"td",10),t._uU(1),t.qZA(),t.TgZ(2,"td",10),t._uU(3),t.qZA(),t.TgZ(4,"td",10),t.YNc(5,Eo,1,3,"vdr-facet-value-chip",11),t.ALo(6,"slice"),t.YNc(7,jo,4,2,"button",12),t.qZA(),t.TgZ(8,"td",10)(9,"vdr-chip"),t.YNc(10,Bo,3,3,"ng-container",13),t.YNc(11,Ho,2,3,"ng-template",null,14,t.W1O),t.qZA()(),t.TgZ(13,"td",15),t._UZ(14,"vdr-table-row-action",16),t.ALo(15,"translate"),t.qZA(),t.TgZ(16,"td",15)(17,"vdr-dropdown")(18,"button",17),t._uU(19),t.ALo(20,"translate"),t._UZ(21,"clr-icon",18),t.qZA(),t.TgZ(22,"vdr-dropdown-menu",19)(23,"button",20),t.NdJ("click",function(){const r=t.CHM(e).item;return t.oxw().deleteFacet(r.id)}),t.ALo(24,"hasPermission"),t._UZ(25,"clr-icon",21),t._uU(26),t.ALo(27,"translate"),t.qZA()()()()}if(2&i){const e=n.item,o=t.MAs(12),a=t.oxw();t.ekj("private",e.isPrivate),t.xp6(1),t.Oqu(e.code),t.xp6(1),t.ekj("private",e.isPrivate),t.xp6(1),t.Oqu(e.name),t.xp6(1),t.ekj("private",e.isPrivate),t.xp6(1),t.Q6J("ngForOf",t.Dn7(6,23,e.values,0,a.displayLimit[e.id]||3)),t.xp6(2),t.Q6J("ngIf",e.values.length>a.initialLimit),t.xp6(1),t.ekj("private",e.isPrivate),t.xp6(2),t.Q6J("ngIf",!e.isPrivate)("ngIfElse",o),t.xp6(3),t.ekj("private",e.isPrivate),t.xp6(1),t.Q6J("label",t.lcZ(15,27,"common.edit"))("linkTo",t.VKq(35,Ro,e.id)),t.xp6(2),t.ekj("private",e.isPrivate),t.xp6(3),t.hij(" ",t.lcZ(20,29,"common.actions")," "),t.xp6(4),t.Q6J("disabled",!t.lcZ(24,31,t.DdM(37,zo))),t.xp6(3),t.hij(" ",t.lcZ(27,33,"common.delete")," ")}}const Wo=function(){return["CreateCatalog","CreateFacet"]};class Ct extends c.t7C{constructor(n,e,o,a,r,s){super(r,s),this.dataService=n,this.modalService=e,this.notificationService=o,this.serverConfigService=a,this.filterTermControl=new p.NI(""),this.initialLimit=3,this.displayLimit={},super.setQueryFn((...d)=>this.dataService.facet.getFacets(...d).refetchOnChannelChange(),d=>d.facets,(d,l)=>({options:{skip:d,take:l,filter:{name:{contains:this.filterTermControl.value}},sort:{createdAt:So.As.DESC}}})),this.selectionManager=new c.ZE0({multiSelect:!0,itemsAreEqual:(d,l)=>d.id===l.id,additiveMode:!0})}ngOnInit(){super.ngOnInit(),this.availableLanguages$=this.serverConfigService.getAvailableLanguages(),this.contentLanguage$=this.dataService.client.uiState().mapStream(({uiState:n})=>n.contentLanguage).pipe((0,$.b)(()=>this.refresh())),this.filterTermControl.valueChanges.pipe((0,Qt.h)(n=>2<=n.length||0===n.length),(0,E.b)(250),(0,S.R)(this.destroy$)).subscribe(()=>this.refresh())}toggleDisplayLimit(n){this.displayLimit[n.id]===n.values.length?this.displayLimit[n.id]=this.initialLimit:this.displayLimit[n.id]=n.values.length}deleteFacet(n){this.showModalAndDelete(n).pipe((0,b.w)(e=>e.result===c.PcR.DELETED?[!0]:this.showModalAndDelete(n,e.message||"").pipe((0,C.U)(o=>o.result===c.PcR.DELETED))),(0,b.w)(()=>this.dataService.facet.getAllFacets().single$)).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"FacetValue"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"FacetValue"})})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-facet"),body:e,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:e?(0,u.J)("common.force-delete"):(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.facet.deleteFacet(n,!!e):M.E),(0,C.U)(o=>o.deleteFacet))}}Ct.\u0275fac=function(n){return new(n||Ct)(t.Y36(c.DoR),t.Y36(c.Z7U),t.Y36(c.gqp),t.Y36(c.iHG),t.Y36(A.F0),t.Y36(A.gz))},Ct.\u0275cmp=t.Xpm({type:Ct,selectors:[["vdr-facet-list"]],features:[t.qOj],decls:33,vars:40,consts:[[1,""],["type","text","name","searchTerm",1,"clr-input","search-input",3,"formControl","placeholder"],[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"items","itemsPerPage","totalItems","currentPage","selectionManager","pageChange","itemsPerPageChange"],["locationId","facet-list",3,"hostComponent","selectionManager"],[3,"expand"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"left","align-middle"],[3,"facetValue","removable","displayFacetName",4,"ngFor","ngForOf"],["class","btn btn-sm btn-secondary btn-icon",3,"click",4,"ngIf"],[4,"ngIf","ngIfElse"],["private",""],[1,"right","align-middle"],["iconShape","edit",3,"label","linkTo"],["type","button","vdrDropdownTrigger","",1,"btn","btn-link","btn-sm"],["shape","caret down"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",1,"delete-button",3,"disabled","click"],["shape","trash",1,"is-danger"],[3,"facetValue","removable","displayFacetName"],[1,"btn","btn-sm","btn-secondary","btn-icon",3,"click"],["collapse",""],["shape","minus"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"div",0),t._UZ(3,"input",1),t.ALo(4,"translate"),t.TgZ(5,"div")(6,"vdr-language-selector",2),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(7,"async"),t.ALo(8,"async"),t.qZA()()()(),t.TgZ(9,"vdr-ab-right"),t._UZ(10,"vdr-action-bar-items",3),t.YNc(11,Qo,4,5,"a",4),t.qZA()(),t.TgZ(12,"vdr-data-table",5),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(13,"async"),t.ALo(14,"async"),t.ALo(15,"async"),t.ALo(16,"async"),t._UZ(17,"vdr-bulk-action-menu",6),t.TgZ(18,"vdr-dt-column"),t._uU(19),t.ALo(20,"translate"),t.qZA(),t.TgZ(21,"vdr-dt-column"),t._uU(22),t.ALo(23,"translate"),t.qZA(),t.TgZ(24,"vdr-dt-column",7),t._uU(25),t.ALo(26,"translate"),t.qZA(),t.TgZ(27,"vdr-dt-column"),t._uU(28),t.ALo(29,"translate"),t.qZA(),t._UZ(30,"vdr-dt-column")(31,"vdr-dt-column"),t.YNc(32,Ko,28,38,"ng-template"),t.qZA()),2&n&&(t.xp6(3),t.Q6J("formControl",e.filterTermControl)("placeholder",t.lcZ(4,17,"catalog.filter-by-name")),t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(7,19,e.availableLanguages$))("currentLanguageCode",t.lcZ(8,21,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(39,Wo)),t.xp6(1),t.Q6J("items",t.lcZ(13,23,e.items$))("itemsPerPage",t.lcZ(14,25,e.itemsPerPage$))("totalItems",t.lcZ(15,27,e.totalItems$))("currentPage",t.lcZ(16,29,e.currentPage$))("selectionManager",e.selectionManager),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(2),t.Oqu(t.lcZ(20,31,"common.code")),t.xp6(3),t.Oqu(t.lcZ(23,33,"common.name")),t.xp6(2),t.Q6J("expand",!0),t.xp6(1),t.Oqu(t.lcZ(26,35,"catalog.values")),t.xp6(3),t.Oqu(t.lcZ(29,37,"catalog.visibility")))},directives:[P.Kk,P.BN,V.y,p.Fj,p.JJ,p.oH,ct.S,P.mz,tt.W,D.H,A.yS,h.qvL,ne.Q,ie.c,fe.E,x.sg,Rt.q,x.O5,Ut.Y,oe.v,lt.J,dt.U,pt.N,ut.H],pipes:[O.X$,x.Ov,x.OU,N.j],styles:["td.private[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}"]});var ve=g(5454),Xo=g(9319),jt=g(7400),ti=g(1944),Ce=g(3945),ei=g(4987),ni=g(9635);var xe=g(7260),be=g(2971);var Nt=g(309),Ze=g(7206),qt=g(8318);function ai(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.add-facets"))}function ri(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().selectValues()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&i){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 ot{constructor(n){this.changeDetector=n,this.selectedValues=[]}ngAfterViewInit(){setTimeout(()=>this.selector.focus(),0)}selectValues(){this.resolveWith(this.selectedValues)}cancel(){this.resolveWith()}}ot.\u0275fac=function(n){return new(n||ot)(t.Y36(t.sBO))},ot.\u0275cmp=t.Xpm({type:ot,selectors:[["vdr-apply-facet-dialog"]],viewQuery:function(n,e){if(1&n&&t.Gf(c.$MF,5),2&n){let o;t.iGM(o=t.CRH())&&(e.selector=o.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,ai,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,ri,6,7,"ng-template",2))},directives:[Nt.q,Ze.$,qt.n],pipes:[O.X$],styles:[""],changeDetection:0});var si=g(4929),Te=g(5646),ae=g(8766),re=g(4187);function ci(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.assign-variants-to-channel")))}function li(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.assign-products-to-channel"))}function di(i,n){if(1&i&&(t.YNc(0,ci,3,3,"ng-container",12),t.YNc(1,li,2,3,"ng-template",null,13,t.W1O)),2&i){const e=t.MAs(2),o=t.oxw();t.Q6J("ngIf",o.isProductVariantMode)("ngIfElse",e)}}const Ae=function(i){return{channel:i}};function pi(i,n){if(1&i&&(t._uU(0),t.ALo(1,"translate")),2&i){const e=t.oxw();t.hij(" ",t.xi3(1,1,"catalog.price-in-channel",t.VKq(4,Ae,null==e.selectedChannel?null:e.selectedChannel.code))," ")}}function ui(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.no-channel-selected")," ")}function mi(i,n){if(1&i&&(t._uU(0),t.ALo(1,"localeCurrency")),2&i){const e=t.oxw().$implicit,o=t.oxw();t.hij(" ",t.xi3(1,1,e.pricePreview,null==o.selectedChannel?null:o.selectedChannel.currencyCode)," ")}}function gi(i,n){1&i&&t._uU(0," - ")}function _i(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.ALo(5,"localeCurrency"),t.qZA(),t.TgZ(6,"td"),t.YNc(7,mi,2,4,"ng-template",8),t.YNc(8,gi,1,0,"ng-template",null,14,t.W1O),t.qZA()()),2&i){const e=n.$implicit,o=t.MAs(9),a=t.oxw();t.xp6(2),t.Oqu(e.name),t.xp6(2),t.Oqu(t.xi3(5,4,e.price,null==a.currentChannel?null:a.currentChannel.currencyCode)),t.xp6(3),t.Q6J("ngIf",a.selectedChannel)("ngIfElse",o)}}const hi=function(i){return{channelCode:i}};function fi(i,n){if(1&i&&(t._uU(0),t.ALo(1,"translate")),2&i){const e=t.oxw(2);t.hij(" ",t.xi3(1,1,"catalog.assign-to-named-channel",t.VKq(4,hi,null==e.selectedChannel?null:e.selectedChannel.code))," ")}}function vi(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.no-channel-selected")," ")}function Ci(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",16),t.NdJ("click",function(){return t.CHM(e),t.oxw().assign()}),t.YNc(4,fi,2,6,"ng-template",8),t.YNc(5,vi,2,3,"ng-template",null,9,t.W1O),t.qZA()}if(2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,4,"common.cancel")),t.xp6(2),t.Q6J("disabled",!o.selectedChannel),t.xp6(1),t.Q6J("ngIf",o.selectedChannel)("ngIfElse",e)}}class z{constructor(n,e){this.dataService=n,this.notificationService=e,this.priceFactorControl=new p.NI(1),this.selectedChannelIdControl=new p.NI}get isProductVariantMode(){return null!=this.productVariantIds}ngOnInit(){const n=this.dataService.client.userStatus().mapSingle(({userStatus:o})=>o.activeChannelId),e=this.dataService.settings.getChannels().mapSingle(o=>o.channels);(0,I.a)(n,e).subscribe(([o,a])=>{this.currentChannel=a.find(r=>r.id===o),this.availableChannels=a}),this.selectedChannelIdControl.valueChanges.subscribe(o=>{this.selectChannel(o)}),this.variantsPreview$=(0,I.a)((0,jt.D)(this.getTopVariants(10)),this.priceFactorControl.valueChanges.pipe((0,mt.O)(1))).pipe((0,C.U)(([o,a])=>o.map(r=>({id:r.id,name:r.name,price:r.price,pricePreview:r.price*+a}))))}selectChannel(n){this.selectedChannel=this.availableChannels.find(e=>e.id===n[0])}assign(){const n=this.selectedChannel;n&&(this.isProductVariantMode?this.productVariantIds&&this.dataService.product.assignVariantsToChannel({channelId:n.id,productVariantIds:this.productVariantIds,priceFactor:+this.priceFactorControl.value}).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.assign-variant-to-channel-success"),{channel:n.code,count:this.productVariantIds.length}),this.resolveWith(!0)}):this.dataService.product.assignProductsToChannel({channelId:n.id,productIds:this.productIds,priceFactor:+this.priceFactorControl.value}).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.assign-product-to-channel-success"),{channel:n.code,count:this.productIds.length}),this.resolveWith(!0)}))}cancel(){this.resolveWith()}getTopVariants(n){return(0,si.mG)(this,void 0,void 0,function*(){const e=[];for(let o=0;o<this.productIds.length&&e.length<n;o++){const a=yield this.dataService.product.getProduct(this.productIds[o],{take:this.isProductVariantMode?void 0:n}).mapSingle(({product:r})=>(r?r.variantList.items:[]).filter(d=>{var l;return!this.isProductVariantMode||(null===(l=this.productVariantIds)||void 0===l?void 0:l.includes(d.id))})).toPromise();e.push(...a||[])}return e.slice(0,n)})}}z.\u0275fac=function(n){return new(n||z)(t.Y36(c.DoR),t.Y36(c.gqp))},z.\u0275cmp=t.Xpm({type:z,selectors:[["vdr-assign-products-to-channel-dialog"]],decls:36,vars:32,consts:[["vdrDialogTitle",""],[1,"flex"],["clrInput","",3,"multiple","includeDefaultChannel","disableChannelIds","formControl"],[1,"flex-spacer"],["clrInput","","type","number","min","0","max","99999",3,"formControl"],[1,"channel-price-preview"],[1,"clr-control-label"],[1,"table"],[3,"ngIf","ngIfElse"],["noSelection",""],[4,"ngFor","ngForOf"],["vdrDialogButtons",""],[4,"ngIf","ngIfElse"],["productModeTitle",""],["noChannelSelected",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){if(1&n&&(t.YNc(0,di,3,2,"ng-template",0),t.TgZ(1,"div",1)(2,"clr-input-container")(3,"label"),t._uU(4),t.ALo(5,"translate"),t.qZA(),t._UZ(6,"vdr-channel-assignment-control",2),t.qZA(),t._UZ(7,"div",3),t.TgZ(8,"clr-input-container")(9,"label"),t._uU(10),t.ALo(11,"translate"),t.qZA(),t._UZ(12,"input",4),t.qZA()(),t.TgZ(13,"div",5)(14,"label",6),t._uU(15),t.ALo(16,"translate"),t.qZA(),t.TgZ(17,"table",7)(18,"thead")(19,"tr")(20,"th"),t._uU(21),t.ALo(22,"translate"),t.qZA(),t.TgZ(23,"th"),t._uU(24),t.ALo(25,"translate"),t.ALo(26,"translate"),t.ALo(27,"channelCodeToLabel"),t.qZA(),t.TgZ(28,"th"),t.YNc(29,pi,2,6,"ng-template",8),t.YNc(30,ui,2,3,"ng-template",null,9,t.W1O),t.qZA()()(),t.TgZ(32,"tbody"),t.YNc(33,_i,10,7,"tr",10),t.ALo(34,"async"),t.qZA()()(),t.YNc(35,Ci,7,6,"ng-template",11)),2&n){const o=t.MAs(31);t.xp6(4),t.Oqu(t.lcZ(5,13,"common.channel")),t.xp6(2),t.Q6J("multiple",!1)("includeDefaultChannel",!1)("disableChannelIds",e.currentChannelIds)("formControl",e.selectedChannelIdControl),t.xp6(4),t.Oqu(t.lcZ(11,15,"catalog.price-conversion-factor")),t.xp6(2),t.Q6J("formControl",e.priceFactorControl),t.xp6(3),t.Oqu(t.lcZ(16,17,"catalog.channel-price-preview")),t.xp6(6),t.Oqu(t.lcZ(22,19,"common.name")),t.xp6(3),t.hij(" ",t.xi3(25,21,"catalog.price-in-channel",t.VKq(30,Ae,t.lcZ(26,24,t.lcZ(27,26,null==e.currentChannel?null:e.currentChannel.code))))," "),t.xp6(5),t.Q6J("ngIf",e.selectedChannel)("ngIfElse",o),t.xp6(4),t.Q6J("ngForOf",t.lcZ(34,28,e.variantsPreview$))}},directives:[Nt.q,x.O5,h.G55,h.MgK,Te.S,h.xRP,p.JJ,p.oH,V.y,p.qQ,p.Fd,p.wV,p.Fj,x.sg,qt.n],pipes:[O.X$,ae.E,x.Ov,re.k],styles:["vdr-channel-assignment-control[_ngcontent-%COMP%]{min-width:200px}.channel-price-preview[_ngcontent-%COMP%]{margin-top:24px}.channel-price-preview[_ngcontent-%COMP%] table.table[_ngcontent-%COMP%]{margin-top:6px}"],changeDetection:0});var xi=g(3336);function se(i,n,e){if(!i)return"";const o=i.lastIndexOf(n);if(-1===o)return i;return i.substr(0,o)+i.substr(o).replace(n,e)}class K{constructor(n){this.dataService=n}getTaxCategories(){return this.dataService.settings.getTaxCategories().mapSingle(n=>n.taxCategories).pipe((0,_t.d)(1))}createProductWithVariants(n,e,o){const a=this.dataService.product.createProduct(n),r=e.groups.filter(d=>0<d.values.length),s=this.createProductOptionGroups(r,o);return(0,Q.D)(a,s).pipe((0,F.z)(([{createProduct:d},l])=>(l.length?(0,Q.D)(l.map(_=>this.dataService.product.addOptionGroupToProduct({productId:d.id,optionGroupId:_.id}))):(0,k.of)([])).pipe((0,C.U)(()=>({createProduct:d,optionGroups:l})))),(0,F.z)(({createProduct:d,optionGroups:l})=>{const m=e.variants.map(f=>{const v=l.length?f.optionValues.map((Z,T)=>{const y=l[T].options.find(L=>L.name===Z);if(!y)throw new Error(`Could not find a matching ProductOption "${Z}" when creating variant`);return y.id}):[];return Object.assign(Object.assign({},f),{optionIds:v})}),_=l.map(f=>f.options).reduce((f,v)=>[...f,...v],[]);return this.createProductVariants(d,m,_,o)}))}createProductOptionGroups(n,e){return n.length?(0,Q.D)(n.map(o=>this.dataService.product.createProductOptionGroups({code:(0,et.U)(o.name,"-"),translations:[{languageCode:e,name:o.name}],options:o.values.map(a=>({code:(0,et.U)(a,"-"),translations:[{languageCode:e,name:a}]}))}).pipe((0,C.U)(a=>a.createProductOptionGroup)))):(0,k.of)([])}createProductVariants(n,e,o,a){const r=e.map(s=>{const d=o.length?`${n.name} ${s.optionIds.map(l=>o.find(m=>m.id===l)).filter(R.notNullOrUndefined).map(l=>l.name).join(" ")}`:n.name;return{productId:n.id,price:s.price,sku:s.sku,stockOnHand:s.stock,translations:[{languageCode:a,name:d}],optionIds:s.optionIds}});return this.dataService.product.createProductVariants(r).pipe((0,C.U)(({createProductVariants:s})=>({createProductVariants:s,productId:n.id})))}updateProduct(n){const{product:e,languageCode:o,autoUpdate:a,productInput:r,variantsInput:s}=n,d=[],l=s||[];return(a?this.dataService.product.getProductVariants({},e.id).mapSingle(({productVariants:_})=>_.items):(0,k.of)([])).pipe((0,F.z)(_=>{var f,v,Z,T;if(r){d.push(this.dataService.product.updateProduct(r));const y=null!==(v=null===(f=(0,c.ZIM)(e,o))||void 0===f?void 0:f.name)&&void 0!==v?v:"",L=null===(Z=(0,c.ZIM)(r,o))||void 0===Z?void 0:Z.name;if(L&&y!==L&&a)for(const q of _){const Wt=(null===(T=(0,c.ZIM)(q,o))||void 0===T?void 0:T.name)||"";let Jt;const tn=l.find(le=>le.id===q.id);tn?Jt=tn:(Jt={id:q.id,translations:[{languageCode:o,name:Wt}]},l.push(Jt));const Bt=(0,c.ZIM)(Jt,o);Bt&&(Bt.name?Bt.name=se(Bt.name,y,L):Bt.name=[L,...q.options.map(le=>le.name)].join(" "))}}return l.length&&d.push(this.dataService.product.updateProductVariants(l)),(0,Q.D)(d)}))}updateProductOption(n,e,o){return(n.autoUpdate?this.dataService.product.getProductVariants({},e.id).mapSingle(({productVariants:r})=>r.items):(0,k.of)([])).pipe((0,F.z)(r=>{var s,d,l;let m=(0,k.of)([]);if(n.autoUpdate){let _;const f=null===(s=(0,c.ZIM)(n,o))||void 0===s?void 0:s.name;f||(m=(0,k.of)([]));const v=[];for(const Z of r)if(Z.options.map(T=>T.id).includes(n.id)){_||(_=null===(d=(0,c.ZIM)(Z.options.find(y=>y.id===n.id),o))||void 0===d?void 0:d.name);const T=(null===(l=(0,c.ZIM)(Z,o))||void 0===l?void 0:l.name)||"";_&&f&&T.includes(_)&&v.push({id:Z.id,translations:[{languageCode:o,name:se(T,_,f)}]})}v.length&&(m=this.dataService.product.updateProductVariants(v))}return this.dataService.product.updateProductOption(n).pipe((0,F.z)(()=>m))}))}deleteProductVariant(n,e){return this.dataService.product.deleteProductVariant(n).pipe((0,b.w)(o=>o.deleteProductVariant.result===c.PcR.DELETED?this.dataService.product.getProduct(e).single$:function bi(i,n){const e=(0,be.m)(i)?i:()=>i,o=a=>a.error(e());return new xi.y(n?a=>n.schedule(o,0,a):o)}(o.deleteProductVariant.message)))}}K.\u0275fac=function(n){return new(n||K)(t.LFG(c.DoR))},K.\u0275prov=t.Yz7({token:K,factory:K.\u0275fac,providedIn:"root"});var ye=g(6444),Pe=g(4209),Zi=g(2930),Fe=g(1185);const Ti=["textArea"],Ai=["editNameInput"];function yi(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",6),t.NdJ("iconClick",function(){const r=t.CHM(e).$implicit;return t.oxw(2).removeOption(r)}),t.TgZ(1,"span",7)(2,"input",8,9),t.NdJ("blur",function(a){const s=t.CHM(e).index;return t.oxw(2).updateOption(s,a)})("click",function(a){return a.cancelBubble=!0}),t.qZA()(),t.TgZ(4,"span",10),t.NdJ("click",function(a){const s=t.CHM(e).index;return t.oxw(2).editName(s,a)}),t._uU(5),t.qZA()()}if(2&i){const e=n.$implicit,o=n.last,a=n.index,r=t.oxw(2);t.ekj("selected",o&&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 Pi(i,n){if(1&i&&(t.TgZ(0,"div",4),t.YNc(1,yi,6,12,"vdr-chip",5),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.optionValues)}}const Oe={provide:p.JU,useExisting:(0,t.Gpc)(()=>W),multi:!0};class W{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}get optionValues(){var n,e;return null!==(e=null!==(n=this.formValue)&&void 0!==n?n:this.options)&&void 0!==e?e:[]}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){var o;const a=this.optionValues[n];if(!a.locked&&!a.id){e.cancelBubble=!0,this.editingIndex=n;const r=null===(o=this.nameInputs.get(n))||void 0===o?void 0:o.nativeElement;setTimeout(()=>null==r?void 0:r.focus())}}updateOption(n,e){const o=this.optionValues[n],a=e.target.value;o&&(a&&(o.name=a,this.edit.emit({index:n,option:o})),this.editingIndex=-1)}removeOption(n){var e;n.locked||(this.formValue?(this.formValue=null===(e=this.formValue)||void 0===e?void 0:e.filter(o=>o.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=>{var o;const a=null!==(o=this.options)&&void 0!==o?o:this.formValue;return!(null==a?void 0:a.find(r=>(null==r?void 0:r.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)}}}W.\u0275fac=function(n){return new(n||W)(t.Y36(t.sBO))},W.\u0275cmp=t.Xpm({type:W,selectors:[["vdr-option-value-input"]],viewQuery:function(n,e){if(1&n&&(t.Gf(Ti,7),t.Gf(Ai,5,t.SBq)),2&n){let o;t.iGM(o=t.CRH())&&(e.textArea=o.first),t.iGM(o=t.CRH())&&(e.nameInputs=o)}},inputs:{groupName:"groupName",options:"options",disabled:"disabled"},outputs:{add:"add",remove:"remove",edit:"edit"},features:[t._Bn([Oe])],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 o=t.EpF();t.TgZ(0,"div",0),t.NdJ("click",function(){return t.CHM(o),t.MAs(3).focus()}),t.YNc(1,Pi,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))},directives:[x.O5,x.sg,Ut.Y,V.y,p.Fj,p.JJ,p.On],styles:[".input-wrapper[_ngcontent-%COMP%]{background-color:#fff;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}.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 zt=g(7283);const Fi=["optionGroupName"];function Oi(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",7)(1,"div",8)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.TgZ(5,"input",9,10),t.NdJ("ngModelChange",function(a){return t.CHM(e).$implicit.name=a})("keydown.enter",function(a){t.CHM(e);const r=t.MAs(12);return t.oxw().handleEnter(a,r)}),t.qZA()(),t.TgZ(7,"div",11)(8,"label"),t._uU(9),t.ALo(10,"translate"),t.qZA(),t.TgZ(11,"vdr-option-value-input",12,13),t.NdJ("ngModelChange",function(a){return t.CHM(e).$implicit.values=a})("ngModelChange",function(){return t.CHM(e),t.oxw().generateVariants()})("edit",function(){return t.CHM(e),t.oxw().generateVariants()}),t.qZA()(),t.TgZ(13,"div",14)(14,"button",15),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().removeOption(r.name)}),t.ALo(15,"translate"),t._UZ(16,"clr-icon",16),t.qZA()()()}if(2&i){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 Ii(i,n){1&i&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.create")))}function Mi(i,n){1&i&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.variant")))}function ki(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"td")(1,"input",20),t.NdJ("change",function(){return t.CHM(e),t.oxw(2).onFormChange()})("ngModelChange",function(a){t.CHM(e);const r=t.oxw().$implicit;return t.oxw().variantFormValues[r.id].enabled=a}),t.qZA()()}if(2&i){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngModel",o.variantFormValues[e.id].enabled)}}function Li(i,n){if(1&i&&(t.TgZ(0,"td"),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.values.join(" ")," ")}}function Vi(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"tr"),t.YNc(1,ki,2,1,"td",5),t.YNc(2,Li,2,1,"td",5),t.TgZ(3,"td")(4,"clr-input-container")(5,"input",17),t.NdJ("change",function(){return t.CHM(e),t.oxw().onFormChange()})("ngModelChange",function(a){const s=t.CHM(e).$implicit;return t.oxw().variantFormValues[s.id].sku=a}),t.ALo(6,"translate"),t.qZA()()(),t.TgZ(7,"td")(8,"clr-input-container")(9,"vdr-currency-input",18),t.NdJ("ngModelChange",function(a){const s=t.CHM(e).$implicit;return t.oxw().variantFormValues[s.id].price=a})("ngModelChange",function(){return t.CHM(e),t.oxw().onFormChange()}),t.qZA()()(),t.TgZ(10,"td")(11,"clr-input-container")(12,"input",19),t.NdJ("ngModelChange",function(a){const s=t.CHM(e).$implicit;return t.oxw().variantFormValues[s.id].stock=a})("change",function(){return t.CHM(e),t.oxw().onFormChange()}),t.qZA()()()()}if(2&i){const e=n.$implicit,o=t.oxw();t.ekj("disabled",!o.variantFormValues[e.id].enabled),t.xp6(1),t.Q6J("ngIf",1<o.variants.length),t.xp6(1),t.Q6J("ngIf",1<o.variants.length),t.xp6(3),t.Q6J("ngModel",o.variantFormValues[e.id].sku)("placeholder",t.lcZ(6,9,"catalog.sku")),t.xp6(4),t.Q6J("ngModel",o.variantFormValues[e.id].price)("currencyCode",o.currencyCode),t.xp6(3),t.Q6J("ngModel",o.variantFormValues[e.id].stock)}}const ce="__DEFAULT_VARIANT__";class xt{constructor(n){this.dataService=n,this.variantsChange=new t.vpe,this.optionGroups=[],this.variantFormValues={}}ngOnInit(){this.dataService.settings.getActiveChannel().single$.subscribe(n=>{this.currencyCode=n.activeChannel.currencyCode}),this.generateVariants()}addOption(){this.optionGroups.push({name:"",values:[]});const n=this.optionGroups.length-1;setTimeout(()=>{var e;const o=null===(e=this.groupNameInputs.get(n))||void 0===e?void 0:e.nativeElement;null==o||o.focus()})}removeOption(n){this.optionGroups=this.optionGroups.filter(e=>e.name!==n),this.generateVariants()}generateVariants(){const e=this.optionGroups.reduce((o,a)=>o+a.values.length,0)?this.optionGroups.map(o=>o.values.map(a=>a.name)):[[ce]];this.variants=(0,R.generateAllCombinations)(e).map(o=>({id:o.join("|"),values:o})),this.variants.forEach(o=>{this.variantFormValues[o.id]||(this.variantFormValues[o.id]={optionValues:o.values,enabled:!0,price:this.copyFromDefault(o.id,"price",0),sku:this.copyFromDefault(o.id,"sku",""),stock:this.copyFromDefault(o.id,"stock",0)})}),this.onFormChange()}trackByFn(n,e){return e.values.join("|")}handleEnter(n,e){n.preventDefault(),n.stopPropagation(),e.focus()}onFormChange(){const n=this.variants.map(e=>this.variantFormValues[e.id]).filter(e=>e.enabled);this.variantsChange.emit({groups:this.optionGroups.map(e=>({name:e.name,values:e.values.map(o=>o.name)})),variants:n})}copyFromDefault(n,e,o){return n!==ce?this.variantFormValues[ce][e]:o}}xt.\u0275fac=function(n){return new(n||xt)(t.Y36(c.DoR))},xt.\u0275cmp=t.Xpm({type:xt,selectors:[["vdr-generate-product-variants"]],viewQuery:function(n,e){if(1&n&&t.Gf(Fi,5,t.SBq),2&n){let o;t.iGM(o=t.CRH())&&(e.groupNameInputs=o)}},outputs:{variantsChange:"variantsChange"},decls:21,vars:17,consts:[["class","option-groups",4,"ngFor","ngForOf"],[1,"btn","btn-primary-outline","btn-sm",3,"click"],["shape","plus"],[1,"variants-preview"],[1,"table"],[4,"ngIf"],[3,"disabled",4,"ngFor","ngForOf","ngForTrackBy"],[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,"btn","btn-icon","btn-warning-outline",3,"title","click"],["shape","trash"],["clrInput","","type","text",3,"ngModel","placeholder","change","ngModelChange"],["clrInput","",3,"ngModel","currencyCode","ngModelChange"],["clrInput","","type","number","min","0","step","1",3,"ngModel","ngModelChange","change"],["type","checkbox","clrCheckbox","",3,"ngModel","change","ngModelChange"]],template:function(n,e){1&n&&(t.YNc(0,Oi,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.TgZ(5,"div",3)(6,"table",4)(7,"thead")(8,"tr"),t.YNc(9,Ii,3,3,"th",5),t.YNc(10,Mi,3,3,"th",5),t.TgZ(11,"th"),t._uU(12),t.ALo(13,"translate"),t.qZA(),t.TgZ(14,"th"),t._uU(15),t.ALo(16,"translate"),t.qZA(),t.TgZ(17,"th"),t._uU(18),t.ALo(19,"translate"),t.qZA()()(),t.YNc(20,Vi,13,11,"tr",6),t.qZA()()),2&n&&(t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(4,9,"catalog.add-option"),"\n"),t.xp6(6),t.Q6J("ngIf",1<e.variants.length),t.xp6(1),t.Q6J("ngIf",1<e.variants.length),t.xp6(2),t.Oqu(t.lcZ(13,11,"catalog.sku")),t.xp6(3),t.Oqu(t.lcZ(16,13,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(19,15,"catalog.stock-on-hand")),t.xp6(2),t.Q6J("ngForOf",e.variants)("ngForTrackBy",e.trackByFn))},directives:[x.sg,h.MgK,V.y,p.Fj,h.xRP,p.Q7,p.JJ,p.On,W,h.qvL,x.O5,h.q0d,p.Wl,h.KKC,h.G55,zt.K,p.qQ,p.wV],pipes:[O.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 Ie=g(5850),wi=g(3477);function Ji(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.qZA(),t.BQk()),2&i){const e=n.$implicit;t.xp6(2),t.Oqu(e.name)}}function Di(i,n){if(1&i&&(t._UZ(0,"img",18),t.ALo(1,"assetPreview")),2&i){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function Ui(i,n){1&i&&(t.TgZ(0,"div",19),t._UZ(1,"clr-icon",20),t.qZA())}function Ni(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"td",5),t.ALo(2,"stringToColor"),t._uU(3),t.qZA(),t.BQk()),2&i){const e=n.$implicit,o=t.oxw().ngIf,a=t.oxw(2);t.xp6(1),t.Udp("color",t.lcZ(2,5,a.optionGroupName(e.groupId))),t.ekj("disabled",!o.get("enabled").value),t.xp6(2),t.hij(" ",e.name," ")}}function qi(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",21),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function Si(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",22),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function $i(i,n){if(1&i&&(t.ynx(0,4),t.TgZ(1,"td",5)(2,"div",6)(3,"div",7),t.YNc(4,Di,2,4,"img",8),t.YNc(5,Ui,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,Ni,4,7,"ng-container",1),t.ALo(18,"sort"),t.TgZ(19,"td",12)(20,"clr-input-container"),t.YNc(21,qi,2,4,"vdr-currency-input",13),t.YNc(22,Si,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&i){const e=n.ngIf,o=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",o),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 Qi(i,n){if(1&i&&(t.TgZ(0,"tr"),t.YNc(1,$i,31,39,"ng-container",3),t.qZA()),2&i){const e=n.$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngIf",o.formGroupMap.get(e.id))}}class bt{constructor(n){this.changeDetector=n,this.formGroupMap=new Map,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct]}ngOnInit(){this.subscription=this.formArray.valueChanges.pipe((0,C.U)(n=>n.length),(0,E.b)(1),(0,Y.x)()).subscribe(()=>{this.buildFormGroupMap()}),this.buildFormGroupMap()}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}trackByFn(n,e){return null!=e.id?e.id:n}getFeaturedAsset(n){var e;return(null===(e=this.pendingAssetChanges[n.id])||void 0===e?void 0:e.featuredAsset)||n.featuredAsset}optionGroupName(n){const e=this.optionGroups.find(o=>o.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 Ei(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.update-product-option"))}bt.\u0275fac=function(n){return new(n||bt)(t.Y36(t.sBO))},bt.\u0275cmp=t.Xpm({type:bt,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,Ji,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,Qi,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))},directives:[x.sg,h.q0d,x.O5,p.JL,p.sg,h.qvL,h.G55,V.y,p.Fj,h.xRP,p.JJ,p.u,zt.K,p.qQ,p.wV,h.PEh,p.Wl,h.KKC,Ht.x],pipes:[O.X$,Ie.U,Xt._s,ee.M,N.j,wi.s],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 Yi=function(){return["UpdateCatalog","UpdateProduct"]};function Gi(i,n){if(1&i&&(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&i){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,Yi)))}}function ji(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",11),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",12),t.NdJ("click",function(){return t.CHM(e),t.oxw().update()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&i){const e=t.oxw(),o=t.MAs(4),a=t.MAs(8);t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",o.invalid||a.invalid||o.pristine&&a.pristine&&e.customFieldsForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(5,5,"catalog.update-product-option")," ")}}class Zt{constructor(){this.updateVariantName=!0,this.codeInputTouched=!1}ngOnInit(){var n;const e=this.productOption.translations.find(o=>o.languageCode===this.activeLanguage);if(this.name=null!==(n=null==e?void 0:e.name)&&void 0!==n?n:"",this.code=this.productOption.code,this.customFieldsForm=new p.cw({}),this.customFields){const o=e&&e.customFields||{};for(const a of this.customFields){const r=a.name,s="localeString"===a.type?o[r]:this.productOption.customFields[r];this.customFieldsForm.addControl(a.name,new p.NI(s))}}}update(){const n=(0,c.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(Object.assign(Object.assign({},n),{autoUpdate:this.updateVariantName}))}cancel(){this.resolveWith()}updateCode(n){!this.codeInputTouched&&!this.productOption.code&&(this.code=(0,et.U)(n,"-"))}}Zt.\u0275fac=function(n){return new(n||Zt)},Zt.\u0275cmp=t.Xpm({type:Zt,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,Ei,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,Gi,6,9,"section",8),t.YNc(15,ji,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))},directives:[Nt.q,Et.h,V.y,p.Fj,p.Q7,p.JJ,p.On,p.c5,h.PEh,p.Wl,h.KKC,h.MgK,x.O5,Yt.y,qt.n],pipes:[O.X$,N.j],styles:[""],changeDetection:0});var Bi=g(7861);const Hi=function(i){return{rate:i}};function Ri(i,n){if(1&i&&(t.TgZ(0,"div",2),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"async"),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-includes-tax-at",t.VKq(6,Hi,t.lcZ(3,4,e.taxRate$))),"\n")}}const zi=function(i,n){return{price:i,rate:n}};function Ki(i,n){if(1&i&&(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&i){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-with-tax-in-default-zone",t.WLB(11,zi,t.xi3(3,4,t.lcZ(4,7,e.grossPrice$),e.currencyCode),t.lcZ(5,9,e.taxRate$))),"\n")}}class Tt{constructor(n){this.dataService=n,this.priceChange$=new U.X(0),this.taxCategoryIdChange$=new U.X("")}ngOnInit(){const n=this.dataService.settings.getTaxRatesSimple(999,0,"cache-first").mapStream(o=>o.taxRates.items),e=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(o=>o.activeChannel);this.taxRate$=(0,I.a)(e,n,this.taxCategoryIdChange$).pipe((0,C.U)(([o,a,r])=>{const s=o.defaultTaxZone;if(!s)return 0;const d=a.find(l=>l.zone.id===s.id&&l.category.id===r);return d?d.value:0})),this.grossPrice$=(0,I.a)(this.taxRate$,this.priceChange$).pipe((0,C.U)(([o,a])=>Math.round(a*((100+o)/100))))}ngOnChanges(n){"price"in n&&this.priceChange$.next(n.price.currentValue),"taxCategoryId"in n&&this.taxCategoryIdChange$.next(n.taxCategoryId.currentValue)}}Tt.\u0275fac=function(n){return new(n||Tt)(t.Y36(c.DoR))},Tt.\u0275cmp=t.Xpm({type:Tt,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,Ri,4,8,"div",1),t.YNc(4,Ki,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))},directives:[h.MgK,x.O5],pipes:[O.X$,x.Ov,re.k],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.value[_ngcontent-%COMP%]{margin-top:3px}"],changeDetection:0});var Wi=g(9435);function Xi(i,n){1&i&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",45),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&i&&(t.xp6(3),t.Oqu(t.lcZ(4,1,"common.enabled")))}function ta(i,n){if(1&i&&(t.TgZ(0,"option",48),t._uU(1),t.qZA()),2&i){const e=n.$implicit;t.Q6J("value",e.id),t.xp6(1),t.hij(" ",e.name," ")}}function ea(i,n){if(1&i&&(t.TgZ(0,"clr-select-container")(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"select",46),t.YNc(5,ta,2,2,"option",47),t.qZA()()),2&i){const e=t.oxw(3);t.xp6(2),t.Oqu(t.lcZ(3,2,"catalog.tax-category")),t.xp6(3),t.Q6J("ngForOf",e.taxCategories)}}function na(i,n){if(1&i&&(t.TgZ(0,"label",29),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"div",49),t._uU(4),t.qZA()),2&i){const e=t.oxw().ngIf,o=t.oxw(2);t.xp6(1),t.Oqu(t.lcZ(2,2,"catalog.tax-category")),t.xp6(3),t.hij(" ",o.getTaxCategoryName(e)," ")}}function oa(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",50),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function ia(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",51),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function aa(i,n){if(1&i&&(t.TgZ(0,"clr-select-container")(1,"label"),t._uU(2),t.ALo(3,"translate"),t._UZ(4,"vdr-help-tooltip",27),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"select",52)(7,"option",48),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"option",48),t._uU(11),t.ALo(12,"translate"),t.qZA(),t.TgZ(13,"option",48),t._uU(14),t.ALo(15,"translate"),t.qZA()()()),2&i){const e=t.oxw(3);t.xp6(2),t.hij("",t.lcZ(3,8,"catalog.track-inventory")," "),t.xp6(2),t.Q6J("content",t.lcZ(5,10,"catalog.track-inventory-tooltip")),t.xp6(3),t.Q6J("value",e.GlobalFlag.TRUE),t.xp6(1),t.hij(" ",t.lcZ(9,12,"catalog.track-inventory-true")," "),t.xp6(2),t.Q6J("value",e.GlobalFlag.FALSE),t.xp6(1),t.hij(" ",t.lcZ(12,14,"catalog.track-inventory-false")," "),t.xp6(2),t.Q6J("value",e.GlobalFlag.INHERIT),t.xp6(1),t.hij(" ",t.lcZ(15,16,"catalog.track-inventory-inherit")," ")}}function ra(i,n){if(1&i&&(t.TgZ(0,"section",53),t._UZ(1,"vdr-tabbed-custom-fields",54),t.ALo(2,"hasPermission"),t.qZA()),2&i){const e=t.oxw().ngIf,o=t.oxw(2);t.xp6(1),t.Q6J("customFields",o.customFields)("compact",!0)("customFieldsFormGroup",e.get("customFields"))("readonly",!t.lcZ(2,4,o.updatePermission))}}function sa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",58),t.NdJ("iconClick",function(){const r=t.CHM(e).$implicit;return t.oxw(4).editOption(r)}),t.ALo(1,"hasPermission"),t.TgZ(2,"span",59),t._uU(3),t.qZA(),t._uU(4),t.qZA()}if(2&i){const e=n.$implicit,o=t.oxw(4);t.Q6J("colorFrom",o.optionGroupName(e.groupId))("invert",!0)("icon",t.lcZ(1,5,o.updatePermission)&&"pencil"),t.xp6(3),t.Oqu(o.optionGroupName(e.groupId)),t.xp6(1),t.hij(" ",o.optionName(e)," ")}}const ca=function(){return["./","options"]};function la(i,n){if(1&i&&(t.TgZ(0,"div")(1,"div",55),t.YNc(2,sa,5,7,"vdr-chip",56),t.ALo(3,"sort"),t.TgZ(4,"a",57),t._uU(5),t.ALo(6,"translate"),t.qZA()()()),2&i){const e=t.oxw(2).$implicit;t.xp6(2),t.Q6J("ngForOf",t.xi3(3,3,e.options,"groupId")),t.xp6(2),t.Q6J("routerLink",t.DdM(8,ca)),t.xp6(1),t.hij("",t.lcZ(6,6,"catalog.edit-options"),"...")}}function da(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",60),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,s=t.oxw(2).$implicit;return t.oxw().removeFacetValue(s,r.id)}),t.ALo(1,"hasPermission"),t.qZA()}if(2&i){const e=n.$implicit,o=t.oxw(3);t.Q6J("facetValue",e)("removable",t.lcZ(1,2,o.updatePermission))}}function pa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",61),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2).$implicit;return t.oxw().selectFacetValue(a)}),t._UZ(1,"clr-icon",62),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&i&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}const ua=function(i){return{channelCode:i}};function ma(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",69),t.NdJ("iconClick",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw(4).$implicit;return t.oxw().removeFromChannel.emit({channelId:a.id,variant:r})}),t.ALo(1,"translate"),t._UZ(2,"vdr-channel-badge",70),t._uU(3),t.ALo(4,"channelCodeToLabel"),t.qZA()}if(2&i){const e=t.oxw().$implicit;t.Q6J("title",t.xi3(1,3,"catalog.remove-from-channel",t.VKq(8,ua,e.code))),t.xp6(2),t.Q6J("channelCode",e.code),t.xp6(1),t.hij(" ",t.lcZ(4,6,e.code)," ")}}function ga(i,n){if(1&i&&(t.ynx(0),t.YNc(1,ma,5,10,"vdr-chip",68),t.BQk()),2&i){const e=n.$implicit,o=t.oxw(5);t.xp6(1),t.Q6J("ngIf",!o.isDefaultChannel(e.code))}}function _a(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",13)(1,"div",64),t.YNc(2,ga,2,1,"ng-container",65),t.TgZ(3,"button",66),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(3).$implicit;return t.oxw().assignToChannel.emit(a)}),t._UZ(4,"clr-icon",67),t._uU(5),t.ALo(6,"translate"),t.qZA()()()}if(2&i){const e=t.oxw(3).$implicit;t.xp6(2),t.Q6J("ngForOf",e.channels),t.xp6(3),t.hij(" ",t.lcZ(6,2,"catalog.assign-to-channel")," ")}}function ha(i,n){1&i&&(t.ynx(0),t.YNc(1,_a,7,4,"div",63),t.BQk())}function fa(i,n){if(1&i){const e=t.EpF();t.ynx(0,4),t.TgZ(1,"div",5)(2,"div",6)(3,"vdr-title-input",7),t.ALo(4,"hasPermission"),t.TgZ(5,"clr-input-container"),t._UZ(6,"input",8),t.ALo(7,"hasPermission"),t.ALo(8,"translate"),t.qZA()(),t.TgZ(9,"vdr-title-input",9),t.ALo(10,"hasPermission"),t.TgZ(11,"clr-input-container"),t._UZ(12,"input",10),t.ALo(13,"hasPermission"),t.ALo(14,"translate"),t.qZA()()(),t.TgZ(15,"div",11),t.YNc(16,Xi,5,3,"clr-toggle-wrapper",12),t.qZA()(),t.TgZ(17,"div",13)(18,"div",14)(19,"div",15)(20,"vdr-assets",16),t.NdJ("change",function(a){t.CHM(e);const r=t.oxw().$implicit;return t.oxw().onAssetChange(r.id,a)}),t.qZA()(),t.TgZ(21,"div",17)(22,"div",18)(23,"div",19)(24,"div",20),t.YNc(25,ea,6,4,"clr-select-container",21),t.YNc(26,na,5,4,"ng-template",null,22,t.W1O),t.qZA(),t.TgZ(28,"div",23)(29,"clr-input-container")(30,"label"),t._uU(31),t.ALo(32,"translate"),t.qZA(),t.YNc(33,oa,2,4,"vdr-currency-input",24),t.YNc(34,ia,2,4,"vdr-currency-input",25),t.qZA()(),t._UZ(35,"vdr-variant-price-detail",26),t.qZA(),t.TgZ(36,"div",19),t.YNc(37,aa,16,18,"clr-select-container",12),t.TgZ(38,"clr-input-container")(39,"label"),t._uU(40),t.ALo(41,"translate"),t._UZ(42,"vdr-help-tooltip",27),t.ALo(43,"translate"),t.qZA(),t._UZ(44,"input",28),t.ALo(45,"hasPermission"),t.qZA(),t.TgZ(46,"div")(47,"label",29),t._uU(48),t.ALo(49,"translate"),t._UZ(50,"vdr-help-tooltip",27),t.ALo(51,"translate"),t.qZA(),t.TgZ(52,"div",30),t._uU(53),t.qZA()(),t.TgZ(54,"div")(55,"label",29),t._uU(56),t.ALo(57,"translate"),t._UZ(58,"vdr-help-tooltip",27),t.ALo(59,"translate"),t.qZA(),t.TgZ(60,"div",30),t._uU(61),t.qZA()()(),t.TgZ(62,"div",19)(63,"div",31)(64,"label",29),t._uU(65),t.ALo(66,"translate"),t._UZ(67,"vdr-help-tooltip",27),t.ALo(68,"translate"),t.qZA(),t.TgZ(69,"div",32)(70,"clr-input-container"),t._UZ(71,"input",33),t.ALo(72,"hasPermission"),t.qZA(),t.TgZ(73,"clr-toggle-wrapper"),t._UZ(74,"input",34),t.ALo(75,"hasPermission"),t.TgZ(76,"label"),t._uU(77),t.ALo(78,"translate"),t.qZA()()()()()(),t.TgZ(79,"div",35)(80,"div",19),t.YNc(81,ra,3,6,"section",36),t.qZA()()()()(),t.TgZ(82,"div",13)(83,"div",37),t._UZ(84,"vdr-entity-info",38),t.YNc(85,la,7,9,"div",39),t._UZ(86,"div",40),t.TgZ(87,"div",41),t.YNc(88,da,2,4,"vdr-facet-value-chip",42),t.YNc(89,pa,4,3,"button",43),t.qZA()()(),t.YNc(90,ha,2,0,"ng-container",44),t.BQk()}if(2&i){const e=n.ngIf,o=t.MAs(27),a=t.oxw().$implicit,r=t.oxw();let s;t.Q6J("formGroup",e),t.xp6(3),t.Q6J("readonly",!t.lcZ(4,54,r.updatePermission)),t.xp6(3),t.Q6J("readonly",!t.lcZ(7,56,r.updatePermission))("placeholder",t.lcZ(8,58,"catalog.sku")),t.xp6(3),t.Q6J("readonly",!t.lcZ(10,60,r.updatePermission)),t.xp6(3),t.Q6J("readonly",!t.lcZ(13,62,r.updatePermission))("placeholder",t.lcZ(14,64,"common.name")),t.xp6(4),t.Q6J("vdrIfPermissions",r.updatePermission),t.xp6(4),t.Q6J("compact",!0)("assets",(null==r.pendingAssetChanges[a.id]?null:r.pendingAssetChanges[a.id].assets)||a.assets)("featuredAsset",(null==r.pendingAssetChanges[a.id]?null:r.pendingAssetChanges[a.id].featuredAsset)||a.featuredAsset)("updatePermissions",r.updatePermission),t.xp6(5),t.Q6J("vdrIfPermissions",r.updatePermission)("vdrIfPermissionsElse",o),t.xp6(6),t.Oqu(t.lcZ(32,66,"catalog.price")),t.xp6(2),t.Q6J("ngIf",!r.channelPriceIncludesTax),t.xp6(1),t.Q6J("ngIf",r.channelPriceIncludesTax),t.xp6(1),t.Q6J("price",e.get("price").value)("currencyCode",a.currencyCode)("priceIncludesTax",r.channelPriceIncludesTax)("taxCategoryId",e.get("taxCategoryId").value),t.xp6(2),t.Q6J("vdrIfPermissions",r.updatePermission),t.xp6(3),t.hij("",t.lcZ(41,68,"catalog.stock-on-hand")," "),t.xp6(2),t.Q6J("content",t.lcZ(43,70,"catalog.stock-on-hand-tooltip")),t.xp6(2),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.Q6J("min",r.getStockOnHandMinValue(e))("readonly",!t.lcZ(45,72,r.updatePermission))("vdrDisabled",r.inventoryIsNotTracked(e)),t.xp6(2),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.xp6(2),t.hij("",t.lcZ(49,74,"catalog.stock-allocated")," "),t.xp6(2),t.Q6J("content",t.lcZ(51,76,"catalog.stock-allocated-tooltip")),t.xp6(3),t.hij(" ",a.stockAllocated," "),t.xp6(1),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.xp6(2),t.hij("",t.lcZ(57,78,"catalog.stock-saleable")," "),t.xp6(2),t.Q6J("content",t.lcZ(59,80,"catalog.stock-saleable-tooltip")),t.xp6(3),t.hij(" ",r.getSaleableStockLevel(a)," "),t.xp6(2),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.xp6(2),t.Oqu(t.lcZ(66,82,"catalog.out-of-stock-threshold")),t.xp6(2),t.Q6J("content",t.lcZ(68,84,"catalog.out-of-stock-threshold-tooltip")),t.xp6(4),t.Q6J("formControl",e.get("outOfStockThreshold"))("readonly",!t.lcZ(72,86,r.updatePermission))("vdrDisabled",!1!==(null==(s=e.get("useGlobalOutOfStockThreshold"))?null:s.value)||r.inventoryIsNotTracked(e)),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(75,88,r.updatePermission)||r.inventoryIsNotTracked(e)),t.xp6(3),t.AsE("",t.lcZ(78,90,"catalog.use-global-value")," (",r.globalOutOfStockThreshold,")"),t.xp6(4),t.Q6J("ngIf",r.customFields.length),t.xp6(3),t.Q6J("entity",a),t.xp6(1),t.Q6J("ngIf",a.options.length),t.xp6(3),t.Q6J("ngForOf",r.currentOrPendingFacetValues(a)),t.xp6(1),t.Q6J("vdrIfPermissions",r.updatePermission)}}function va(i,n){if(1&i&&(t.TgZ(0,"div",2),t.YNc(1,fa,91,92,"ng-container",3),t.qZA()),2&i){const e=n.$implicit,o=t.oxw();let a,r;t.ekj("disabled",!(null!=(a=o.formGroupMap.get(e.id))&&null!=(r=a.get("enabled"))&&r.value)),t.xp6(1),t.Q6J("ngIf",o.formGroupMap.get(e.id))}}const Ca=function(){return{itemsPerPage:10,currentPage:1}};class At{constructor(n,e,o){this.changeDetector=n,this.modalService=e,this.dataService=o,this.assignToChannel=new t.vpe,this.removeFromChannel=new t.vpe,this.assetChange=new t.vpe,this.selectionChange=new t.vpe,this.updateProductOption=new t.vpe,this.selectedVariantIds=[],this.formGroupMap=new Map,this.GlobalFlag=c.TvZ,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct]}ngOnInit(){this.dataService.settings.getGlobalSettings("cache-first").single$.subscribe(({globalSettings:n})=>{this.globalTrackInventory=n.trackInventory,this.globalOutOfStockThreshold=n.outOfStockThreshold,this.changeDetector.markForCheck()}),this.subscription=this.formArray.valueChanges.subscribe(()=>this.changeDetector.markForCheck()),this.subscription.add(this.formArray.valueChanges.pipe((0,C.U)(n=>n.length),(0,E.b)(1),(0,Y.x)()).subscribe(()=>{this.buildFormGroupMap()})),this.buildFormGroupMap()}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}isDefaultChannel(n){return n===ve.z$}trackById(n,e){return e.id}inventoryIsNotTracked(n){var e;const o=null===(e=n.get("trackInventory"))||void 0===e?void 0:e.value;return o===c.TvZ.FALSE||o===c.TvZ.INHERIT&&!1===this.globalTrackInventory}getTaxCategoryName(n){const e=n.get(["taxCategoryId"]);if(e&&this.taxCategories){const o=this.taxCategories.find(a=>a.id===e.value);return o?o.name:""}return""}getStockOnHandMinValue(n){var e,o;return(null===(e=n.get("useGlobalOutOfStockThreshold"))||void 0===e?void 0:e.value)?this.globalOutOfStockThreshold:null===(o=n.get("outOfStockThreshold"))||void 0===o?void 0:o.value}getSaleableStockLevel(n){const e=n.useGlobalOutOfStockThreshold?this.globalOutOfStockThreshold:n.outOfStockThreshold;return n.stockOnHand-n.stockAllocated-e}areAllSelected(){return!!this.variants&&this.selectedVariantIds.length===this.variants.length}onAssetChange(n,e){this.assetChange.emit(Object.assign({variantId:n},e));const o=this.variants.findIndex(a=>a.id===n);this.formArray.at(o).markAsDirty()}toggleSelectAll(){this.areAllSelected()?this.selectedVariantIds=[]:this.selectedVariantIds=this.variants.map(n=>n.id),this.selectionChange.emit(this.selectedVariantIds)}toggleSelectVariant(n){const e=this.selectedVariantIds.indexOf(n);-1<e?this.selectedVariantIds.splice(e,1):this.selectedVariantIds.push(n),this.selectionChange.emit(this.selectedVariantIds)}optionGroupName(n){var e;const o=this.optionGroups.find(a=>a.id===n);if(o)return(null!==(e=null==o?void 0:o.translations.find(r=>r.languageCode===this.activeLanguage))&&void 0!==e?e:o.translations[0]).name}optionName(n){var e;return(null!==(e=n.translations.find(a=>a.languageCode===this.activeLanguage))&&void 0!==e?e:n.translations[0]).name}currentOrPendingFacetValues(n){var e;return null!==(e=this.pendingFacetValueChanges[n.id])&&void 0!==e?e:n.facetValues}selectFacetValue(n){return this.modalService.fromComponent(ot,{size:"md",closable:!0}).subscribe(e=>{if(e){const o=n?n.facetValues.map(r=>r.id):[],a=this.formArray.controls.find(r=>r.value.id===n.id);if(a){const r=(0,J.T)([...o,...e.map(s=>s.id)]);a.patchValue({facetValueIds:r}),a.markAsDirty(),this.pendingFacetValueChanges[n.id]||(this.pendingFacetValueChanges[n.id]=n.facetValues.slice(0)),this.pendingFacetValueChanges[n.id].push(...e)}this.changeDetector.markForCheck()}})}removeFacetValue(n,e){const o=this.formGroupMap.get(n.id);if(o){const a=o.value.facetValueIds.filter(r=>r!==e);o.patchValue({facetValueIds:a}),o.markAsDirty(),this.pendingFacetValueChanges[n.id]||(this.pendingFacetValueChanges[n.id]=n.facetValues.slice(0)),this.pendingFacetValueChanges[n.id]=this.pendingFacetValueChanges[n.id].filter(r=>r.id!==e)}}isVariantSelected(n){return-1<this.selectedVariantIds.indexOf(n)}editOption(n){this.modalService.fromComponent(Zt,{size:"md",locals:{productOption:n,activeLanguage:this.activeLanguage,customFields:this.customOptionFields}}).subscribe(e=>{e&&this.updateProductOption.emit(e)})}buildFormGroupMap(){this.formGroupMap.clear();for(const n of this.formArray.controls)this.formGroupMap.set(n.value.id,n);this.changeDetector.markForCheck()}getFacetValueIds(n){var e;return(null===(e=this.formGroupMap.get(n))||void 0===e?void 0:e.value).facetValueIds}}At.\u0275fac=function(n){return new(n||At)(t.Y36(t.sBO),t.Y36(c.Z7U),t.Y36(c.DoR))},At.\u0275cmp=t.Xpm({type:At,selectors:[["vdr-product-variants-list"]],inputs:{formArray:["productVariantsFormArray","formArray"],variants:"variants",paginationConfig:"paginationConfig",channelPriceIncludesTax:"channelPriceIncludesTax",taxCategories:"taxCategories",optionGroups:"optionGroups",customFields:"customFields",customOptionFields:"customOptionFields",activeLanguage:"activeLanguage",pendingAssetChanges:"pendingAssetChanges",pendingFacetValueChanges:"pendingFacetValueChanges"},outputs:{assignToChannel:"assignToChannel",removeFromChannel:"removeFromChannel",assetChange:"assetChange",selectionChange:"selectionChange",updateProductOption:"updateProductOption"},decls:3,vars:6,consts:[[1,"variants-list"],["class","variant-container card",3,"disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"variant-container","card"],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"card-block","header-row"],[1,"details"],[1,"sku",3,"readonly"],["clrInput","","type","text","formControlName","sku",3,"readonly","placeholder"],[1,"name",3,"readonly"],["clrInput","","type","text","formControlName","name",3,"readonly","placeholder"],[1,"right-controls"],[4,"vdrIfPermissions"],[1,"card-block"],[1,"variant-body"],[1,"assets"],[3,"compact","assets","featuredAsset","updatePermissions","change"],[1,"variant-form-inputs"],[1,"standard-fields"],[1,"variant-form-input-row"],[1,"tax-category"],[4,"vdrIfPermissions","vdrIfPermissionsElse"],["taxCategoryLabel",""],[1,"price"],["clrInput","","formControlName","price",3,"currencyCode","readonly",4,"ngIf"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly",4,"ngIf"],[3,"price","currencyCode","priceIncludesTax","taxCategoryId"],[3,"content"],["clrInput","","type","number","step","1","formControlName","stockOnHand",3,"min","readonly","vdrDisabled"],[1,"clr-control-label"],[1,"value"],[1,"out-of-stock-threshold-wrapper"],[1,"flex"],["clrInput","","type","number",3,"formControl","readonly","vdrDisabled"],["type","checkbox","clrToggle","","name","useGlobalOutOfStockThreshold","formControlName","useGlobalOutOfStockThreshold",3,"vdrDisabled"],[1,"custom-fields"],["formGroupName","customFields",4,"ngIf"],[1,"options-facets"],[3,"entity"],[4,"ngIf"],[1,"flex-spacer"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","btn btn-sm btn-secondary",3,"click",4,"vdrIfPermissions"],[4,"vdrIfMultichannel"],["type","checkbox","clrToggle","","name","enabled","formControlName","enabled"],["clrSelect","","name","options","formControlName","taxCategoryId"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"tax-category-label"],["clrInput","","formControlName","price",3,"currencyCode","readonly"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly"],["clrSelect","","name","options","formControlName","trackInventory"],["formGroupName","customFields"],["entityName","ProductVariant",3,"customFields","compact","customFieldsFormGroup","readonly"],[1,"options"],[3,"colorFrom","invert","icon","iconClick",4,"ngFor","ngForOf"],[1,"btn","btn-link","btn-sm",3,"routerLink"],[3,"colorFrom","invert","icon","iconClick"],[1,"option-group-name"],[3,"facetValue","removable","remove"],[1,"btn","btn-sm","btn-secondary",3,"click"],["shape","plus"],["class","card-block",4,"vdrIfDefaultChannelActive"],[1,"flex","channel-assignment"],[4,"ngFor","ngForOf"],[1,"btn","btn-sm",3,"click"],["shape","layers"],["icon","times-circle",3,"title","iconClick",4,"ngIf"],["icon","times-circle",3,"title","iconClick"],[3,"channelCode"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0),t.YNc(1,va,2,3,"div",1),t.ALo(2,"paginate"),t.qZA()),2&n&&(t.xp6(1),t.Q6J("ngForOf",t.xi3(2,2,e.variants,e.paginationConfig||t.DdM(5,Ca)))("ngForTrackBy",e.trackById))},directives:[x.sg,h.q0d,x.O5,p.JL,p.sg,Bi.G,h.G55,V.y,p.Fj,h.xRP,p.JJ,p.u,D.H,h.PEh,p.Wl,h.KKC,h.MgK,j,h.dTv,p.EJ,h.otW,p.YN,p.Kr,zt.K,Tt,Wi.o,p.wV,p.qQ,Ht.x,p.oH,p.x0,Yt.y,Dt.V,Ut.Y,A.yS,Rt.q,h.qvL,ye.u,Pe.M,Fe.n],pipes:[Xt._s,N.j,O.X$,Ie.U,ae.E],styles:[".with-selected[_ngcontent-%COMP%]{display:flex;min-height:52px;align-items:center;border:1px solid var(--color-component-border-100);border-radius:3px;padding:6px 18px}.with-selected[_ngcontent-%COMP%] vdr-select-toggle[_ngcontent-%COMP%]{margin-right:12px}.with-selected[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]{margin-right:12px}.variant-container[_ngcontent-%COMP%]{transition:background-color .2s;min-height:330px}.variant-container.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.variant-container[_ngcontent-%COMP%] .header-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap}.variant-container[_ngcontent-%COMP%] .variant-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .variant-body[_ngcontent-%COMP%]{flex-direction:row}}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;margin-right:12px}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{flex-direction:row;height:36px}}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{flex:1}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] .clr-control-container{width:100%}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] .clr-control-container input.clr-input{min-width:100%}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .sku[_ngcontent-%COMP%]{width:160px;margin-right:20px;flex:0}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name input{min-width:300px}.variant-container[_ngcontent-%COMP%] .right-controls[_ngcontent-%COMP%]{display:flex}.variant-container[_ngcontent-%COMP%] .tax-category-label[_ngcontent-%COMP%]{margin-top:3px}.variant-container[_ngcontent-%COMP%] .variant-form-inputs[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .variant-form-inputs[_ngcontent-%COMP%]{flex-direction:row}}.variant-container[_ngcontent-%COMP%] .variant-form-input-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .variant-form-input-row[_ngcontent-%COMP%]{margin:0 6px 8px 24px}}.variant-container[_ngcontent-%COMP%] .variant-form-input-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{margin-right:24px;margin-bottom:24px}.variant-container[_ngcontent-%COMP%] .track-inventory-toggle[_ngcontent-%COMP%]{margin-top:22px}.variant-container[_ngcontent-%COMP%] .clr-form-control[_ngcontent-%COMP%]{margin-top:0}.variant-container[_ngcontent-%COMP%] .facets[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center}.variant-container[_ngcontent-%COMP%] .pricing[_ngcontent-%COMP%]{display:flex}.variant-container[_ngcontent-%COMP%] .pricing[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin-right:12px}.variant-container[_ngcontent-%COMP%] .option-group-name[_ngcontent-%COMP%]{color:var(--color-text-200);text-transform:uppercase;font-size:10px;margin-right:3px;height:11px}.variant-container[_ngcontent-%COMP%] .options-facets[_ngcontent-%COMP%]{display:flex;color:var(--color-grey-400)}.variant-container[_ngcontent-%COMP%] .clr-control-container{width:100%}.channel-assignment[_ngcontent-%COMP%]{justify-content:flex-end;flex-wrap:wrap;max-height:110px;overflow-y:auto}.channel-assignment[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{margin:6px 12px 6px 0}.out-of-stock-threshold-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column}.out-of-stock-threshold-wrapper[_ngcontent-%COMP%] clr-toggle-wrapper[_ngcontent-%COMP%]{margin-left:24px}.inventory-untracked[_ngcontent-%COMP%]{opacity:.5}"],changeDetection:0});const xa=function(){return["product","enabled"]};function ba(i,n){if(1&i&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",8),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("formControl",e.detailForm.get(t.DdM(4,xa))),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.enabled"))}}function Za(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){return t.CHM(e),t.oxw().create()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine||!e.variantsToCreateAreValid()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.create")," ")}}function Ta(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){const e=t.oxw(2);t.Q6J("disabled",(e.detailForm.invalid||e.detailForm.pristine)&&!e.assetsChanged()&&!e.variantAssetsChanged()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}const X=function(){return["UpdateCatalog","UpdateProduct"]};function Aa(i,n){1&i&&t.YNc(0,Ta,3,4,"button",10),2&i&&t.Q6J("vdrIfPermissions",t.DdM(1,X))}function ya(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",41),t.NdJ("iconClick",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw(6).removeFromChannel(a.id)}),t._UZ(1,"vdr-channel-badge",42),t._uU(2),t.ALo(3,"channelCodeToLabel"),t.qZA()}if(2&i){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 Pa(i,n){if(1&i&&(t.ynx(0),t.YNc(1,ya,4,4,"vdr-chip",40),t.BQk()),2&i){const e=n.$implicit,o=t.oxw(6);t.xp6(1),t.Q6J("ngIf",!o.isDefaultChannel(e.code))}}function Fa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-form-item",35),t.ALo(1,"translate"),t.TgZ(2,"div",36),t.YNc(3,Pa,2,1,"ng-container",37),t.ALo(4,"async"),t.TgZ(5,"button",38),t.NdJ("click",function(){return t.CHM(e),t.oxw(5).assignToChannel()}),t._UZ(6,"clr-icon",39),t._uU(7),t.ALo(8,"translate"),t.qZA()()()}if(2&i){const e=t.oxw(5);t.Q6J("label",t.lcZ(1,3,"common.channels")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(4,5,e.productChannels$)),t.xp6(4),t.hij(" ",t.lcZ(8,7,"catalog.assign-to-channel")," ")}}function Oa(i,n){1&i&&(t.ynx(0),t.YNc(1,Fa,9,9,"vdr-form-item",34),t.BQk())}function Ia(i,n){1&i&&(t.ynx(0),t.YNc(1,Oa,2,0,"ng-container",33),t.BQk())}const Ma=function(){return["product","customFields"]};function ka(i,n){if(1&i&&(t.TgZ(0,"section",43)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",44),t.ALo(5,"hasPermission"),t.qZA()),2&i){const e=t.oxw(3);t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get(t.DdM(8,Ma)))("readonly",!t.lcZ(5,6,t.DdM(9,X)))}}function La(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",45),t.NdJ("remove",function(){const r=t.CHM(e).$implicit;return t.oxw(3).removeProductFacetValue(r.id)}),t.ALo(1,"hasPermission"),t.qZA()}if(2&i){const e=n.$implicit;t.Q6J("facetValue",e)("removable",t.lcZ(1,2,t.DdM(4,X)))}}function Va(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",46),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).selectProductFacetValue()}),t._UZ(1,"clr-icon",47),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&i&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}function wa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div")(1,"h4"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"vdr-generate-product-variants",48),t.NdJ("variantsChange",function(a){t.CHM(e);return t.oxw(3).createVariantsConfig=a}),t.qZA()()}2&i&&(t.xp6(2),t.Oqu(t.lcZ(3,1,"catalog.product-variants")))}const Ja=function(){return["product","name"]},Da=function(i){return{pattern:i}};function Ua(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-tab-content")(1,"div",16)(2,"div",17)(3,"section",18),t.YNc(4,Ia,2,0,"ng-container",15),t.ALo(5,"async"),t.TgZ(6,"vdr-form-field",19),t.ALo(7,"translate"),t.TgZ(8,"input",20),t.NdJ("input",function(a){return t.CHM(e),t.oxw(2).updateSlug(a.target.value)}),t.ALo(9,"hasPermission"),t.qZA()(),t.TgZ(10,"div",21),t.ALo(11,"async"),t.TgZ(12,"clr-checkbox-wrapper"),t._UZ(13,"input",22),t.TgZ(14,"label"),t._uU(15),t.ALo(16,"translate"),t.qZA()()(),t.TgZ(17,"vdr-form-field",23),t.ALo(18,"translate"),t.ALo(19,"translate"),t._UZ(20,"input",24),t.ALo(21,"hasPermission"),t.qZA(),t._UZ(22,"vdr-rich-text-editor",25),t.ALo(23,"hasPermission"),t.ALo(24,"translate"),t.YNc(25,ka,6,10,"section",26),t._UZ(26,"vdr-custom-detail-component-host",27),t.qZA()(),t.TgZ(27,"div",28)(28,"vdr-assets",29),t.NdJ("change",function(a){t.CHM(e);return t.oxw(2).assetChanges=a}),t.qZA(),t.TgZ(29,"div",30),t.YNc(30,La,2,5,"vdr-facet-value-chip",31),t.ALo(31,"async"),t.YNc(32,Va,4,3,"button",32),t.qZA()()(),t.YNc(33,wa,5,3,"div",15),t.ALo(34,"async"),t.qZA()}if(2&i){const e=t.oxw().ngIf,o=t.oxw();let a;t.xp6(4),t.Q6J("ngIf",!t.lcZ(5,20,o.isNew$)),t.xp6(2),t.Q6J("label",t.lcZ(7,22,"catalog.product-name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(9,24,t.DdM(44,X))),t.xp6(2),t.ekj("visible",!1===t.lcZ(11,26,o.isNew$)&&(null==(a=o.detailForm.get(t.DdM(45,Ja)))?null:a.dirty)),t.xp6(5),t.Oqu(t.lcZ(16,28,"catalog.auto-update-product-variant-name")),t.xp6(2),t.Q6J("label",t.lcZ(18,30,"catalog.slug"))("errors",t.VKq(46,Da,t.lcZ(19,32,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(21,34,t.DdM(48,X))),t.xp6(2),t.Q6J("readonly",!t.lcZ(23,36,t.DdM(49,X)))("label",t.lcZ(24,38,"common.description")),t.xp6(3),t.Q6J("ngIf",o.customFields.length),t.xp6(1),t.Q6J("entity$",o.entity$)("detailForm",o.detailForm),t.xp6(2),t.Q6J("assets",o.assetChanges.assets||e.assets)("featuredAsset",o.assetChanges.featuredAsset||e.featuredAsset)("updatePermissions",o.updatePermissions),t.xp6(2),t.Q6J("ngForOf",t.lcZ(31,40,o.facetValues$)),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(50,X)),t.xp6(1),t.Q6J("ngIf",t.lcZ(34,42,o.isNew$))}}const Na=function(){return["./","manage-variants"]};function qa(i,n){1&i&&(t.TgZ(0,"a",66),t._UZ(1,"clr-icon",67),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,Na)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.manage-variants")," "))}function Sa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",68)(1,"vdr-items-per-page-controls",69),t.NdJ("itemsPerPageChange",function(a){return t.CHM(e),t.oxw(4).setItemsPerPage(a)}),t.ALo(2,"async"),t.qZA(),t.TgZ(3,"vdr-pagination-controls",70),t.NdJ("pageChange",function(a){return t.CHM(e),t.oxw(4).setPage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()()}if(2&i){const e=t.oxw(4);let o;t.xp6(1),t.Q6J("itemsPerPage",t.lcZ(2,4,e.itemsPerPage$)),t.xp6(2),t.Q6J("id",null==(o=t.lcZ(4,6,e.paginationConfig$))?null:o.id)("currentPage",t.lcZ(5,8,e.currentPage$))("itemsPerPage",t.lcZ(6,10,e.itemsPerPage$))}}function $a(i,n){if(1&i&&(t._UZ(0,"vdr-product-variants-table",71),t.ALo(1,"async"),t.ALo(2,"async"),t.ALo(3,"async")),2&i){const e=t.oxw(3).ngIf,o=t.oxw();t.Q6J("variants",t.lcZ(1,6,o.variants$))("paginationConfig",t.lcZ(2,8,o.paginationConfig$))("optionGroups",e.optionGroups)("channelPriceIncludesTax",t.lcZ(3,10,o.channelPriceIncludesTax$))("productVariantsFormArray",o.detailForm.get("variants"))("pendingAssetChanges",o.variantAssetChanges)}}function Qa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-product-variants-list",72),t.NdJ("assignToChannel",function(a){return t.CHM(e),t.oxw(4).assignVariantToChannel(a)})("removeFromChannel",function(a){return t.CHM(e),t.oxw(4).removeVariantFromChannel(a)})("assetChange",function(a){return t.CHM(e),t.oxw(4).variantAssetChange(a)})("updateProductOption",function(a){return t.CHM(e),t.oxw(4).updateProductOption(a)})("selectionChange",function(a){t.CHM(e);return t.oxw(4).selectedVariantIds=a}),t.ALo(1,"async"),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()}if(2&i){const e=t.oxw(3).ngIf,o=t.oxw();t.Q6J("variants",t.lcZ(1,11,o.variants$))("paginationConfig",t.lcZ(2,13,o.paginationConfig$))("channelPriceIncludesTax",t.lcZ(3,15,o.channelPriceIncludesTax$))("pendingFacetValueChanges",o.variantFacetValueChanges)("optionGroups",e.optionGroups)("productVariantsFormArray",o.detailForm.get("variants"))("taxCategories",t.lcZ(4,17,o.taxCategories$))("customFields",o.customVariantFields)("customOptionFields",o.customOptionFields)("activeLanguage",t.lcZ(5,19,o.languageCode$))("pendingAssetChanges",o.variantAssetChanges)}}function Ea(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",68)(1,"vdr-items-per-page-controls",69),t.NdJ("itemsPerPageChange",function(a){return t.CHM(e),t.oxw(4).setItemsPerPage(a)}),t.ALo(2,"async"),t.qZA(),t.TgZ(3,"vdr-pagination-controls",70),t.NdJ("pageChange",function(a){return t.CHM(e),t.oxw(4).setPage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()()}if(2&i){const e=t.oxw(4);let o;t.xp6(1),t.Q6J("itemsPerPage",t.lcZ(2,4,e.itemsPerPage$)),t.xp6(2),t.Q6J("id",null==(o=t.lcZ(4,6,e.paginationConfig$))?null:o.id)("currentPage",t.lcZ(5,8,e.currentPage$))("itemsPerPage",t.lcZ(6,10,e.itemsPerPage$))}}function Ya(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-tab-content")(1,"section",49)(2,"div",50)(3,"div",51)(4,"button",52),t.NdJ("click",function(){t.CHM(e);return t.oxw(3).variantDisplayMode="card"}),t._UZ(5,"clr-icon",53),t.TgZ(6,"span",54),t._uU(7),t.ALo(8,"translate"),t.qZA()(),t.TgZ(9,"button",55),t.NdJ("click",function(){t.CHM(e);return t.oxw(3).variantDisplayMode="table"}),t._UZ(10,"clr-icon",56),t.TgZ(11,"span",54),t._uU(12),t.ALo(13,"translate"),t.qZA()()(),t.TgZ(14,"div",57),t._UZ(15,"input",58),t.ALo(16,"translate"),t.TgZ(17,"button",59),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).filterInput.setValue("")}),t._UZ(18,"clr-icon",60),t.qZA()(),t._UZ(19,"div",61),t.YNc(20,qa,4,5,"a",62),t.qZA(),t.YNc(21,Sa,7,12,"div",63),t.ALo(22,"async"),t.YNc(23,$a,4,12,"vdr-product-variants-table",64),t.YNc(24,Qa,6,21,"vdr-product-variants-list",65),t.qZA(),t.YNc(25,Ea,7,12,"div",63),t.ALo(26,"async"),t.qZA()}if(2&i){const e=t.oxw(3);let o,a;t.xp6(4),t.ekj("btn-primary","card"===e.variantDisplayMode),t.xp6(3),t.Oqu(t.lcZ(8,13,"catalog.display-variant-cards")),t.xp6(2),t.ekj("btn-primary","table"===e.variantDisplayMode),t.xp6(3),t.Oqu(t.lcZ(13,15,"catalog.display-variant-table")),t.xp6(3),t.Q6J("formControl",e.filterInput)("placeholder",t.lcZ(16,17,"catalog.filter-by-name-or-sku")),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(23,X)),t.xp6(1),t.Q6J("ngIf",10<(null==(o=t.lcZ(22,19,e.paginationConfig$))?null:o.totalItems)),t.xp6(2),t.Q6J("ngIf","table"===e.variantDisplayMode),t.xp6(1),t.Q6J("ngIf","card"===e.variantDisplayMode),t.xp6(1),t.Q6J("ngIf",10<(null==(a=t.lcZ(26,21,e.paginationConfig$))?null:a.totalItems))}}function Ga(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-tab")(1,"button",13),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).navigateToTab("variants")}),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.YNc(4,Ya,27,24,"clr-tab-content",14),t.ALo(5,"async"),t.qZA()}if(2&i){const e=t.oxw(2);t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.product-variants")," "),t.xp6(2),t.Q6J("clrIfActive","variants"===t.lcZ(5,4,e.activeTab$))}}function ja(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"form",11),t._UZ(1,"button",12),t.TgZ(2,"clr-tabs")(3,"clr-tab")(4,"button",13),t.NdJ("click",function(){return t.CHM(e),t.oxw().navigateToTab("details")}),t._uU(5),t.ALo(6,"translate"),t.qZA(),t.YNc(7,Ua,35,51,"clr-tab-content",14),t.ALo(8,"async"),t.qZA(),t.YNc(9,Ga,6,6,"clr-tab",15),t.ALo(10,"async"),t.qZA()()}if(2&i){const e=t.oxw();t.Q6J("formGroup",e.detailForm),t.xp6(5),t.hij(" ",t.lcZ(6,4,"catalog.product-details")," "),t.xp6(2),t.Q6J("clrIfActive","details"===t.lcZ(8,6,e.activeTab$)),t.xp6(2),t.Q6J("ngIf",!t.lcZ(10,8,e.isNew$))}}class yt extends c.UT_{constructor(n,e,o,a,r,s,d,l,m,_){super(n,e,o,l),this.productDetailService=a,this.formBuilder=r,this.modalService=s,this.notificationService=d,this.dataService=l,this.location=m,this.changeDetector=_,this.filterInput=new p.NI(""),this.assetChanges={},this.variantAssetChanges={},this.variantFacetValueChanges={},this.currentPage$=new U.X(1),this.itemsPerPage$=new U.X(10),this.selectedVariantIds=[],this.variantDisplayMode="card",this.createVariantsConfig={groups:[],variants:[]},this.productVariantMap=new Map,this.updatePermissions=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct],this.customFields=this.getCustomFieldConfig("Product"),this.customVariantFields=this.getCustomFieldConfig("ProductVariant"),this.customOptionGroupFields=this.getCustomFieldConfig("ProductOptionGroup"),this.customOptionFields=this.getCustomFieldConfig("ProductOption"),this.detailForm=this.formBuilder.group({product:this.formBuilder.group({enabled:!0,name:["",p.kI.required],autoUpdateVariantNames:!0,slug:["",(0,c.Foo)(/^[\p{Letter}0-9_-]+$/)],description:"",facetValueIds:[[]],customFields:this.formBuilder.group(this.customFields.reduce((f,v)=>Object.assign(Object.assign({},f),{[v.name]:""}),{}))}),variants:this.formBuilder.array([])})}ngOnInit(){this.init(),this.product$=this.entity$,this.totalItems$=this.product$.pipe((0,C.U)(l=>l.variantList.totalItems)),this.paginationConfig$=(0,I.a)(this.totalItems$,this.itemsPerPage$,this.currentPage$).pipe((0,C.U)(([l,m,_])=>({totalItems:l,itemsPerPage:m,currentPage:_})));this.product$.pipe((0,C.U)(l=>l.variantList.items));const e=this.filterInput.valueChanges.pipe((0,mt.O)(""),(0,E.b)(200),(0,_t.d)()),o=this.product$.pipe((0,C.U)(l=>l.variantList.items)),a=(0,I.a)(e,this.currentPage$,this.itemsPerPage$).pipe(function oi(i){return(0,ti.e)((n,e)=>{let o=!1;const a=(0,Ce.x)(e,()=>{null==a||a.unsubscribe(),o=!0},ni.Z);(0,ei.Xf)(i).subscribe(a),n.subscribe((0,Ce.x)(e,r=>o&&e.next(r)))})}(o),(0,xe.T)(1),(0,b.w)(([l,m,_])=>this.dataService.product.getProductVariants(Object.assign(Object.assign({skip:(m-1)*_,take:_},l?{filter:{name:{contains:l},sku:{contains:l}}}:{}),{filterOperator:c.FnJ.OR}),this.id).mapStream(({productVariants:f})=>f.items)),(0,_t.d)({bufferSize:1,refCount:!0}));this.variants$=(0,ge.T)(o,a).pipe((0,$.b)(l=>{for(const m of l)this.productVariantMap.set(m.id,m)})),this.taxCategories$=this.productDetailService.getTaxCategories().pipe((0,S.R)(this.destroy$)),this.activeTab$=this.route.paramMap.pipe((0,C.U)(l=>l.get("tab"))),(0,I.a)(a,this.languageCode$).pipe((0,S.R)(this.destroy$)).subscribe(([l,m])=>{this.buildVariantFormArray(l,m)});const r=this.product$.pipe((0,C.U)(l=>l.facetValues)),d=this.getProductFormGroup().get("facetValueIds").valueChanges.pipe((0,xe.T)(1),(0,Y.x)(),(0,b.w)(l=>this.dataService.facet.getFacetValues({filter:{id:{in:l}}}).mapSingle(({facetValues:m})=>m.items)),(0,_t.d)(1));this.facetValues$=(0,Xo.z)(r.pipe((0,w.q)(1)),r.pipe(function ii(i,n){return(0,be.m)(n)?(0,b.w)(()=>i,n):(0,b.w)(()=>i)}(d))),this.productChannels$=this.product$.pipe((0,C.U)(l=>l.channels)),this.channelPriceIncludesTax$=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(l=>l.activeChannel.pricesIncludeTax).pipe((0,_t.d)(1))}ngOnDestroy(){this.destroy()}navigateToTab(n){this.location.replaceState(this.router.createUrlTree(["./",Object.assign(Object.assign({},this.route.snapshot.params),{tab:n})],{queryParamsHandling:"merge",relativeTo:this.route}).toString())}isDefaultChannel(n){return n===ve.z$}setPage(n){this.currentPage$.next(n)}setItemsPerPage(n){this.itemsPerPage$.next(+n),this.currentPage$.next(1)}assignToChannel(){this.productChannels$.pipe((0,w.q)(1),(0,b.w)(n=>this.modalService.fromComponent(z,{size:"lg",locals:{productIds:[this.id],currentChannelIds:n.map(e=>e.id)}}))).subscribe()}removeFromChannel(n){(0,jt.D)((0,c.PDO)(this.dataService,n)).pipe((0,b.w)(({channelCode:e})=>this.modalService.dialog({title:(0,u.J)("catalog.remove-product-from-channel"),buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:e},returnValue:!0}]})),(0,b.w)(e=>e?this.dataService.product.removeProductsFromChannel({channelId:n,productIds:[this.id]}):M.E)).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.notify-remove-product-from-channel-success"))},e=>{this.notificationService.error((0,u.J)("catalog.notify-remove-product-from-channel-error"))})}assignVariantToChannel(n){return this.modalService.fromComponent(z,{size:"lg",locals:{productIds:[this.id],productVariantIds:[n.id],currentChannelIds:n.channels.map(e=>e.id)}}).subscribe()}removeVariantFromChannel({channelId:n,variant:e}){(0,jt.D)((0,c.PDO)(this.dataService,n)).pipe((0,b.w)(({channelCode:o})=>this.modalService.dialog({title:(0,u.J)("catalog.remove-product-variant-from-channel"),buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:o},returnValue:!0}]})),(0,b.w)(o=>o?this.dataService.product.removeVariantsFromChannel({channelId:n,productVariantIds:[e.id]}):M.E)).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.notify-remove-variant-from-channel-success"))},o=>{this.notificationService.error((0,u.J)("catalog.notify-remove-variant-from-channel-error"))})}assetsChanged(){return!!Object.values(this.assetChanges).length}variantAssetsChanged(){return!!Object.keys(this.variantAssetChanges).length}variantAssetChange(n){this.variantAssetChanges[n.variantId]=n}updateSlug(n){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1)).subscribe(([e,o])=>{const a=this.detailForm.get(["product","slug"]),r=(0,c.ZIM)(e,o),s=!r||!r.slug;a&&a.pristine&&s&&a.setValue((0,et.U)(`${n}`,"-"))})}selectProductFacetValue(){this.displayFacetValueModal().subscribe(n=>{if(n){const e=this.getProductFormGroup(),o=e.value.facetValueIds;e.patchValue({facetValueIds:(0,J.T)([...o,...n])}),e.markAsDirty()}})}updateProductOption(n){(0,I.a)(this.product$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([e,o])=>this.productDetailService.updateProductOption(n,e,o))).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"ProductOption"})},e=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"ProductOption"})})}removeProductFacetValue(n){const e=this.getProductFormGroup(),o=e.value.facetValueIds;e.patchValue({facetValueIds:o.filter(a=>a!==n)}),e.markAsDirty()}variantsToCreateAreValid(){return 0<this.createVariantsConfig.variants.length&&this.createVariantsConfig.variants.every(n=>""!==n.sku)}displayFacetValueModal(){return this.modalService.fromComponent(ot,{size:"md",closable:!0}).pipe((0,C.U)(n=>n&&n.map(e=>e.id)))}create(){const n=this.getProductFormGroup();!n.dirty||(0,I.a)(this.product$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([e,o])=>{const a=this.getUpdatedProduct(e,n,o);return this.productDetailService.createProductWithVariants(a,this.createVariantsConfig,o)})).subscribe(({createProductVariants:e,productId:o})=>{this.notificationService.success((0,u.J)("common.notify-create-success"),{entity:"Product"}),this.assetChanges={},this.variantAssetChanges={},this.detailForm.markAsPristine(),this.router.navigate(["../",o],{relativeTo:this.route})},e=>{console.error(e),this.notificationService.error((0,u.J)("common.notify-create-error"),{entity:"Product"})})}save(){(0,I.a)(this.product$,this.languageCode$,this.channelPriceIncludesTax$).pipe((0,w.q)(1),(0,F.z)(([n,e,o])=>{var a,r;const s=this.getProductFormGroup();let d,l;(s.dirty||this.assetsChanged())&&(d=this.getUpdatedProduct(n,s,e));const m=this.detailForm.get("variants");return(m&&m.dirty||this.variantAssetsChanged())&&(l=this.getUpdatedProductVariants(n,m,e,o)),this.productDetailService.updateProduct({product:n,languageCode:e,autoUpdate:null!==(r=null===(a=this.detailForm.get(["product","autoUpdateVariantNames"]))||void 0===a?void 0:a.value)&&void 0!==r&&r,productInput:d,variantsInput:l})})).subscribe(n=>{this.updateSlugAfterSave(n),this.detailForm.markAsPristine(),this.assetChanges={},this.variantAssetChanges={},this.variantFacetValueChanges={},this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Product"}),this.changeDetector.markForCheck()},n=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"Product"})})}canDeactivate(){return super.canDeactivate()&&!this.assetChanges.assets&&!this.assetChanges.featuredAsset}setFormValues(n,e){const o=(0,c.ZIM)(n,e);this.detailForm.patchValue({product:{enabled:n.enabled,name:o?o.name:"",slug:o?o.slug:"",description:o?o.description:"",facetValueIds:n.facetValues.map(a=>a.id)}}),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["product","customFields"]),n,o),this.buildVariantFormArray(n.variantList.items,e)}buildVariantFormArray(n,e){const o=this.detailForm.get("variants");n.forEach((a,r)=>{const s=(0,c.ZIM)(a,e),d=this.variantFacetValueChanges[a.id],l=d?d.map(f=>f.id):a.facetValues.map(f=>f.id),m={id:a.id,enabled:a.enabled,sku:a.sku,name:s?s.name:"",price:a.price,priceWithTax:a.priceWithTax,taxCategoryId:a.taxCategory.id,stockOnHand:a.stockOnHand,useGlobalOutOfStockThreshold:a.useGlobalOutOfStockThreshold,outOfStockThreshold:a.outOfStockThreshold,trackInventory:a.trackInventory,facetValueIds:l};let _=o.controls.find(f=>f.value.id===a.id);if(_?_.pristine&&_.patchValue(m):(_=this.formBuilder.group(Object.assign(Object.assign({},m),{facetValueIds:this.formBuilder.control(l)})),o.insert(r,_)),this.customVariantFields.length){let f=_.get(["customFields"]);f||(f=this.formBuilder.group(this.customVariantFields.reduce((v,Z)=>Object.assign(Object.assign({},v),{[Z.name]:""}),{})),_.addControl("customFields",f)),this.setCustomFieldFormValues(this.customVariantFields,f,a,s)}})}getUpdatedProduct(n,e,o){var a,r;const s=(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||"",slug:n.slug||"",description:n.description||""}});return Object.assign(Object.assign({},s),{assetIds:null===(a=this.assetChanges.assets)||void 0===a?void 0:a.map(d=>d.id),featuredAssetId:null===(r=this.assetChanges.featuredAsset)||void 0===r?void 0:r.id,facetValueIds:e.value.facetValueIds})}getUpdatedProductVariants(n,e,o,a){const r=e.controls.filter(l=>l.dirty),s=r.map(l=>this.productVariantMap.get(l.value.id)).filter(R.notNullOrUndefined),d=r.map(l=>l.value);if(s.length!==d.length)throw new Error((0,u.J)("error.product-variant-form-values-do-not-match"));return s.map((l,m)=>{var _,f;const v=d.find(y=>y.id===l.id),Z=(0,c.iSy)({translatable:l,updatedFields:v,customFieldConfig:this.customVariantFields,languageCode:o,defaultTranslation:{languageCode:o,name:""}});Z.taxCategoryId=v.taxCategoryId,Z.facetValueIds=v.facetValueIds,Z.price=a?v.priceWithTax:v.price;const T=this.variantAssetChanges[l.id];return T&&(Z.featuredAssetId=null===(_=T.featuredAsset)||void 0===_?void 0:_.id,Z.assetIds=null===(f=T.assets)||void 0===f?void 0:f.map(y=>y.id)),Z}).filter(R.notNullOrUndefined)}getProductFormGroup(){return this.detailForm.get("product")}updateSlugAfterSave(n){const e=n[0],o=this.detailForm.get(["product","slug"]);o&&function a(r){return r.hasOwnProperty("updateProduct")}(e)&&o.setValue(e.updateProduct.slug,{emitEvent:!1})}}yt.\u0275fac=function(n){return new(n||yt)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(c.iHG),t.Y36(K),t.Y36(p.qu),t.Y36(c.Z7U),t.Y36(c.gqp),t.Y36(c.DoR),t.Y36(x.Ye),t.Y36(t.sBO))},yt.\u0275cmp=t.Xpm({type:yt,selectors:[["vdr-product-detail"]],features:[t.qOj],decls:18,vars:21,consts:[[1,"flex","clr-flex-row"],[3,"entity"],[4,"vdrIfPermissions"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],["class","form",3,"formGroup",4,"ngIf"],["type","checkbox","clrToggle","","name","enabled",3,"formControl"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[1,"form",3,"formGroup"],["type","submit","hidden","","x-data","prevents enter key from triggering other buttons"],["clrTabLink","",3,"click"],[4,"clrIfActive"],[4,"ngIf"],[1,"clr-row"],[1,"clr-col"],["formGroupName","product",1,"form-block"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],[1,"auto-rename-wrapper"],["clrCheckbox","","type","checkbox","id","auto-update","formControlName","autoUpdateVariantNames"],["for","slug",3,"label","errors"],["id","slug","type","text","formControlName","slug",3,"readonly"],["formControlName","description",3,"readonly","label"],["formGroupName","customFields",4,"ngIf"],["locationId","product-detail",3,"entity$","detailForm"],[1,"clr-col-md-auto"],[3,"assets","featuredAsset","updatePermissions","change"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","btn btn-sm btn-secondary",3,"click",4,"vdrIfPermissions"],[4,"vdrIfMultichannel"],[3,"label",4,"vdrIfDefaultChannelActive"],[3,"label"],[1,"flex","channel-assignment"],[4,"ngFor","ngForOf"],[1,"btn","btn-sm",3,"click"],["shape","layers"],["icon","times-circle",3,"iconClick",4,"ngIf"],["icon","times-circle",3,"iconClick"],[3,"channelCode"],["formGroupName","customFields"],["entityName","Product",3,"customFields","customFieldsFormGroup","readonly"],[3,"facetValue","removable","remove"],[1,"btn","btn-sm","btn-secondary",3,"click"],["shape","plus"],[3,"variantsChange"],[1,"form-block"],[1,"view-mode"],[1,"btn-group"],[1,"btn","btn-secondary-outline",3,"click"],["shape","list"],[1,"full-label"],[1,"btn",3,"click"],["shape","table"],[1,"variant-filter"],[3,"formControl","placeholder"],[1,"icon-button",3,"click"],["shape","times"],[1,"flex-spacer"],["class","btn btn-secondary edit-variants-btn mb0 mr0",3,"routerLink",4,"vdrIfPermissions"],["class","pagination-row mt4",4,"ngIf"],[3,"variants","paginationConfig","optionGroups","channelPriceIncludesTax","productVariantsFormArray","pendingAssetChanges",4,"ngIf"],[3,"variants","paginationConfig","channelPriceIncludesTax","pendingFacetValueChanges","optionGroups","productVariantsFormArray","taxCategories","customFields","customOptionFields","activeLanguage","pendingAssetChanges","assignToChannel","removeFromChannel","assetChange","updateProductOption","selectionChange",4,"ngIf"],[1,"btn","btn-secondary","edit-variants-btn","mb0","mr0",3,"routerLink"],["shape","add-text"],[1,"pagination-row","mt4"],[3,"itemsPerPage","itemsPerPageChange"],[3,"id","currentPage","itemsPerPage","pageChange"],[3,"variants","paginationConfig","optionGroups","channelPriceIncludesTax","productVariantsFormArray","pendingAssetChanges"],[3,"variants","paginationConfig","channelPriceIncludesTax","pendingFacetValueChanges","optionGroups","productVariantsFormArray","taxCategories","customFields","customOptionFields","activeLanguage","pendingAssetChanges","assignToChannel","removeFromChannel","assetChange","updateProductOption","selectionChange"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"div",0),t._UZ(3,"vdr-entity-info",1),t.ALo(4,"async"),t.YNc(5,ba,5,5,"clr-toggle-wrapper",2),t.qZA(),t.TgZ(6,"vdr-language-selector",3),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(7,"async"),t.ALo(8,"async"),t.ALo(9,"async"),t.qZA()(),t.TgZ(10,"vdr-ab-right"),t._UZ(11,"vdr-action-bar-items",4),t.YNc(12,Za,3,4,"button",5),t.ALo(13,"async"),t.YNc(14,Aa,1,2,"ng-template",null,6,t.W1O),t.qZA()(),t.YNc(16,ja,11,10,"form",7),t.ALo(17,"async")),2&n){const o=t.MAs(15);t.xp6(3),t.Q6J("entity",t.lcZ(4,8,e.entity$)),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(20,X)),t.xp6(1),t.Q6J("disabled",t.lcZ(7,10,e.isNew$))("availableLanguageCodes",t.lcZ(8,12,e.availableLanguages$))("currentLanguageCode",t.lcZ(9,14,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(13,16,e.isNew$))("ngIfElse",o),t.xp6(4),t.Q6J("ngIf",t.lcZ(17,18,e.product$))}},directives:[P.Kk,P.BN,Dt.V,D.H,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.oH,h.MgK,ct.S,P.mz,tt.W,x.O5,p._Y,p.JL,p.sg,h.gKI,h.dl,h.S4y,h.Iq$,h.Qs7,h.tam,h.UkA,p.x0,ye.u,Pe.M,Zi.J,x.sg,Ut.Y,Fe.n,h.qvL,Et.h,p.Fj,p.u,_e.Y,Yt.y,te.C,j,Rt.q,xt,A.yS,ue.w,me.L,bt,At],pipes:[x.Ov,O.X$,ae.E,N.j],styles:["[_nghost-%COMP%] trix-toolbar{top:24px}.facets[_ngcontent-%COMP%]{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center}@media screen and (min-width: 768px){.facets[_ngcontent-%COMP%]{max-width:340px}}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-left:none}.group-name[_ngcontent-%COMP%]{padding-right: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;overflow-y:auto}.auto-rename-wrapper[_ngcontent-%COMP%]{overflow:hidden;max-height:0;padding-left:9.5rem;margin-bottom:0;transition:max-height .2s,margin-bottom .2s}.auto-rename-wrapper.visible[_ngcontent-%COMP%]{max-height:24px;margin-bottom:12px}.pagination-row[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between}"],changeDetection:0});var Me=g(1339),Ba=g(538),Ha=g(2875),Ra=g(809);const za=["productSearchInputComponent"];function Ka(i,n){1&i&&t._UZ(0,"vdr-status-badge",20)}const ke=function(){return["UpdateCatalog","UpdateProduct"]},Wa=function(i){return{count:i}};function Xa(i,n){if(1&i){const e=t.EpF();t.ynx(0),t.TgZ(1,"button",21),t.NdJ("click",function(){return t.CHM(e),t.oxw().runPendingSearchIndexUpdates()}),t.ALo(2,"hasPermission"),t._UZ(3,"vdr-status-badge",20),t._uU(4),t.ALo(5,"translate"),t.qZA(),t._UZ(6,"div",22),t.BQk()}if(2&i){const e=t.oxw();t.xp6(1),t.Q6J("disabled",!t.lcZ(2,2,t.DdM(7,ke))),t.xp6(3),t.hij(" ",t.xi3(5,4,"catalog.run-pending-search-index-updates",t.VKq(8,Wa,e.pendingSearchIndexUpdates))," ")}}const tr=function(){return["./create"]};function er(i,n){1&i&&(t.TgZ(0,"a",23),t._UZ(1,"clr-icon",24),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,tr)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-product")," "))}function nr(i,n){if(1&i&&(t._UZ(0,"img",38),t.ALo(1,"assetPreview")),2&i){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function or(i,n){1&i&&(t.TgZ(0,"div",39),t._UZ(1,"clr-icon",40),t.qZA())}function ir(i,n){if(1&i&&(t.TgZ(0,"div",41),t._uU(1),t.qZA()),2&i){const e=t.oxw().item;t.xp6(1),t.Oqu(e.sku)}}function ar(i,n){1&i&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.disabled")))}const rr=function(i){return["./",i]},sr=function(){return["DeleteCatalog","DeleteProduct"]};function cr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"td",25)(1,"div",26),t.YNc(2,nr,2,4,"img",27),t.YNc(3,or,2,0,"ng-template",null,28,t.W1O),t.qZA()(),t.TgZ(5,"td",29)(6,"div"),t._uU(7),t.qZA(),t.YNc(8,ir,2,1,"div",30),t.qZA(),t.TgZ(9,"td",31),t.YNc(10,ar,3,3,"vdr-chip",10),t.qZA(),t.TgZ(11,"td",32),t._UZ(12,"vdr-table-row-action",33),t.ALo(13,"translate"),t.TgZ(14,"vdr-dropdown")(15,"button",34),t._uU(16),t.ALo(17,"translate"),t._UZ(18,"clr-icon",35),t.qZA(),t.TgZ(19,"vdr-dropdown-menu",8)(20,"button",36),t.NdJ("click",function(){const r=t.CHM(e).item;return t.oxw().deleteProduct(r.productId)}),t.ALo(21,"hasPermission"),t._UZ(22,"clr-icon",37),t._uU(23),t.ALo(24,"translate"),t.qZA()()()()}if(2&i){const e=n.item,o=t.MAs(4),a=t.oxw();t.ekj("disabled",!e.enabled),t.xp6(2),t.Q6J("ngIf",a.groupByProduct?e.productAsset:e.productVariantAsset||e.productAsset)("ngIfElse",o),t.xp6(3),t.ekj("disabled",!e.enabled),t.xp6(2),t.Oqu(a.groupByProduct?e.productName:e.productVariantName),t.xp6(1),t.Q6J("ngIf",!a.groupByProduct),t.xp6(1),t.ekj("disabled",!e.enabled),t.xp6(1),t.Q6J("ngIf",!e.enabled),t.xp6(1),t.ekj("disabled",!e.enabled),t.xp6(1),t.Q6J("label",t.lcZ(13,18,"common.edit"))("linkTo",t.VKq(26,rr,e.productId)),t.xp6(4),t.hij(" ",t.lcZ(17,20,"common.actions")," "),t.xp6(4),t.Q6J("disabled",!t.lcZ(21,22,t.DdM(28,sr))),t.xp6(3),t.hij(" ",t.lcZ(24,24,"common.delete")," ")}}const lr=function(){return["CreateCatalog","CreateProduct"]};class Pt extends c.t7C{constructor(n,e,o,a,r,s,d){super(s,d),this.dataService=n,this.modalService=e,this.notificationService=o,this.jobQueueService=a,this.serverConfigService=r,this.searchTerm="",this.facetValueIds=[],this.groupByProduct=!0,this.pendingSearchIndexUpdates=0,this.route.queryParamMap.pipe((0,C.U)(l=>l.get("q")),(0,S.R)(this.destroy$)).subscribe(l=>{this.searchTerm=l||"",this.productSearchInput&&this.productSearchInput.setSearchTerm(l)}),this.selectedFacetValueIds$=this.route.queryParamMap.pipe((0,C.U)(l=>l.getAll("fvids"))),this.selectedFacetValueIds$.pipe((0,S.R)(this.destroy$)).subscribe(l=>{this.facetValueIds=l,this.productSearchInput&&this.productSearchInput.setFacetValues(l)}),super.setQueryFn((...l)=>this.dataService.product.searchProducts(this.searchTerm,...l).refetchOnChannelChange(),l=>l.search,(l,m)=>({input:{skip:l,take:m,term:this.searchTerm,facetValueIds:this.facetValueIds,facetValueOperator:c.FnJ.AND,groupByProduct:this.groupByProduct}})),this.selectionManager=new c.ZE0({multiSelect:!0,itemsAreEqual:(l,m)=>this.groupByProduct?l.productId===m.productId:l.productVariantId===m.productVariantId,additiveMode:!0})}ngOnInit(){super.ngOnInit(),this.facetValues$=this.result$.pipe((0,C.U)(n=>n.search.facetValues)),this.facetValues$.pipe((0,w.q)(1),(0,Me.g)(100),(0,Ba.M)(this.selectedFacetValueIds$)).subscribe(([n,e])=>{this.productSearchInput.setFacetValues(e)}),this.availableLanguages$=this.serverConfigService.getAvailableLanguages(),this.contentLanguage$=this.dataService.client.uiState().mapStream(({uiState:n})=>n.contentLanguage).pipe((0,$.b)(()=>this.refresh())),this.dataService.product.getPendingSearchIndexUpdates().mapSingle(({pendingSearchIndexUpdates:n})=>n).subscribe(n=>this.pendingSearchIndexUpdates=n)}ngAfterViewInit(){this.productSearchInput&&this.searchTerm&&setTimeout(()=>this.productSearchInput.setSearchTerm(this.searchTerm))}setSearchTerm(n){this.searchTerm=n,this.setQueryParam({q:n||null,page:1}),this.refresh()}setFacetValueIds(n){this.facetValueIds=n,this.setQueryParam({fvids:n,page:1}),this.refresh()}rebuildSearchIndex(){this.dataService.product.reindex().subscribe(({reindex:n})=>{this.notificationService.info((0,u.J)("catalog.reindexing")),this.jobQueueService.addJob(n.id,e=>{if(e.state===c.Zyh.COMPLETED){const o=(new Intl.NumberFormat).format(e.duration||0);this.notificationService.success((0,u.J)("catalog.reindex-successful"),{count:e.result.indexedItemCount,time:o}),this.refresh()}else this.notificationService.error((0,u.J)("catalog.reindex-error"))})})}runPendingSearchIndexUpdates(){this.dataService.product.runPendingSearchIndexUpdates().subscribe(n=>{this.notificationService.info((0,u.J)("catalog.running-search-index-updates"),{count:this.pendingSearchIndexUpdates}),this.pendingSearchIndexUpdates=0})}deleteProduct(n){this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product"),buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(e=>e?this.dataService.product.deleteProduct(n):M.E),(0,Me.g)(500)).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"Product"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"Product"})})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}}function dr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw().save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 pr(i,n){if(1&i&&(t.TgZ(0,"tr",22)(1,"td",23),t._UZ(2,"vdr-entity-info",13),t.qZA(),t.TgZ(3,"td",23),t._UZ(4,"input",24),t.ALo(5,"hasPermission"),t.qZA(),t.TgZ(6,"td",23),t._UZ(7,"input",25),t.qZA()()),2&i){const e=n.$implicit,o=n.index,a=t.oxw(3);t.Q6J("formGroupName",o),t.xp6(2),t.Q6J("entity",e.value),t.xp6(2),t.Q6J("readonly",!t.lcZ(5,3,a.updatePermission))}}function ur(i,n){if(1&i&&(t.TgZ(0,"div",10)(1,"section",11)(2,"div",12),t._UZ(3,"vdr-entity-info",13),t.TgZ(4,"div",14),t._uU(5),t.qZA()(),t.TgZ(6,"div",15)(7,"vdr-form-field",16),t.ALo(8,"translate"),t._UZ(9,"input",17),t.ALo(10,"hasPermission"),t.qZA(),t.TgZ(11,"vdr-form-field",18),t.ALo(12,"translate"),t._UZ(13,"input",19),t.ALo(14,"hasPermission"),t.qZA()(),t.TgZ(15,"section",15)(16,"table",20)(17,"thead")(18,"tr"),t._UZ(19,"th"),t.TgZ(20,"th"),t._uU(21),t.ALo(22,"translate"),t.qZA(),t.TgZ(23,"th"),t._uU(24),t.ALo(25,"translate"),t.qZA()()(),t.TgZ(26,"tbody"),t.YNc(27,pr,8,5,"tr",21),t.qZA()()()()()),2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.xp6(1),t.Q6J("formArrayName",o),t.xp6(2),t.Q6J("entity",e.value),t.xp6(2),t.Oqu(e.value.code),t.xp6(2),t.Q6J("label",t.lcZ(8,12,"common.name")),t.xp6(2),t.Q6J("id","name-"+o)("readonly",!t.lcZ(10,14,a.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(12,16,"common.code")),t.xp6(2),t.Q6J("id","code-"+o)("readonly",!t.lcZ(14,18,a.updatePermission)),t.xp6(8),t.Oqu(t.lcZ(22,20,"common.name")),t.xp6(3),t.Oqu(t.lcZ(25,22,"common.code")),t.xp6(3),t.Q6J("ngForOf",a.getOptions(e))}}function mr(i,n){if(1&i&&(t.TgZ(0,"form",7)(1,"div",8),t.YNc(2,ur,28,24,"div",9),t.qZA()()),2&i){const e=t.oxw();t.Q6J("formGroup",e.detailForm),t.xp6(2),t.Q6J("ngForOf",e.getOptionGroups())}}Pt.\u0275fac=function(n){return new(n||Pt)(t.Y36(c.DoR),t.Y36(c.Z7U),t.Y36(c.gqp),t.Y36(c.u8d),t.Y36(c.iHG),t.Y36(A.F0),t.Y36(A.gz))},Pt.\u0275cmp=t.Xpm({type:Pt,selectors:[["vdr-products-list"]],viewQuery:function(n,e){if(1&n&&t.Gf(za,7),2&n){let o;t.iGM(o=t.CRH())&&(e.productSearchInput=o.first)}},features:[t.qOj],decls:43,vars:46,consts:[[3,"grow"],[1,"search-form"],[3,"facetValueResults","searchTermChange","facetValueChange"],["productSearchInputComponent",""],[1,"search-settings-menu","mr3"],["type","button","vdrDropdownTrigger","",1,"icon-button","search-index-button",3,"title"],["shape","cog"],["type","warning",4,"ngIf"],["vdrPosition","bottom-right"],[1,"dropdown-header"],[4,"ngIf"],["type","button","vdrDropdownItem","",3,"disabled","click"],[1,"flex","wrap"],[1,"mt2"],["type","checkbox","clrToggle","",3,"ngModel","ngModelChange"],[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"items","itemsPerPage","totalItems","currentPage","selectionManager","pageChange","itemsPerPageChange"],["locationId","product-list",3,"hostComponent","selectionManager"],["type","warning"],["type","button","vdrDropdownItem","",1,"run-updates-button",3,"disabled","click"],[1,"dropdown-divider"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"left","align-middle","image-col"],[1,"image-placeholder"],[3,"src",4,"ngIf","ngIfElse"],["imagePlaceholder",""],[1,"left","align-middle"],["class","sku",4,"ngIf"],[1,"align-middle"],[1,"right","align-middle"],["iconShape","edit",1,"edit-button",3,"label","linkTo"],["type","button","vdrDropdownTrigger","",1,"btn","btn-link","btn-sm"],["shape","caret down"],["type","button","vdrDropdownItem","",1,"delete-button",3,"disabled","click"],["shape","trash",1,"is-danger"],[3,"src"],[1,"placeholder"],["shape","image","size","48"],[1,"sku"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left",0)(2,"div",1)(3,"vdr-product-search-input",2,3),t.NdJ("searchTermChange",function(a){return e.setSearchTerm(a)})("facetValueChange",function(a){return e.setFacetValueIds(a)}),t.ALo(5,"async"),t.qZA(),t.TgZ(6,"vdr-dropdown",4)(7,"button",5),t.ALo(8,"translate"),t._UZ(9,"clr-icon",6),t.YNc(10,Ka,1,0,"vdr-status-badge",7),t.qZA(),t.TgZ(11,"vdr-dropdown-menu",8)(12,"h4",9),t._uU(13),t.ALo(14,"translate"),t.qZA(),t.YNc(15,Xa,7,10,"ng-container",10),t.TgZ(16,"button",11),t.NdJ("click",function(){return e.rebuildSearchIndex()}),t.ALo(17,"hasPermission"),t._uU(18),t.ALo(19,"translate"),t.qZA()()()(),t.TgZ(20,"div",12)(21,"clr-toggle-wrapper",13)(22,"input",14),t.NdJ("ngModelChange",function(a){return e.groupByProduct=a})("ngModelChange",function(){return e.refresh()}),t.qZA(),t.TgZ(23,"label"),t._uU(24),t.ALo(25,"translate"),t.qZA()(),t.TgZ(26,"vdr-language-selector",15),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(27,"async"),t.ALo(28,"async"),t.qZA()()(),t.TgZ(29,"vdr-ab-right"),t._UZ(30,"vdr-action-bar-items",16),t.YNc(31,er,4,5,"a",17),t.qZA()(),t.TgZ(32,"vdr-data-table",18),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(33,"async"),t.ALo(34,"async"),t.ALo(35,"async"),t.ALo(36,"async"),t._UZ(37,"vdr-bulk-action-menu",19)(38,"vdr-dt-column")(39,"vdr-dt-column")(40,"vdr-dt-column")(41,"vdr-dt-column"),t.YNc(42,cr,25,29,"ng-template"),t.qZA()),2&n&&(t.xp6(1),t.Q6J("grow",!0),t.xp6(2),t.Q6J("facetValueResults",t.lcZ(5,20,e.facetValues$)),t.xp6(4),t.Q6J("title",t.lcZ(8,22,e.pendingSearchIndexUpdates?"catalog.pending-search-index-updates":"catalog.search-index-controls")),t.xp6(3),t.Q6J("ngIf",e.pendingSearchIndexUpdates),t.xp6(3),t.Oqu(t.lcZ(14,24,"catalog.search-index-controls")),t.xp6(2),t.Q6J("ngIf",e.pendingSearchIndexUpdates),t.xp6(1),t.Q6J("disabled",!t.lcZ(17,26,t.DdM(44,ke))),t.xp6(2),t.hij(" ",t.lcZ(19,28,"catalog.rebuild-search-index")," "),t.xp6(4),t.Q6J("ngModel",e.groupByProduct),t.xp6(2),t.hij(" ",t.lcZ(25,30,"catalog.group-by-product")," "),t.xp6(2),t.Q6J("availableLanguageCodes",t.lcZ(27,32,e.availableLanguages$))("currentLanguageCode",t.lcZ(28,34,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(45,lr)),t.xp6(1),t.Q6J("items",t.lcZ(33,36,e.items$))("itemsPerPage",t.lcZ(34,38,e.itemsPerPage$))("totalItems",t.lcZ(35,40,e.totalItems$))("currentPage",t.lcZ(36,42,e.currentPage$))("selectionManager",e.selectionManager),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager))},directives:[P.Kk,P.BN,Ha.j,lt.J,dt.U,h.qvL,x.O5,Ra.e,pt.N,ut.H,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.On,h.MgK,ct.S,P.mz,tt.W,D.H,A.yS,ne.Q,ie.c,fe.E,Ut.Y,oe.v],pipes:[x.Ov,O.X$,N.j,ee.M],styles:[".image-col[_ngcontent-%COMP%]{width:70px}.image-placeholder[_ngcontent-%COMP%]{width:50px;height:50px;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-right:24px}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"]});class Ft extends c.UT_{constructor(n,e,o,a,r,s,d,l){super(n,e,o,a),this.route=n,this.router=e,this.serverConfigService=o,this.dataService=a,this.productDetailService=r,this.formBuilder=s,this.changeDetector=d,this.notificationService=l,this.autoUpdateVariantNames=!0,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct],this.optionGroupCustomFields=this.getCustomFieldConfig("ProductOptionGroup"),this.optionCustomFields=this.getCustomFieldConfig("ProductOption")}ngOnInit(){this.optionGroups$=this.route.snapshot.data.entity.pipe((0,C.U)(n=>n.optionGroups)),this.detailForm=new p.cw({optionGroups:new p.Oe([])}),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,I.a)(this.entity$,this.languageCode$,n).pipe((0,w.q)(1),(0,F.z)(([{optionGroups:e},o,a])=>{var r,s,d,l,m;const _=[];for(const f of this.getOptionGroups()){if((null===(r=f.get("name"))||void 0===r?void 0:r.dirty)||(null===(s=f.get("code"))||void 0===s?void 0:s.dirty)){const v=e.find(Z=>Z.id===f.value.id);if(v){const Z=this.getUpdatedOptionGroup(v,f,o);_.push(this.dataService.product.updateProductOptionGroup(Z))}}for(const v of this.getOptions(f))if((null===(d=v.get("name"))||void 0===d?void 0:d.dirty)||(null===(l=v.get("code"))||void 0===l?void 0:l.dirty)){const Z=null===(m=e.find(T=>T.id===f.value.id))||void 0===m?void 0:m.options.find(T=>T.id===v.value.id);if(Z){const T=this.getUpdatedOption(Z,v,o);_.push(this.productDetailService.updateProductOption(Object.assign(Object.assign({},T),{autoUpdate:this.autoUpdateVariantNames}),a,o))}}}return(0,Q.D)(_)})).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"ProductOptionGroup"})},e=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"ProductOptionGroup"})})}getUpdatedOptionGroup(n,e,o){return(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionGroupCustomFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||""}})}getUpdatedOption(n,e,o){return(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionGroupCustomFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||""}})}setFormValues(n,e){const o=new p.Oe([]);for(const a of n.optionGroups){const r=(0,c.ZIM)(a,e),s={id:a.id,createdAt:a.createdAt,updatedAt:a.updatedAt,code:a.code,name:r?r.name:""},d=new p.Oe([]);for(const m of a.options){const _=(0,c.ZIM)(m,e),f=this.formBuilder.group({id:m.id,createdAt:m.createdAt,updatedAt:m.updatedAt,code:m.code,name:_?_.name:""});d.push(f)}const l=this.formBuilder.group(s);l.addControl("options",d),o.push(l)}this.detailForm.setControl("optionGroups",o)}}Ft.\u0275fac=function(n){return new(n||Ft)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(c.iHG),t.Y36(c.DoR),t.Y36(K),t.Y36(p.qu),t.Y36(t.sBO),t.Y36(c.gqp))},Ft.\u0275cmp=t.Xpm({type:Ft,selectors:[["vdr-product-options-editor"]],features:[t.qOj],decls:16,vars:14,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"flex","center"],[1,"mr2"],["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",1,"clr-row"],["class","clr-col-12 clr-col-xl-6",4,"ngFor","ngForOf"],[1,"clr-col-12","clr-col-xl-6"],[1,"card",3,"formArrayName"],[1,"card-header","option-group-header"],[3,"entity"],[1,"ml2"],[1,"card-block"],["for","name",3,"label"],["type","text","formControlName","name",3,"id","readonly"],["for","code",3,"label"],["type","text","formControlName","code",3,"id","readonly"],["formGroupName","options",1,"facet-values-list","table","mt2","mb4"],["class","facet-value",3,"formGroupName",4,"ngFor","ngForOf"],[1,"facet-value",3,"formGroupName"],[1,"align-middle"],["type","text","formControlName","name",3,"readonly"],["type","text","formControlName","code"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(3,"async"),t.ALo(4,"async"),t.qZA()(),t.TgZ(5,"vdr-ab-right")(6,"div",1)(7,"div",2)(8,"clr-checkbox-wrapper")(9,"input",3),t.NdJ("ngModelChange",function(a){return e.autoUpdateVariantNames=a}),t.qZA(),t.TgZ(10,"label"),t._uU(11),t.ALo(12,"translate"),t.qZA()()(),t.YNc(13,dr,3,4,"button",4),t.qZA()()(),t.YNc(14,mr,3,2,"form",5),t.ALo(15,"async")),2&n&&(t.xp6(2),t.Q6J("availableLanguageCodes",t.lcZ(3,6,e.availableLanguages$))("currentLanguageCode",t.lcZ(4,8,e.languageCode$)),t.xp6(7),t.Q6J("ngModel",e.autoUpdateVariantNames),t.xp6(2),t.Oqu(t.lcZ(12,10,"catalog.auto-update-product-variant-name")),t.xp6(2),t.Q6J("vdrIfPermissions",e.updatePermission),t.xp6(1),t.Q6J("ngIf",t.lcZ(15,12,e.optionGroups$)))},directives:[P.Kk,P.BN,ct.S,P.mz,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.On,h.MgK,D.H,x.O5,p._Y,p.JL,p.sg,p.x0,x.sg,p.CE,Dt.V,Et.h,p.Fj,p.u],pipes:[x.Ov,O.X$,N.j],styles:[".option-group-header[_ngcontent-%COMP%]{display:flex;align-items:baseline}"],changeDetection:0});var gr=g(1057),_r=g(4744);function hr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.confirm-deletion-of-unused-variants-title"),"\n")}function fr(i,n){if(1&i&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&i){const e=n.$implicit;t.xp6(1),t.AsE("",e.name," (",e.sku,")")}}function vr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().confirm()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,2,"common.cancel")),t.xp6(3),t.hij(" ",t.lcZ(5,4,"common.confirm")," "))}class Ot{constructor(){this.variants=[]}confirm(){this.resolveWith(!0)}cancel(){this.resolveWith()}}function Cr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",7)(1,"div",8)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.TgZ(5,"input",9),t.NdJ("ngModelChange",function(a){return t.CHM(e).$implicit.name=a}),t.qZA()(),t.TgZ(6,"div",10)(7,"label"),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"vdr-option-value-input",11,12),t.NdJ("add",function(a){const s=t.CHM(e).index;return t.oxw().addOption(s,a.name)})("remove",function(a){const s=t.CHM(e).index;return t.oxw().removeOption(s,a)}),t.qZA()(),t.TgZ(12,"div")(13,"button",13),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().removeOptionGroup(r)}),t._UZ(14,"clr-icon",14),t.qZA()()()}if(2&i){const e=n.$implicit;t.xp6(3),t.Oqu(t.lcZ(4,8,"catalog.option")),t.xp6(2),t.Q6J("ngModel",e.name)("readonly",!e.isNew),t.xp6(3),t.Oqu(t.lcZ(9,10,"catalog.option-values")),t.xp6(2),t.Q6J("options",e.values)("groupName",e.name)("disabled",""===e.name),t.xp6(3),t.Q6J("disabled",e.locked)}}function xr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-checkbox-wrapper")(1,"input",18),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.enabled=a})("ngModelChange",function(){t.CHM(e);return t.oxw(2).formValueChanged=!0}),t.qZA(),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()}if(2&i){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.enabled),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.create"))}}function br(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-input-container")(1,"input",19),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.sku=a})("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().onFormChanged(a)}),t.ALo(2,"translate"),t.qZA()()}if(2&i){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.sku)("placeholder",t.lcZ(2,2,"catalog.sku"))}}function Zr(i,n){if(1&i&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.sku)}}function Tr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-input-container")(1,"vdr-currency-input",20),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.price=a})("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().onFormChanged(a)}),t.qZA()()}if(2&i){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngModel",e.price)("currencyCode",o.currencyCode)}}function Ar(i,n){if(1&i&&(t.TgZ(0,"span"),t._uU(1),t.ALo(2,"localeCurrency"),t.qZA()),2&i){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Oqu(t.xi3(2,1,e.price,o.currencyCode))}}function yr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-input-container")(1,"input",21),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.stock=a})("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().onFormChanged(a)}),t.qZA()()}if(2&i){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.stock)}}function Pr(i,n){if(1&i&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.stock)}}function Fr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-dropdown")(1,"button",22),t._UZ(2,"clr-icon",23),t.qZA(),t.TgZ(3,"vdr-dropdown-menu",24)(4,"button",25),t.NdJ("click",function(){const r=t.CHM(e).ngIf,s=t.oxw().$implicit;return t.oxw().deleteVariant(r,s.options)}),t._UZ(5,"clr-icon",26),t._uU(6),t.ALo(7,"translate"),t.qZA()()()}2&i&&(t.xp6(6),t.hij(" ",t.lcZ(7,1,"common.delete")," "))}function Or(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td",15),t.YNc(2,xr,5,4,"clr-checkbox-wrapper",16),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"td")(7,"div",17),t.YNc(8,br,3,4,"clr-input-container",16),t.YNc(9,Zr,2,1,"span",16),t.qZA()(),t.TgZ(10,"td")(11,"div",17),t.YNc(12,Tr,2,2,"clr-input-container",16),t.YNc(13,Ar,3,4,"span",16),t.qZA()(),t.TgZ(14,"td")(15,"div",17),t.YNc(16,yr,2,1,"clr-input-container",16),t.YNc(17,Pr,2,1,"span",16),t.qZA()(),t.TgZ(18,"td"),t.YNc(19,Fr,8,3,"vdr-dropdown",16),t.qZA()()),2&i){const e=n.$implicit,o=t.oxw();t.ekj("disabled",!e.enabled||e.existing),t.xp6(2),t.Q6J("ngIf",!e.existing),t.xp6(2),t.hij(" ",t.lcZ(5,11,o.getVariantName(e))," "),t.xp6(4),t.Q6J("ngIf",!e.existing),t.xp6(1),t.Q6J("ngIf",e.existing),t.xp6(3),t.Q6J("ngIf",!e.existing),t.xp6(1),t.Q6J("ngIf",e.existing),t.xp6(3),t.Q6J("ngIf",!e.existing),t.xp6(1),t.Q6J("ngIf",e.existing),t.xp6(2),t.Q6J("ngIf",e.productVariantId)}}Ot.\u0275fac=function(n){return new(n||Ot)},Ot.\u0275cmp=t.Xpm({type:Ot,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,hr,2,3,"ng-template",0),t._uU(1),t.ALo(2,"translate"),t.TgZ(3,"ul"),t.YNc(4,fr,2,2,"li",1),t.qZA(),t.YNc(5,vr,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))},directives:[Nt.q,x.sg,qt.n],pipes:[O.X$],styles:[""],changeDetection:0});const Ir=function(i){return{count:i}};class Le{constructor(n){for(const e of Object.keys(n))this[e]=n[e]}}class It{constructor(n,e,o,a,r){this.route=n,this.dataService=e,this.productDetailService=o,this.notificationService=a,this.modalService=r,this.formValueChanged=!1,this.optionsChanged=!1,this.generatedVariants=[]}ngOnInit(){this.initOptionsAndVariants(),this.languageCode=this.route.snapshot.paramMap.get("lang")||(0,c.kAh)(),this.dataService.settings.getActiveChannel().single$.subscribe(n=>{this.currencyCode=n.activeChannel.currencyCode})}onFormChanged(n){this.formValueChanged=!0,n.enabled=!0}canDeactivate(){return!this.formValueChanged}getVariantsToAdd(){return this.generatedVariants.filter(n=>!n.existing&&n.enabled)}getVariantName(n){return 0===n.options.length?(0,u.J)("catalog.default-variant"):n.options.map(e=>e.name).join(" ")}addOptionGroup(){this.optionGroups.push({isNew:!0,locked:!1,name:"",values:[]}),this.optionsChanged=!0}removeOptionGroup(n){const e=n.id;n.isNew?(this.optionGroups=this.optionGroups.filter(o=>o!==n),this.generateVariants(),this.optionsChanged=!0):e&&this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product-option-group"),translationVars:{name:n.name},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.product.removeOptionGroupFromProduct({optionGroupId:e,productId:this.product.id}):M.E)).subscribe(({removeOptionGroupFromProduct:o})=>{var a;"Product"===o.__typename?(this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"ProductOptionGroup"}),this.initOptionsAndVariants(),this.optionsChanged=!0):"ProductOptionInUseError"===o.__typename&&this.notificationService.error(null!==(a=o.message)&&void 0!==a?a:"")})}addOption(n,e){const o=this.optionGroups[n];o&&(o.values.push({name:e,locked:!1}),this.generateVariants(),this.optionsChanged=!0)}removeOption(n,{id:e,name:o}){const a=this.optionGroups[n];a&&(e?this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product-option"),translationVars:{name:o},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(r=>r?this.dataService.product.deleteProductOption(e):M.E)).subscribe(({deleteProductOption:r})=>{var s;r.result===c.PcR.DELETED?(this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"ProductOption"}),a.values=a.values.filter(d=>d.id!==e),this.generateVariants(),this.optionsChanged=!0):this.notificationService.error(null!==(s=r.message)&&void 0!==s?s:"")}):(a.values=a.values.filter(r=>r.name!==o),this.generateVariants()))}generateVariants(){const n=this.optionGroups.map(a=>a.values),e=this.generatedVariants,o=(a,r,s,d)=>{var l,m,_,f,v,Z;const T=this.getVariantPrototype(r,e);return new Le({enabled:!0,existing:!!s,productVariantId:null==s?void 0:s.id,isDefault:a,options:r,price:null!==(m=null!==(l=null==s?void 0:s.price)&&void 0!==l?l:null==d?void 0:d.price)&&void 0!==m?m:T.price,sku:null!==(f=null!==(_=null==s?void 0:s.sku)&&void 0!==_?_:null==d?void 0:d.sku)&&void 0!==f?f:T.sku,stock:null!==(Z=null!==(v=null==s?void 0:s.stockOnHand)&&void 0!==v?v:null==d?void 0:d.stockOnHand)&&void 0!==Z?Z:T.stock})};this.generatedVariants=n.length?(0,R.generateAllCombinations)(n).map(a=>{const r=this.product.variants.find(d=>this.optionsAreEqual(d.options,a)),s=this.product.variants.find(d=>this.optionsAreSubset(d.options,a));return o(!1,a,r,s)}):[o(!0,[],this.product.variants[0])]}getVariantPrototype(n,e){return e.filter(a=>n.map(r=>r.name).filter(r=>a.options.map(s=>s.name).includes(r))).length?(0,gr.e)(e[0],["sku","price","stock"]):{sku:"",price:0,stock:0}}deleteVariant(n,e){this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product-variant"),translationVars:{name:e.map(o=>o.name).join(" ")},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.productDetailService.deleteProductVariant(n,this.product.id):M.E),(0,b.w)(()=>this.reFetchProduct(null))).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"ProductVariant"}),this.initOptionsAndVariants()},o=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"ProductVariant"})})}save(){this.optionGroups=this.optionGroups.filter(e=>e.values.length);const n=this.optionGroups.filter(e=>e.isNew).map(e=>({name:e.name,values:[]}));this.checkUniqueSkus().pipe((0,F.z)(()=>this.confirmDeletionOfObsoleteVariants()),(0,F.z)(()=>this.productDetailService.createProductOptionGroups(n,this.languageCode)),(0,F.z)(e=>this.addOptionGroupsToProduct(e)),(0,F.z)(e=>this.addNewOptionsToGroups(e)),(0,F.z)(e=>this.fetchOptionGroups(e)),(0,F.z)(e=>this.createNewProductVariants(e)),(0,F.z)(e=>this.deleteObsoleteVariants(e.createProductVariants)),(0,F.z)(e=>this.reFetchProduct(e))).subscribe({next:e=>{this.formValueChanged=!1,this.notificationService.success((0,u.J)("catalog.created-new-variants-success"),{count:e.length}),this.initOptionsAndVariants(),this.optionsChanged=!1}})}checkUniqueSkus(){const n=this.generatedVariants.filter((e,o)=>e.enabled&&this.generatedVariants.find(a=>a.sku.trim()===e.sku.trim()&&a!==e));return n.length?this.modalService.dialog({title:(0,u.J)("catalog.duplicate-sku-warning"),body:(0,J.T)(n.map(e=>`${e.sku}`)).join(", "),buttons:[{label:(0,u.J)("common.close"),returnValue:!1,type:"primary"}]}).pipe((0,F.z)(e=>M.E)):(0,k.of)(!0)}confirmDeletionOfObsoleteVariants(){const n=this.getObsoleteVariants();return n.length?this.modalService.fromComponent(Ot,{locals:{variants:n}}).pipe((0,F.z)(e=>!0===e?(0,k.of)(!0):M.E)):(0,k.of)(!0)}getObsoleteVariants(){return this.product.variants.filter(n=>!this.generatedVariants.find(e=>e.productVariantId===n.id))}hasOnlyDefaultVariant(n){return 1===n.variants.length&&0===n.optionGroups.length}addOptionGroupsToProduct(n){return n.length?(0,Q.D)(n.map(e=>this.dataService.product.addOptionGroupToProduct({productId:this.product.id,optionGroupId:e.id}))).pipe((0,C.U)(()=>n)):(0,k.of)([])}addNewOptionsToGroups(n){const e=this.optionGroups.map(a=>{const r=n.find(d=>d.name===a.name),s=r?r.id:a.id;if(!s)throw new Error("Could not get a productOptionGroupId");return a.values.filter(d=>!d.locked).map(d=>({productOptionGroupId:s,code:(0,et.U)(d.name,"-"),translations:[{name:d.name,languageCode:this.languageCode}]}))}).reduce((a,r)=>[...a,...r],[]),o=[...n.map(a=>a.id),...this.optionGroups.map(a=>a.id).filter(R.notNullOrUndefined)];return e.length?(0,Q.D)(e.map(a=>this.dataService.product.addOptionToGroup(a))).pipe((0,C.U)(()=>o)):(0,k.of)(o)}fetchOptionGroups(n){return(0,Q.D)(n.map(e=>this.dataService.product.getProductOptionGroup(e).mapSingle(o=>o.productOptionGroup).pipe((0,Qt.h)(R.notNullOrUndefined)))).pipe((0,_r.d)([]))}createNewProductVariants(n){const e=n.filter(R.notNullOrUndefined).map(a=>a.options).reduce((a,r)=>[...a,...r],[]),o=this.generatedVariants.filter(a=>a.enabled&&!a.existing).map(a=>{const r=n.map((s,d)=>{const l=s.options.find(m=>m.name===a.options[d].name);if(l)return l.id;throw new Error(`Could not find a matching option for group ${s.name}`)});return{price:a.price,sku:a.sku,stock:a.stock,optionIds:r}});return this.productDetailService.createProductVariants(this.product,o,e,this.languageCode)}deleteObsoleteVariants(n){const e=this.getObsoleteVariants();if(e.length){const o=e.map(a=>this.dataService.product.deleteProductVariant(a.id).pipe((0,C.U)(()=>n)));return(0,Q.D)(...o)}return(0,k.of)(n)}reFetchProduct(n){const e=this.route.snapshot.paramMap.get("id");return e?this.dataService.product.getProduct(e).single$.pipe((0,C.U)(()=>n)):(0,k.of)(n)}initOptionsAndVariants(){this.dataService.product.getProductVariantsOptions(this.route.snapshot.paramMap.get("id")).mapSingle(({product:n})=>n).subscribe(n=>{this.product=n;const e=n.variants.map(a=>a.options.map(r=>r.id)).flat(),o=n.variants.map(a=>a.options.map(r=>r.groupId)).flat();this.optionGroups=n.optionGroups.map(a=>({id:a.id,isNew:!1,name:a.name,locked:o.includes(a.id),values:a.options.map(r=>({id:r.id,name:r.name,locked:e.includes(r.id)}))})),this.generateVariants()})}optionsAreEqual(n,e){return this.toOptionString(n)===this.toOptionString(e)}optionsAreSubset(n,e){return this.toOptionString(e).includes(this.toOptionString(n))}toOptionString(n){return n.map(e=>e.name).sort().join("|")}}It.\u0275fac=function(n){return new(n||It)(t.Y36(A.gz),t.Y36(c.DoR),t.Y36(K),t.Y36(c.gqp),t.Y36(c.Z7U))},It.\u0275cmp=t.Xpm({type:It,selectors:[["vdr-product-variants-editor"]],decls:29,vars:24,consts:[[1,"btn","btn-primary",3,"disabled","click"],["class","option-groups",4,"ngFor","ngForOf"],[1,"btn","btn-primary-outline","btn-sm",3,"click"],["shape","plus"],[1,"variants-preview"],[1,"table"],[3,"disabled",4,"ngFor","ngForOf"],[1,"option-groups"],[1,"name"],["clrInput","","name","name",3,"ngModel","readonly","ngModelChange"],[1,"values"],[3,"options","groupName","disabled","add","remove"],["optionValueInputComponent",""],[1,"btn","btn-icon","btn-danger-outline","mt5",3,"disabled","click"],["shape","trash"],[1,"left"],[4,"ngIf"],[1,"flex","center"],["type","checkbox","name","enabled","clrCheckbox","",3,"ngModel","ngModelChange"],["clrInput","","type","text","name","sku","required","",3,"ngModel","placeholder","ngModelChange"],["clrInput","","name","price",3,"ngModel","currencyCode","ngModelChange"],["clrInput","","type","number","name","stock","min","0","step","1",3,"ngModel","ngModelChange"],["vdrDropdownTrigger","",1,"icon-button"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",1,"delete-button",3,"click"],["shape","trash",1,"is-danger"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-right")(2,"button",0),t.NdJ("click",function(){return e.save()}),t._uU(3),t.ALo(4,"translate"),t.qZA()()(),t.YNc(5,Cr,15,12,"div",1),t.TgZ(6,"button",2),t.NdJ("click",function(){return e.addOptionGroup()}),t._UZ(7,"clr-icon",3),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"div",4)(11,"table",5)(12,"thead")(13,"tr"),t._UZ(14,"th"),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,"th"),t._uU(22),t.ALo(23,"translate"),t.qZA(),t.TgZ(24,"th"),t._uU(25),t.ALo(26,"translate"),t.qZA(),t._UZ(27,"th"),t.qZA()(),t.YNc(28,Or,20,13,"tr",6),t.qZA()()),2&n&&(t.xp6(2),t.Q6J("disabled",!e.formValueChanged&&!e.optionsChanged||0===e.getVariantsToAdd().length),t.xp6(1),t.hij(" ",t.xi3(4,9,"common.add-new-variants",t.VKq(22,Ir,e.getVariantsToAdd().length))," "),t.xp6(2),t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(9,12,"catalog.add-option"),"\n"),t.xp6(8),t.Oqu(t.lcZ(17,14,"catalog.variant")),t.xp6(3),t.Oqu(t.lcZ(20,16,"catalog.sku")),t.xp6(3),t.Oqu(t.lcZ(23,18,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(26,20,"catalog.stock-on-hand")),t.xp6(3),t.Q6J("ngForOf",e.generatedVariants))},directives:[P.Kk,P.mz,x.sg,h.MgK,V.y,p.Fj,h.xRP,p.JJ,p.On,W,h.qvL,x.O5,h.PEh,p.Wl,h.KKC,h.G55,p.Q7,zt.K,p.qQ,p.wV,lt.J,dt.U,pt.N,ut.H],pipes:[O.X$,re.k],styles:[".option-groups[_ngcontent-%COMP%]{display:flex}.option-groups[_ngcontent-%COMP%]:first-of-type{margin-top:24px}.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 Mt extends c.p_9{constructor(n,e){super(n,{__typename:"Asset",id:"",createdAt:"",updatedAt:"",name:"",type:c.h3s.IMAGE,fileSize:0,mimeType:"",width:0,height:0,source:"",preview:"",focalPoint:null},o=>e.product.getAsset(o).mapStream(a=>a.asset))}}Mt.\u0275fac=function(n){return new(n||Mt)(t.LFG(A.F0),t.LFG(c.DoR))},Mt.\u0275prov=t.Yz7({token:Mt,factory:Mt.\u0275fac,providedIn:"root"});class kt extends c.p_9{constructor(n,e){super(n,{__typename:"Collection",id:"",createdAt:"",updatedAt:"",languageCode:(0,c.kAh)(),name:"",slug:"",isPrivate:!1,breadcrumbs:[],description:"",featuredAsset:null,assets:[],translations:[],inheritFilters:!0,filters:[],parent:{},children:null},o=>e.collection.getCollection(o).mapStream(a=>a.collection))}}kt.\u0275fac=function(n){return new(n||kt)(t.LFG(A.F0),t.LFG(c.DoR))},kt.\u0275prov=t.Yz7({token:kt,factory:kt.\u0275fac,providedIn:"root"});class Lt extends c.p_9{constructor(n,e){super(n,{__typename:"Facet",id:"",createdAt:"",updatedAt:"",isPrivate:!1,languageCode:(0,c.kAh)(),name:"",code:"",translations:[],values:[]},o=>e.facet.getFacet(o).mapStream(a=>a.facet))}}Lt.\u0275fac=function(n){return new(n||Lt)(t.LFG(A.F0),t.LFG(c.DoR))},Lt.\u0275prov=t.Yz7({token:Lt,factory:Lt.\u0275fac,providedIn:"root"});class Vt extends c.p_9{constructor(n,e){super(e,{__typename:"Product",id:"",createdAt:"",updatedAt:"",enabled:!0,languageCode:(0,c.kAh)(),name:"",slug:"",featuredAsset:null,assets:[],description:"",translations:[],optionGroups:[],facetValues:[],variantList:{items:[],totalItems:0},channels:[]},o=>n.product.getProduct(o,{take:10}).refetchOnChannelChange().mapStream(a=>a.product))}}Vt.\u0275fac=function(n){return new(n||Vt)(t.LFG(c.DoR),t.LFG(A.F0))},Vt.\u0275prov=t.Yz7({token:Vt,factory:Vt.\u0275fac,providedIn:"root"});class it extends c.p_9{constructor(n,e){super(n,{__typename:"Product",id:"",createdAt:"",updatedAt:"",name:"",optionGroups:[],variants:[]},o=>e.product.getProductVariantsOptions(o).mapStream(a=>a.product))}}it.\u0275fac=function(n){return new(n||it)(t.LFG(A.F0),t.LFG(c.DoR))},it.\u0275prov=t.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"});const Ve=[{path:"products",component:Pt,data:{breadcrumb:(0,u.J)("breadcrumb.products")}},{path:"products/:id",component:yt,resolve:(0,c.Po4)(Vt),canDeactivate:[c.TSp],data:{breadcrumb:we}},{path:"products/:id/manage-variants",component:It,resolve:(0,c.Po4)(it),canDeactivate:[c.TSp],data:{breadcrumb:Je}},{path:"products/:id/options",component:Ft,resolve:(0,c.Po4)(it),canDeactivate:[c.TSp],data:{breadcrumb:De}},{path:"facets",component:Ct,data:{breadcrumb:(0,u.J)("breadcrumb.facets")}},{path:"facets/:id",component:vt,resolve:(0,c.Po4)(Lt),canDeactivate:[c.TSp],data:{breadcrumb:Ue}},{path:"collections",component:ft,data:{breadcrumb:(0,u.J)("breadcrumb.collections")}},{path:"collections/:id",component:gt,resolve:(0,c.Po4)(kt),canDeactivate:[c.TSp],data:{breadcrumb:Ne}},{path:"assets",component:st,data:{breadcrumb:(0,u.J)("breadcrumb.assets")}},{path:"assets/:id",component:rt,resolve:(0,c.Po4)(Mt),data:{breadcrumb:qe}}];function we(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.products",getName:e=>e.name,route:"products"})}function Je(i,n){return i.entity.pipe((0,C.U)(e=>[{label:(0,u.J)("breadcrumb.products"),link:["../","products"]},{label:`${e.name}`,link:["../","products",n.id,{tab:"variants"}]},{label:(0,u.J)("breadcrumb.manage-variants"),link:["manage-variants"]}]))}function De(i,n){return i.entity.pipe((0,C.U)(e=>[{label:(0,u.J)("breadcrumb.products"),link:["../","products"]},{label:`${e.name}`,link:["../","products",n.id,{tab:"variants"}]},{label:(0,u.J)("breadcrumb.product-options"),link:["options"]}]))}function Ue(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.facets",getName:e=>e.name,route:"facets"})}function Ne(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.collections",getName:e=>e.name,route:"collections"})}function qe(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.assets",getName:e=>e.name,route:"assets"})}function Mr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.assign-to-channel"),"\n")}const kr=function(i){return{channelCode:i}};function Lr(i,n){if(1&i&&(t._uU(0),t.ALo(1,"translate")),2&i){const e=t.oxw(2);t.hij(" ",t.xi3(1,1,"catalog.assign-to-named-channel",t.VKq(4,kr,null==e.selectedChannel?null:e.selectedChannel.code))," ")}}function Vr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.no-channel-selected")," ")}function wr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",5),t.NdJ("click",function(){return t.CHM(e),t.oxw().assign()}),t.YNc(4,Lr,2,6,"ng-template",6),t.YNc(5,Vr,2,3,"ng-template",null,7,t.W1O),t.qZA()}if(2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,4,"common.cancel")),t.xp6(2),t.Q6J("disabled",!o.selectedChannel),t.xp6(1),t.Q6J("ngIf",o.selectedChannel)("ngIfElse",e)}}class at{constructor(n,e){this.dataService=n,this.notificationService=e,this.selectedChannelIdControl=new p.NI}ngOnInit(){const n=this.dataService.client.userStatus().mapSingle(({userStatus:o})=>o.activeChannelId),e=this.dataService.settings.getChannels().mapSingle(o=>o.channels);(0,I.a)(n,e).subscribe(([o,a])=>{this.currentChannel=a.find(r=>r.id===o),this.availableChannels=a}),this.selectedChannelIdControl.valueChanges.subscribe(o=>{this.selectChannel(o)})}selectChannel(n){this.selectedChannel=this.availableChannels.find(e=>e.id===n[0])}assign(){const n=this.selectedChannel;n&&this.resolveWith(n)}cancel(){this.resolveWith()}}at.\u0275fac=function(n){return new(n||at)(t.Y36(c.DoR),t.Y36(c.gqp))},at.\u0275cmp=t.Xpm({type:at,selectors:[["vdr-assign-to-channel-dialog"]],decls:7,vars:6,consts:[["vdrDialogTitle",""],[1,"mb4"],["clrInput","",3,"multiple","includeDefaultChannel","formControl"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],[3,"ngIf","ngIfElse"],["noSelection",""]],template:function(n,e){1&n&&(t.YNc(0,Mr,2,3,"ng-template",0),t.TgZ(1,"clr-input-container",1)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t._UZ(5,"vdr-channel-assignment-control",2),t.qZA(),t.YNc(6,wr,7,6,"ng-template",3)),2&n&&(t.xp6(3),t.Oqu(t.lcZ(4,4,"common.channel")),t.xp6(2),t.Q6J("multiple",!1)("includeDefaultChannel",!1)("formControl",e.selectedChannelIdControl))},directives:[Nt.q,h.G55,h.MgK,Te.S,h.xRP,p.JJ,p.oH,qt.n,x.O5],pipes:[O.X$],styles:["vdr-channel-assignment-control[_ngcontent-%COMP%]{min-width:200px}"],changeDetection:0});var Kt=g(727);const Se=Kt.Ps`
|
|
1
|
+
"use strict";(self.webpackChunkvendure_admin=self.webpackChunkvendure_admin||[]).push([[430],{1430:(Qr,pe,g)=>{g.r(pe),g.d(pe,{ApplyFacetDialogComponent:()=>ot,AssetDetailComponent:()=>rt,AssetListComponent:()=>st,AssetResolver:()=>Mt,AssetsComponent:()=>j,AssignProductsToChannelDialogComponent:()=>z,AssignToChannelDialogComponent:()=>at,BulkAddFacetValuesDialogComponent:()=>wt,CatalogModule:()=>St,CollectionContentsComponent:()=>nt,CollectionDetailComponent:()=>gt,CollectionListComponent:()=>ft,CollectionResolver:()=>kt,CollectionTreeComponent:()=>ht,CollectionTreeNodeComponent:()=>H,CollectionTreeService:()=>B,ConfirmVariantDeletionDialogComponent:()=>Ot,FacetDetailComponent:()=>vt,FacetListComponent:()=>Ct,FacetResolver:()=>Lt,GET_PRODUCTS_WITH_FACET_VALUES_BY_IDS:()=>Se,GET_VARIANTS_WITH_FACET_VALUES_BY_IDS:()=>$e,GenerateProductVariantsComponent:()=>xt,GeneratedVariant:()=>Le,OPTION_VALUE_INPUT_VALUE_ACCESSOR:()=>Oe,OptionValueInputComponent:()=>W,ProductDetailComponent:()=>yt,ProductDetailService:()=>K,ProductListComponent:()=>Pt,ProductOptionsEditorComponent:()=>Ft,ProductResolver:()=>Vt,ProductVariantsEditorComponent:()=>It,ProductVariantsListComponent:()=>At,ProductVariantsResolver:()=>it,ProductVariantsTableComponent:()=>bt,UPDATE_PRODUCTS_BULK:()=>Qe,UPDATE_VARIANTS_BULK:()=>Ee,UpdateProductOptionDialogComponent:()=>Zt,VariantPriceDetailComponent:()=>Tt,arrayToTree:()=>he,assetBreadcrumb:()=>qe,assignCollectionsToChannelBulkAction:()=>Ge,assignFacetValuesToProductsBulkAction:()=>Xe,assignFacetsToChannelBulkAction:()=>He,assignProductsToChannelBulkAction:()=>Ke,catalogRoutes:()=>Ve,collectionBreadcrumb:()=>Ne,deleteCollectionsBulkAction:()=>Ye,deleteFacetsBulkAction:()=>Be,deleteProductsBulkAction:()=>ze,facetBreadcrumb:()=>Ue,productBreadcrumb:()=>we,productOptionsEditorBreadcrumb:()=>De,productVariantEditorBreadcrumb:()=>Je,removeCollectionsFromChannelBulkAction:()=>je,removeFacetsFromChannelBulkAction:()=>Re,removeProductsFromChannelBulkAction:()=>We,replaceLast:()=>ce});var A=g(9720),c=g(9950),u=g(8270),C=g(635),p=g(587),t=g(3184),P=g(7346),Dt=g(3146),tt=g(8276),D=g(9416),en=g(3616),x=g(6362),O=g(7514);function nn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 on=function(){return["UpdateCatalog","UpdateAsset"]};class rt extends c.UT_{constructor(n,e,o,a,r,s){super(e,n,o,r),this.notificationService=a,this.dataService=r,this.formBuilder=s,this.detailForm=new p.cw({}),this.customFields=this.getCustomFieldConfig("Asset")}ngOnInit(){this.detailForm=new p.cw({name:new p.NI(""),tags:new p.NI([]),customFields:this.formBuilder.group(this.customFields.reduce((n,e)=>Object.assign(Object.assign({},n),{[e.name]:""}),{}))}),this.init()}ngOnDestroy(){this.destroy()}onAssetChange(n){var e,o;null===(e=this.detailForm.get("name"))||void 0===e||e.setValue(n.name),null===(o=this.detailForm.get("tags"))||void 0===o||o.setValue(n.tags),this.detailForm.markAsDirty()}save(){this.dataService.product.updateAsset({id:this.id,name:this.detailForm.value.name,tags:this.detailForm.value.tags,customFields:this.detailForm.value.customFields}).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Asset"})},n=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"Asset"})})}setFormValues(n,e){var o,a;null===(o=this.detailForm.get("name"))||void 0===o||o.setValue(n.name),null===(a=this.detailForm.get("tags"))||void 0===a||a.setValue(n.tags),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customFields"]),n)}}rt.\u0275fac=function(n){return new(n||rt)(t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(c.gqp),t.Y36(c.DoR),t.Y36(p.qu))},rt.\u0275cmp=t.Xpm({type:rt,selectors:[["vdr-asset-detail"]],features:[t.qOj],decls:9,vars:11,consts:[[3,"entity"],["locationId","asset-detail"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"asset","editable","customFields","customFieldsForm","assetChange"],[1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left"),t._UZ(2,"vdr-entity-info",0),t.ALo(3,"async"),t.qZA(),t.TgZ(4,"vdr-ab-right"),t._UZ(5,"vdr-action-bar-items",1),t.YNc(6,nn,3,4,"button",2),t.qZA()(),t.TgZ(7,"vdr-asset-preview",3),t.NdJ("assetChange",function(a){return e.onAssetChange(a)}),t.ALo(8,"async"),t.qZA()),2&n&&(t.xp6(2),t.Q6J("entity",t.lcZ(3,6,e.entity$)),t.xp6(4),t.Q6J("vdrIfPermissions",t.DdM(10,on)),t.xp6(1),t.Q6J("asset",t.lcZ(8,8,e.entity$))("editable",!0)("customFields",e.customFields)("customFieldsForm",e.detailForm.get("customFields")))},directives:[P.Kk,P.BN,Dt.V,P.mz,tt.W,D.H,en.A],pipes:[x.Ov,O.X$],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}"],changeDetection:0});var U=g(6317),I=g(6562),M=g(591),$=g(1989),Q=g(8951),ue=g(2313),b=g(2673),an=g(2688),rn=g(4042),sn=g(9206),me=g(6940),ge=g(322),Xt=g(5595),N=g(7388);const cn=function(){return{}},ln=function(){return["DeleteCatalog","DeleteAsset"]};class st extends c.t7C{constructor(n,e,o,a,r){super(a,r),this.notificationService=n,this.modalService=e,this.dataService=o,this.searchTerm$=new U.X(void 0),this.filterByTags$=new U.X(void 0),this.uploading=!1,super.setQueryFn((...s)=>this.dataService.product.getAssetList(...s),s=>s.assets,(s,d)=>{var l;const m=this.searchTerm$.value,_=null===(l=this.filterByTags$.value)||void 0===l?void 0:l.map(f=>f.value);return{options:Object.assign(Object.assign({skip:s,take:d},m?{filter:{name:{contains:m}}}:{}),{sort:{createdAt:c.Asd.DESC},tags:_,tagsOperator:c.FnJ.AND})}},{take:25,skip:0})}ngOnInit(){super.ngOnInit(),this.paginationConfig$=(0,I.a)(this.itemsPerPage$,this.currentPage$,this.totalItems$).pipe((0,C.U)(([n,e,o])=>({itemsPerPage:n,currentPage:e,totalItems:o}))),this.searchTerm$.pipe((0,$.b)(250),(0,Q.R)(this.destroy$)).subscribe(()=>this.refresh()),this.filterByTags$.pipe((0,Q.R)(this.destroy$)).subscribe(()=>this.refresh()),this.allTags$=this.dataService.product.getTagList().mapStream(n=>n.tags.items)}filesSelected(n){n.length&&(this.uploading=!0,this.dataService.product.createAssets(n).pipe((0,ue.x)(()=>this.uploading=!1)).subscribe(({createAssets:e})=>{let o=0;for(const a of e)switch(a.__typename){case"Asset":o++;break;case"MimeTypeError":this.notificationService.error(a.message)}0<o&&(super.refresh(),this.notificationService.success((0,u.J)("asset.notify-create-assets-success"),{count:o}))}))}deleteAssets(n){this.showModalAndDelete(n.map(e=>e.id)).pipe((0,b.w)(e=>e.result===c.PcR.DELETED?[!0]:this.showModalAndDelete(n.map(o=>o.id),e.message||"").pipe((0,C.U)(o=>o.result===c.PcR.DELETED)))).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"Assets"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"Assets"})})}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-assets"),translationVars:{count:n.length},body:e,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.product.deleteAssets(n,!!e):M.E),(0,C.U)(o=>o.deleteAssets))}}st.\u0275fac=function(n){return new(n||st)(t.Y36(c.gqp),t.Y36(c.Z7U),t.Y36(c.DoR),t.Y36(A.F0),t.Y36(A.gz))},st.\u0275cmp=t.Xpm({type:st,selectors:[["vdr-asset-list"]],features:[t.qOj],decls:19,vars:31,consts:[[3,"grow"],[1,"pr4","mt1",3,"tags","searchTermChange","tagsChange"],["locationId","asset-list"],["dropZoneTarget",".content-area",3,"uploading","selectFiles"],[3,"assets","multiSelect","canDelete","deleteAssets"],[1,"paging-controls"],[3,"itemsPerPage","itemsPerPageChange"],[3,"currentPage","itemsPerPage","totalItems","pageChange"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left",0)(2,"vdr-asset-search-input",1),t.NdJ("searchTermChange",function(a){return e.searchTerm$.next(a)})("tagsChange",function(a){return e.filterByTags$.next(a)}),t.ALo(3,"async"),t.qZA()(),t.TgZ(4,"vdr-ab-right"),t._UZ(5,"vdr-action-bar-items",2),t.TgZ(6,"vdr-asset-file-input",3),t.NdJ("selectFiles",function(a){return e.filesSelected(a)}),t.qZA()()(),t.TgZ(7,"vdr-asset-gallery",4),t.NdJ("deleteAssets",function(a){return e.deleteAssets(a)}),t.ALo(8,"paginate"),t.ALo(9,"async"),t.ALo(10,"async"),t.ALo(11,"hasPermission"),t.qZA(),t.TgZ(12,"div",5)(13,"vdr-items-per-page-controls",6),t.NdJ("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(14,"async"),t.qZA(),t.TgZ(15,"vdr-pagination-controls",7),t.NdJ("pageChange",function(a){return e.setPageNumber(a)}),t.ALo(16,"async"),t.ALo(17,"async"),t.ALo(18,"async"),t.qZA()()),2&n&&(t.xp6(1),t.Q6J("grow",!0),t.xp6(1),t.Q6J("tags",t.lcZ(3,10,e.allTags$)),t.xp6(4),t.Q6J("uploading",e.uploading),t.xp6(1),t.Q6J("assets",t.xi3(8,12,t.lcZ(9,15,e.items$),t.lcZ(10,17,e.paginationConfig$)||t.DdM(29,cn)))("multiSelect",!0)("canDelete",t.lcZ(11,19,t.DdM(30,ln))),t.xp6(6),t.Q6J("itemsPerPage",t.lcZ(14,21,e.itemsPerPage$)),t.xp6(2),t.Q6J("currentPage",t.lcZ(16,23,e.currentPage$))("itemsPerPage",t.lcZ(17,25,e.itemsPerPage$))("totalItems",t.lcZ(18,27,e.totalItems$)))},directives:[P.Kk,P.BN,an.V,P.mz,tt.W,rn.e,sn.K,me.w,ge.L],pipes:[x.Ov,Xt._s,N.j],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}vdr-asset-gallery[_ngcontent-%COMP%]{flex:1}.paging-controls[_ngcontent-%COMP%]{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}.search-input[_ngcontent-%COMP%]{margin-top:6px;min-width:300px}"]});var et=g(2604),$t=g(253),te=g(6646),k=g(745),Y=g(8977),Qt=g(116),w=g(9295),F=g(9525),ct=g(7425),Et=g(4652),h=g(2748),V=g(7890),Ht=g(3516),_e=g(3628),Yt=g(837),ee=g(2505),G=g(6998),J=g(9493),lt=g(735),dt=g(1519),pt=g(8854),ut=g(5111),ne=g(1353);function dn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"img",11),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return a.previewAsset(a.featuredAsset)}),t.ALo(1,"assetPreview"),t.qZA()}if(2&i){const e=t.oxw(2);t.Q6J("src",t.xi3(1,1,e.featuredAsset,"small"),t.LSH)}}function pn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t._UZ(1,"clr-icon",13),t.TgZ(2,"div"),t._uU(3),t.ALo(4,"translate"),t.qZA()()}2&i&&(t.xp6(3),t.Oqu(t.lcZ(4,1,"catalog.no-featured-asset")))}function un(i,n){1&i&&t.GkF(0)}function mn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",14)(1,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t._UZ(2,"clr-icon",16),t._uU(3),t.ALo(4,"translate"),t.qZA()()}2&i&&(t.xp6(3),t.hij(" ",t.lcZ(4,1,"asset.add-asset")," "))}function gn(i,n){if(1&i&&(t.TgZ(0,"div",3)(1,"div",4)(2,"div",5),t.YNc(3,dn,2,4,"img",6),t.YNc(4,pn,5,3,"div",7),t.qZA()(),t.TgZ(5,"div",8),t.YNc(6,un,1,0,"ng-container",9),t.qZA(),t.YNc(7,mn,5,3,"div",10),t.qZA()),2&i){const e=t.oxw(),o=t.MAs(4);t.xp6(3),t.Q6J("ngIf",e.featuredAsset),t.xp6(1),t.Q6J("ngIf",!e.featuredAsset),t.xp6(2),t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("vdrIfPermissions",e.updatePermissions)}}function _n(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"img",11),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return a.previewAsset(a.featuredAsset)}),t.ALo(1,"assetPreview"),t.qZA()}if(2&i){const e=t.oxw(2);t.Q6J("src",t.xi3(1,1,e.featuredAsset,"thumb"),t.LSH)}}function hn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",12),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t._UZ(1,"clr-icon",19),t.qZA()}}function fn(i,n){1&i&&t.GkF(0)}function vn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",20),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).selectAssets()}),t.ALo(1,"translate"),t._UZ(2,"clr-icon",16),t._uU(3),t.ALo(4,"translate"),t.qZA()}2&i&&(t.Q6J("title",t.lcZ(1,2,"asset.add-asset")),t.xp6(3),t.hij(" ",t.lcZ(4,4,"asset.add-asset")," "))}function Cn(i,n){if(1&i&&(t.TgZ(0,"div",17),t.YNc(1,_n,2,4,"img",6),t.YNc(2,hn,2,0,"div",7),t.qZA(),t.YNc(3,fn,1,0,"ng-container",9),t.YNc(4,vn,5,6,"button",18)),2&i){const e=t.oxw(),o=t.MAs(4);t.xp6(1),t.Q6J("ngIf",e.featuredAsset),t.xp6(1),t.Q6J("ngIf",!e.featuredAsset),t.xp6(1),t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("vdrIfPermissions",e.updatePermissions)}}function xn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",23),t.NdJ("cdkDropListDropped",function(a){return t.CHM(e),t.oxw(2).dropListDropped(a)}),t.ALo(1,"hasPermission"),t.TgZ(2,"vdr-dropdown",24)(3,"div",25),t._UZ(4,"img",26),t.ALo(5,"assetPreview"),t.qZA(),t.TgZ(6,"vdr-dropdown-menu",27)(7,"button",28),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(2).previewAsset(r)}),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"button",29),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(2).setAsFeatured(r)}),t.ALo(11,"hasPermission"),t._uU(12),t.ALo(13,"translate"),t.qZA(),t._UZ(14,"div",30),t.TgZ(15,"button",31),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(2).removeAsset(r)}),t.ALo(16,"hasPermission"),t._uU(17),t.ALo(18,"translate"),t.qZA()()()()}if(2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.Q6J("cdkDropListData",o)("cdkDropListDisabled",!t.lcZ(1,10,a.updatePermissions)),t.xp6(3),t.ekj("featured",a.isFeatured(e)),t.xp6(1),t.Q6J("src",t.xi3(5,12,e,"tiny"),t.LSH),t.xp6(4),t.hij(" ",t.lcZ(9,15,"asset.preview")," "),t.xp6(2),t.Q6J("disabled",a.isFeatured(e)||!t.lcZ(11,17,a.updatePermissions)),t.xp6(2),t.hij(" ",t.lcZ(13,19,"asset.set-as-featured-asset")," "),t.xp6(3),t.Q6J("disabled",!t.lcZ(16,21,a.updatePermissions)),t.xp6(2),t.hij(" ",t.lcZ(18,23,"asset.remove-asset")," ")}}function bn(i,n){if(1&i&&(t.TgZ(0,"div",21),t.YNc(1,xn,19,25,"div",22),t.qZA()),2&i){const e=t.oxw();t.ekj("compact",e.compact),t.xp6(1),t.Q6J("ngForOf",e.assets)}}class j{constructor(n,e){this.modalService=n,this.changeDetector=e,this.compact=!1,this.change=new t.vpe,this.assets=[]}set assetsSetter(n){this.assets=(n||[]).slice()}selectAssets(){this.modalService.fromComponent(c.V61,{size:"xl"}).subscribe(n=>{n&&n.length&&(this.assets=(0,J.T)(this.assets.concat(n),"id"),this.featuredAsset||(this.featuredAsset=n[0]),this.emitChangeEvent(this.assets,this.featuredAsset),this.changeDetector.markForCheck())})}setAsFeatured(n){this.featuredAsset=n,this.emitChangeEvent(this.assets,n)}isFeatured(n){return!!this.featuredAsset&&this.featuredAsset.id===n.id}previewAsset(n){this.modalService.fromComponent(c.IW,{size:"xl",closable:!0,locals:{asset:n}}).subscribe()}removeAsset(n){this.assets=this.assets.filter(e=>e.id!==n.id),this.featuredAsset&&this.featuredAsset.id===n.id&&(this.featuredAsset=this.assets.length>0?this.assets[0]:void 0),this.emitChangeEvent(this.assets,this.featuredAsset)}emitChangeEvent(n,e){this.change.emit({assets:n,featuredAsset:e})}dropListDropped(n){(0,G.bA)(this.assets,n.previousContainer.data,n.container.data),this.emitChangeEvent(this.assets,this.featuredAsset)}}j.\u0275fac=function(n){return new(n||j)(t.Y36(c.Z7U),t.Y36(t.sBO))},j.\u0275cmp=t.Xpm({type:j,selectors:[["vdr-assets"]],hostVars:2,hostBindings:function(n,e){2&n&&t.ekj("compact",e.compact)},inputs:{assetsSetter:["assets","assetsSetter"],featuredAsset:"featuredAsset",compact:"compact",updatePermissions:"updatePermissions"},outputs:{change:"change"},decls:5,vars:2,consts:[["class","card",4,"ngIf","ngIfElse"],["compactView",""],["assetList",""],[1,"card"],[1,"card-img"],[1,"featured-asset"],[3,"src","click",4,"ngIf"],["class","placeholder",3,"click",4,"ngIf"],[1,"card-block"],[4,"ngTemplateOutlet"],["class","card-footer",4,"vdrIfPermissions"],[3,"src","click"],[1,"placeholder",3,"click"],["shape","image","size","128"],[1,"card-footer"],[1,"btn",3,"click"],["shape","attachment"],[1,"featured-asset","compact"],["class","compact-select btn btn-icon btn-sm btn-block",3,"title","click",4,"vdrIfPermissions"],["shape","image","size","150"],[1,"compact-select","btn","btn-icon","btn-sm","btn-block",3,"title","click"],["cdkDropListGroup","",1,"all-assets"],["class","drop-list","cdkDropList","","cdkDropListOrientation","horizontal",3,"cdkDropListData","cdkDropListDisabled","cdkDropListDropped",4,"ngFor","ngForOf"],["cdkDropList","","cdkDropListOrientation","horizontal",1,"drop-list",3,"cdkDropListData","cdkDropListDisabled","cdkDropListDropped"],["cdkDrag",""],["vdrDropdownTrigger","","tabindex","0",1,"asset-thumb",3,"title"],[3,"src"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",3,"click"],["type","button","vdrDropdownItem","",3,"disabled","click"],[1,"dropdown-divider"],["type","button","vdrDropdownItem","",1,"remove-asset",3,"disabled","click"]],template:function(n,e){if(1&n&&(t.YNc(0,gn,8,4,"div",0),t.YNc(1,Cn,5,4,"ng-template",null,1,t.W1O),t.YNc(3,bn,2,3,"ng-template",null,2,t.W1O)),2&n){const o=t.MAs(2);t.Q6J("ngIf",!e.compact)("ngIfElse",o)}},directives:[x.O5,h.qvL,x.tP,D.H,G.Fd,x.sg,G.Wj,lt.J,G.Zt,dt.U,pt.N,ut.H],pipes:[ne.M,O.X$,N.j],styles:["[_nghost-%COMP%]{width:340px;display:block}.compact[_nghost-%COMP%]{width:162px}.placeholder[_ngcontent-%COMP%]{text-align:center;color:var(--color-grey-300)}.featured-asset[_ngcontent-%COMP%]{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer;border-radius:var(--border-radius-img)}.featured-asset[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:var(--border-radius-img)}.featured-asset.compact[_ngcontent-%COMP%]{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset[_ngcontent-%COMP%] .compact-select[_ngcontent-%COMP%]{position:absolute;bottom:6px;right:6px;margin:0}.all-assets[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.all-assets[_ngcontent-%COMP%] .drop-list[_ngcontent-%COMP%]{min-width:60px}.all-assets[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%]{margin:3px;padding:0;border:2px solid var(--color-component-border-100);border-radius:var(--border-radius-img);cursor:pointer}.all-assets[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:50px;height:50px;border-radius:var(--border-radius-img)}.all-assets[_ngcontent-%COMP%] .asset-thumb.featured[_ngcontent-%COMP%]{border-color:var(--color-primary-500);border-radius:calc(var(--border-radius-img) + 2px)}.all-assets[_ngcontent-%COMP%] .remove-asset[_ngcontent-%COMP%]{color:var(--color-warning-500)}.all-assets.compact[_ngcontent-%COMP%] .drop-list[_ngcontent-%COMP%]{min-width:54px}.all-assets.compact[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%]{margin:1px;border-width:1px}.all-assets.compact[_ngcontent-%COMP%] .cdk-drag-placeholder[_ngcontent-%COMP%], .all-assets.compact[_ngcontent-%COMP%] .cdk-drag-placeholder[_ngcontent-%COMP%] .asset-thumb[_ngcontent-%COMP%]{width:50px}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box[_ngcontent-%COMP%]:last-child{border:none}.all-assets.cdk-drop-list-dragging[_ngcontent-%COMP%] vdr-dropdown[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){display:none}"],changeDetection:0});var Zn=g(8931),mt=g(4874),q=g(9337),Tn=g(3158),oe=g(365),ie=g(8899);function An(i,n){1&i&&t.GkF(0)}const yn=function(){return{tab:"variants"}},Pn=function(i,n){return["/catalog/products",i,n]};function Fn(i,n){if(1&i&&(t.TgZ(0,"td",7),t._uU(1),t.qZA(),t.TgZ(2,"td",7)(3,"small",8),t._uU(4),t.qZA()(),t.TgZ(5,"td",9),t._UZ(6,"vdr-table-row-action",10),t.ALo(7,"translate"),t.qZA()),2&i){const e=n.item;t.xp6(1),t.Oqu(e.name),t.xp6(3),t.Oqu(e.sku),t.xp6(2),t.Q6J("label",t.lcZ(7,4,"common.edit"))("linkTo",t.WLB(7,Pn,e.productId,t.DdM(6,yn)))}}const On=function(i){return{$implicit:i}};class nt{constructor(n,e,o){this.route=n,this.router=e,this.dataService=o,this.previewUpdatedFilters=!1,this.filterTermControl=new p.NI(""),this.isLoading=!1,this.collectionIdChange$=new U.X(""),this.parentIdChange$=new U.X(""),this.filterChanges$=new U.X([]),this.inheritFiltersChanges$=new U.X(!0),this.refresh$=new U.X(!0),this.destroy$=new $t.x}ngOnInit(){this.contentsCurrentPage$=this.route.queryParamMap.pipe((0,C.U)(s=>s.get("contentsPage")),(0,C.U)(s=>s?+s:1),(0,mt.O)(1),(0,Y.x)()),this.contentsItemsPerPage$=this.route.queryParamMap.pipe((0,C.U)(s=>s.get("contentsPerPage")),(0,C.U)(s=>s?+s:10),(0,mt.O)(10),(0,Y.x)());const n=this.filterTermControl.valueChanges.pipe((0,$.b)(250),(0,q.b)(()=>this.setContentsPageNumber(1)),(0,mt.O)("")),e=this.filterChanges$.asObservable().pipe((0,Qt.h)(()=>this.previewUpdatedFilters),(0,q.b)(()=>this.setContentsPageNumber(1)),(0,mt.O)([])),o=this.inheritFiltersChanges$.asObservable().pipe((0,Qt.h)(()=>null!=this.inheritFilters),(0,Y.x)(),(0,q.b)(()=>this.setContentsPageNumber(1)),(0,mt.O)(!0)),r=(0,I.a)(this.collectionIdChange$,this.parentIdChange$,this.contentsCurrentPage$,this.contentsItemsPerPage$,n,e,o,this.refresh$).pipe((0,Q.R)(this.destroy$),(0,q.b)(()=>this.isLoading=!0),(0,$.b)(50),(0,b.w)(([s,d,l,m,_,f,v])=>{const Z=m,T=(l-1)*m;if(f.length&&this.previewUpdatedFilters){const y=_?{name:{contains:_}}:void 0;return this.dataService.collection.previewCollectionVariants({parentId:d,filters:f,inheritFilters:v},{take:Z,skip:T,filter:y}).mapSingle(L=>L.previewCollectionVariants).pipe((0,Tn.K)(()=>(0,k.of)({items:[],totalItems:0})))}return s?this.dataService.collection.getCollectionContents(s,Z,T,_).mapSingle(y=>{var L;return null===(L=y.collection)||void 0===L?void 0:L.productVariants}):(0,k.of)(null)}),(0,q.b)(()=>this.isLoading=!1),(0,ue.x)(()=>this.isLoading=!1));this.contents$=r.pipe((0,C.U)(s=>s?s.items:[])),this.contentsTotalItems$=r.pipe((0,C.U)(s=>s?s.totalItems:0))}ngOnChanges(n){"collectionId"in n&&this.collectionIdChange$.next(n.collectionId.currentValue),"parentId"in n&&this.parentIdChange$.next(n.parentId.currentValue),"inheritFilters"in n&&this.inheritFiltersChanges$.next(n.inheritFilters.currentValue),"updatedFilters"in n&&this.updatedFilters&&this.filterChanges$.next(this.updatedFilters)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setContentsPageNumber(n){this.setParam("contentsPage",n)}setContentsItemsPerPage(n){this.setParam("contentsPerPage",n)}refresh(){this.refresh$.next(!0)}setParam(n,e){this.router.navigate(["./"],{relativeTo:this.route,queryParams:{[n]:e},queryParamsHandling:"merge",replaceUrl:!0})}}nt.\u0275fac=function(n){return new(n||nt)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(c.DoR))},nt.\u0275cmp=t.Xpm({type:nt,selectors:[["vdr-collection-contents"]],contentQueries:function(n,e,o){if(1&n&&t.Suo(o,t.Rgc,7),2&n){let a;t.iGM(a=t.CRH())&&(e.headerTemplate=a.first)}},inputs:{collectionId:"collectionId",parentId:"parentId",inheritFilters:"inheritFilters",updatedFilters:"updatedFilters",previewUpdatedFilters:"previewUpdatedFilters"},features:[t.TTD],decls:14,vars:26,consts:[[1,"contents-header"],[1,"header-title-row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text",3,"placeholder","formControl"],[1,"table-wrapper"],[1,"progress","loop"],[3,"items","itemsPerPage","totalItems","currentPage","pageChange","itemsPerPageChange"],[1,"left","align-middle"],[1,"sku"],[1,"right","align-middle"],["iconShape","edit",3,"label","linkTo"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0)(1,"div",1),t.YNc(2,An,1,0,"ng-container",2),t.ALo(3,"async"),t.qZA(),t._UZ(4,"input",3),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"div",4),t._UZ(7,"div",5),t.TgZ(8,"vdr-data-table",6),t.NdJ("pageChange",function(a){return e.setContentsPageNumber(a)})("itemsPerPageChange",function(a){return e.setContentsItemsPerPage(a)}),t.ALo(9,"async"),t.ALo(10,"async"),t.ALo(11,"async"),t.ALo(12,"async"),t.YNc(13,Fn,8,10,"ng-template"),t.qZA()()),2&n&&(t.xp6(2),t.Q6J("ngTemplateOutlet",e.headerTemplate)("ngTemplateOutletContext",t.VKq(24,On,t.lcZ(3,12,e.contentsTotalItems$))),t.xp6(2),t.Q6J("placeholder",t.lcZ(5,14,"catalog.filter-by-name"))("formControl",e.filterTermControl),t.xp6(3),t.ekj("visible",e.isLoading),t.xp6(1),t.ekj("loading",e.isLoading),t.Q6J("items",t.lcZ(9,16,e.contents$))("itemsPerPage",t.lcZ(10,18,e.contentsItemsPerPage$))("totalItems",t.lcZ(11,20,e.contentsTotalItems$))("currentPage",t.lcZ(12,22,e.contentsCurrentPage$)))},directives:[x.tP,V.y,p.Fj,p.JJ,p.oH,oe.Q,ie.v],pipes:[x.Ov,O.X$],styles:[".contents-header[_ngcontent-%COMP%]{background-color:var(--color-component-bg-100);position:sticky;top:0;padding:6px;z-index:1;border-bottom:1px solid var(--color-component-border-200)}.contents-header[_ngcontent-%COMP%] .header-title-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.contents-header[_ngcontent-%COMP%] .clr-input[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] table{margin-top:-1px}vdr-data-table[_ngcontent-%COMP%]{opacity:1;transition:opacity .3s}vdr-data-table.loading[_ngcontent-%COMP%]{opacity:.5}.table-wrapper[_ngcontent-%COMP%]{position:relative}.progress[_ngcontent-%COMP%]{position:absolute;top:0;left:0;overflow:hidden;height:6px;opacity:0;transition:opacity .1s}.progress.visible[_ngcontent-%COMP%]{opacity:1}.sku[_ngcontent-%COMP%]{color:var(--color-text-200)}"],changeDetection:0});const In=["collectionContents"];function Mn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw().create()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 kn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 Ln(i,n){if(1&i&&t.YNc(0,kn,3,4,"button",7),2&i){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermission)}}const Vn=function(){return["/catalog/collections"]};function wn(i,n){1&i&&(t.TgZ(0,"a",38),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,Vn)),t.xp6(1),t.Oqu(t.lcZ(2,2,"catalog.root-collection")))}const Jn=function(i){return["/catalog/collections",i]};function Dn(i,n){if(1&i&&(t.TgZ(0,"a",38),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i){const e=t.oxw().$implicit;t.Q6J("routerLink",t.VKq(4,Jn,e.id)),t.xp6(1),t.Oqu(t.lcZ(2,2,e.name))}}function Un(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(t.lcZ(2,1,e.name))}}function Nn(i,n){if(1&i&&(t.TgZ(0,"li"),t.YNc(1,wn,3,5,"a",36),t.YNc(2,Dn,3,6,"a",36),t.YNc(3,Un,3,3,"ng-container",37),t.qZA()),2&i){const e=n.first,o=n.last;t.xp6(1),t.Q6J("ngIf",e),t.xp6(1),t.Q6J("ngIf",!e&&!o),t.xp6(1),t.Q6J("ngIf",o)}}function qn(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function Sn(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.private"))}const $n=function(){return["customFields"]};function Qn(i,n){if(1&i&&(t.TgZ(0,"section",39)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",40),t.ALo(5,"hasPermission"),t.qZA()),2&i){const e=t.oxw(2);t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get(t.DdM(8,$n)))("readonly",!t.lcZ(5,6,e.updatePermission))}}function En(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.inherit-filters-from-parent")))}function Yn(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.do-not-inherit-filters"))}function Gn(i,n){if(1&i){const e=t.EpF();t.ynx(0),t.TgZ(1,"vdr-configurable-input",41),t.NdJ("remove",function(){const r=t.CHM(e).index;return t.oxw(2).removeFilter(r)}),t.ALo(2,"hasPermission"),t.qZA(),t.BQk()}if(2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.xp6(1),t.Q6J("position",o)("operation",e)("operationDefinition",a.getFilterDefinition(e))("formControlName",o)("readonly",!t.lcZ(2,5,a.updatePermission))}}function jn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",46),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw(3).addFilter(r)}),t._uU(1),t.qZA()}if(2&i){const e=n.$implicit;t.xp6(1),t.hij(" ",e.description," ")}}function Bn(i,n){if(1&i&&(t.TgZ(0,"div")(1,"vdr-dropdown")(2,"button",42),t._UZ(3,"clr-icon",43),t._uU(4),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"vdr-dropdown-menu",44),t.YNc(7,jn,2,1,"button",45),t.qZA()()()),2&i){const e=t.oxw(2);t.xp6(4),t.hij(" ",t.lcZ(5,2,"marketing.add-condition")," "),t.xp6(3),t.Q6J("ngForOf",e.allFilters)}}const Hn=function(i){return{count:i}},Rn=function(){return{standalone:!0}};function zn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",47),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"clr-checkbox-wrapper")(5,"input",48),t.NdJ("ngModelChange",function(){return t.CHM(e),t.oxw(2).toggleLivePreview()}),t.qZA(),t.TgZ(6,"label"),t._uU(7),t.ALo(8,"translate"),t.qZA()()}if(2&i){const e=n.$implicit,o=t.oxw(2);let a,r;t.xp6(1),t.AsE(" ",t.lcZ(2,8,"catalog.collection-contents")," (",t.xi3(3,10,"common.results-count",t.VKq(15,Hn,e)),") "),t.xp6(3),t.ekj("disabled",null==(a=o.detailForm.get("filters"))?null:a.pristine),t.xp6(1),t.Q6J("ngModelOptions",t.DdM(17,Rn))("disabled",null==(r=o.detailForm.get("filters"))?null:r.pristine)("ngModel",o.livePreview),t.xp6(2),t.Oqu(t.lcZ(8,13,"catalog.live-preview-contents"))}}const Kn=function(i){return{pattern:i}};function Wn(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"form",8)(1,"nav",9)(2,"ul",10),t.YNc(3,Nn,4,3,"li",11),t.qZA()(),t.TgZ(4,"div",12)(5,"div",13)(6,"vdr-form-field",14),t.ALo(7,"translate"),t.TgZ(8,"clr-toggle-wrapper"),t._UZ(9,"input",15),t.ALo(10,"hasPermission"),t.TgZ(11,"label",16),t.YNc(12,qn,3,3,"ng-container",17),t.YNc(13,Sn,2,3,"ng-template",null,18,t.W1O),t.qZA()()(),t.TgZ(15,"vdr-form-field",19),t.ALo(16,"translate"),t.TgZ(17,"input",20),t.NdJ("input",function(a){return t.CHM(e),t.oxw().updateSlug(a.target.value)}),t.ALo(18,"hasPermission"),t.qZA()(),t.TgZ(19,"vdr-form-field",21),t.ALo(20,"translate"),t.ALo(21,"translate"),t._UZ(22,"input",22),t.ALo(23,"hasPermission"),t.qZA(),t._UZ(24,"vdr-rich-text-editor",23),t.ALo(25,"hasPermission"),t.ALo(26,"translate"),t.YNc(27,Qn,6,9,"section",24),t._UZ(28,"vdr-custom-detail-component-host",25),t.qZA(),t.TgZ(29,"div",26)(30,"vdr-assets",27),t.NdJ("change",function(a){t.CHM(e);return t.oxw().assetChanges=a}),t.qZA()()(),t.TgZ(31,"div",12)(32,"div",13)(33,"label"),t._uU(34),t.ALo(35,"translate"),t.qZA(),t.TgZ(36,"vdr-form-field",28),t.ALo(37,"translate"),t.TgZ(38,"clr-toggle-wrapper"),t._UZ(39,"input",29),t.ALo(40,"hasPermission"),t.TgZ(41,"label",16),t.YNc(42,En,3,3,"ng-container",17),t.YNc(43,Yn,2,3,"ng-template",null,30,t.W1O),t.qZA()()(),t.TgZ(45,"div",31),t.YNc(46,Gn,3,7,"ng-container",32),t.qZA(),t.YNc(47,Bn,8,4,"div",33),t.qZA(),t.TgZ(48,"div",13)(49,"vdr-collection-contents",34,35),t.ALo(51,"async"),t.ALo(52,"async"),t.ALo(53,"async"),t.YNc(54,zn,9,18,"ng-template"),t.qZA()()()()}if(2&i){const e=n.ngIf,o=t.MAs(14),a=t.MAs(44),r=t.oxw();t.Q6J("formGroup",r.detailForm),t.xp6(3),t.Q6J("ngForOf",e.breadcrumbs),t.xp6(3),t.Q6J("label",t.lcZ(7,32,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(10,34,r.updatePermission)),t.xp6(3),t.Q6J("ngIf",r.detailForm.value.visible)("ngIfElse",o),t.xp6(3),t.Q6J("label",t.lcZ(16,36,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(18,38,r.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(20,40,"catalog.slug"))("errors",t.VKq(62,Kn,t.lcZ(21,42,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(23,44,r.updatePermission)),t.xp6(2),t.Q6J("readonly",!t.lcZ(25,46,r.updatePermission))("label",t.lcZ(26,48,"common.description")),t.xp6(3),t.Q6J("ngIf",r.customFields.length),t.xp6(1),t.Q6J("entity$",r.entity$)("detailForm",r.detailForm),t.xp6(2),t.Q6J("assets",e.assets)("featuredAsset",e.featuredAsset)("updatePermissions",r.updatePermission),t.xp6(4),t.Oqu(t.lcZ(35,50,"catalog.filters")),t.xp6(2),t.Q6J("label",t.lcZ(37,52,"catalog.filter-inheritance")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(40,54,r.updatePermission)),t.xp6(3),t.Q6J("ngIf",r.detailForm.value.inheritFilters)("ngIfElse",a),t.xp6(4),t.Q6J("ngForOf",r.filters)("ngForTrackBy",r.trackByFn),t.xp6(1),t.Q6J("vdrIfPermissions",r.updatePermission),t.xp6(2),t.Q6J("collectionId",r.id)("parentId",t.lcZ(51,56,r.parentId$))("updatedFilters",t.lcZ(52,58,r.updatedFilters$))("inheritFilters",t.lcZ(53,60,r.inheritFilters$))("previewUpdatedFilters",r.livePreview)}}class gt extends c.UT_{constructor(n,e,o,a,r,s,d,l,m){var _;super(e,n,o,r),this.changeDetector=a,this.dataService=r,this.formBuilder=s,this.notificationService=d,this.modalService=l,this.localStorageService=m,this.assetChanges={},this.filters=[],this.allFilters=[],this.livePreview=!1,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateCollection],this.filterRemoved$=new $t.x,this.customFields=this.getCustomFieldConfig("Collection"),this.detailForm=this.formBuilder.group({name:["",p.kI.required],slug:["",(0,c.Foo)(/^[\p{Letter}0-9_-]+$/)],description:"",visible:!1,inheritFilters:!0,filters:this.formBuilder.array([]),customFields:this.formBuilder.group(this.customFields.reduce((f,v)=>Object.assign(Object.assign({},f),{[v.name]:""}),{}))}),this.livePreview=null!==(_=this.localStorageService.get("livePreviewCollectionContents"))&&void 0!==_&&_}ngOnInit(){this.init(),this.dataService.collection.getCollectionFilters().single$.subscribe(o=>{this.allFilters=o.collectionFilters});const n=this.detailForm.get("filters"),e=this.detailForm.get("inheritFilters");this.inheritFilters$=e.valueChanges.pipe((0,Y.x)()),this.updatedFilters$=(0,te.T)(n.statusChanges,this.filterRemoved$).pipe((0,$.b)(200),(0,Qt.h)(()=>n.touched),(0,C.U)(()=>this.mapOperationsToInputs(this.filters,n.value).filter(o=>{for(const a of o.arguments)if(""===a.value)return!1;return!0}))),this.parentId$=this.route.paramMap.pipe((0,C.U)(o=>o.get("parentId")||void 0),(0,b.w)(o=>o?(0,k.of)(o):this.entity$.pipe((0,C.U)(a=>{var r;return null===(r=a.parent)||void 0===r?void 0:r.id}))))}ngOnDestroy(){this.destroy()}getFilterDefinition(n){return this.allFilters.find(e=>e.code===n.code)}assetsChanged(){return!!Object.values(this.assetChanges).length}updateSlug(n){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1)).subscribe(([e,o])=>{const a=this.detailForm.get(["slug"]),r=(0,c.ZIM)(e,o),s=!r||!r.slug;a&&a.pristine&&s&&a.setValue((0,et.U)(`${n}`,"-"))})}addFilter(n){const e=this.detailForm.get("filters"),o=n.args.reduce((a,r)=>Object.assign(Object.assign({},a),{[r.name]:(0,c.sux)(r.value)}),{});e.push(this.formBuilder.control({code:n.code,args:o})),this.filters.push({code:n.code,args:n.args.map(a=>({name:a.name,value:(0,c.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(){!this.detailForm.dirty||(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([n,e])=>{const o=this.getUpdatedCollection(n,this.detailForm,e),a=this.route.snapshot.paramMap.get("parentId");return a&&(o.parentId=a),this.dataService.collection.createCollection(o)})).subscribe(n=>{this.notificationService.success((0,u.J)("common.notify-create-success"),{entity:"Collection"}),this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",n.createCollection.id],{relativeTo:this.route})},n=>{this.notificationService.error((0,u.J)("common.notify-create-error"),{entity:"Collection"})})}save(){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([n,e])=>{const o=this.getUpdatedCollection(n,this.detailForm,e);return this.dataService.collection.updateCollection(o)})).subscribe(()=>{this.assetChanges={},this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Collection"}),this.contentsComponent.refresh()},n=>{this.notificationService.error((0,u.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 o=(0,c.ZIM)(n,e);this.detailForm.patchValue({name:o?o.name:"",slug:o?o.slug:"",description:o?o.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,o)}getUpdatedCollection(n,e,o){var a,r;const s=(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||"",slug:n.slug||"",description:n.description||""}});return Object.assign(Object.assign({},s),{assetIds:null===(a=this.assetChanges.assets)||void 0===a?void 0:a.map(d=>d.id),featuredAssetId:null===(r=this.assetChanges.featuredAsset)||void 0===r?void 0:r.id,isPrivate:!e.value.visible,filters:this.mapOperationsToInputs(this.filters,this.detailForm.value.filters)})}mapOperationsToInputs(n,e){return n.map((o,a)=>({code:o.code,arguments:Object.entries(e[a].args).map(([r,s],d)=>({name:r,value:(0,c.qrw)(s)}))}))}}gt.\u0275fac=function(n){return new(n||gt)(t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(t.sBO),t.Y36(c.DoR),t.Y36(p.qu),t.Y36(c.gqp),t.Y36(c.Z7U),t.Y36(c.n2A))},gt.\u0275cmp=t.Xpm({type:gt,selectors:[["vdr-collection-detail"]],viewQuery:function(n,e){if(1&n&&t.Gf(In,5),2&n){let o;t.iGM(o=t.CRH())&&(e.contentsComponent=o.first)}},features:[t.qOj],decls:16,vars:19,consts:[[3,"entity"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],["class","form",3,"formGroup",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[1,"form",3,"formGroup"],["role","navigation"],[1,"collection-breadcrumbs"],[4,"ngFor","ngForOf"],[1,"clr-row"],[1,"clr-col"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],["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"],["formControlName","description",3,"readonly","label"],["formGroupName","customFields",4,"ngIf"],["locationId","collection-detail",3,"entity$","detailForm"],[1,"clr-col-md-auto"],[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,"collectionId","parentId","updatedFilters","inheritFilters","previewUpdatedFilters"],["collectionContents",""],[3,"routerLink",4,"ngIf"],[4,"ngIf"],[3,"routerLink"],["formGroupName","customFields"],["entityName","Collection",3,"customFields","customFieldsFormGroup","readonly"],[3,"position","operation","operationDefinition","formControlName","readonly","remove"],["vdrDropdownTrigger","",1,"btn","btn-outline"],["shape","plus"],["vdrPosition","bottom-left"],["type","button","vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["type","button","vdrDropdownItem","",3,"click"],[1,"contents-title"],["type","checkbox","clrCheckbox","",3,"ngModelOptions","disabled","ngModel","ngModelChange"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left"),t._UZ(2,"vdr-entity-info",0),t.ALo(3,"async"),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,Mn,3,4,"button",3),t.ALo(11,"async"),t.YNc(12,Ln,1,1,"ng-template",null,4,t.W1O),t.qZA()(),t.YNc(14,Wn,55,64,"form",5),t.ALo(15,"async")),2&n){const o=t.MAs(13);t.xp6(2),t.Q6J("entity",t.lcZ(3,7,e.entity$)),t.xp6(2),t.Q6J("disabled",t.lcZ(5,9,e.isNew$))("availableLanguageCodes",t.lcZ(6,11,e.availableLanguages$))("currentLanguageCode",t.lcZ(7,13,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(11,15,e.isNew$))("ngIfElse",o),t.xp6(4),t.Q6J("ngIf",t.lcZ(15,17,e.entity$))}},directives:[P.Kk,P.BN,Dt.V,ct.S,P.mz,tt.W,x.O5,D.H,p._Y,p.JL,p.sg,x.sg,A.yS,Et.h,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.u,Ht.x,h.MgK,p.Fj,_e.Y,p.x0,Yt.y,ee.C,j,p.CE,h.q0d,Zn.q,lt.J,dt.U,h.qvL,pt.N,ut.H,nt,p.On],pipes:[x.Ov,O.X$,N.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-right:10px}.collection-breadcrumbs[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:last-child):after{content:"\\203a";top:0;color:var(--color-grey-400);margin-left:10px}'],changeDetection:0});var _t=g(9196),ae=g(5236);function he(i,n,e=[]){var o,a;const r=[],s={},d=function Xn(i){const n=new Map;function e(o){n.set(o.id,o),o.children.forEach(e)}return i&&e(i),n}(n);for(const m of i)s[m.id]=Object.assign(Object.assign({},m),{children:[]});for(const m of i.map(_=>_.id))if(s.hasOwnProperty(m)){const _=s[m];_.expanded=null!==(a=null===(o=d.get(m))||void 0===o?void 0:o.expanded)&&void 0!==a?a:e.includes(m);const f=_.parent;if(!f)continue;s[f.id]?s[f.id]?s[f.id].children.push(_):s[f.id]={children:[_]}:r.push(_)}return{id:r.length?r[0].parent.id:void 0,children:r}}class B{constructor(){this.allMoveListItems=[],this._rearrange$=new $t.x,this._delete$=new $t.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=>{var o;return e.id!==n.id&&!e.ancestorIdPath.has(n.id)&&e.id!==(null===(o=n.parent)||void 0===o?void 0:o.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,o,a,r)=>{const s=o.concat(e.name);return r.push({path:s.slice(1).join(" / ")||"root",id:e.id,ancestorIdPath:a}),e.children.forEach(d=>n(d,s,new Set([...a,e.id]),r)),r};return n(this.collectionTree,[],new Set,[])}}B.\u0275fac=function(n){return new(n||B)},B.\u0275prov=t.Yz7({token:B,factory:B.\u0275fac});var Ut=g(4447);function to(i,n){1&i&&t._UZ(0,"clr-icon",32)}function eo(i,n){1&i&&t._UZ(0,"clr-icon",33)}function no(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().toggleExpanded(a)}),t.YNc(1,to,1,0,"clr-icon",30),t.YNc(2,eo,1,0,"clr-icon",31),t.qZA()}if(2&i){const e=t.oxw().$implicit,o=t.oxw();t.Q6J("disabled",o.expandAll),t.xp6(1),t.Q6J("ngIf",!e.expanded&&!o.expandAll),t.xp6(1),t.Q6J("ngIf",e.expanded||o.expandAll)}}function oo(i,n){1&i&&t._UZ(0,"div",34)}function io(i,n){1&i&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.private")))}function ao(i,n){1&i&&(t.TgZ(0,"div",35),t._UZ(1,"clr-icon",36),t.qZA())}const ro=function(i){return{parentId:i}},so=function(i){return["./","create",i]};function co(i,n){if(1&i&&(t.TgZ(0,"a",37),t._UZ(1,"clr-icon",38),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i){const e=t.oxw().$implicit;t.Q6J("routerLink",t.VKq(6,so,t.VKq(4,ro,e.id))),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," ")}}function lo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",21),t.NdJ("click",function(){const r=t.CHM(e).$implicit,s=t.oxw().$implicit;return t.oxw().move(s,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&i){const e=n.$implicit,o=t.oxw(2);t.Q6J("disabled",!t.lcZ(1,2,o.hasUpdatePermission$)),t.xp6(6),t.hij(" ",e.path," ")}}function po(i,n){if(1&i&&t._UZ(0,"vdr-collection-tree-node",43),2&i){const e=t.oxw().$implicit,o=t.oxw();t.Q6J("expandAll",o.expandAll)("collectionTree",e)("activeCollectionId",o.activeCollectionId)("selectionManager",o.selectionManager)}}const uo=function(i){return{contents:i}},mo=function(i){return["./",i]},go=function(i){return["/catalog/collections/",i]},_o=function(){return["UpdateCatalog","UpdateCollection"]},ho=function(){return["CreateCatalog","CreateCollection"]};function fo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",3)(1,"div",4)(2,"div")(3,"input",5),t.NdJ("click",function(a){const s=t.CHM(e).$implicit;return t.oxw().selectionManager.toggleSelection(s,a)}),t.qZA()(),t.TgZ(4,"div",6),t.YNc(5,no,3,3,"button",7),t.YNc(6,oo,1,0,"ng-template",null,8,t.W1O),t._uU(8),t.qZA(),t._UZ(9,"div",9),t.YNc(10,io,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,ao,2,0,"div",15),t.TgZ(20,"vdr-dropdown")(21,"button",16),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().getMoveListItems(r)}),t._UZ(22,"clr-icon",17),t.qZA(),t.TgZ(23,"vdr-dropdown-menu",18),t.YNc(24,co,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,s=a.index;return t.oxw().moveUp(r,s)}),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,s=a.index;return t.oxw().moveDown(r,s)}),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,lo,7,4,"button",25),t._UZ(40,"div",20),t.TgZ(41,"button",26),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().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,po,1,4,"vdr-collection-tree-node",28),t.qZA()}if(2&i){const e=n.$implicit,o=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,mo,t.VKq(44,uo,e.id))),t.xp6(2),t.hij(" ",t.lcZ(14,26,"catalog.view-contents")," "),t.xp6(2),t.Q6J("routerLink",t.VKq(48,go,e.id)),t.xp6(2),t.hij(" ",t.lcZ(18,28,"common.edit")," "),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(50,_o)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(51,ho)),t.xp6(2),t.Q6J("disabled",0===o||!t.lcZ(27,30,r.hasUpdatePermission$)),t.xp6(3),t.hij(" ",t.lcZ(30,32,"catalog.move-up")," "),t.xp6(2),t.Q6J("disabled",o===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 H{constructor(n,e,o,a,r,s){this.parent=n,this.dataService=e,this.collectionTreeService=o,this.router=a,this.route=r,this.changeDetectorRef=s,this.depth=0,this.expandAll=!1,this.moveListItems=[],n&&(this.depth=n.depth+1)}ngOnInit(){var n;this.parentName=this.collectionTree.name||"<root>";const e=this.dataService.client.userStatus().mapStream(o=>o.userStatus.permissions).pipe((0,_t.d)(1));this.hasUpdatePermission$=e.pipe((0,C.U)(o=>o.includes(c.y3$.UpdateCatalog)||o.includes(c.y3$.UpdateCollection))),this.hasDeletePermission$=e.pipe((0,C.U)(o=>o.includes(c.y3$.DeleteCatalog)||o.includes(c.y3$.DeleteCollection))),this.subscription=null===(n=this.selectionManager)||void 0===n?void 0:n.selectionChanges$.subscribe(()=>this.changeDetectorRef.markForCheck())}ngOnChanges(n){const e=n.expandAll;e&&!0===e.previousValue&&!1===e.currentValue&&this.collectionTree.children.forEach(o=>o.expanded=!1)}ngOnDestroy(){var n;null===(n=this.subscription)||void 0===n||n.unsubscribe()}trackByFn(n,e){return e.id}toggleExpanded(n){var e,o;n.expanded=!n.expanded;let a=null!==(o=null===(e=this.route.snapshot.queryParamMap.get("expanded"))||void 0===e?void 0:e.split(","))&&void 0!==o?o:[];n.expanded?a.push(n.id):a=a.filter(r=>r!==n.id),this.router.navigate(["./"],{queryParams:{expanded:a.filter(r=>!!r).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,G.bA)(this.collectionTree.children,n.previousIndex,n.currentIndex),this.collectionTreeService.onDrop(n)}delete(n){this.collectionTreeService.onDelete(n)}}function vo(i,n){if(1&i&&t._UZ(0,"vdr-collection-tree-node",1),2&i){const e=t.oxw();t.Q6J("expandAll",e.expandAll)("collectionTree",e.collectionTree)("selectionManager",e.selectionManager)("activeCollectionId",e.activeCollectionId)}}H.\u0275fac=function(n){return new(n||H)(t.Y36(H,12),t.Y36(c.DoR),t.Y36(B),t.Y36(A.F0),t.Y36(A.gz),t.Y36(t.sBO))},H.\u0275cmp=t.Xpm({type:H,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,fo,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))},directives:[G.Wj,x.sg,h.q0d,G.Zt,x.mk,V.y,h.KKC,x.O5,h.qvL,Ut.Y,A.yS,D.H,G.Bh,lt.J,dt.U,pt.N,ut.H,H],pipes:[x.Ov,O.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-left: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-left:36px}.collection[_ngcontent-%COMP%] .collection-detail.depth-2[_ngcontent-%COMP%]{padding-left:60px}.collection[_ngcontent-%COMP%] .collection-detail.depth-3[_ngcontent-%COMP%]{padding-left:84px}.collection[_ngcontent-%COMP%] .collection-detail.depth-4[_ngcontent-%COMP%]{padding-left: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-right:3px}.move-to-item[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{line-height:18px}"],changeDetection:0});class ht{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=he(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))}}ht.\u0275fac=function(n){return new(n||ht)(t.Y36(B))},ht.\u0275cmp=t.Xpm({type:ht,selectors:[["vdr-collection-tree"]],inputs:{collections:"collections",activeCollectionId:"activeCollectionId",expandAll:"expandAll",expandedIds:"expandedIds",selectionManager:"selectionManager"},outputs:{rearrange:"rearrange",deleteCollection:"deleteCollection"},features:[t._Bn([B]),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,vo,1,4,"vdr-collection-tree-node",0),2&n&&t.Q6J("ngIf",e.collectionTree)},directives:[x.O5,H,G.Fd],styles:[""],changeDetection:0});const Co=function(){return["./create"]};function xo(i,n){1&i&&(t.TgZ(0,"a",15),t._UZ(1,"clr-icon",16),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,Co)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-collection")," "))}const bo=function(i){return{count:i}};function Zo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",17),t._uU(1),t.ALo(2,"async"),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"button",18),t.NdJ("click",function(){return t.CHM(e),t.oxw().closeContents()}),t._UZ(5,"clr-icon",19),t.qZA()}if(2&i){const e=n.$implicit,o=t.oxw();t.xp6(1),t.AsE(" ",t.lcZ(2,2,o.activeCollectionTitle$)," (",t.xi3(3,4,"common.results-count",t.VKq(7,bo,e)),") ")}}const To=function(){return["CreateCatalog","CreateCollection"]};class ft{constructor(n,e,o,a,r,s,d){this.dataService=n,this.notificationService=e,this.modalService=o,this.router=a,this.route=r,this.serverConfigService=s,this.changeDetectorRef=d,this.filterTermControl=new p.NI(""),this.expandAll=!1,this.expandedIds=[],this.destroy$=new $t.x,this.selectionManager=new c.ZE0({additiveMode:!0,multiSelect:!0,itemsAreEqual:(l,m)=>l.id===m.id})}ngOnInit(){var n,e;this.queryResult=this.dataService.collection.getCollections(1e3,0).refetchOnChannelChange(),this.items$=this.queryResult.mapStream(o=>o.collections.items).pipe((0,q.b)(o=>this.selectionManager.setCurrentItems(o)),(0,_t.d)(1)),this.activeCollectionId$=this.route.paramMap.pipe((0,C.U)(o=>o.get("contents")),(0,Y.x)()),this.expandedIds=null!==(e=null===(n=this.route.snapshot.queryParamMap.get("expanded"))||void 0===n?void 0:n.split(","))&&void 0!==e?e:[],this.expandAll="all"===this.route.snapshot.queryParamMap.get("expanded"),this.activeCollectionTitle$=(0,I.a)(this.activeCollectionId$,this.items$).pipe((0,C.U)(([o,a])=>{if(o){const r=a.find(s=>s.id===o);return r?r.name:""}return""})),this.availableLanguages$=this.serverConfigService.getAvailableLanguages(),this.contentLanguage$=this.dataService.client.uiState().mapStream(({uiState:o})=>o.contentLanguage).pipe((0,q.b)(()=>this.refresh())),this.filterTermControl.valueChanges.pipe((0,$.b)(250),(0,Q.R)(this.destroy$)).subscribe(o=>{this.router.navigate(["./"],{queryParams:{q:o||void 0},queryParamsHandling:"merge",relativeTo:this.route})}),this.route.queryParamMap.pipe((0,C.U)(o=>o.get("q")),(0,Y.x)(),(0,Q.R)(this.destroy$)).subscribe(()=>this.refresh()),this.filterTermControl.patchValue(this.route.snapshot.queryParamMap.get("q"))}ngOnDestroy(){this.queryResult.completed$.next(),this.destroy$.next(void 0),this.destroy$.complete()}toggleExpandAll(){this.router.navigate(["./"],{queryParams:{expanded:this.expandAll?"all":void 0},queryParamsHandling:"merge",relativeTo:this.route})}onRearrange(n){this.dataService.collection.moveCollection([n]).subscribe({next:()=>{this.notificationService.success((0,u.J)("common.notify-saved-changes")),this.refresh()},error:e=>{this.notificationService.error((0,u.J)("common.notify-save-changes-error"))}})}deleteCollection(n){this.items$.pipe((0,w.q)(1),(0,C.U)(e=>-1<e.findIndex(o=>o.parent&&o.parent.id===n)),(0,b.w)(e=>this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-collection"),body:e?(0,u.J)("catalog.confirm-delete-collection-and-children-body"):void 0,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]})),(0,b.w)(e=>e?this.dataService.collection.deleteCollection(n):M.E)).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"Collection"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"Collection"})})}closeContents(){const n=Object.assign({},this.route.snapshot.params);delete n.contents,this.router.navigate(["./",n],{relativeTo:this.route,queryParamsHandling:"preserve"})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}refresh(){const n=this.route.snapshot.queryParamMap.get("q");this.queryResult.ref.refetch({options:Object.assign({skip:0,take:1e3},n?{filter:{name:{contains:n}}}:{})})}}ft.\u0275fac=function(n){return new(n||ft)(t.Y36(c.DoR),t.Y36(c.gqp),t.Y36(c.Z7U),t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(t.sBO))},ft.\u0275cmp=t.Xpm({type:ft,selectors:[["vdr-collection-list"]],decls:29,vars:35,consts:[[1,""],["type","text","name","searchTerm",1,"clr-input","search-input",3,"formControl","placeholder"],[1,"flex","center"],[1,"expand-all-toggle","mt2"],["type","checkbox","clrToggle","",3,"ngModel","ngModelChange","change"],[1,"mt2",3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","collection-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[1,"bulk-select-controls"],["type","checkbox","clrCheckbox","",3,"checked","click"],["locationId","collection-list",1,"ml2",3,"hostComponent","selectionManager"],[1,"collection-wrapper"],[3,"collections","activeCollectionId","expandAll","expandedIds","selectionManager","rearrange","deleteCollection"],[1,"collection-contents"],[3,"collectionId"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"collection-title"],["type","button",1,"close-button",3,"click"],["shape","close"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"div",0),t._UZ(3,"input",1),t.ALo(4,"translate"),t.TgZ(5,"div",2)(6,"clr-toggle-wrapper",3)(7,"input",4),t.NdJ("ngModelChange",function(a){return e.expandAll=a})("change",function(){return e.toggleExpandAll()}),t.qZA(),t.TgZ(8,"label"),t._uU(9),t.ALo(10,"translate"),t.qZA()(),t.TgZ(11,"vdr-language-selector",5),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(12,"async"),t.ALo(13,"async"),t.qZA()()()(),t.TgZ(14,"vdr-ab-right"),t._UZ(15,"vdr-action-bar-items",6),t.YNc(16,xo,4,5,"a",7),t.qZA()(),t.TgZ(17,"div",8)(18,"input",9),t.NdJ("click",function(){return e.selectionManager.toggleSelectAll()}),t.qZA(),t._UZ(19,"vdr-bulk-action-menu",10),t.qZA(),t.TgZ(20,"div",11)(21,"vdr-collection-tree",12),t.NdJ("rearrange",function(a){return e.onRearrange(a)})("deleteCollection",function(a){return e.deleteCollection(a)}),t.ALo(22,"async"),t.ALo(23,"async"),t.qZA(),t.TgZ(24,"div",13),t.ALo(25,"async"),t.TgZ(26,"vdr-collection-contents",14),t.ALo(27,"async"),t.YNc(28,Zo,6,9,"ng-template"),t.qZA()()()),2&n&&(t.xp6(3),t.Q6J("formControl",e.filterTermControl)("placeholder",t.lcZ(4,18,"catalog.filter-by-name")),t.xp6(4),t.Q6J("ngModel",e.expandAll),t.xp6(2),t.hij(" ",t.lcZ(10,20,"catalog.expand-all-collections")," "),t.xp6(2),t.Q6J("availableLanguageCodes",t.lcZ(12,22,e.availableLanguages$))("currentLanguageCode",t.lcZ(13,24,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(34,To)),t.xp6(2),t.Q6J("checked",e.selectionManager.areAllCurrentItemsSelected()),t.xp6(1),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(2),t.Q6J("collections",t.lcZ(22,26,e.items$))("activeCollectionId",t.lcZ(23,28,e.activeCollectionId$))("expandAll",e.expandAll)("expandedIds",e.expandedIds)("selectionManager",e.selectionManager),t.xp6(3),t.ekj("expanded",t.lcZ(25,30,e.activeCollectionId$)),t.xp6(2),t.Q6J("collectionId",t.lcZ(27,32,e.activeCollectionId$)))},directives:[P.Kk,P.BN,V.y,p.Fj,p.JJ,p.oH,h.PEh,p.Wl,h.KKC,p.On,h.MgK,ct.S,P.mz,tt.W,D.H,A.yS,h.qvL,ae.c,ht,nt],pipes:[O.X$,x.Ov],styles:["[_nghost-%COMP%]{height:100%;display:flex;flex-direction:column}.bulk-select-controls[_ngcontent-%COMP%]{min-height:36px;padding-left:14px;display:flex;align-items:center;border-bottom:1px solid var(--color-component-border-200)}.expand-all-toggle[_ngcontent-%COMP%]{display:block}.collection-wrapper[_ngcontent-%COMP%]{display:flex;height:calc(100% - 50px)}.collection-wrapper[_ngcontent-%COMP%] vdr-collection-tree[_ngcontent-%COMP%]{flex:1;height:100%;overflow:auto}.collection-wrapper[_ngcontent-%COMP%] .collection-contents[_ngcontent-%COMP%]{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.collection-wrapper[_ngcontent-%COMP%] .collection-contents.expanded[_ngcontent-%COMP%]{width:30vw;visibility:visible;opacity:1;padding-left:12px}.collection-wrapper[_ngcontent-%COMP%] .collection-contents[_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin:0;background:none;border:none;cursor:pointer}.paging-controls[_ngcontent-%COMP%]{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}"],changeDetection:0});var R=g(234),E=g(1640),Gt=g(73);function Ao(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw().create()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 yo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 Po(i,n){if(1&i&&t.YNc(0,yo,3,4,"button",7),2&i){const e=t.oxw();t.Q6J("vdrIfPermissions",e.updatePermission)}}function Fo(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function Oo(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.private"))}const Io=function(){return["facet","customFields"]};function Mo(i,n){if(1&i&&(t.TgZ(0,"section",22)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",23),t.ALo(5,"hasPermission"),t.qZA()),2&i){const e=t.oxw(2);t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get(t.DdM(8,Io)))("readonly",!t.lcZ(5,6,e.updatePermission))}}function ko(i,n){1&i&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.BQk()),2&i&&(t.xp6(2),t.Oqu(t.lcZ(3,1,"common.custom-fields")))}const Lo=function(i){return["values",i,"customFields"]};function Vo(i,n){if(1&i&&(t.TgZ(0,"td",40),t._UZ(1,"vdr-tabbed-custom-fields",41),t.ALo(2,"hasPermission"),t.qZA()),2&i){const e=t.oxw().index,o=t.oxw(4);t.xp6(1),t.Q6J("customFields",o.customValueFields)("compact",!0)("customFieldsFormGroup",o.detailForm.get(t.VKq(6,Lo,e)))("readonly",!t.lcZ(2,4,o.updatePermission))}}function wo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"tr",30)(1,"td",31),t._UZ(2,"vdr-entity-info",0),t.qZA(),t.TgZ(3,"td",31)(4,"input",32),t.NdJ("input",function(a){const s=t.CHM(e).index,d=t.oxw(3).ngIf;return t.oxw().updateValueCode(null==d.values[s]?null:d.values[s].code,a.target.value,s)}),t.ALo(5,"hasPermission"),t.qZA()(),t.TgZ(6,"td",31),t._UZ(7,"input",33),t.qZA(),t.YNc(8,Vo,3,8,"td",34),t.TgZ(9,"td",31)(10,"vdr-dropdown")(11,"button",35),t._uU(12),t.ALo(13,"translate"),t._UZ(14,"clr-icon",36),t.qZA(),t.TgZ(15,"vdr-dropdown-menu",37)(16,"button",38),t.NdJ("click",function(){const r=t.CHM(e).index,s=t.oxw(3).ngIf;return t.oxw().deleteFacetValue(null==s.values[r]?null:s.values[r].id,r)}),t.ALo(17,"hasPermission"),t._UZ(18,"clr-icon",39),t._uU(19),t.ALo(20,"translate"),t.qZA()()()()()}if(2&i){const e=n.$implicit,o=n.index,a=t.oxw(4);t.Q6J("formGroupName",o),t.xp6(2),t.Q6J("entity",e),t.xp6(2),t.Q6J("readonly",!t.lcZ(5,7,a.updatePermission)),t.xp6(4),t.Q6J("ngIf",a.customValueFields.length),t.xp6(4),t.hij(" ",t.lcZ(13,9,"common.actions")," "),t.xp6(4),t.Q6J("disabled",!t.lcZ(17,11,a.updatePermission)),t.xp6(3),t.hij(" ",t.lcZ(20,13,"common.delete")," ")}}function Jo(i,n){if(1&i&&(t.TgZ(0,"table",27)(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,ko,4,3,"ng-container",28),t._UZ(11,"th"),t.qZA()(),t.TgZ(12,"tbody"),t.YNc(13,wo,21,15,"tr",29),t.qZA()()),2&i){const e=t.oxw(3);t.xp6(5),t.Oqu(t.lcZ(6,4,"common.name")),t.xp6(3),t.Oqu(t.lcZ(9,6,"common.code")),t.xp6(2),t.Q6J("ngIf",e.customValueFields.length),t.xp6(3),t.Q6J("ngForOf",e.values)}}function Do(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",42),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).addFacetValue()}),t._UZ(1,"clr-icon",43),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&i&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facet-value")," "))}const Uo=function(){return["CreateCatalog","CreateFacet"]};function No(i,n){if(1&i&&(t.TgZ(0,"section",24)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.YNc(4,Jo,14,8,"table",25),t.TgZ(5,"div"),t.YNc(6,Do,4,3,"button",26),t.qZA()()),2&i){const e=t.oxw(2);t.xp6(2),t.Oqu(t.lcZ(3,3,"catalog.facet-values")),t.xp6(2),t.Q6J("ngIf",0<e.getValuesFormArray().length),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(5,Uo))}}function qo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"form",8)(1,"section",9)(2,"vdr-form-field",10),t.ALo(3,"translate"),t.TgZ(4,"clr-toggle-wrapper"),t._UZ(5,"input",11),t.ALo(6,"hasPermission"),t.TgZ(7,"label",12),t.YNc(8,Fo,3,3,"ng-container",13),t.YNc(9,Oo,2,3,"ng-template",null,14,t.W1O),t.qZA()()(),t.TgZ(11,"vdr-form-field",15),t.ALo(12,"translate"),t.TgZ(13,"input",16),t.NdJ("input",function(a){const s=t.CHM(e).ngIf;return t.oxw().updateCode(s.code,a.target.value)}),t.ALo(14,"hasPermission"),t.qZA()(),t.TgZ(15,"vdr-form-field",17),t.ALo(16,"translate"),t.ALo(17,"hasPermission"),t._UZ(18,"input",18),t.ALo(19,"hasPermission"),t.qZA(),t.YNc(20,Mo,6,9,"section",19),t._UZ(21,"vdr-custom-detail-component-host",20),t.qZA(),t.YNc(22,No,7,6,"section",21),t.ALo(23,"async"),t.qZA()}if(2&i){const e=t.MAs(10),o=t.oxw();t.Q6J("formGroup",o.detailForm),t.xp6(2),t.Q6J("label",t.lcZ(3,14,"catalog.visibility")),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(6,16,o.updatePermission)),t.xp6(3),t.Q6J("ngIf",o.detailForm.value.facet.visible)("ngIfElse",e),t.xp6(3),t.Q6J("label",t.lcZ(12,18,"common.name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(14,20,o.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(16,22,"common.code"))("readOnlyToggle",t.lcZ(17,24,o.updatePermission)),t.xp6(3),t.Q6J("readonly",!t.lcZ(19,26,o.updatePermission)),t.xp6(2),t.Q6J("ngIf",o.customFields.length),t.xp6(1),t.Q6J("entity$",o.entity$)("detailForm",o.detailForm),t.xp6(1),t.Q6J("ngIf",!t.lcZ(23,28,o.isNew$))}}class vt extends c.UT_{constructor(n,e,o,a,r,s,d,l){super(e,n,o,r),this.changeDetector=a,this.dataService=r,this.formBuilder=s,this.notificationService=d,this.modalService=l,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateFacet],this.customFields=this.getCustomFieldConfig("Facet"),this.customValueFields=this.getCustomFieldConfig("FacetValue"),this.detailForm=this.formBuilder.group({facet:this.formBuilder.group({code:["",p.kI.required],name:"",visible:!0,customFields:this.formBuilder.group(this.customFields.reduce((m,_)=>Object.assign(Object.assign({},m),{[_.name]:""}),{}))}),values:this.formBuilder.array([])})}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}updateCode(n,e){if(!n){const o=this.detailForm.get(["facet","code"]);o&&o.pristine&&o.setValue((0,et.U)(e,"-"))}}updateValueCode(n,e,o){if(!n){const a=this.detailForm.get(["values",o,"code"]);a&&a.pristine&&a.setValue((0,et.U)(e,"-"))}}customValueFieldIsSet(n,e){return!!this.detailForm.get(["values",n,"customFields",e])}getValuesFormArray(){return this.detailForm.get("values")}addFacetValue(){const n=this.detailForm.get("values");if(n){const e=this.formBuilder.group({id:"",name:["",p.kI.required],code:""}),o={name:"",code:""};if(this.customValueFields.length){const a=new p.cw({});o.customFields={};for(const r of this.customValueFields){const s=r.name;a.addControl(s,new p.NI)}e.addControl("customFields",a)}n.insert(n.length,e),this.values.push(o)}}create(){const n=this.detailForm.get("facet");!n||!n.dirty||(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([e,o])=>{const a=this.getUpdatedFacet(e,n,o);return this.dataService.facet.createFacet(a)}),(0,b.w)(e=>this.dataService.facet.getAllFacets().single$.pipe((0,Gt.h)(e)))).subscribe(e=>{this.notificationService.success((0,u.J)("common.notify-create-success"),{entity:"Facet"}),this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.router.navigate(["../",e.createFacet.id],{relativeTo:this.route})},e=>{this.notificationService.error((0,u.J)("common.notify-create-error"),{entity:"Facet"})})}save(){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([n,e])=>{const o=this.detailForm.get("facet"),a=[];if(o&&o.dirty){const s=this.getUpdatedFacet(n,o,e);s&&a.push(this.dataService.facet.updateFacet(s))}const r=this.detailForm.get("values");if(r&&r.dirty){const s=this.getCreatedFacetValues(n,r,e);s.length&&a.push(this.dataService.facet.createFacetValues(s).pipe((0,b.w)(()=>this.dataService.facet.getFacet(this.id).single$)));const d=this.getUpdatedFacetValues(n,r,e);d.length&&a.push(this.dataService.facet.updateFacetValues(d))}return(0,E.D)(a)}),(0,b.w)(()=>this.dataService.facet.getAllFacets().single$)).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Facet"})},n=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"Facet"})})}deleteFacetValue(n,e){if(!n){const o=this.detailForm.get("values");return o&&o.removeAt(e),void this.values.splice(e,1)}this.showModalAndDelete(n).pipe((0,b.w)(o=>o.result===c.PcR.DELETED?[!0]:this.showModalAndDelete(n,o.message||"").pipe((0,C.U)(a=>a.result===c.PcR.DELETED))),(0,b.w)(o=>o?this.dataService.facet.getFacet(this.id).single$:[])).subscribe(()=>{const o=this.detailForm.get("values");o&&o.removeAt(e),this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"FacetValue"})},o=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"FacetValue"})})}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-facet-value"),body:e,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.facet.deleteFacetValues([n],!!e):M.E),(0,C.U)(o=>o.deleteFacetValues[0]))}setFormValues(n,e){var o;const a=(0,c.ZIM)(n,e);if(this.detailForm.patchValue({facet:{code:n.code,visible:!n.isPrivate,name:null!==(o=null==a?void 0:a.name)&&void 0!==o?o:""}}),this.customFields.length){this.detailForm.get(["facet","customFields"]);this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["facet","customFields"]),n,a)}const r=this.detailForm.get("values");this.values=[...n.values],n.values.forEach(s=>{var d,l,m,_,f;const v=(0,c.ZIM)(s,e),Z={id:s.id,code:s.code,name:v?v.name:""};let T=r.controls.find(y=>y.value.id===s.id);if(T?(null===(d=T.get("id"))||void 0===d||d.setValue(Z.id),null===(l=T.get("code"))||void 0===l||l.setValue(Z.code),null===(m=T.get("name"))||void 0===m||m.setValue(Z.name)):(T=this.formBuilder.group(Z),r.push(T)),this.customValueFields.length){let y=T.get(["customFields"]);if(y||(y=new p.cw({}),T.addControl("customFields",y)),y)for(const L of this.customValueFields){const S=L.name,Wt="localeString"===L.type?null===(f=null===(_=v)||void 0===_?void 0:_.customFields)||void 0===f?void 0:f[S]:s.customFields[S],Jt=y.get(S);Jt?Jt.setValue(Wt):y.addControl(S,new p.NI(Wt))}}})}getUpdatedFacet(n,e,o){const a=(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||""}});return a.isPrivate=!e.value.visible,a}getCreatedFacetValues(n,e,o){return e.controls.filter(a=>!a.value.id).map(a=>a.value).map(a=>(0,c.iSy)({translatable:Object.assign(Object.assign({},a),{translations:[]}),updatedFields:a,customFieldConfig:this.customValueFields,languageCode:o,defaultTranslation:{languageCode:o,name:""}})).map(a=>Object.assign({facetId:n.id},a))}getUpdatedFacetValues(n,e,o){const a=n.values.filter((s,d)=>{const l=e.get(d.toString());return l&&l.dirty&&l.value.id}),r=e.controls.filter(s=>s.dirty&&s.value.id).map(s=>s.value);if(a.length!==r.length)throw new Error((0,u.J)("error.facet-value-form-values-do-not-match"));return a.map((s,d)=>(0,c.iSy)({translatable:s,updatedFields:r[d],customFieldConfig:this.customValueFields,languageCode:o,defaultTranslation:{languageCode:o,name:""}})).filter(R.notNullOrUndefined)}}vt.\u0275fac=function(n){return new(n||vt)(t.Y36(A.F0),t.Y36(A.gz),t.Y36(c.iHG),t.Y36(t.sBO),t.Y36(c.DoR),t.Y36(p.qu),t.Y36(c.gqp),t.Y36(c.Z7U))},vt.\u0275cmp=t.Xpm({type:vt,selectors:[["vdr-facet-detail"]],features:[t.qOj],decls:16,vars:19,consts:[[3,"entity"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],["class","form",3,"formGroup",4,"ngIf"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[1,"form",3,"formGroup"],["formGroupName","facet",1,"form-block"],["for","visibility",3,"label"],["type","checkbox","clrToggle","","formControlName","visible","id","visibility",3,"vdrDisabled"],[1,"visible-toggle"],[4,"ngIf","ngIfElse"],["private",""],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],["for","code",3,"label","readOnlyToggle"],["id","code","type","text","formControlName","code",3,"readonly"],["formGroupName","customFields",4,"ngIf"],["locationId","facet-detail",3,"entity$","detailForm"],["class","form-block",4,"ngIf"],["formGroupName","customFields"],["entityName","Facet",3,"customFields","customFieldsFormGroup","readonly"],[1,"form-block"],["class","facet-values-list table","formArrayName","values",4,"ngIf"],["type","button","class","btn btn-secondary",3,"click",4,"vdrIfPermissions"],["formArrayName","values",1,"facet-values-list","table"],[4,"ngIf"],["class","facet-value",3,"formGroupName",4,"ngFor","ngForOf"],[1,"facet-value",3,"formGroupName"],[1,"align-middle"],["type","text","formControlName","name",3,"readonly","input"],["type","text","formControlName","code","readonly",""],["class","",4,"ngIf"],["type","button","vdrDropdownTrigger","",1,"btn","btn-link","btn-sm"],["shape","caret down"],["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,"btn","btn-secondary",3,"click"],["shape","add"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left"),t._UZ(2,"vdr-entity-info",0),t.ALo(3,"async"),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,Ao,3,4,"button",3),t.ALo(11,"async"),t.YNc(12,Po,1,1,"ng-template",null,4,t.W1O),t.qZA()(),t.YNc(14,qo,24,30,"form",5),t.ALo(15,"async")),2&n){const o=t.MAs(13);t.xp6(2),t.Q6J("entity",t.lcZ(3,7,e.entity$)),t.xp6(2),t.Q6J("disabled",t.lcZ(5,9,e.isNew$))("availableLanguageCodes",t.lcZ(6,11,e.availableLanguages$))("currentLanguageCode",t.lcZ(7,13,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(11,15,e.isNew$))("ngIfElse",o),t.xp6(4),t.Q6J("ngIf",t.lcZ(15,17,e.entity$))}},directives:[P.Kk,P.BN,Dt.V,ct.S,P.mz,tt.W,x.O5,D.H,p._Y,p.JL,p.sg,p.x0,Et.h,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.u,Ht.x,h.MgK,p.Fj,Yt.y,ee.C,p.CE,x.sg,lt.J,dt.U,h.qvL,pt.N,ut.H],pipes:[x.Ov,O.X$,N.j],styles:[".visible-toggle[_ngcontent-%COMP%]{margin-top:-3px!important}"],changeDetection:0});var So=g(8165),fe=g(901),Rt=g(6074);const $o=function(){return["./create"]};function Qo(i,n){1&i&&(t.TgZ(0,"a",8),t._UZ(1,"clr-icon",9),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,$o)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-facet")," "))}function Eo(i,n){if(1&i&&t._UZ(0,"vdr-facet-value-chip",22),2&i){const e=n.$implicit;t.Q6J("facetValue",e)("removable",!1)("displayFacetName",!1)}}function Yo(i,n){if(1&i&&(t.ynx(0),t._UZ(1,"clr-icon",9),t._uU(2),t.BQk()),2&i){const e=t.oxw(2).item,o=t.oxw();t.xp6(2),t.hij(" ",e.values.length-o.initialLimit," ")}}function Go(i,n){1&i&&t._UZ(0,"clr-icon",25)}function jo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",23),t.NdJ("click",function(){t.CHM(e);const a=t.oxw().item;return t.oxw().toggleDisplayLimit(a)}),t.YNc(1,Yo,3,1,"ng-container",13),t.YNc(2,Go,1,0,"ng-template",null,24,t.W1O),t.qZA()}if(2&i){const e=t.MAs(3),o=t.oxw().item,a=t.oxw();t.xp6(1),t.Q6J("ngIf",(a.displayLimit[o.id]||0)<o.values.length)("ngIfElse",e)}}function Bo(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.public")))}function Ho(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.private"))}const Ro=function(i){return["./",i]},zo=function(){return["DeleteCatalog","DeleteFacet"]};function Ko(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"td",10),t._uU(1),t.qZA(),t.TgZ(2,"td",10),t._uU(3),t.qZA(),t.TgZ(4,"td",10),t.YNc(5,Eo,1,3,"vdr-facet-value-chip",11),t.ALo(6,"slice"),t.YNc(7,jo,4,2,"button",12),t.qZA(),t.TgZ(8,"td",10)(9,"vdr-chip"),t.YNc(10,Bo,3,3,"ng-container",13),t.YNc(11,Ho,2,3,"ng-template",null,14,t.W1O),t.qZA()(),t.TgZ(13,"td",15),t._UZ(14,"vdr-table-row-action",16),t.ALo(15,"translate"),t.qZA(),t.TgZ(16,"td",15)(17,"vdr-dropdown")(18,"button",17),t._uU(19),t.ALo(20,"translate"),t._UZ(21,"clr-icon",18),t.qZA(),t.TgZ(22,"vdr-dropdown-menu",19)(23,"button",20),t.NdJ("click",function(){const r=t.CHM(e).item;return t.oxw().deleteFacet(r.id)}),t.ALo(24,"hasPermission"),t._UZ(25,"clr-icon",21),t._uU(26),t.ALo(27,"translate"),t.qZA()()()()}if(2&i){const e=n.item,o=t.MAs(12),a=t.oxw();t.ekj("private",e.isPrivate),t.xp6(1),t.Oqu(e.code),t.xp6(1),t.ekj("private",e.isPrivate),t.xp6(1),t.Oqu(e.name),t.xp6(1),t.ekj("private",e.isPrivate),t.xp6(1),t.Q6J("ngForOf",t.Dn7(6,23,e.values,0,a.displayLimit[e.id]||3)),t.xp6(2),t.Q6J("ngIf",e.values.length>a.initialLimit),t.xp6(1),t.ekj("private",e.isPrivate),t.xp6(2),t.Q6J("ngIf",!e.isPrivate)("ngIfElse",o),t.xp6(3),t.ekj("private",e.isPrivate),t.xp6(1),t.Q6J("label",t.lcZ(15,27,"common.edit"))("linkTo",t.VKq(35,Ro,e.id)),t.xp6(2),t.ekj("private",e.isPrivate),t.xp6(3),t.hij(" ",t.lcZ(20,29,"common.actions")," "),t.xp6(4),t.Q6J("disabled",!t.lcZ(24,31,t.DdM(37,zo))),t.xp6(3),t.hij(" ",t.lcZ(27,33,"common.delete")," ")}}const Wo=function(){return["CreateCatalog","CreateFacet"]};class Ct extends c.t7C{constructor(n,e,o,a,r,s){super(r,s),this.dataService=n,this.modalService=e,this.notificationService=o,this.serverConfigService=a,this.filterTermControl=new p.NI(""),this.initialLimit=3,this.displayLimit={},super.setQueryFn((...d)=>this.dataService.facet.getFacets(...d).refetchOnChannelChange(),d=>d.facets,(d,l)=>({options:{skip:d,take:l,filter:{name:{contains:this.filterTermControl.value}},sort:{createdAt:So.As.DESC}}})),this.selectionManager=new c.ZE0({multiSelect:!0,itemsAreEqual:(d,l)=>d.id===l.id,additiveMode:!0})}ngOnInit(){super.ngOnInit(),this.availableLanguages$=this.serverConfigService.getAvailableLanguages(),this.contentLanguage$=this.dataService.client.uiState().mapStream(({uiState:n})=>n.contentLanguage).pipe((0,q.b)(()=>this.refresh())),this.filterTermControl.valueChanges.pipe((0,Qt.h)(n=>2<=n.length||0===n.length),(0,$.b)(250),(0,Q.R)(this.destroy$)).subscribe(()=>this.refresh())}toggleDisplayLimit(n){this.displayLimit[n.id]===n.values.length?this.displayLimit[n.id]=this.initialLimit:this.displayLimit[n.id]=n.values.length}deleteFacet(n){this.showModalAndDelete(n).pipe((0,b.w)(e=>e.result===c.PcR.DELETED?[!0]:this.showModalAndDelete(n,e.message||"").pipe((0,C.U)(o=>o.result===c.PcR.DELETED))),(0,b.w)(()=>this.dataService.facet.getAllFacets().single$)).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"FacetValue"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"FacetValue"})})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}showModalAndDelete(n,e){return this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-facet"),body:e,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:e?(0,u.J)("common.force-delete"):(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.facet.deleteFacet(n,!!e):M.E),(0,C.U)(o=>o.deleteFacet))}}Ct.\u0275fac=function(n){return new(n||Ct)(t.Y36(c.DoR),t.Y36(c.Z7U),t.Y36(c.gqp),t.Y36(c.iHG),t.Y36(A.F0),t.Y36(A.gz))},Ct.\u0275cmp=t.Xpm({type:Ct,selectors:[["vdr-facet-list"]],features:[t.qOj],decls:33,vars:40,consts:[[1,""],["type","text","name","searchTerm",1,"clr-input","search-input",3,"formControl","placeholder"],[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","facet-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"items","itemsPerPage","totalItems","currentPage","selectionManager","pageChange","itemsPerPageChange"],["locationId","facet-list",3,"hostComponent","selectionManager"],[3,"expand"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"left","align-middle"],[3,"facetValue","removable","displayFacetName",4,"ngFor","ngForOf"],["class","btn btn-sm btn-secondary btn-icon",3,"click",4,"ngIf"],[4,"ngIf","ngIfElse"],["private",""],[1,"right","align-middle"],["iconShape","edit",3,"label","linkTo"],["type","button","vdrDropdownTrigger","",1,"btn","btn-link","btn-sm"],["shape","caret down"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",1,"delete-button",3,"disabled","click"],["shape","trash",1,"is-danger"],[3,"facetValue","removable","displayFacetName"],[1,"btn","btn-sm","btn-secondary","btn-icon",3,"click"],["collapse",""],["shape","minus"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"div",0),t._UZ(3,"input",1),t.ALo(4,"translate"),t.TgZ(5,"div")(6,"vdr-language-selector",2),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(7,"async"),t.ALo(8,"async"),t.qZA()()()(),t.TgZ(9,"vdr-ab-right"),t._UZ(10,"vdr-action-bar-items",3),t.YNc(11,Qo,4,5,"a",4),t.qZA()(),t.TgZ(12,"vdr-data-table",5),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(13,"async"),t.ALo(14,"async"),t.ALo(15,"async"),t.ALo(16,"async"),t._UZ(17,"vdr-bulk-action-menu",6),t.TgZ(18,"vdr-dt-column"),t._uU(19),t.ALo(20,"translate"),t.qZA(),t.TgZ(21,"vdr-dt-column"),t._uU(22),t.ALo(23,"translate"),t.qZA(),t.TgZ(24,"vdr-dt-column",7),t._uU(25),t.ALo(26,"translate"),t.qZA(),t.TgZ(27,"vdr-dt-column"),t._uU(28),t.ALo(29,"translate"),t.qZA(),t._UZ(30,"vdr-dt-column")(31,"vdr-dt-column"),t.YNc(32,Ko,28,38,"ng-template"),t.qZA()),2&n&&(t.xp6(3),t.Q6J("formControl",e.filterTermControl)("placeholder",t.lcZ(4,17,"catalog.filter-by-name")),t.xp6(3),t.Q6J("availableLanguageCodes",t.lcZ(7,19,e.availableLanguages$))("currentLanguageCode",t.lcZ(8,21,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(39,Wo)),t.xp6(1),t.Q6J("items",t.lcZ(13,23,e.items$))("itemsPerPage",t.lcZ(14,25,e.itemsPerPage$))("totalItems",t.lcZ(15,27,e.totalItems$))("currentPage",t.lcZ(16,29,e.currentPage$))("selectionManager",e.selectionManager),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager),t.xp6(2),t.Oqu(t.lcZ(20,31,"common.code")),t.xp6(3),t.Oqu(t.lcZ(23,33,"common.name")),t.xp6(2),t.Q6J("expand",!0),t.xp6(1),t.Oqu(t.lcZ(26,35,"catalog.values")),t.xp6(3),t.Oqu(t.lcZ(29,37,"catalog.visibility")))},directives:[P.Kk,P.BN,V.y,p.Fj,p.JJ,p.oH,ct.S,P.mz,tt.W,D.H,A.yS,h.qvL,oe.Q,ae.c,fe.E,x.sg,Rt.q,x.O5,Ut.Y,ie.v,lt.J,dt.U,pt.N,ut.H],pipes:[O.X$,x.Ov,x.OU,N.j],styles:["td.private[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}"]});var ve=g(5454),Xo=g(9319),jt=g(7400),ti=g(1944),Ce=g(3945),ei=g(4987),ni=g(9635);var xe=g(7260),be=g(2971);var Nt=g(309),Ze=g(7206),qt=g(8318);function ai(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.add-facets"))}function ri(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().selectValues()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&i){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 ot{constructor(n){this.changeDetector=n,this.selectedValues=[]}ngAfterViewInit(){setTimeout(()=>this.selector.focus(),0)}selectValues(){this.resolveWith(this.selectedValues)}cancel(){this.resolveWith()}}ot.\u0275fac=function(n){return new(n||ot)(t.Y36(t.sBO))},ot.\u0275cmp=t.Xpm({type:ot,selectors:[["vdr-apply-facet-dialog"]],viewQuery:function(n,e){if(1&n&&t.Gf(c.$MF,5),2&n){let o;t.iGM(o=t.CRH())&&(e.selector=o.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,ai,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,ri,6,7,"ng-template",2))},directives:[Nt.q,Ze.$,qt.n],pipes:[O.X$],styles:[""],changeDetection:0});var si=g(4929),Te=g(5646),re=g(8766),se=g(4187);function ci(i,n){1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"translate"),t.BQk()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.assign-variants-to-channel")))}function li(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.assign-products-to-channel"))}function di(i,n){if(1&i&&(t.YNc(0,ci,3,3,"ng-container",12),t.YNc(1,li,2,3,"ng-template",null,13,t.W1O)),2&i){const e=t.MAs(2),o=t.oxw();t.Q6J("ngIf",o.isProductVariantMode)("ngIfElse",e)}}const Ae=function(i){return{channel:i}};function pi(i,n){if(1&i&&(t._uU(0),t.ALo(1,"translate")),2&i){const e=t.oxw();t.hij(" ",t.xi3(1,1,"catalog.price-in-channel",t.VKq(4,Ae,null==e.selectedChannel?null:e.selectedChannel.code))," ")}}function ui(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.no-channel-selected")," ")}function mi(i,n){if(1&i&&(t._uU(0),t.ALo(1,"localeCurrency")),2&i){const e=t.oxw().$implicit,o=t.oxw();t.hij(" ",t.xi3(1,1,e.pricePreview,null==o.selectedChannel?null:o.selectedChannel.currencyCode)," ")}}function gi(i,n){1&i&&t._uU(0," - ")}function _i(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.ALo(5,"localeCurrency"),t.qZA(),t.TgZ(6,"td"),t.YNc(7,mi,2,4,"ng-template",8),t.YNc(8,gi,1,0,"ng-template",null,14,t.W1O),t.qZA()()),2&i){const e=n.$implicit,o=t.MAs(9),a=t.oxw();t.xp6(2),t.Oqu(e.name),t.xp6(2),t.Oqu(t.xi3(5,4,e.price,null==a.currentChannel?null:a.currentChannel.currencyCode)),t.xp6(3),t.Q6J("ngIf",a.selectedChannel)("ngIfElse",o)}}const hi=function(i){return{channelCode:i}};function fi(i,n){if(1&i&&(t._uU(0),t.ALo(1,"translate")),2&i){const e=t.oxw(2);t.hij(" ",t.xi3(1,1,"catalog.assign-to-named-channel",t.VKq(4,hi,null==e.selectedChannel?null:e.selectedChannel.code))," ")}}function vi(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.no-channel-selected")," ")}function Ci(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",15),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",16),t.NdJ("click",function(){return t.CHM(e),t.oxw().assign()}),t.YNc(4,fi,2,6,"ng-template",8),t.YNc(5,vi,2,3,"ng-template",null,9,t.W1O),t.qZA()}if(2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,4,"common.cancel")),t.xp6(2),t.Q6J("disabled",!o.selectedChannel),t.xp6(1),t.Q6J("ngIf",o.selectedChannel)("ngIfElse",e)}}class z{constructor(n,e){this.dataService=n,this.notificationService=e,this.priceFactorControl=new p.NI(1),this.selectedChannelIdControl=new p.NI}get isProductVariantMode(){return null!=this.productVariantIds}ngOnInit(){const n=this.dataService.client.userStatus().mapSingle(({userStatus:o})=>o.activeChannelId),e=this.dataService.settings.getChannels().mapSingle(o=>o.channels);(0,I.a)(n,e).subscribe(([o,a])=>{this.currentChannel=a.find(r=>r.id===o),this.availableChannels=a}),this.selectedChannelIdControl.valueChanges.subscribe(o=>{this.selectChannel(o)}),this.variantsPreview$=(0,I.a)((0,jt.D)(this.getTopVariants(10)),this.priceFactorControl.valueChanges.pipe((0,mt.O)(1))).pipe((0,C.U)(([o,a])=>o.map(r=>({id:r.id,name:r.name,price:r.price,pricePreview:r.price*+a}))))}selectChannel(n){this.selectedChannel=this.availableChannels.find(e=>e.id===n[0])}assign(){const n=this.selectedChannel;n&&(this.isProductVariantMode?this.productVariantIds&&this.dataService.product.assignVariantsToChannel({channelId:n.id,productVariantIds:this.productVariantIds,priceFactor:+this.priceFactorControl.value}).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.assign-variant-to-channel-success"),{channel:n.code,count:this.productVariantIds.length}),this.resolveWith(!0)}):this.dataService.product.assignProductsToChannel({channelId:n.id,productIds:this.productIds,priceFactor:+this.priceFactorControl.value}).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.assign-product-to-channel-success"),{channel:n.code,count:this.productIds.length}),this.resolveWith(!0)}))}cancel(){this.resolveWith()}getTopVariants(n){return(0,si.mG)(this,void 0,void 0,function*(){const e=[];for(let o=0;o<this.productIds.length&&e.length<n;o++){const a=yield this.dataService.product.getProduct(this.productIds[o],{take:this.isProductVariantMode?void 0:n}).mapSingle(({product:r})=>(r?r.variantList.items:[]).filter(d=>{var l;return!this.isProductVariantMode||(null===(l=this.productVariantIds)||void 0===l?void 0:l.includes(d.id))})).toPromise();e.push(...a||[])}return e.slice(0,n)})}}z.\u0275fac=function(n){return new(n||z)(t.Y36(c.DoR),t.Y36(c.gqp))},z.\u0275cmp=t.Xpm({type:z,selectors:[["vdr-assign-products-to-channel-dialog"]],decls:36,vars:32,consts:[["vdrDialogTitle",""],[1,"flex"],["clrInput","",3,"multiple","includeDefaultChannel","disableChannelIds","formControl"],[1,"flex-spacer"],["clrInput","","type","number","min","0","max","99999",3,"formControl"],[1,"channel-price-preview"],[1,"clr-control-label"],[1,"table"],[3,"ngIf","ngIfElse"],["noSelection",""],[4,"ngFor","ngForOf"],["vdrDialogButtons",""],[4,"ngIf","ngIfElse"],["productModeTitle",""],["noChannelSelected",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){if(1&n&&(t.YNc(0,di,3,2,"ng-template",0),t.TgZ(1,"div",1)(2,"clr-input-container")(3,"label"),t._uU(4),t.ALo(5,"translate"),t.qZA(),t._UZ(6,"vdr-channel-assignment-control",2),t.qZA(),t._UZ(7,"div",3),t.TgZ(8,"clr-input-container")(9,"label"),t._uU(10),t.ALo(11,"translate"),t.qZA(),t._UZ(12,"input",4),t.qZA()(),t.TgZ(13,"div",5)(14,"label",6),t._uU(15),t.ALo(16,"translate"),t.qZA(),t.TgZ(17,"table",7)(18,"thead")(19,"tr")(20,"th"),t._uU(21),t.ALo(22,"translate"),t.qZA(),t.TgZ(23,"th"),t._uU(24),t.ALo(25,"translate"),t.ALo(26,"translate"),t.ALo(27,"channelCodeToLabel"),t.qZA(),t.TgZ(28,"th"),t.YNc(29,pi,2,6,"ng-template",8),t.YNc(30,ui,2,3,"ng-template",null,9,t.W1O),t.qZA()()(),t.TgZ(32,"tbody"),t.YNc(33,_i,10,7,"tr",10),t.ALo(34,"async"),t.qZA()()(),t.YNc(35,Ci,7,6,"ng-template",11)),2&n){const o=t.MAs(31);t.xp6(4),t.Oqu(t.lcZ(5,13,"common.channel")),t.xp6(2),t.Q6J("multiple",!1)("includeDefaultChannel",!1)("disableChannelIds",e.currentChannelIds)("formControl",e.selectedChannelIdControl),t.xp6(4),t.Oqu(t.lcZ(11,15,"catalog.price-conversion-factor")),t.xp6(2),t.Q6J("formControl",e.priceFactorControl),t.xp6(3),t.Oqu(t.lcZ(16,17,"catalog.channel-price-preview")),t.xp6(6),t.Oqu(t.lcZ(22,19,"common.name")),t.xp6(3),t.hij(" ",t.xi3(25,21,"catalog.price-in-channel",t.VKq(30,Ae,t.lcZ(26,24,t.lcZ(27,26,null==e.currentChannel?null:e.currentChannel.code))))," "),t.xp6(5),t.Q6J("ngIf",e.selectedChannel)("ngIfElse",o),t.xp6(4),t.Q6J("ngForOf",t.lcZ(34,28,e.variantsPreview$))}},directives:[Nt.q,x.O5,h.G55,h.MgK,Te.S,h.xRP,p.JJ,p.oH,V.y,p.qQ,p.Fd,p.wV,p.Fj,x.sg,qt.n],pipes:[O.X$,re.E,x.Ov,se.k],styles:["vdr-channel-assignment-control[_ngcontent-%COMP%]{min-width:200px}.channel-price-preview[_ngcontent-%COMP%]{margin-top:24px}.channel-price-preview[_ngcontent-%COMP%] table.table[_ngcontent-%COMP%]{margin-top:6px}"],changeDetection:0});var xi=g(3336);function ce(i,n,e){if(!i)return"";const o=i.lastIndexOf(n);if(-1===o)return i;return i.substr(0,o)+i.substr(o).replace(n,e)}class K{constructor(n){this.dataService=n}getTaxCategories(){return this.dataService.settings.getTaxCategories().mapSingle(n=>n.taxCategories).pipe((0,_t.d)(1))}createProductWithVariants(n,e,o){const a=this.dataService.product.createProduct(n),r=e.groups.filter(d=>0<d.values.length),s=this.createProductOptionGroups(r,o);return(0,E.D)(a,s).pipe((0,F.z)(([{createProduct:d},l])=>(l.length?(0,E.D)(l.map(_=>this.dataService.product.addOptionGroupToProduct({productId:d.id,optionGroupId:_.id}))):(0,k.of)([])).pipe((0,C.U)(()=>({createProduct:d,optionGroups:l})))),(0,F.z)(({createProduct:d,optionGroups:l})=>{const m=e.variants.map(f=>{const v=l.length?f.optionValues.map((Z,T)=>{const y=l[T].options.find(L=>L.name===Z);if(!y)throw new Error(`Could not find a matching ProductOption "${Z}" when creating variant`);return y.id}):[];return Object.assign(Object.assign({},f),{optionIds:v})}),_=l.map(f=>f.options).reduce((f,v)=>[...f,...v],[]);return this.createProductVariants(d,m,_,o)}))}createProductOptionGroups(n,e){return n.length?(0,E.D)(n.map(o=>this.dataService.product.createProductOptionGroups({code:(0,et.U)(o.name,"-"),translations:[{languageCode:e,name:o.name}],options:o.values.map(a=>({code:(0,et.U)(a,"-"),translations:[{languageCode:e,name:a}]}))}).pipe((0,C.U)(a=>a.createProductOptionGroup)))):(0,k.of)([])}createProductVariants(n,e,o,a){const r=e.map(s=>{const d=o.length?`${n.name} ${s.optionIds.map(l=>o.find(m=>m.id===l)).filter(R.notNullOrUndefined).map(l=>l.name).join(" ")}`:n.name;return{productId:n.id,price:s.price,sku:s.sku,stockOnHand:s.stock,translations:[{languageCode:a,name:d}],optionIds:s.optionIds}});return this.dataService.product.createProductVariants(r).pipe((0,C.U)(({createProductVariants:s})=>({createProductVariants:s,productId:n.id})))}updateProduct(n){const{product:e,languageCode:o,autoUpdate:a,productInput:r,variantsInput:s}=n,d=[],l=s||[];return(a?this.dataService.product.getProductVariants({},e.id).mapSingle(({productVariants:_})=>_.items):(0,k.of)([])).pipe((0,F.z)(_=>{var f,v,Z,T;if(r){d.push(this.dataService.product.updateProduct(r));const y=null!==(v=null===(f=(0,c.ZIM)(e,o))||void 0===f?void 0:f.name)&&void 0!==v?v:"",L=null===(Z=(0,c.ZIM)(r,o))||void 0===Z?void 0:Z.name;if(L&&y!==L&&a)for(const S of _){const Wt=(null===(T=(0,c.ZIM)(S,o))||void 0===T?void 0:T.name)||"";let Jt;const tn=l.find(de=>de.id===S.id);tn?Jt=tn:(Jt={id:S.id,translations:[{languageCode:o,name:Wt}]},l.push(Jt));const Bt=(0,c.ZIM)(Jt,o);Bt&&(Bt.name?Bt.name=ce(Bt.name,y,L):Bt.name=[L,...S.options.map(de=>de.name)].join(" "))}}return l.length&&d.push(this.dataService.product.updateProductVariants(l)),(0,E.D)(d)}))}updateProductOption(n,e,o){return(n.autoUpdate?this.dataService.product.getProductVariants({},e.id).mapSingle(({productVariants:r})=>r.items):(0,k.of)([])).pipe((0,F.z)(r=>{var s,d,l;let m=(0,k.of)([]);if(n.autoUpdate){let _;const f=null===(s=(0,c.ZIM)(n,o))||void 0===s?void 0:s.name;f||(m=(0,k.of)([]));const v=[];for(const Z of r)if(Z.options.map(T=>T.id).includes(n.id)){_||(_=null===(d=(0,c.ZIM)(Z.options.find(y=>y.id===n.id),o))||void 0===d?void 0:d.name);const T=(null===(l=(0,c.ZIM)(Z,o))||void 0===l?void 0:l.name)||"";_&&f&&T.includes(_)&&v.push({id:Z.id,translations:[{languageCode:o,name:ce(T,_,f)}]})}v.length&&(m=this.dataService.product.updateProductVariants(v))}return this.dataService.product.updateProductOption(n).pipe((0,F.z)(()=>m))}))}deleteProductVariant(n,e){return this.dataService.product.deleteProductVariant(n).pipe((0,b.w)(o=>o.deleteProductVariant.result===c.PcR.DELETED?this.dataService.product.getProduct(e).single$:function bi(i,n){const e=(0,be.m)(i)?i:()=>i,o=a=>a.error(e());return new xi.y(n?a=>n.schedule(o,0,a):o)}(o.deleteProductVariant.message)))}}K.\u0275fac=function(n){return new(n||K)(t.LFG(c.DoR))},K.\u0275prov=t.Yz7({token:K,factory:K.\u0275fac,providedIn:"root"});var ye=g(6444),Pe=g(4209),Zi=g(2930),Fe=g(1185);const Ti=["textArea"],Ai=["editNameInput"];function yi(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",6),t.NdJ("iconClick",function(){const r=t.CHM(e).$implicit;return t.oxw(2).removeOption(r)}),t.TgZ(1,"span",7)(2,"input",8,9),t.NdJ("blur",function(a){const s=t.CHM(e).index;return t.oxw(2).updateOption(s,a)})("click",function(a){return a.cancelBubble=!0}),t.qZA()(),t.TgZ(4,"span",10),t.NdJ("click",function(a){const s=t.CHM(e).index;return t.oxw(2).editName(s,a)}),t._uU(5),t.qZA()()}if(2&i){const e=n.$implicit,o=n.last,a=n.index,r=t.oxw(2);t.ekj("selected",o&&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 Pi(i,n){if(1&i&&(t.TgZ(0,"div",4),t.YNc(1,yi,6,12,"vdr-chip",5),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.optionValues)}}const Oe={provide:p.JU,useExisting:(0,t.Gpc)(()=>W),multi:!0};class W{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}get optionValues(){var n,e;return null!==(e=null!==(n=this.formValue)&&void 0!==n?n:this.options)&&void 0!==e?e:[]}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){var o;const a=this.optionValues[n];if(!a.locked&&!a.id){e.cancelBubble=!0,this.editingIndex=n;const r=null===(o=this.nameInputs.get(n))||void 0===o?void 0:o.nativeElement;setTimeout(()=>null==r?void 0:r.focus())}}updateOption(n,e){const o=this.optionValues[n],a=e.target.value;o&&(a&&(o.name=a,this.edit.emit({index:n,option:o})),this.editingIndex=-1)}removeOption(n){var e;n.locked||(this.formValue?(this.formValue=null===(e=this.formValue)||void 0===e?void 0:e.filter(o=>o.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=>{var o;const a=null!==(o=this.options)&&void 0!==o?o:this.formValue;return!(null==a?void 0:a.find(r=>(null==r?void 0:r.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)}}}W.\u0275fac=function(n){return new(n||W)(t.Y36(t.sBO))},W.\u0275cmp=t.Xpm({type:W,selectors:[["vdr-option-value-input"]],viewQuery:function(n,e){if(1&n&&(t.Gf(Ti,7),t.Gf(Ai,5,t.SBq)),2&n){let o;t.iGM(o=t.CRH())&&(e.textArea=o.first),t.iGM(o=t.CRH())&&(e.nameInputs=o)}},inputs:{groupName:"groupName",options:"options",disabled:"disabled"},outputs:{add:"add",remove:"remove",edit:"edit"},features:[t._Bn([Oe])],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 o=t.EpF();t.TgZ(0,"div",0),t.NdJ("click",function(){return t.CHM(o),t.MAs(3).focus()}),t.YNc(1,Pi,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))},directives:[x.O5,x.sg,Ut.Y,V.y,p.Fj,p.JJ,p.On],styles:[".input-wrapper[_ngcontent-%COMP%]{background-color:#fff;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}.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 zt=g(7283);const Fi=["optionGroupName"];function Oi(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",7)(1,"div",8)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.TgZ(5,"input",9,10),t.NdJ("ngModelChange",function(a){return t.CHM(e).$implicit.name=a})("keydown.enter",function(a){t.CHM(e);const r=t.MAs(12);return t.oxw().handleEnter(a,r)}),t.qZA()(),t.TgZ(7,"div",11)(8,"label"),t._uU(9),t.ALo(10,"translate"),t.qZA(),t.TgZ(11,"vdr-option-value-input",12,13),t.NdJ("ngModelChange",function(a){return t.CHM(e).$implicit.values=a})("ngModelChange",function(){return t.CHM(e),t.oxw().generateVariants()})("edit",function(){return t.CHM(e),t.oxw().generateVariants()}),t.qZA()(),t.TgZ(13,"div",14)(14,"button",15),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().removeOption(r.name)}),t.ALo(15,"translate"),t._UZ(16,"clr-icon",16),t.qZA()()()}if(2&i){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 Ii(i,n){1&i&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.create")))}function Mi(i,n){1&i&&(t.TgZ(0,"th"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"catalog.variant")))}function ki(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"td")(1,"input",20),t.NdJ("change",function(){return t.CHM(e),t.oxw(2).onFormChange()})("ngModelChange",function(a){t.CHM(e);const r=t.oxw().$implicit;return t.oxw().variantFormValues[r.id].enabled=a}),t.qZA()()}if(2&i){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngModel",o.variantFormValues[e.id].enabled)}}function Li(i,n){if(1&i&&(t.TgZ(0,"td"),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.values.join(" ")," ")}}function Vi(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"tr"),t.YNc(1,ki,2,1,"td",5),t.YNc(2,Li,2,1,"td",5),t.TgZ(3,"td")(4,"clr-input-container")(5,"input",17),t.NdJ("change",function(){return t.CHM(e),t.oxw().onFormChange()})("ngModelChange",function(a){const s=t.CHM(e).$implicit;return t.oxw().variantFormValues[s.id].sku=a}),t.ALo(6,"translate"),t.qZA()()(),t.TgZ(7,"td")(8,"clr-input-container")(9,"vdr-currency-input",18),t.NdJ("ngModelChange",function(a){const s=t.CHM(e).$implicit;return t.oxw().variantFormValues[s.id].price=a})("ngModelChange",function(){return t.CHM(e),t.oxw().onFormChange()}),t.qZA()()(),t.TgZ(10,"td")(11,"clr-input-container")(12,"input",19),t.NdJ("ngModelChange",function(a){const s=t.CHM(e).$implicit;return t.oxw().variantFormValues[s.id].stock=a})("change",function(){return t.CHM(e),t.oxw().onFormChange()}),t.qZA()()()()}if(2&i){const e=n.$implicit,o=t.oxw();t.ekj("disabled",!o.variantFormValues[e.id].enabled),t.xp6(1),t.Q6J("ngIf",1<o.variants.length),t.xp6(1),t.Q6J("ngIf",1<o.variants.length),t.xp6(3),t.Q6J("ngModel",o.variantFormValues[e.id].sku)("placeholder",t.lcZ(6,9,"catalog.sku")),t.xp6(4),t.Q6J("ngModel",o.variantFormValues[e.id].price)("currencyCode",o.currencyCode),t.xp6(3),t.Q6J("ngModel",o.variantFormValues[e.id].stock)}}const le="__DEFAULT_VARIANT__";class xt{constructor(n){this.dataService=n,this.variantsChange=new t.vpe,this.optionGroups=[],this.variantFormValues={}}ngOnInit(){this.dataService.settings.getActiveChannel().single$.subscribe(n=>{this.currencyCode=n.activeChannel.currencyCode}),this.generateVariants()}addOption(){this.optionGroups.push({name:"",values:[]});const n=this.optionGroups.length-1;setTimeout(()=>{var e;const o=null===(e=this.groupNameInputs.get(n))||void 0===e?void 0:e.nativeElement;null==o||o.focus()})}removeOption(n){this.optionGroups=this.optionGroups.filter(e=>e.name!==n),this.generateVariants()}generateVariants(){const e=this.optionGroups.reduce((o,a)=>o+a.values.length,0)?this.optionGroups.map(o=>o.values.map(a=>a.name)):[[le]];this.variants=(0,R.generateAllCombinations)(e).map(o=>({id:o.join("|"),values:o})),this.variants.forEach(o=>{this.variantFormValues[o.id]||(this.variantFormValues[o.id]={optionValues:o.values,enabled:!0,price:this.copyFromDefault(o.id,"price",0),sku:this.copyFromDefault(o.id,"sku",""),stock:this.copyFromDefault(o.id,"stock",0)})}),this.onFormChange()}trackByFn(n,e){return e.values.join("|")}handleEnter(n,e){n.preventDefault(),n.stopPropagation(),e.focus()}onFormChange(){const n=this.variants.map(e=>this.variantFormValues[e.id]).filter(e=>e.enabled);this.variantsChange.emit({groups:this.optionGroups.map(e=>({name:e.name,values:e.values.map(o=>o.name)})),variants:n})}copyFromDefault(n,e,o){return n!==le?this.variantFormValues[le][e]:o}}xt.\u0275fac=function(n){return new(n||xt)(t.Y36(c.DoR))},xt.\u0275cmp=t.Xpm({type:xt,selectors:[["vdr-generate-product-variants"]],viewQuery:function(n,e){if(1&n&&t.Gf(Fi,5,t.SBq),2&n){let o;t.iGM(o=t.CRH())&&(e.groupNameInputs=o)}},outputs:{variantsChange:"variantsChange"},decls:21,vars:17,consts:[["class","option-groups",4,"ngFor","ngForOf"],[1,"btn","btn-primary-outline","btn-sm",3,"click"],["shape","plus"],[1,"variants-preview"],[1,"table"],[4,"ngIf"],[3,"disabled",4,"ngFor","ngForOf","ngForTrackBy"],[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,"btn","btn-icon","btn-warning-outline",3,"title","click"],["shape","trash"],["clrInput","","type","text",3,"ngModel","placeholder","change","ngModelChange"],["clrInput","",3,"ngModel","currencyCode","ngModelChange"],["clrInput","","type","number","min","0","step","1",3,"ngModel","ngModelChange","change"],["type","checkbox","clrCheckbox","",3,"ngModel","change","ngModelChange"]],template:function(n,e){1&n&&(t.YNc(0,Oi,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.TgZ(5,"div",3)(6,"table",4)(7,"thead")(8,"tr"),t.YNc(9,Ii,3,3,"th",5),t.YNc(10,Mi,3,3,"th",5),t.TgZ(11,"th"),t._uU(12),t.ALo(13,"translate"),t.qZA(),t.TgZ(14,"th"),t._uU(15),t.ALo(16,"translate"),t.qZA(),t.TgZ(17,"th"),t._uU(18),t.ALo(19,"translate"),t.qZA()()(),t.YNc(20,Vi,13,11,"tr",6),t.qZA()()),2&n&&(t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(4,9,"catalog.add-option"),"\n"),t.xp6(6),t.Q6J("ngIf",1<e.variants.length),t.xp6(1),t.Q6J("ngIf",1<e.variants.length),t.xp6(2),t.Oqu(t.lcZ(13,11,"catalog.sku")),t.xp6(3),t.Oqu(t.lcZ(16,13,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(19,15,"catalog.stock-on-hand")),t.xp6(2),t.Q6J("ngForOf",e.variants)("ngForTrackBy",e.trackByFn))},directives:[x.sg,h.MgK,V.y,p.Fj,h.xRP,p.Q7,p.JJ,p.On,W,h.qvL,x.O5,h.q0d,p.Wl,h.KKC,h.G55,zt.K,p.qQ,p.wV],pipes:[O.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 Ie=g(5850),wi=g(3477);function Ji(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"th"),t._uU(2),t.qZA(),t.BQk()),2&i){const e=n.$implicit;t.xp6(2),t.Oqu(e.name)}}function Di(i,n){if(1&i&&(t._UZ(0,"img",18),t.ALo(1,"assetPreview")),2&i){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function Ui(i,n){1&i&&(t.TgZ(0,"div",19),t._UZ(1,"clr-icon",20),t.qZA())}function Ni(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"td",5),t.ALo(2,"stringToColor"),t._uU(3),t.qZA(),t.BQk()),2&i){const e=n.$implicit,o=t.oxw().ngIf,a=t.oxw(2);t.xp6(1),t.Udp("color",t.lcZ(2,5,a.optionGroupName(e.groupId))),t.ekj("disabled",!o.get("enabled").value),t.xp6(2),t.hij(" ",e.name," ")}}function qi(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",21),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function Si(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",22),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function $i(i,n){if(1&i&&(t.ynx(0,4),t.TgZ(1,"td",5)(2,"div",6)(3,"div",7),t.YNc(4,Di,2,4,"img",8),t.YNc(5,Ui,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,Ni,4,7,"ng-container",1),t.ALo(18,"sort"),t.TgZ(19,"td",12)(20,"clr-input-container"),t.YNc(21,qi,2,4,"vdr-currency-input",13),t.YNc(22,Si,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&i){const e=n.ngIf,o=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",o),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 Qi(i,n){if(1&i&&(t.TgZ(0,"tr"),t.YNc(1,$i,31,39,"ng-container",3),t.qZA()),2&i){const e=n.$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngIf",o.formGroupMap.get(e.id))}}class bt{constructor(n){this.changeDetector=n,this.formGroupMap=new Map,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct]}ngOnInit(){this.subscription=this.formArray.valueChanges.pipe((0,C.U)(n=>n.length),(0,$.b)(1),(0,Y.x)()).subscribe(()=>{this.buildFormGroupMap()}),this.buildFormGroupMap()}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}trackByFn(n,e){return null!=e.id?e.id:n}getFeaturedAsset(n){var e;return(null===(e=this.pendingAssetChanges[n.id])||void 0===e?void 0:e.featuredAsset)||n.featuredAsset}optionGroupName(n){const e=this.optionGroups.find(o=>o.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 Ei(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.Oqu(t.lcZ(1,1,"catalog.update-product-option"))}bt.\u0275fac=function(n){return new(n||bt)(t.Y36(t.sBO))},bt.\u0275cmp=t.Xpm({type:bt,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,Ji,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,Qi,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))},directives:[x.sg,h.q0d,x.O5,p.JL,p.sg,h.qvL,h.G55,V.y,p.Fj,h.xRP,p.JJ,p.u,zt.K,p.qQ,p.wV,h.PEh,p.Wl,h.KKC,Ht.x],pipes:[O.X$,Ie.U,Xt._s,ne.M,N.j,wi.s],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 Yi=function(){return["UpdateCatalog","UpdateProduct"]};function Gi(i,n){if(1&i&&(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&i){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,Yi)))}}function ji(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",11),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",12),t.NdJ("click",function(){return t.CHM(e),t.oxw().update()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&i){const e=t.oxw(),o=t.MAs(4),a=t.MAs(8);t.xp6(1),t.Oqu(t.lcZ(2,3,"common.cancel")),t.xp6(2),t.Q6J("disabled",o.invalid||a.invalid||o.pristine&&a.pristine&&e.customFieldsForm.pristine),t.xp6(1),t.hij(" ",t.lcZ(5,5,"catalog.update-product-option")," ")}}class Zt{constructor(){this.updateVariantName=!0,this.codeInputTouched=!1}ngOnInit(){var n;const e=this.productOption.translations.find(o=>o.languageCode===this.activeLanguage);if(this.name=null!==(n=null==e?void 0:e.name)&&void 0!==n?n:"",this.code=this.productOption.code,this.customFieldsForm=new p.cw({}),this.customFields){const o=e&&e.customFields||{};for(const a of this.customFields){const r=a.name,s="localeString"===a.type?o[r]:this.productOption.customFields[r];this.customFieldsForm.addControl(a.name,new p.NI(s))}}}update(){const n=(0,c.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(Object.assign(Object.assign({},n),{autoUpdate:this.updateVariantName}))}cancel(){this.resolveWith()}updateCode(n){!this.codeInputTouched&&!this.productOption.code&&(this.code=(0,et.U)(n,"-"))}}Zt.\u0275fac=function(n){return new(n||Zt)},Zt.\u0275cmp=t.Xpm({type:Zt,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,Ei,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,Gi,6,9,"section",8),t.YNc(15,ji,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))},directives:[Nt.q,Et.h,V.y,p.Fj,p.Q7,p.JJ,p.On,p.c5,h.PEh,p.Wl,h.KKC,h.MgK,x.O5,Yt.y,qt.n],pipes:[O.X$,N.j],styles:[""],changeDetection:0});var Bi=g(7861);const Hi=function(i){return{rate:i}};function Ri(i,n){if(1&i&&(t.TgZ(0,"div",2),t._uU(1),t.ALo(2,"translate"),t.ALo(3,"async"),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-includes-tax-at",t.VKq(6,Hi,t.lcZ(3,4,e.taxRate$))),"\n")}}const zi=function(i,n){return{price:i,rate:n}};function Ki(i,n){if(1&i&&(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&i){const e=t.oxw();t.xp6(1),t.hij(" ",t.xi3(2,1,"catalog.price-with-tax-in-default-zone",t.WLB(11,zi,t.xi3(3,4,t.lcZ(4,7,e.grossPrice$),e.currencyCode),t.lcZ(5,9,e.taxRate$))),"\n")}}class Tt{constructor(n){this.dataService=n,this.priceChange$=new U.X(0),this.taxCategoryIdChange$=new U.X("")}ngOnInit(){const n=this.dataService.settings.getTaxRatesSimple(999,0,"cache-first").mapStream(o=>o.taxRates.items),e=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(o=>o.activeChannel);this.taxRate$=(0,I.a)(e,n,this.taxCategoryIdChange$).pipe((0,C.U)(([o,a,r])=>{const s=o.defaultTaxZone;if(!s)return 0;const d=a.find(l=>l.zone.id===s.id&&l.category.id===r);return d?d.value:0})),this.grossPrice$=(0,I.a)(this.taxRate$,this.priceChange$).pipe((0,C.U)(([o,a])=>Math.round(a*((100+o)/100))))}ngOnChanges(n){"price"in n&&this.priceChange$.next(n.price.currentValue),"taxCategoryId"in n&&this.taxCategoryIdChange$.next(n.taxCategoryId.currentValue)}}Tt.\u0275fac=function(n){return new(n||Tt)(t.Y36(c.DoR))},Tt.\u0275cmp=t.Xpm({type:Tt,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,Ri,4,8,"div",1),t.YNc(4,Ki,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))},directives:[h.MgK,x.O5],pipes:[O.X$,x.Ov,se.k],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.value[_ngcontent-%COMP%]{margin-top:3px}"],changeDetection:0});var Wi=g(9435);function Xi(i,n){1&i&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",45),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&i&&(t.xp6(3),t.Oqu(t.lcZ(4,1,"common.enabled")))}function ta(i,n){if(1&i&&(t.TgZ(0,"option",48),t._uU(1),t.qZA()),2&i){const e=n.$implicit;t.Q6J("value",e.id),t.xp6(1),t.hij(" ",e.name," ")}}function ea(i,n){if(1&i&&(t.TgZ(0,"clr-select-container")(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"select",46),t.YNc(5,ta,2,2,"option",47),t.qZA()()),2&i){const e=t.oxw(3);t.xp6(2),t.Oqu(t.lcZ(3,2,"catalog.tax-category")),t.xp6(3),t.Q6J("ngForOf",e.taxCategories)}}function na(i,n){if(1&i&&(t.TgZ(0,"label",29),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"div",49),t._uU(4),t.qZA()),2&i){const e=t.oxw().ngIf,o=t.oxw(2);t.xp6(1),t.Oqu(t.lcZ(2,2,"catalog.tax-category")),t.xp6(3),t.hij(" ",o.getTaxCategoryName(e)," ")}}function oa(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",50),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function ia(i,n){if(1&i&&(t._UZ(0,"vdr-currency-input",51),t.ALo(1,"hasPermission")),2&i){const e=t.oxw(2).$implicit,o=t.oxw();t.Q6J("currencyCode",e.currencyCode)("readonly",!t.lcZ(1,2,o.updatePermission))}}function aa(i,n){if(1&i&&(t.TgZ(0,"clr-select-container")(1,"label"),t._uU(2),t.ALo(3,"translate"),t._UZ(4,"vdr-help-tooltip",27),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"select",52)(7,"option",48),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"option",48),t._uU(11),t.ALo(12,"translate"),t.qZA(),t.TgZ(13,"option",48),t._uU(14),t.ALo(15,"translate"),t.qZA()()()),2&i){const e=t.oxw(3);t.xp6(2),t.hij("",t.lcZ(3,8,"catalog.track-inventory")," "),t.xp6(2),t.Q6J("content",t.lcZ(5,10,"catalog.track-inventory-tooltip")),t.xp6(3),t.Q6J("value",e.GlobalFlag.TRUE),t.xp6(1),t.hij(" ",t.lcZ(9,12,"catalog.track-inventory-true")," "),t.xp6(2),t.Q6J("value",e.GlobalFlag.FALSE),t.xp6(1),t.hij(" ",t.lcZ(12,14,"catalog.track-inventory-false")," "),t.xp6(2),t.Q6J("value",e.GlobalFlag.INHERIT),t.xp6(1),t.hij(" ",t.lcZ(15,16,"catalog.track-inventory-inherit")," ")}}function ra(i,n){if(1&i&&(t.TgZ(0,"section",53),t._UZ(1,"vdr-tabbed-custom-fields",54),t.ALo(2,"hasPermission"),t.qZA()),2&i){const e=t.oxw().ngIf,o=t.oxw(2);t.xp6(1),t.Q6J("customFields",o.customFields)("compact",!0)("customFieldsFormGroup",e.get("customFields"))("readonly",!t.lcZ(2,4,o.updatePermission))}}function sa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",58),t.NdJ("iconClick",function(){const r=t.CHM(e).$implicit;return t.oxw(4).editOption(r)}),t.ALo(1,"hasPermission"),t.TgZ(2,"span",59),t._uU(3),t.qZA(),t._uU(4),t.qZA()}if(2&i){const e=n.$implicit,o=t.oxw(4);t.Q6J("colorFrom",o.optionGroupName(e.groupId))("invert",!0)("icon",t.lcZ(1,5,o.updatePermission)&&"pencil"),t.xp6(3),t.Oqu(o.optionGroupName(e.groupId)),t.xp6(1),t.hij(" ",o.optionName(e)," ")}}const ca=function(){return["./","options"]};function la(i,n){if(1&i&&(t.TgZ(0,"div")(1,"div",55),t.YNc(2,sa,5,7,"vdr-chip",56),t.ALo(3,"sort"),t.TgZ(4,"a",57),t._uU(5),t.ALo(6,"translate"),t.qZA()()()),2&i){const e=t.oxw(2).$implicit;t.xp6(2),t.Q6J("ngForOf",t.xi3(3,3,e.options,"groupId")),t.xp6(2),t.Q6J("routerLink",t.DdM(8,ca)),t.xp6(1),t.hij("",t.lcZ(6,6,"catalog.edit-options"),"...")}}function da(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",60),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,s=t.oxw(2).$implicit;return t.oxw().removeFacetValue(s,r.id)}),t.ALo(1,"hasPermission"),t.qZA()}if(2&i){const e=n.$implicit,o=t.oxw(3);t.Q6J("facetValue",e)("removable",t.lcZ(1,2,o.updatePermission))}}function pa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",61),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2).$implicit;return t.oxw().selectFacetValue(a)}),t._UZ(1,"clr-icon",62),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&i&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}const ua=function(i){return{channelCode:i}};function ma(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",69),t.NdJ("iconClick",function(){t.CHM(e);const a=t.oxw().$implicit,r=t.oxw(4).$implicit;return t.oxw().removeFromChannel.emit({channelId:a.id,variant:r})}),t.ALo(1,"translate"),t._UZ(2,"vdr-channel-badge",70),t._uU(3),t.ALo(4,"channelCodeToLabel"),t.qZA()}if(2&i){const e=t.oxw().$implicit;t.Q6J("title",t.xi3(1,3,"catalog.remove-from-channel",t.VKq(8,ua,e.code))),t.xp6(2),t.Q6J("channelCode",e.code),t.xp6(1),t.hij(" ",t.lcZ(4,6,e.code)," ")}}function ga(i,n){if(1&i&&(t.ynx(0),t.YNc(1,ma,5,10,"vdr-chip",68),t.BQk()),2&i){const e=n.$implicit,o=t.oxw(5);t.xp6(1),t.Q6J("ngIf",!o.isDefaultChannel(e.code))}}function _a(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",13)(1,"div",64),t.YNc(2,ga,2,1,"ng-container",65),t.TgZ(3,"button",66),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(3).$implicit;return t.oxw().assignToChannel.emit(a)}),t._UZ(4,"clr-icon",67),t._uU(5),t.ALo(6,"translate"),t.qZA()()()}if(2&i){const e=t.oxw(3).$implicit;t.xp6(2),t.Q6J("ngForOf",e.channels),t.xp6(3),t.hij(" ",t.lcZ(6,2,"catalog.assign-to-channel")," ")}}function ha(i,n){1&i&&(t.ynx(0),t.YNc(1,_a,7,4,"div",63),t.BQk())}function fa(i,n){if(1&i){const e=t.EpF();t.ynx(0,4),t.TgZ(1,"div",5)(2,"div",6)(3,"vdr-title-input",7),t.ALo(4,"hasPermission"),t.TgZ(5,"clr-input-container"),t._UZ(6,"input",8),t.ALo(7,"hasPermission"),t.ALo(8,"translate"),t.qZA()(),t.TgZ(9,"vdr-title-input",9),t.ALo(10,"hasPermission"),t.TgZ(11,"clr-input-container"),t._UZ(12,"input",10),t.ALo(13,"hasPermission"),t.ALo(14,"translate"),t.qZA()()(),t.TgZ(15,"div",11),t.YNc(16,Xi,5,3,"clr-toggle-wrapper",12),t.qZA()(),t.TgZ(17,"div",13)(18,"div",14)(19,"div",15)(20,"vdr-assets",16),t.NdJ("change",function(a){t.CHM(e);const r=t.oxw().$implicit;return t.oxw().onAssetChange(r.id,a)}),t.qZA()(),t.TgZ(21,"div",17)(22,"div",18)(23,"div",19)(24,"div",20),t.YNc(25,ea,6,4,"clr-select-container",21),t.YNc(26,na,5,4,"ng-template",null,22,t.W1O),t.qZA(),t.TgZ(28,"div",23)(29,"clr-input-container")(30,"label"),t._uU(31),t.ALo(32,"translate"),t.qZA(),t.YNc(33,oa,2,4,"vdr-currency-input",24),t.YNc(34,ia,2,4,"vdr-currency-input",25),t.qZA()(),t._UZ(35,"vdr-variant-price-detail",26),t.qZA(),t.TgZ(36,"div",19),t.YNc(37,aa,16,18,"clr-select-container",12),t.TgZ(38,"clr-input-container")(39,"label"),t._uU(40),t.ALo(41,"translate"),t._UZ(42,"vdr-help-tooltip",27),t.ALo(43,"translate"),t.qZA(),t._UZ(44,"input",28),t.ALo(45,"hasPermission"),t.qZA(),t.TgZ(46,"div")(47,"label",29),t._uU(48),t.ALo(49,"translate"),t._UZ(50,"vdr-help-tooltip",27),t.ALo(51,"translate"),t.qZA(),t.TgZ(52,"div",30),t._uU(53),t.qZA()(),t.TgZ(54,"div")(55,"label",29),t._uU(56),t.ALo(57,"translate"),t._UZ(58,"vdr-help-tooltip",27),t.ALo(59,"translate"),t.qZA(),t.TgZ(60,"div",30),t._uU(61),t.qZA()()(),t.TgZ(62,"div",19)(63,"div",31)(64,"label",29),t._uU(65),t.ALo(66,"translate"),t._UZ(67,"vdr-help-tooltip",27),t.ALo(68,"translate"),t.qZA(),t.TgZ(69,"div",32)(70,"clr-input-container"),t._UZ(71,"input",33),t.ALo(72,"hasPermission"),t.qZA(),t.TgZ(73,"clr-toggle-wrapper"),t._UZ(74,"input",34),t.ALo(75,"hasPermission"),t.TgZ(76,"label"),t._uU(77),t.ALo(78,"translate"),t.qZA()()()()()(),t.TgZ(79,"div",35)(80,"div",19),t.YNc(81,ra,3,6,"section",36),t.qZA()()()()(),t.TgZ(82,"div",13)(83,"div",37),t._UZ(84,"vdr-entity-info",38),t.YNc(85,la,7,9,"div",39),t._UZ(86,"div",40),t.TgZ(87,"div",41),t.YNc(88,da,2,4,"vdr-facet-value-chip",42),t.YNc(89,pa,4,3,"button",43),t.qZA()()(),t.YNc(90,ha,2,0,"ng-container",44),t.BQk()}if(2&i){const e=n.ngIf,o=t.MAs(27),a=t.oxw().$implicit,r=t.oxw();let s;t.Q6J("formGroup",e),t.xp6(3),t.Q6J("readonly",!t.lcZ(4,54,r.updatePermission)),t.xp6(3),t.Q6J("readonly",!t.lcZ(7,56,r.updatePermission))("placeholder",t.lcZ(8,58,"catalog.sku")),t.xp6(3),t.Q6J("readonly",!t.lcZ(10,60,r.updatePermission)),t.xp6(3),t.Q6J("readonly",!t.lcZ(13,62,r.updatePermission))("placeholder",t.lcZ(14,64,"common.name")),t.xp6(4),t.Q6J("vdrIfPermissions",r.updatePermission),t.xp6(4),t.Q6J("compact",!0)("assets",(null==r.pendingAssetChanges[a.id]?null:r.pendingAssetChanges[a.id].assets)||a.assets)("featuredAsset",(null==r.pendingAssetChanges[a.id]?null:r.pendingAssetChanges[a.id].featuredAsset)||a.featuredAsset)("updatePermissions",r.updatePermission),t.xp6(5),t.Q6J("vdrIfPermissions",r.updatePermission)("vdrIfPermissionsElse",o),t.xp6(6),t.Oqu(t.lcZ(32,66,"catalog.price")),t.xp6(2),t.Q6J("ngIf",!r.channelPriceIncludesTax),t.xp6(1),t.Q6J("ngIf",r.channelPriceIncludesTax),t.xp6(1),t.Q6J("price",e.get("price").value)("currencyCode",a.currencyCode)("priceIncludesTax",r.channelPriceIncludesTax)("taxCategoryId",e.get("taxCategoryId").value),t.xp6(2),t.Q6J("vdrIfPermissions",r.updatePermission),t.xp6(3),t.hij("",t.lcZ(41,68,"catalog.stock-on-hand")," "),t.xp6(2),t.Q6J("content",t.lcZ(43,70,"catalog.stock-on-hand-tooltip")),t.xp6(2),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.Q6J("min",r.getStockOnHandMinValue(e))("readonly",!t.lcZ(45,72,r.updatePermission))("vdrDisabled",r.inventoryIsNotTracked(e)),t.xp6(2),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.xp6(2),t.hij("",t.lcZ(49,74,"catalog.stock-allocated")," "),t.xp6(2),t.Q6J("content",t.lcZ(51,76,"catalog.stock-allocated-tooltip")),t.xp6(3),t.hij(" ",a.stockAllocated," "),t.xp6(1),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.xp6(2),t.hij("",t.lcZ(57,78,"catalog.stock-saleable")," "),t.xp6(2),t.Q6J("content",t.lcZ(59,80,"catalog.stock-saleable-tooltip")),t.xp6(3),t.hij(" ",r.getSaleableStockLevel(a)," "),t.xp6(2),t.ekj("inventory-untracked",r.inventoryIsNotTracked(e)),t.xp6(2),t.Oqu(t.lcZ(66,82,"catalog.out-of-stock-threshold")),t.xp6(2),t.Q6J("content",t.lcZ(68,84,"catalog.out-of-stock-threshold-tooltip")),t.xp6(4),t.Q6J("formControl",e.get("outOfStockThreshold"))("readonly",!t.lcZ(72,86,r.updatePermission))("vdrDisabled",!1!==(null==(s=e.get("useGlobalOutOfStockThreshold"))?null:s.value)||r.inventoryIsNotTracked(e)),t.xp6(3),t.Q6J("vdrDisabled",!t.lcZ(75,88,r.updatePermission)||r.inventoryIsNotTracked(e)),t.xp6(3),t.AsE("",t.lcZ(78,90,"catalog.use-global-value")," (",r.globalOutOfStockThreshold,")"),t.xp6(4),t.Q6J("ngIf",r.customFields.length),t.xp6(3),t.Q6J("entity",a),t.xp6(1),t.Q6J("ngIf",a.options.length),t.xp6(3),t.Q6J("ngForOf",r.currentOrPendingFacetValues(a)),t.xp6(1),t.Q6J("vdrIfPermissions",r.updatePermission)}}function va(i,n){if(1&i&&(t.TgZ(0,"div",2),t.YNc(1,fa,91,92,"ng-container",3),t.qZA()),2&i){const e=n.$implicit,o=t.oxw();let a,r;t.ekj("disabled",!(null!=(a=o.formGroupMap.get(e.id))&&null!=(r=a.get("enabled"))&&r.value)),t.xp6(1),t.Q6J("ngIf",o.formGroupMap.get(e.id))}}const Ca=function(){return{itemsPerPage:10,currentPage:1}};class At{constructor(n,e,o){this.changeDetector=n,this.modalService=e,this.dataService=o,this.assignToChannel=new t.vpe,this.removeFromChannel=new t.vpe,this.assetChange=new t.vpe,this.selectionChange=new t.vpe,this.updateProductOption=new t.vpe,this.selectedVariantIds=[],this.formGroupMap=new Map,this.GlobalFlag=c.TvZ,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct]}ngOnInit(){this.dataService.settings.getGlobalSettings("cache-first").single$.subscribe(({globalSettings:n})=>{this.globalTrackInventory=n.trackInventory,this.globalOutOfStockThreshold=n.outOfStockThreshold,this.changeDetector.markForCheck()}),this.subscription=this.formArray.valueChanges.subscribe(()=>this.changeDetector.markForCheck()),this.subscription.add(this.formArray.valueChanges.pipe((0,C.U)(n=>n.length),(0,$.b)(1),(0,Y.x)()).subscribe(()=>{this.buildFormGroupMap()})),this.buildFormGroupMap()}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}isDefaultChannel(n){return n===ve.z$}trackById(n,e){return e.id}inventoryIsNotTracked(n){var e;const o=null===(e=n.get("trackInventory"))||void 0===e?void 0:e.value;return o===c.TvZ.FALSE||o===c.TvZ.INHERIT&&!1===this.globalTrackInventory}getTaxCategoryName(n){const e=n.get(["taxCategoryId"]);if(e&&this.taxCategories){const o=this.taxCategories.find(a=>a.id===e.value);return o?o.name:""}return""}getStockOnHandMinValue(n){var e,o;return(null===(e=n.get("useGlobalOutOfStockThreshold"))||void 0===e?void 0:e.value)?this.globalOutOfStockThreshold:null===(o=n.get("outOfStockThreshold"))||void 0===o?void 0:o.value}getSaleableStockLevel(n){const e=n.useGlobalOutOfStockThreshold?this.globalOutOfStockThreshold:n.outOfStockThreshold;return n.stockOnHand-n.stockAllocated-e}areAllSelected(){return!!this.variants&&this.selectedVariantIds.length===this.variants.length}onAssetChange(n,e){this.assetChange.emit(Object.assign({variantId:n},e));const o=this.formArray.controls.findIndex(a=>a.value.id===n);this.formArray.at(o).markAsDirty()}toggleSelectAll(){this.areAllSelected()?this.selectedVariantIds=[]:this.selectedVariantIds=this.variants.map(n=>n.id),this.selectionChange.emit(this.selectedVariantIds)}toggleSelectVariant(n){const e=this.selectedVariantIds.indexOf(n);-1<e?this.selectedVariantIds.splice(e,1):this.selectedVariantIds.push(n),this.selectionChange.emit(this.selectedVariantIds)}optionGroupName(n){var e;const o=this.optionGroups.find(a=>a.id===n);if(o)return(null!==(e=null==o?void 0:o.translations.find(r=>r.languageCode===this.activeLanguage))&&void 0!==e?e:o.translations[0]).name}optionName(n){var e;return(null!==(e=n.translations.find(a=>a.languageCode===this.activeLanguage))&&void 0!==e?e:n.translations[0]).name}currentOrPendingFacetValues(n){var e;return null!==(e=this.pendingFacetValueChanges[n.id])&&void 0!==e?e:n.facetValues}selectFacetValue(n){return this.modalService.fromComponent(ot,{size:"md",closable:!0}).subscribe(e=>{if(e){const o=n?n.facetValues.map(r=>r.id):[],a=this.formArray.controls.find(r=>r.value.id===n.id);if(a){const r=(0,J.T)([...o,...e.map(s=>s.id)]);a.patchValue({facetValueIds:r}),a.markAsDirty(),this.pendingFacetValueChanges[n.id]||(this.pendingFacetValueChanges[n.id]=n.facetValues.slice(0)),this.pendingFacetValueChanges[n.id].push(...e)}this.changeDetector.markForCheck()}})}removeFacetValue(n,e){const o=this.formGroupMap.get(n.id);if(o){const a=o.value.facetValueIds.filter(r=>r!==e);o.patchValue({facetValueIds:a}),o.markAsDirty(),this.pendingFacetValueChanges[n.id]||(this.pendingFacetValueChanges[n.id]=n.facetValues.slice(0)),this.pendingFacetValueChanges[n.id]=this.pendingFacetValueChanges[n.id].filter(r=>r.id!==e)}}isVariantSelected(n){return-1<this.selectedVariantIds.indexOf(n)}editOption(n){this.modalService.fromComponent(Zt,{size:"md",locals:{productOption:n,activeLanguage:this.activeLanguage,customFields:this.customOptionFields}}).subscribe(e=>{e&&this.updateProductOption.emit(e)})}buildFormGroupMap(){this.formGroupMap.clear();for(const n of this.formArray.controls)this.formGroupMap.set(n.value.id,n);this.changeDetector.markForCheck()}getFacetValueIds(n){var e;return(null===(e=this.formGroupMap.get(n))||void 0===e?void 0:e.value).facetValueIds}}At.\u0275fac=function(n){return new(n||At)(t.Y36(t.sBO),t.Y36(c.Z7U),t.Y36(c.DoR))},At.\u0275cmp=t.Xpm({type:At,selectors:[["vdr-product-variants-list"]],inputs:{formArray:["productVariantsFormArray","formArray"],variants:"variants",paginationConfig:"paginationConfig",channelPriceIncludesTax:"channelPriceIncludesTax",taxCategories:"taxCategories",optionGroups:"optionGroups",customFields:"customFields",customOptionFields:"customOptionFields",activeLanguage:"activeLanguage",pendingAssetChanges:"pendingAssetChanges",pendingFacetValueChanges:"pendingFacetValueChanges"},outputs:{assignToChannel:"assignToChannel",removeFromChannel:"removeFromChannel",assetChange:"assetChange",selectionChange:"selectionChange",updateProductOption:"updateProductOption"},decls:3,vars:6,consts:[[1,"variants-list"],["class","variant-container card",3,"disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"variant-container","card"],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"card-block","header-row"],[1,"details"],[1,"sku",3,"readonly"],["clrInput","","type","text","formControlName","sku",3,"readonly","placeholder"],[1,"name",3,"readonly"],["clrInput","","type","text","formControlName","name",3,"readonly","placeholder"],[1,"right-controls"],[4,"vdrIfPermissions"],[1,"card-block"],[1,"variant-body"],[1,"assets"],[3,"compact","assets","featuredAsset","updatePermissions","change"],[1,"variant-form-inputs"],[1,"standard-fields"],[1,"variant-form-input-row"],[1,"tax-category"],[4,"vdrIfPermissions","vdrIfPermissionsElse"],["taxCategoryLabel",""],[1,"price"],["clrInput","","formControlName","price",3,"currencyCode","readonly",4,"ngIf"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly",4,"ngIf"],[3,"price","currencyCode","priceIncludesTax","taxCategoryId"],[3,"content"],["clrInput","","type","number","step","1","formControlName","stockOnHand",3,"min","readonly","vdrDisabled"],[1,"clr-control-label"],[1,"value"],[1,"out-of-stock-threshold-wrapper"],[1,"flex"],["clrInput","","type","number",3,"formControl","readonly","vdrDisabled"],["type","checkbox","clrToggle","","name","useGlobalOutOfStockThreshold","formControlName","useGlobalOutOfStockThreshold",3,"vdrDisabled"],[1,"custom-fields"],["formGroupName","customFields",4,"ngIf"],[1,"options-facets"],[3,"entity"],[4,"ngIf"],[1,"flex-spacer"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","btn btn-sm btn-secondary",3,"click",4,"vdrIfPermissions"],[4,"vdrIfMultichannel"],["type","checkbox","clrToggle","","name","enabled","formControlName","enabled"],["clrSelect","","name","options","formControlName","taxCategoryId"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"tax-category-label"],["clrInput","","formControlName","price",3,"currencyCode","readonly"],["clrInput","","formControlName","priceWithTax",3,"currencyCode","readonly"],["clrSelect","","name","options","formControlName","trackInventory"],["formGroupName","customFields"],["entityName","ProductVariant",3,"customFields","compact","customFieldsFormGroup","readonly"],[1,"options"],[3,"colorFrom","invert","icon","iconClick",4,"ngFor","ngForOf"],[1,"btn","btn-link","btn-sm",3,"routerLink"],[3,"colorFrom","invert","icon","iconClick"],[1,"option-group-name"],[3,"facetValue","removable","remove"],[1,"btn","btn-sm","btn-secondary",3,"click"],["shape","plus"],["class","card-block",4,"vdrIfDefaultChannelActive"],[1,"flex","channel-assignment"],[4,"ngFor","ngForOf"],[1,"btn","btn-sm",3,"click"],["shape","layers"],["icon","times-circle",3,"title","iconClick",4,"ngIf"],["icon","times-circle",3,"title","iconClick"],[3,"channelCode"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0),t.YNc(1,va,2,3,"div",1),t.ALo(2,"paginate"),t.qZA()),2&n&&(t.xp6(1),t.Q6J("ngForOf",t.xi3(2,2,e.variants,e.paginationConfig||t.DdM(5,Ca)))("ngForTrackBy",e.trackById))},directives:[x.sg,h.q0d,x.O5,p.JL,p.sg,Bi.G,h.G55,V.y,p.Fj,h.xRP,p.JJ,p.u,D.H,h.PEh,p.Wl,h.KKC,h.MgK,j,h.dTv,p.EJ,h.otW,p.YN,p.Kr,zt.K,Tt,Wi.o,p.wV,p.qQ,Ht.x,p.oH,p.x0,Yt.y,Dt.V,Ut.Y,A.yS,Rt.q,h.qvL,ye.u,Pe.M,Fe.n],pipes:[Xt._s,N.j,O.X$,Ie.U,re.E],styles:[".with-selected[_ngcontent-%COMP%]{display:flex;min-height:52px;align-items:center;border:1px solid var(--color-component-border-100);border-radius:3px;padding:6px 18px}.with-selected[_ngcontent-%COMP%] vdr-select-toggle[_ngcontent-%COMP%]{margin-right:12px}.with-selected[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]{margin-right:12px}.variant-container[_ngcontent-%COMP%]{transition:background-color .2s;min-height:330px}.variant-container.disabled[_ngcontent-%COMP%]{background-color:var(--color-component-bg-200)}.variant-container[_ngcontent-%COMP%] .header-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap}.variant-container[_ngcontent-%COMP%] .variant-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .variant-body[_ngcontent-%COMP%]{flex-direction:row}}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;margin-right:12px}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{flex-direction:row;height:36px}}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{flex:1}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] .clr-control-container{width:100%}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] .clr-control-container input.clr-input{min-width:100%}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .sku[_ngcontent-%COMP%]{width:160px;margin-right:20px;flex:0}.variant-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%] .name input{min-width:300px}.variant-container[_ngcontent-%COMP%] .right-controls[_ngcontent-%COMP%]{display:flex}.variant-container[_ngcontent-%COMP%] .tax-category-label[_ngcontent-%COMP%]{margin-top:3px}.variant-container[_ngcontent-%COMP%] .variant-form-inputs[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .variant-form-inputs[_ngcontent-%COMP%]{flex-direction:row}}.variant-container[_ngcontent-%COMP%] .variant-form-input-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}@media screen and (min-width: 768px){.variant-container[_ngcontent-%COMP%] .variant-form-input-row[_ngcontent-%COMP%]{margin:0 6px 8px 24px}}.variant-container[_ngcontent-%COMP%] .variant-form-input-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{margin-right:24px;margin-bottom:24px}.variant-container[_ngcontent-%COMP%] .track-inventory-toggle[_ngcontent-%COMP%]{margin-top:22px}.variant-container[_ngcontent-%COMP%] .clr-form-control[_ngcontent-%COMP%]{margin-top:0}.variant-container[_ngcontent-%COMP%] .facets[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center}.variant-container[_ngcontent-%COMP%] .pricing[_ngcontent-%COMP%]{display:flex}.variant-container[_ngcontent-%COMP%] .pricing[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin-right:12px}.variant-container[_ngcontent-%COMP%] .option-group-name[_ngcontent-%COMP%]{color:var(--color-text-200);text-transform:uppercase;font-size:10px;margin-right:3px;height:11px}.variant-container[_ngcontent-%COMP%] .options-facets[_ngcontent-%COMP%]{display:flex;color:var(--color-grey-400)}.variant-container[_ngcontent-%COMP%] .clr-control-container{width:100%}.channel-assignment[_ngcontent-%COMP%]{justify-content:flex-end;flex-wrap:wrap;max-height:110px;overflow-y:auto}.channel-assignment[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{margin:6px 12px 6px 0}.out-of-stock-threshold-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column}.out-of-stock-threshold-wrapper[_ngcontent-%COMP%] clr-toggle-wrapper[_ngcontent-%COMP%]{margin-left:24px}.inventory-untracked[_ngcontent-%COMP%]{opacity:.5}"],changeDetection:0});const xa=function(){return["product","enabled"]};function ba(i,n){if(1&i&&(t.TgZ(0,"clr-toggle-wrapper"),t._UZ(1,"input",8),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("formControl",e.detailForm.get(t.DdM(4,xa))),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.enabled"))}}function Za(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){return t.CHM(e),t.oxw().create()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.detailForm.invalid||e.detailForm.pristine||!e.variantsToCreateAreValid()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.create")," ")}}function Ta(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){const e=t.oxw(2);t.Q6J("disabled",(e.detailForm.invalid||e.detailForm.pristine)&&!e.assetsChanged()&&!e.variantAssetsChanged()),t.xp6(1),t.hij(" ",t.lcZ(2,2,"common.update")," ")}}const X=function(){return["UpdateCatalog","UpdateProduct"]};function Aa(i,n){1&i&&t.YNc(0,Ta,3,4,"button",10),2&i&&t.Q6J("vdrIfPermissions",t.DdM(1,X))}function ya(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-chip",41),t.NdJ("iconClick",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw(6).removeFromChannel(a.id)}),t._UZ(1,"vdr-channel-badge",42),t._uU(2),t.ALo(3,"channelCodeToLabel"),t.qZA()}if(2&i){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 Pa(i,n){if(1&i&&(t.ynx(0),t.YNc(1,ya,4,4,"vdr-chip",40),t.BQk()),2&i){const e=n.$implicit,o=t.oxw(6);t.xp6(1),t.Q6J("ngIf",!o.isDefaultChannel(e.code))}}function Fa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-form-item",35),t.ALo(1,"translate"),t.TgZ(2,"div",36),t.YNc(3,Pa,2,1,"ng-container",37),t.ALo(4,"async"),t.TgZ(5,"button",38),t.NdJ("click",function(){return t.CHM(e),t.oxw(5).assignToChannel()}),t._UZ(6,"clr-icon",39),t._uU(7),t.ALo(8,"translate"),t.qZA()()()}if(2&i){const e=t.oxw(5);t.Q6J("label",t.lcZ(1,3,"common.channels")),t.xp6(3),t.Q6J("ngForOf",t.lcZ(4,5,e.productChannels$)),t.xp6(4),t.hij(" ",t.lcZ(8,7,"catalog.assign-to-channel")," ")}}function Oa(i,n){1&i&&(t.ynx(0),t.YNc(1,Fa,9,9,"vdr-form-item",34),t.BQk())}function Ia(i,n){1&i&&(t.ynx(0),t.YNc(1,Oa,2,0,"ng-container",33),t.BQk())}const Ma=function(){return["product","customFields"]};function ka(i,n){if(1&i&&(t.TgZ(0,"section",43)(1,"label"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t._UZ(4,"vdr-tabbed-custom-fields",44),t.ALo(5,"hasPermission"),t.qZA()),2&i){const e=t.oxw(3);t.xp6(2),t.Oqu(t.lcZ(3,4,"common.custom-fields")),t.xp6(2),t.Q6J("customFields",e.customFields)("customFieldsFormGroup",e.detailForm.get(t.DdM(8,Ma)))("readonly",!t.lcZ(5,6,t.DdM(9,X)))}}function La(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",45),t.NdJ("remove",function(){const r=t.CHM(e).$implicit;return t.oxw(3).removeProductFacetValue(r.id)}),t.ALo(1,"hasPermission"),t.qZA()}if(2&i){const e=n.$implicit;t.Q6J("facetValue",e)("removable",t.lcZ(1,2,t.DdM(4,X)))}}function Va(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",46),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).selectProductFacetValue()}),t._UZ(1,"clr-icon",47),t._uU(2),t.ALo(3,"translate"),t.qZA()}2&i&&(t.xp6(2),t.hij(" ",t.lcZ(3,1,"catalog.add-facets")," "))}function wa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div")(1,"h4"),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.TgZ(4,"vdr-generate-product-variants",48),t.NdJ("variantsChange",function(a){t.CHM(e);return t.oxw(3).createVariantsConfig=a}),t.qZA()()}2&i&&(t.xp6(2),t.Oqu(t.lcZ(3,1,"catalog.product-variants")))}const Ja=function(){return["product","name"]},Da=function(i){return{pattern:i}};function Ua(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-tab-content")(1,"div",16)(2,"div",17)(3,"section",18),t.YNc(4,Ia,2,0,"ng-container",15),t.ALo(5,"async"),t.TgZ(6,"vdr-form-field",19),t.ALo(7,"translate"),t.TgZ(8,"input",20),t.NdJ("input",function(a){return t.CHM(e),t.oxw(2).updateSlug(a.target.value)}),t.ALo(9,"hasPermission"),t.qZA()(),t.TgZ(10,"div",21),t.ALo(11,"async"),t.TgZ(12,"clr-checkbox-wrapper"),t._UZ(13,"input",22),t.TgZ(14,"label"),t._uU(15),t.ALo(16,"translate"),t.qZA()()(),t.TgZ(17,"vdr-form-field",23),t.ALo(18,"translate"),t.ALo(19,"translate"),t._UZ(20,"input",24),t.ALo(21,"hasPermission"),t.qZA(),t._UZ(22,"vdr-rich-text-editor",25),t.ALo(23,"hasPermission"),t.ALo(24,"translate"),t.YNc(25,ka,6,10,"section",26),t._UZ(26,"vdr-custom-detail-component-host",27),t.qZA()(),t.TgZ(27,"div",28)(28,"vdr-assets",29),t.NdJ("change",function(a){t.CHM(e);return t.oxw(2).assetChanges=a}),t.qZA(),t.TgZ(29,"div",30),t.YNc(30,La,2,5,"vdr-facet-value-chip",31),t.ALo(31,"async"),t.YNc(32,Va,4,3,"button",32),t.qZA()()(),t.YNc(33,wa,5,3,"div",15),t.ALo(34,"async"),t.qZA()}if(2&i){const e=t.oxw().ngIf,o=t.oxw();let a;t.xp6(4),t.Q6J("ngIf",!t.lcZ(5,20,o.isNew$)),t.xp6(2),t.Q6J("label",t.lcZ(7,22,"catalog.product-name")),t.xp6(2),t.Q6J("readonly",!t.lcZ(9,24,t.DdM(44,X))),t.xp6(2),t.ekj("visible",!1===t.lcZ(11,26,o.isNew$)&&(null==(a=o.detailForm.get(t.DdM(45,Ja)))?null:a.dirty)),t.xp6(5),t.Oqu(t.lcZ(16,28,"catalog.auto-update-product-variant-name")),t.xp6(2),t.Q6J("label",t.lcZ(18,30,"catalog.slug"))("errors",t.VKq(46,Da,t.lcZ(19,32,"catalog.slug-pattern-error"))),t.xp6(3),t.Q6J("readonly",!t.lcZ(21,34,t.DdM(48,X))),t.xp6(2),t.Q6J("readonly",!t.lcZ(23,36,t.DdM(49,X)))("label",t.lcZ(24,38,"common.description")),t.xp6(3),t.Q6J("ngIf",o.customFields.length),t.xp6(1),t.Q6J("entity$",o.entity$)("detailForm",o.detailForm),t.xp6(2),t.Q6J("assets",o.assetChanges.assets||e.assets)("featuredAsset",o.assetChanges.featuredAsset||e.featuredAsset)("updatePermissions",o.updatePermissions),t.xp6(2),t.Q6J("ngForOf",t.lcZ(31,40,o.facetValues$)),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(50,X)),t.xp6(1),t.Q6J("ngIf",t.lcZ(34,42,o.isNew$))}}const Na=function(){return["./","manage-variants"]};function qa(i,n){1&i&&(t.TgZ(0,"a",66),t._UZ(1,"clr-icon",67),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,Na)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.manage-variants")," "))}function Sa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",68)(1,"vdr-items-per-page-controls",69),t.NdJ("itemsPerPageChange",function(a){return t.CHM(e),t.oxw(4).setItemsPerPage(a)}),t.ALo(2,"async"),t.qZA(),t.TgZ(3,"vdr-pagination-controls",70),t.NdJ("pageChange",function(a){return t.CHM(e),t.oxw(4).setPage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()()}if(2&i){const e=t.oxw(4);let o;t.xp6(1),t.Q6J("itemsPerPage",t.lcZ(2,4,e.itemsPerPage$)),t.xp6(2),t.Q6J("id",null==(o=t.lcZ(4,6,e.paginationConfig$))?null:o.id)("currentPage",t.lcZ(5,8,e.currentPage$))("itemsPerPage",t.lcZ(6,10,e.itemsPerPage$))}}function $a(i,n){if(1&i&&(t._UZ(0,"vdr-product-variants-table",71),t.ALo(1,"async"),t.ALo(2,"async"),t.ALo(3,"async")),2&i){const e=t.oxw(3).ngIf,o=t.oxw();t.Q6J("variants",t.lcZ(1,6,o.variants$))("paginationConfig",t.lcZ(2,8,o.paginationConfig$))("optionGroups",e.optionGroups)("channelPriceIncludesTax",t.lcZ(3,10,o.channelPriceIncludesTax$))("productVariantsFormArray",o.detailForm.get("variants"))("pendingAssetChanges",o.variantAssetChanges)}}function Qa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-product-variants-list",72),t.NdJ("assignToChannel",function(a){return t.CHM(e),t.oxw(4).assignVariantToChannel(a)})("removeFromChannel",function(a){return t.CHM(e),t.oxw(4).removeVariantFromChannel(a)})("assetChange",function(a){return t.CHM(e),t.oxw(4).variantAssetChange(a)})("updateProductOption",function(a){return t.CHM(e),t.oxw(4).updateProductOption(a)})("selectionChange",function(a){t.CHM(e);return t.oxw(4).selectedVariantIds=a}),t.ALo(1,"async"),t.ALo(2,"async"),t.ALo(3,"async"),t.ALo(4,"async"),t.ALo(5,"async"),t.qZA()}if(2&i){const e=t.oxw(3).ngIf,o=t.oxw();t.Q6J("variants",t.lcZ(1,11,o.variants$))("paginationConfig",t.lcZ(2,13,o.paginationConfig$))("channelPriceIncludesTax",t.lcZ(3,15,o.channelPriceIncludesTax$))("pendingFacetValueChanges",o.variantFacetValueChanges)("optionGroups",e.optionGroups)("productVariantsFormArray",o.detailForm.get("variants"))("taxCategories",t.lcZ(4,17,o.taxCategories$))("customFields",o.customVariantFields)("customOptionFields",o.customOptionFields)("activeLanguage",t.lcZ(5,19,o.languageCode$))("pendingAssetChanges",o.variantAssetChanges)}}function Ea(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",68)(1,"vdr-items-per-page-controls",69),t.NdJ("itemsPerPageChange",function(a){return t.CHM(e),t.oxw(4).setItemsPerPage(a)}),t.ALo(2,"async"),t.qZA(),t.TgZ(3,"vdr-pagination-controls",70),t.NdJ("pageChange",function(a){return t.CHM(e),t.oxw(4).setPage(a)}),t.ALo(4,"async"),t.ALo(5,"async"),t.ALo(6,"async"),t.qZA()()}if(2&i){const e=t.oxw(4);let o;t.xp6(1),t.Q6J("itemsPerPage",t.lcZ(2,4,e.itemsPerPage$)),t.xp6(2),t.Q6J("id",null==(o=t.lcZ(4,6,e.paginationConfig$))?null:o.id)("currentPage",t.lcZ(5,8,e.currentPage$))("itemsPerPage",t.lcZ(6,10,e.itemsPerPage$))}}function Ya(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-tab-content")(1,"section",49)(2,"div",50)(3,"div",51)(4,"button",52),t.NdJ("click",function(){t.CHM(e);return t.oxw(3).variantDisplayMode="card"}),t._UZ(5,"clr-icon",53),t.TgZ(6,"span",54),t._uU(7),t.ALo(8,"translate"),t.qZA()(),t.TgZ(9,"button",55),t.NdJ("click",function(){t.CHM(e);return t.oxw(3).variantDisplayMode="table"}),t._UZ(10,"clr-icon",56),t.TgZ(11,"span",54),t._uU(12),t.ALo(13,"translate"),t.qZA()()(),t.TgZ(14,"div",57),t._UZ(15,"input",58),t.ALo(16,"translate"),t.TgZ(17,"button",59),t.NdJ("click",function(){return t.CHM(e),t.oxw(3).filterInput.setValue("")}),t._UZ(18,"clr-icon",60),t.qZA()(),t._UZ(19,"div",61),t.YNc(20,qa,4,5,"a",62),t.qZA(),t.YNc(21,Sa,7,12,"div",63),t.ALo(22,"async"),t.YNc(23,$a,4,12,"vdr-product-variants-table",64),t.YNc(24,Qa,6,21,"vdr-product-variants-list",65),t.qZA(),t.YNc(25,Ea,7,12,"div",63),t.ALo(26,"async"),t.qZA()}if(2&i){const e=t.oxw(3);let o,a;t.xp6(4),t.ekj("btn-primary","card"===e.variantDisplayMode),t.xp6(3),t.Oqu(t.lcZ(8,13,"catalog.display-variant-cards")),t.xp6(2),t.ekj("btn-primary","table"===e.variantDisplayMode),t.xp6(3),t.Oqu(t.lcZ(13,15,"catalog.display-variant-table")),t.xp6(3),t.Q6J("formControl",e.filterInput)("placeholder",t.lcZ(16,17,"catalog.filter-by-name-or-sku")),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(23,X)),t.xp6(1),t.Q6J("ngIf",10<(null==(o=t.lcZ(22,19,e.paginationConfig$))?null:o.totalItems)),t.xp6(2),t.Q6J("ngIf","table"===e.variantDisplayMode),t.xp6(1),t.Q6J("ngIf","card"===e.variantDisplayMode),t.xp6(1),t.Q6J("ngIf",10<(null==(a=t.lcZ(26,21,e.paginationConfig$))?null:a.totalItems))}}function Ga(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-tab")(1,"button",13),t.NdJ("click",function(){return t.CHM(e),t.oxw(2).navigateToTab("variants")}),t._uU(2),t.ALo(3,"translate"),t.qZA(),t.YNc(4,Ya,27,24,"clr-tab-content",14),t.ALo(5,"async"),t.qZA()}if(2&i){const e=t.oxw(2);t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.product-variants")," "),t.xp6(2),t.Q6J("clrIfActive","variants"===t.lcZ(5,4,e.activeTab$))}}function ja(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"form",11),t._UZ(1,"button",12),t.TgZ(2,"clr-tabs")(3,"clr-tab")(4,"button",13),t.NdJ("click",function(){return t.CHM(e),t.oxw().navigateToTab("details")}),t._uU(5),t.ALo(6,"translate"),t.qZA(),t.YNc(7,Ua,35,51,"clr-tab-content",14),t.ALo(8,"async"),t.qZA(),t.YNc(9,Ga,6,6,"clr-tab",15),t.ALo(10,"async"),t.qZA()()}if(2&i){const e=t.oxw();t.Q6J("formGroup",e.detailForm),t.xp6(5),t.hij(" ",t.lcZ(6,4,"catalog.product-details")," "),t.xp6(2),t.Q6J("clrIfActive","details"===t.lcZ(8,6,e.activeTab$)),t.xp6(2),t.Q6J("ngIf",!t.lcZ(10,8,e.isNew$))}}class yt extends c.UT_{constructor(n,e,o,a,r,s,d,l,m,_){super(n,e,o,l),this.productDetailService=a,this.formBuilder=r,this.modalService=s,this.notificationService=d,this.dataService=l,this.location=m,this.changeDetector=_,this.filterInput=new p.NI(""),this.assetChanges={},this.variantAssetChanges={},this.variantFacetValueChanges={},this.currentPage$=new U.X(1),this.itemsPerPage$=new U.X(10),this.selectedVariantIds=[],this.variantDisplayMode="card",this.createVariantsConfig={groups:[],variants:[]},this.productVariantMap=new Map,this.updatePermissions=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct],this.customFields=this.getCustomFieldConfig("Product"),this.customVariantFields=this.getCustomFieldConfig("ProductVariant"),this.customOptionGroupFields=this.getCustomFieldConfig("ProductOptionGroup"),this.customOptionFields=this.getCustomFieldConfig("ProductOption"),this.detailForm=this.formBuilder.group({product:this.formBuilder.group({enabled:!0,name:["",p.kI.required],autoUpdateVariantNames:!0,slug:["",(0,c.Foo)(/^[\p{Letter}0-9_-]+$/)],description:"",facetValueIds:[[]],customFields:this.formBuilder.group(this.customFields.reduce((f,v)=>Object.assign(Object.assign({},f),{[v.name]:""}),{}))}),variants:this.formBuilder.array([])})}ngOnInit(){this.init(),this.product$=this.entity$;const n=this.filterInput.valueChanges.pipe((0,mt.O)(""),(0,$.b)(200),(0,_t.d)(),(0,q.b)(()=>this.currentPage$.next(1))),e=this.product$.pipe((0,C.U)(l=>l.variantList.items)),o=(0,I.a)(n,this.currentPage$,this.itemsPerPage$).pipe(function oi(i){return(0,ti.e)((n,e)=>{let o=!1;const a=(0,Ce.x)(e,()=>{null==a||a.unsubscribe(),o=!0},ni.Z);(0,ei.Xf)(i).subscribe(a),n.subscribe((0,Ce.x)(e,r=>o&&e.next(r)))})}(e),(0,xe.T)(1),(0,$.b)(100),(0,b.w)(([l,m,_])=>this.dataService.product.getProductVariants(Object.assign(Object.assign({skip:(m-1)*_,take:_},l?{filter:{name:{contains:l},sku:{contains:l}}}:{}),{filterOperator:c.FnJ.OR}),this.id).mapStream(({productVariants:f})=>f)),(0,_t.d)({bufferSize:1,refCount:!0})),a=o.pipe((0,C.U)(l=>l.items));this.variants$=(0,te.T)(e,a).pipe((0,q.b)(l=>{for(const m of l)this.productVariantMap.set(m.id,m)})),this.totalItems$=(0,te.T)(this.product$.pipe((0,C.U)(l=>l.variantList.totalItems)),o.pipe((0,C.U)(l=>l.totalItems))),this.paginationConfig$=(0,I.a)(this.totalItems$,this.itemsPerPage$,this.currentPage$).pipe((0,C.U)(([l,m,_])=>({totalItems:l,itemsPerPage:m,currentPage:_}))),this.taxCategories$=this.productDetailService.getTaxCategories().pipe((0,Q.R)(this.destroy$)),this.activeTab$=this.route.paramMap.pipe((0,C.U)(l=>l.get("tab"))),(0,I.a)(a,this.languageCode$).pipe((0,Q.R)(this.destroy$)).subscribe(([l,m])=>{this.buildVariantFormArray(l,m)});const r=this.product$.pipe((0,C.U)(l=>l.facetValues)),d=this.getProductFormGroup().get("facetValueIds").valueChanges.pipe((0,xe.T)(1),(0,Y.x)(),(0,b.w)(l=>this.dataService.facet.getFacetValues({filter:{id:{in:l}}}).mapSingle(({facetValues:m})=>m.items)),(0,_t.d)(1));this.facetValues$=(0,Xo.z)(r.pipe((0,w.q)(1)),r.pipe(function ii(i,n){return(0,be.m)(n)?(0,b.w)(()=>i,n):(0,b.w)(()=>i)}(d))),this.productChannels$=this.product$.pipe((0,C.U)(l=>l.channels)),this.channelPriceIncludesTax$=this.dataService.settings.getActiveChannel("cache-first").refetchOnChannelChange().mapStream(l=>l.activeChannel.pricesIncludeTax).pipe((0,_t.d)(1))}ngOnDestroy(){this.destroy()}navigateToTab(n){this.location.replaceState(this.router.createUrlTree(["./",Object.assign(Object.assign({},this.route.snapshot.params),{tab:n})],{queryParamsHandling:"merge",relativeTo:this.route}).toString())}isDefaultChannel(n){return n===ve.z$}setPage(n){this.currentPage$.next(n)}setItemsPerPage(n){this.itemsPerPage$.next(+n),this.currentPage$.next(1)}assignToChannel(){this.productChannels$.pipe((0,w.q)(1),(0,b.w)(n=>this.modalService.fromComponent(z,{size:"lg",locals:{productIds:[this.id],currentChannelIds:n.map(e=>e.id)}}))).subscribe()}removeFromChannel(n){(0,jt.D)((0,c.PDO)(this.dataService,n)).pipe((0,b.w)(({channelCode:e})=>this.modalService.dialog({title:(0,u.J)("catalog.remove-product-from-channel"),buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:e},returnValue:!0}]})),(0,b.w)(e=>e?this.dataService.product.removeProductsFromChannel({channelId:n,productIds:[this.id]}):M.E)).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.notify-remove-product-from-channel-success"))},e=>{this.notificationService.error((0,u.J)("catalog.notify-remove-product-from-channel-error"))})}assignVariantToChannel(n){return this.modalService.fromComponent(z,{size:"lg",locals:{productIds:[this.id],productVariantIds:[n.id],currentChannelIds:n.channels.map(e=>e.id)}}).subscribe()}removeVariantFromChannel({channelId:n,variant:e}){(0,jt.D)((0,c.PDO)(this.dataService,n)).pipe((0,b.w)(({channelCode:o})=>this.modalService.dialog({title:(0,u.J)("catalog.remove-product-variant-from-channel"),buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:o},returnValue:!0}]})),(0,b.w)(o=>o?this.dataService.product.removeVariantsFromChannel({channelId:n,productVariantIds:[e.id]}):M.E)).subscribe(()=>{this.notificationService.success((0,u.J)("catalog.notify-remove-variant-from-channel-success"))},o=>{this.notificationService.error((0,u.J)("catalog.notify-remove-variant-from-channel-error"))})}assetsChanged(){return!!Object.values(this.assetChanges).length}variantAssetsChanged(){return!!Object.keys(this.variantAssetChanges).length}variantAssetChange(n){this.variantAssetChanges[n.variantId]=n}updateSlug(n){(0,I.a)(this.entity$,this.languageCode$).pipe((0,w.q)(1)).subscribe(([e,o])=>{const a=this.detailForm.get(["product","slug"]),r=(0,c.ZIM)(e,o),s=!r||!r.slug;a&&a.pristine&&s&&a.setValue((0,et.U)(`${n}`,"-"))})}selectProductFacetValue(){this.displayFacetValueModal().subscribe(n=>{if(n){const e=this.getProductFormGroup(),o=e.value.facetValueIds;e.patchValue({facetValueIds:(0,J.T)([...o,...n])}),e.markAsDirty()}})}updateProductOption(n){(0,I.a)(this.product$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([e,o])=>this.productDetailService.updateProductOption(n,e,o))).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"ProductOption"})},e=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"ProductOption"})})}removeProductFacetValue(n){const e=this.getProductFormGroup(),o=e.value.facetValueIds;e.patchValue({facetValueIds:o.filter(a=>a!==n)}),e.markAsDirty()}variantsToCreateAreValid(){return 0<this.createVariantsConfig.variants.length&&this.createVariantsConfig.variants.every(n=>""!==n.sku)}displayFacetValueModal(){return this.modalService.fromComponent(ot,{size:"md",closable:!0}).pipe((0,C.U)(n=>n&&n.map(e=>e.id)))}create(){const n=this.getProductFormGroup();!n.dirty||(0,I.a)(this.product$,this.languageCode$).pipe((0,w.q)(1),(0,F.z)(([e,o])=>{const a=this.getUpdatedProduct(e,n,o);return this.productDetailService.createProductWithVariants(a,this.createVariantsConfig,o)})).subscribe(({createProductVariants:e,productId:o})=>{this.notificationService.success((0,u.J)("common.notify-create-success"),{entity:"Product"}),this.assetChanges={},this.variantAssetChanges={},this.detailForm.markAsPristine(),this.router.navigate(["../",o],{relativeTo:this.route})},e=>{console.error(e),this.notificationService.error((0,u.J)("common.notify-create-error"),{entity:"Product"})})}save(){(0,I.a)(this.product$,this.languageCode$,this.channelPriceIncludesTax$).pipe((0,w.q)(1),(0,F.z)(([n,e,o])=>{var a,r;const s=this.getProductFormGroup();let d,l;(s.dirty||this.assetsChanged())&&(d=this.getUpdatedProduct(n,s,e));const m=this.detailForm.get("variants");return(m&&m.dirty||this.variantAssetsChanged())&&(l=this.getUpdatedProductVariants(n,m,e,o)),this.productDetailService.updateProduct({product:n,languageCode:e,autoUpdate:null!==(r=null===(a=this.detailForm.get(["product","autoUpdateVariantNames"]))||void 0===a?void 0:a.value)&&void 0!==r&&r,productInput:d,variantsInput:l})})).subscribe(n=>{this.updateSlugAfterSave(n),this.detailForm.markAsPristine(),this.assetChanges={},this.variantAssetChanges={},this.variantFacetValueChanges={},this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"Product"}),this.changeDetector.markForCheck()},n=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"Product"})})}canDeactivate(){return super.canDeactivate()&&!this.assetChanges.assets&&!this.assetChanges.featuredAsset}setFormValues(n,e){const o=(0,c.ZIM)(n,e);this.detailForm.patchValue({product:{enabled:n.enabled,name:o?o.name:"",slug:o?o.slug:"",description:o?o.description:"",facetValueIds:n.facetValues.map(a=>a.id)}}),this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["product","customFields"]),n,o),this.buildVariantFormArray(n.variantList.items,e)}buildVariantFormArray(n,e){const o=this.detailForm.get("variants");n.forEach((a,r)=>{const s=(0,c.ZIM)(a,e),d=this.variantFacetValueChanges[a.id],l=d?d.map(f=>f.id):a.facetValues.map(f=>f.id),m={id:a.id,enabled:a.enabled,sku:a.sku,name:s?s.name:"",price:a.price,priceWithTax:a.priceWithTax,taxCategoryId:a.taxCategory.id,stockOnHand:a.stockOnHand,useGlobalOutOfStockThreshold:a.useGlobalOutOfStockThreshold,outOfStockThreshold:a.outOfStockThreshold,trackInventory:a.trackInventory,facetValueIds:l};let _=o.controls.find(f=>f.value.id===a.id);if(_?_.pristine&&_.patchValue(m):(_=this.formBuilder.group(Object.assign(Object.assign({},m),{facetValueIds:this.formBuilder.control(l)})),o.insert(r,_)),this.customVariantFields.length){let f=_.get(["customFields"]);f||(f=this.formBuilder.group(this.customVariantFields.reduce((v,Z)=>Object.assign(Object.assign({},v),{[Z.name]:""}),{})),_.addControl("customFields",f)),this.setCustomFieldFormValues(this.customVariantFields,f,a,s)}})}getUpdatedProduct(n,e,o){var a,r;const s=(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.customFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||"",slug:n.slug||"",description:n.description||""}});return Object.assign(Object.assign({},s),{assetIds:null===(a=this.assetChanges.assets)||void 0===a?void 0:a.map(d=>d.id),featuredAssetId:null===(r=this.assetChanges.featuredAsset)||void 0===r?void 0:r.id,facetValueIds:e.value.facetValueIds})}getUpdatedProductVariants(n,e,o,a){const r=e.controls.filter(l=>l.dirty),s=r.map(l=>this.productVariantMap.get(l.value.id)).filter(R.notNullOrUndefined),d=r.map(l=>l.value);if(s.length!==d.length)throw new Error((0,u.J)("error.product-variant-form-values-do-not-match"));return s.map((l,m)=>{var _,f;const v=d.find(y=>y.id===l.id),Z=(0,c.iSy)({translatable:l,updatedFields:v,customFieldConfig:this.customVariantFields,languageCode:o,defaultTranslation:{languageCode:o,name:""}});Z.taxCategoryId=v.taxCategoryId,Z.facetValueIds=v.facetValueIds,Z.price=a?v.priceWithTax:v.price;const T=this.variantAssetChanges[l.id];return T&&(Z.featuredAssetId=null===(_=T.featuredAsset)||void 0===_?void 0:_.id,Z.assetIds=null===(f=T.assets)||void 0===f?void 0:f.map(y=>y.id)),Z}).filter(R.notNullOrUndefined)}getProductFormGroup(){return this.detailForm.get("product")}updateSlugAfterSave(n){const e=n[0],o=this.detailForm.get(["product","slug"]);o&&function a(r){return r.hasOwnProperty("updateProduct")}(e)&&o.setValue(e.updateProduct.slug,{emitEvent:!1})}}yt.\u0275fac=function(n){return new(n||yt)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(c.iHG),t.Y36(K),t.Y36(p.qu),t.Y36(c.Z7U),t.Y36(c.gqp),t.Y36(c.DoR),t.Y36(x.Ye),t.Y36(t.sBO))},yt.\u0275cmp=t.Xpm({type:yt,selectors:[["vdr-product-detail"]],features:[t.qOj],decls:18,vars:21,consts:[[1,"flex","clr-flex-row"],[3,"entity"],[4,"vdrIfPermissions"],[3,"disabled","availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],["updateButton",""],["class","form",3,"formGroup",4,"ngIf"],["type","checkbox","clrToggle","","name","enabled",3,"formControl"],[1,"btn","btn-primary",3,"disabled","click"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[1,"form",3,"formGroup"],["type","submit","hidden","","x-data","prevents enter key from triggering other buttons"],["clrTabLink","",3,"click"],[4,"clrIfActive"],[4,"ngIf"],[1,"clr-row"],[1,"clr-col"],["formGroupName","product",1,"form-block"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly","input"],[1,"auto-rename-wrapper"],["clrCheckbox","","type","checkbox","id","auto-update","formControlName","autoUpdateVariantNames"],["for","slug",3,"label","errors"],["id","slug","type","text","formControlName","slug",3,"readonly"],["formControlName","description",3,"readonly","label"],["formGroupName","customFields",4,"ngIf"],["locationId","product-detail",3,"entity$","detailForm"],[1,"clr-col-md-auto"],[3,"assets","featuredAsset","updatePermissions","change"],[1,"facets"],[3,"facetValue","removable","remove",4,"ngFor","ngForOf"],["class","btn btn-sm btn-secondary",3,"click",4,"vdrIfPermissions"],[4,"vdrIfMultichannel"],[3,"label",4,"vdrIfDefaultChannelActive"],[3,"label"],[1,"flex","channel-assignment"],[4,"ngFor","ngForOf"],[1,"btn","btn-sm",3,"click"],["shape","layers"],["icon","times-circle",3,"iconClick",4,"ngIf"],["icon","times-circle",3,"iconClick"],[3,"channelCode"],["formGroupName","customFields"],["entityName","Product",3,"customFields","customFieldsFormGroup","readonly"],[3,"facetValue","removable","remove"],[1,"btn","btn-sm","btn-secondary",3,"click"],["shape","plus"],[3,"variantsChange"],[1,"form-block"],[1,"view-mode"],[1,"btn-group"],[1,"btn","btn-secondary-outline",3,"click"],["shape","list"],[1,"full-label"],[1,"btn",3,"click"],["shape","table"],[1,"variant-filter"],[3,"formControl","placeholder"],[1,"icon-button",3,"click"],["shape","times"],[1,"flex-spacer"],["class","btn btn-secondary edit-variants-btn mb0 mr0",3,"routerLink",4,"vdrIfPermissions"],["class","pagination-row mt4",4,"ngIf"],[3,"variants","paginationConfig","optionGroups","channelPriceIncludesTax","productVariantsFormArray","pendingAssetChanges",4,"ngIf"],[3,"variants","paginationConfig","channelPriceIncludesTax","pendingFacetValueChanges","optionGroups","productVariantsFormArray","taxCategories","customFields","customOptionFields","activeLanguage","pendingAssetChanges","assignToChannel","removeFromChannel","assetChange","updateProductOption","selectionChange",4,"ngIf"],[1,"btn","btn-secondary","edit-variants-btn","mb0","mr0",3,"routerLink"],["shape","add-text"],[1,"pagination-row","mt4"],[3,"itemsPerPage","itemsPerPageChange"],[3,"id","currentPage","itemsPerPage","pageChange"],[3,"variants","paginationConfig","optionGroups","channelPriceIncludesTax","productVariantsFormArray","pendingAssetChanges"],[3,"variants","paginationConfig","channelPriceIncludesTax","pendingFacetValueChanges","optionGroups","productVariantsFormArray","taxCategories","customFields","customOptionFields","activeLanguage","pendingAssetChanges","assignToChannel","removeFromChannel","assetChange","updateProductOption","selectionChange"]],template:function(n,e){if(1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"div",0),t._UZ(3,"vdr-entity-info",1),t.ALo(4,"async"),t.YNc(5,ba,5,5,"clr-toggle-wrapper",2),t.qZA(),t.TgZ(6,"vdr-language-selector",3),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(7,"async"),t.ALo(8,"async"),t.ALo(9,"async"),t.qZA()(),t.TgZ(10,"vdr-ab-right"),t._UZ(11,"vdr-action-bar-items",4),t.YNc(12,Za,3,4,"button",5),t.ALo(13,"async"),t.YNc(14,Aa,1,2,"ng-template",null,6,t.W1O),t.qZA()(),t.YNc(16,ja,11,10,"form",7),t.ALo(17,"async")),2&n){const o=t.MAs(15);t.xp6(3),t.Q6J("entity",t.lcZ(4,8,e.entity$)),t.xp6(2),t.Q6J("vdrIfPermissions",t.DdM(20,X)),t.xp6(1),t.Q6J("disabled",t.lcZ(7,10,e.isNew$))("availableLanguageCodes",t.lcZ(8,12,e.availableLanguages$))("currentLanguageCode",t.lcZ(9,14,e.languageCode$)),t.xp6(6),t.Q6J("ngIf",t.lcZ(13,16,e.isNew$))("ngIfElse",o),t.xp6(4),t.Q6J("ngIf",t.lcZ(17,18,e.product$))}},directives:[P.Kk,P.BN,Dt.V,D.H,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.oH,h.MgK,ct.S,P.mz,tt.W,x.O5,p._Y,p.JL,p.sg,h.gKI,h.dl,h.S4y,h.Iq$,h.Qs7,h.tam,h.UkA,p.x0,ye.u,Pe.M,Zi.J,x.sg,Ut.Y,Fe.n,h.qvL,Et.h,p.Fj,p.u,_e.Y,Yt.y,ee.C,j,Rt.q,xt,A.yS,me.w,ge.L,bt,At],pipes:[x.Ov,O.X$,re.E,N.j],styles:["[_nghost-%COMP%] trix-toolbar{top:24px}.facets[_ngcontent-%COMP%]{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center}@media screen and (min-width: 768px){.facets[_ngcontent-%COMP%]{max-width:340px}}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-left:none}.group-name[_ngcontent-%COMP%]{padding-right: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;overflow-y:auto}.auto-rename-wrapper[_ngcontent-%COMP%]{overflow:hidden;max-height:0;padding-left:9.5rem;margin-bottom:0;transition:max-height .2s,margin-bottom .2s}.auto-rename-wrapper.visible[_ngcontent-%COMP%]{max-height:24px;margin-bottom:12px}.pagination-row[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between}"],changeDetection:0});var Me=g(1339),Ba=g(538),Ha=g(2875),Ra=g(809);const za=["productSearchInputComponent"];function Ka(i,n){1&i&&t._UZ(0,"vdr-status-badge",20)}const ke=function(){return["UpdateCatalog","UpdateProduct"]},Wa=function(i){return{count:i}};function Xa(i,n){if(1&i){const e=t.EpF();t.ynx(0),t.TgZ(1,"button",21),t.NdJ("click",function(){return t.CHM(e),t.oxw().runPendingSearchIndexUpdates()}),t.ALo(2,"hasPermission"),t._UZ(3,"vdr-status-badge",20),t._uU(4),t.ALo(5,"translate"),t.qZA(),t._UZ(6,"div",22),t.BQk()}if(2&i){const e=t.oxw();t.xp6(1),t.Q6J("disabled",!t.lcZ(2,2,t.DdM(7,ke))),t.xp6(3),t.hij(" ",t.xi3(5,4,"catalog.run-pending-search-index-updates",t.VKq(8,Wa,e.pendingSearchIndexUpdates))," ")}}const tr=function(){return["./create"]};function er(i,n){1&i&&(t.TgZ(0,"a",23),t._UZ(1,"clr-icon",24),t._uU(2),t.ALo(3,"translate"),t.qZA()),2&i&&(t.Q6J("routerLink",t.DdM(4,tr)),t.xp6(2),t.hij(" ",t.lcZ(3,2,"catalog.create-new-product")," "))}function nr(i,n){if(1&i&&(t._UZ(0,"img",38),t.ALo(1,"assetPreview")),2&i){const e=n.ngIf;t.Q6J("src",t.xi3(1,1,e,"tiny"),t.LSH)}}function or(i,n){1&i&&(t.TgZ(0,"div",39),t._UZ(1,"clr-icon",40),t.qZA())}function ir(i,n){if(1&i&&(t.TgZ(0,"div",41),t._uU(1),t.qZA()),2&i){const e=t.oxw().item;t.xp6(1),t.Oqu(e.sku)}}function ar(i,n){1&i&&(t.TgZ(0,"vdr-chip"),t._uU(1),t.ALo(2,"translate"),t.qZA()),2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,1,"common.disabled")))}const rr=function(i){return["./",i]},sr=function(){return["DeleteCatalog","DeleteProduct"]};function cr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"td",25)(1,"div",26),t.YNc(2,nr,2,4,"img",27),t.YNc(3,or,2,0,"ng-template",null,28,t.W1O),t.qZA()(),t.TgZ(5,"td",29)(6,"div"),t._uU(7),t.qZA(),t.YNc(8,ir,2,1,"div",30),t.qZA(),t.TgZ(9,"td",31),t.YNc(10,ar,3,3,"vdr-chip",10),t.qZA(),t.TgZ(11,"td",32),t._UZ(12,"vdr-table-row-action",33),t.ALo(13,"translate"),t.TgZ(14,"vdr-dropdown")(15,"button",34),t._uU(16),t.ALo(17,"translate"),t._UZ(18,"clr-icon",35),t.qZA(),t.TgZ(19,"vdr-dropdown-menu",8)(20,"button",36),t.NdJ("click",function(){const r=t.CHM(e).item;return t.oxw().deleteProduct(r.productId)}),t.ALo(21,"hasPermission"),t._UZ(22,"clr-icon",37),t._uU(23),t.ALo(24,"translate"),t.qZA()()()()}if(2&i){const e=n.item,o=t.MAs(4),a=t.oxw();t.ekj("disabled",!e.enabled),t.xp6(2),t.Q6J("ngIf",a.groupByProduct?e.productAsset:e.productVariantAsset||e.productAsset)("ngIfElse",o),t.xp6(3),t.ekj("disabled",!e.enabled),t.xp6(2),t.Oqu(a.groupByProduct?e.productName:e.productVariantName),t.xp6(1),t.Q6J("ngIf",!a.groupByProduct),t.xp6(1),t.ekj("disabled",!e.enabled),t.xp6(1),t.Q6J("ngIf",!e.enabled),t.xp6(1),t.ekj("disabled",!e.enabled),t.xp6(1),t.Q6J("label",t.lcZ(13,18,"common.edit"))("linkTo",t.VKq(26,rr,e.productId)),t.xp6(4),t.hij(" ",t.lcZ(17,20,"common.actions")," "),t.xp6(4),t.Q6J("disabled",!t.lcZ(21,22,t.DdM(28,sr))),t.xp6(3),t.hij(" ",t.lcZ(24,24,"common.delete")," ")}}const lr=function(){return["CreateCatalog","CreateProduct"]};class Pt extends c.t7C{constructor(n,e,o,a,r,s,d){super(s,d),this.dataService=n,this.modalService=e,this.notificationService=o,this.jobQueueService=a,this.serverConfigService=r,this.searchTerm="",this.facetValueIds=[],this.groupByProduct=!0,this.pendingSearchIndexUpdates=0,this.route.queryParamMap.pipe((0,C.U)(l=>l.get("q")),(0,Q.R)(this.destroy$)).subscribe(l=>{this.searchTerm=l||"",this.productSearchInput&&this.productSearchInput.setSearchTerm(l)}),this.selectedFacetValueIds$=this.route.queryParamMap.pipe((0,C.U)(l=>l.getAll("fvids"))),this.selectedFacetValueIds$.pipe((0,Q.R)(this.destroy$)).subscribe(l=>{this.facetValueIds=l,this.productSearchInput&&this.productSearchInput.setFacetValues(l)}),super.setQueryFn((...l)=>this.dataService.product.searchProducts(this.searchTerm,...l).refetchOnChannelChange(),l=>l.search,(l,m)=>({input:{skip:l,take:m,term:this.searchTerm,facetValueIds:this.facetValueIds,facetValueOperator:c.FnJ.AND,groupByProduct:this.groupByProduct}})),this.selectionManager=new c.ZE0({multiSelect:!0,itemsAreEqual:(l,m)=>this.groupByProduct?l.productId===m.productId:l.productVariantId===m.productVariantId,additiveMode:!0})}ngOnInit(){super.ngOnInit(),this.facetValues$=this.result$.pipe((0,C.U)(n=>n.search.facetValues)),this.facetValues$.pipe((0,w.q)(1),(0,Me.g)(100),(0,Ba.M)(this.selectedFacetValueIds$)).subscribe(([n,e])=>{this.productSearchInput.setFacetValues(e)}),this.availableLanguages$=this.serverConfigService.getAvailableLanguages(),this.contentLanguage$=this.dataService.client.uiState().mapStream(({uiState:n})=>n.contentLanguage).pipe((0,q.b)(()=>this.refresh())),this.dataService.product.getPendingSearchIndexUpdates().mapSingle(({pendingSearchIndexUpdates:n})=>n).subscribe(n=>this.pendingSearchIndexUpdates=n)}ngAfterViewInit(){this.productSearchInput&&this.searchTerm&&setTimeout(()=>this.productSearchInput.setSearchTerm(this.searchTerm))}setSearchTerm(n){this.searchTerm=n,this.setQueryParam({q:n||null,page:1}),this.refresh()}setFacetValueIds(n){this.facetValueIds=n,this.setQueryParam({fvids:n,page:1}),this.refresh()}rebuildSearchIndex(){this.dataService.product.reindex().subscribe(({reindex:n})=>{this.notificationService.info((0,u.J)("catalog.reindexing")),this.jobQueueService.addJob(n.id,e=>{if(e.state===c.Zyh.COMPLETED){const o=(new Intl.NumberFormat).format(e.duration||0);this.notificationService.success((0,u.J)("catalog.reindex-successful"),{count:e.result.indexedItemCount,time:o}),this.refresh()}else this.notificationService.error((0,u.J)("catalog.reindex-error"))})})}runPendingSearchIndexUpdates(){this.dataService.product.runPendingSearchIndexUpdates().subscribe(n=>{this.notificationService.info((0,u.J)("catalog.running-search-index-updates"),{count:this.pendingSearchIndexUpdates}),this.pendingSearchIndexUpdates=0})}deleteProduct(n){this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product"),buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(e=>e?this.dataService.product.deleteProduct(n):M.E),(0,Me.g)(500)).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"Product"}),this.refresh()},e=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"Product"})})}setLanguage(n){this.dataService.client.setContentLanguage(n).subscribe()}}function dr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){return t.CHM(e),t.oxw().save()}),t._uU(1),t.ALo(2,"translate"),t.qZA()}if(2&i){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 pr(i,n){if(1&i&&(t.TgZ(0,"tr",22)(1,"td",23),t._UZ(2,"vdr-entity-info",13),t.qZA(),t.TgZ(3,"td",23),t._UZ(4,"input",24),t.ALo(5,"hasPermission"),t.qZA(),t.TgZ(6,"td",23),t._UZ(7,"input",25),t.qZA()()),2&i){const e=n.$implicit,o=n.index,a=t.oxw(3);t.Q6J("formGroupName",o),t.xp6(2),t.Q6J("entity",e.value),t.xp6(2),t.Q6J("readonly",!t.lcZ(5,3,a.updatePermission))}}function ur(i,n){if(1&i&&(t.TgZ(0,"div",10)(1,"section",11)(2,"div",12),t._UZ(3,"vdr-entity-info",13),t.TgZ(4,"div",14),t._uU(5),t.qZA()(),t.TgZ(6,"div",15)(7,"vdr-form-field",16),t.ALo(8,"translate"),t._UZ(9,"input",17),t.ALo(10,"hasPermission"),t.qZA(),t.TgZ(11,"vdr-form-field",18),t.ALo(12,"translate"),t._UZ(13,"input",19),t.ALo(14,"hasPermission"),t.qZA()(),t.TgZ(15,"section",15)(16,"table",20)(17,"thead")(18,"tr"),t._UZ(19,"th"),t.TgZ(20,"th"),t._uU(21),t.ALo(22,"translate"),t.qZA(),t.TgZ(23,"th"),t._uU(24),t.ALo(25,"translate"),t.qZA()()(),t.TgZ(26,"tbody"),t.YNc(27,pr,8,5,"tr",21),t.qZA()()()()()),2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.xp6(1),t.Q6J("formArrayName",o),t.xp6(2),t.Q6J("entity",e.value),t.xp6(2),t.Oqu(e.value.code),t.xp6(2),t.Q6J("label",t.lcZ(8,12,"common.name")),t.xp6(2),t.Q6J("id","name-"+o)("readonly",!t.lcZ(10,14,a.updatePermission)),t.xp6(2),t.Q6J("label",t.lcZ(12,16,"common.code")),t.xp6(2),t.Q6J("id","code-"+o)("readonly",!t.lcZ(14,18,a.updatePermission)),t.xp6(8),t.Oqu(t.lcZ(22,20,"common.name")),t.xp6(3),t.Oqu(t.lcZ(25,22,"common.code")),t.xp6(3),t.Q6J("ngForOf",a.getOptions(e))}}function mr(i,n){if(1&i&&(t.TgZ(0,"form",7)(1,"div",8),t.YNc(2,ur,28,24,"div",9),t.qZA()()),2&i){const e=t.oxw();t.Q6J("formGroup",e.detailForm),t.xp6(2),t.Q6J("ngForOf",e.getOptionGroups())}}Pt.\u0275fac=function(n){return new(n||Pt)(t.Y36(c.DoR),t.Y36(c.Z7U),t.Y36(c.gqp),t.Y36(c.u8d),t.Y36(c.iHG),t.Y36(A.F0),t.Y36(A.gz))},Pt.\u0275cmp=t.Xpm({type:Pt,selectors:[["vdr-products-list"]],viewQuery:function(n,e){if(1&n&&t.Gf(za,7),2&n){let o;t.iGM(o=t.CRH())&&(e.productSearchInput=o.first)}},features:[t.qOj],decls:43,vars:46,consts:[[3,"grow"],[1,"search-form"],[3,"facetValueResults","searchTermChange","facetValueChange"],["productSearchInputComponent",""],[1,"search-settings-menu","mr3"],["type","button","vdrDropdownTrigger","",1,"icon-button","search-index-button",3,"title"],["shape","cog"],["type","warning",4,"ngIf"],["vdrPosition","bottom-right"],[1,"dropdown-header"],[4,"ngIf"],["type","button","vdrDropdownItem","",3,"disabled","click"],[1,"flex","wrap"],[1,"mt2"],["type","checkbox","clrToggle","",3,"ngModel","ngModelChange"],[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],["locationId","product-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"items","itemsPerPage","totalItems","currentPage","selectionManager","pageChange","itemsPerPageChange"],["locationId","product-list",3,"hostComponent","selectionManager"],["type","warning"],["type","button","vdrDropdownItem","",1,"run-updates-button",3,"disabled","click"],[1,"dropdown-divider"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"left","align-middle","image-col"],[1,"image-placeholder"],[3,"src",4,"ngIf","ngIfElse"],["imagePlaceholder",""],[1,"left","align-middle"],["class","sku",4,"ngIf"],[1,"align-middle"],[1,"right","align-middle"],["iconShape","edit",1,"edit-button",3,"label","linkTo"],["type","button","vdrDropdownTrigger","",1,"btn","btn-link","btn-sm"],["shape","caret down"],["type","button","vdrDropdownItem","",1,"delete-button",3,"disabled","click"],["shape","trash",1,"is-danger"],[3,"src"],[1,"placeholder"],["shape","image","size","48"],[1,"sku"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left",0)(2,"div",1)(3,"vdr-product-search-input",2,3),t.NdJ("searchTermChange",function(a){return e.setSearchTerm(a)})("facetValueChange",function(a){return e.setFacetValueIds(a)}),t.ALo(5,"async"),t.qZA(),t.TgZ(6,"vdr-dropdown",4)(7,"button",5),t.ALo(8,"translate"),t._UZ(9,"clr-icon",6),t.YNc(10,Ka,1,0,"vdr-status-badge",7),t.qZA(),t.TgZ(11,"vdr-dropdown-menu",8)(12,"h4",9),t._uU(13),t.ALo(14,"translate"),t.qZA(),t.YNc(15,Xa,7,10,"ng-container",10),t.TgZ(16,"button",11),t.NdJ("click",function(){return e.rebuildSearchIndex()}),t.ALo(17,"hasPermission"),t._uU(18),t.ALo(19,"translate"),t.qZA()()()(),t.TgZ(20,"div",12)(21,"clr-toggle-wrapper",13)(22,"input",14),t.NdJ("ngModelChange",function(a){return e.groupByProduct=a})("ngModelChange",function(){return e.refresh()}),t.qZA(),t.TgZ(23,"label"),t._uU(24),t.ALo(25,"translate"),t.qZA()(),t.TgZ(26,"vdr-language-selector",15),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(27,"async"),t.ALo(28,"async"),t.qZA()()(),t.TgZ(29,"vdr-ab-right"),t._UZ(30,"vdr-action-bar-items",16),t.YNc(31,er,4,5,"a",17),t.qZA()(),t.TgZ(32,"vdr-data-table",18),t.NdJ("pageChange",function(a){return e.setPageNumber(a)})("itemsPerPageChange",function(a){return e.setItemsPerPage(a)}),t.ALo(33,"async"),t.ALo(34,"async"),t.ALo(35,"async"),t.ALo(36,"async"),t._UZ(37,"vdr-bulk-action-menu",19)(38,"vdr-dt-column")(39,"vdr-dt-column")(40,"vdr-dt-column")(41,"vdr-dt-column"),t.YNc(42,cr,25,29,"ng-template"),t.qZA()),2&n&&(t.xp6(1),t.Q6J("grow",!0),t.xp6(2),t.Q6J("facetValueResults",t.lcZ(5,20,e.facetValues$)),t.xp6(4),t.Q6J("title",t.lcZ(8,22,e.pendingSearchIndexUpdates?"catalog.pending-search-index-updates":"catalog.search-index-controls")),t.xp6(3),t.Q6J("ngIf",e.pendingSearchIndexUpdates),t.xp6(3),t.Oqu(t.lcZ(14,24,"catalog.search-index-controls")),t.xp6(2),t.Q6J("ngIf",e.pendingSearchIndexUpdates),t.xp6(1),t.Q6J("disabled",!t.lcZ(17,26,t.DdM(44,ke))),t.xp6(2),t.hij(" ",t.lcZ(19,28,"catalog.rebuild-search-index")," "),t.xp6(4),t.Q6J("ngModel",e.groupByProduct),t.xp6(2),t.hij(" ",t.lcZ(25,30,"catalog.group-by-product")," "),t.xp6(2),t.Q6J("availableLanguageCodes",t.lcZ(27,32,e.availableLanguages$))("currentLanguageCode",t.lcZ(28,34,e.contentLanguage$)),t.xp6(5),t.Q6J("vdrIfPermissions",t.DdM(45,lr)),t.xp6(1),t.Q6J("items",t.lcZ(33,36,e.items$))("itemsPerPage",t.lcZ(34,38,e.itemsPerPage$))("totalItems",t.lcZ(35,40,e.totalItems$))("currentPage",t.lcZ(36,42,e.currentPage$))("selectionManager",e.selectionManager),t.xp6(5),t.Q6J("hostComponent",e)("selectionManager",e.selectionManager))},directives:[P.Kk,P.BN,Ha.j,lt.J,dt.U,h.qvL,x.O5,Ra.e,pt.N,ut.H,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.On,h.MgK,ct.S,P.mz,tt.W,D.H,A.yS,oe.Q,ae.c,fe.E,Ut.Y,ie.v],pipes:[x.Ov,O.X$,N.j,ne.M],styles:[".image-col[_ngcontent-%COMP%]{width:70px}.image-placeholder[_ngcontent-%COMP%]{width:50px;height:50px;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-right:24px}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"]});class Ft extends c.UT_{constructor(n,e,o,a,r,s,d,l){super(n,e,o,a),this.route=n,this.router=e,this.serverConfigService=o,this.dataService=a,this.productDetailService=r,this.formBuilder=s,this.changeDetector=d,this.notificationService=l,this.autoUpdateVariantNames=!0,this.updatePermission=[c.y3$.UpdateCatalog,c.y3$.UpdateProduct],this.optionGroupCustomFields=this.getCustomFieldConfig("ProductOptionGroup"),this.optionCustomFields=this.getCustomFieldConfig("ProductOption")}ngOnInit(){this.optionGroups$=this.route.snapshot.data.entity.pipe((0,C.U)(n=>n.optionGroups)),this.detailForm=new p.cw({optionGroups:new p.Oe([])}),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,I.a)(this.entity$,this.languageCode$,n).pipe((0,w.q)(1),(0,F.z)(([{optionGroups:e},o,a])=>{var r,s,d,l,m;const _=[];for(const f of this.getOptionGroups()){if((null===(r=f.get("name"))||void 0===r?void 0:r.dirty)||(null===(s=f.get("code"))||void 0===s?void 0:s.dirty)){const v=e.find(Z=>Z.id===f.value.id);if(v){const Z=this.getUpdatedOptionGroup(v,f,o);_.push(this.dataService.product.updateProductOptionGroup(Z))}}for(const v of this.getOptions(f))if((null===(d=v.get("name"))||void 0===d?void 0:d.dirty)||(null===(l=v.get("code"))||void 0===l?void 0:l.dirty)){const Z=null===(m=e.find(T=>T.id===f.value.id))||void 0===m?void 0:m.options.find(T=>T.id===v.value.id);if(Z){const T=this.getUpdatedOption(Z,v,o);_.push(this.productDetailService.updateProductOption(Object.assign(Object.assign({},T),{autoUpdate:this.autoUpdateVariantNames}),a,o))}}}return(0,E.D)(_)})).subscribe(()=>{this.detailForm.markAsPristine(),this.changeDetector.markForCheck(),this.notificationService.success((0,u.J)("common.notify-update-success"),{entity:"ProductOptionGroup"})},e=>{this.notificationService.error((0,u.J)("common.notify-update-error"),{entity:"ProductOptionGroup"})})}getUpdatedOptionGroup(n,e,o){return(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionGroupCustomFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||""}})}getUpdatedOption(n,e,o){return(0,c.iSy)({translatable:n,updatedFields:e.value,customFieldConfig:this.optionGroupCustomFields,languageCode:o,defaultTranslation:{languageCode:o,name:n.name||""}})}setFormValues(n,e){const o=new p.Oe([]);for(const a of n.optionGroups){const r=(0,c.ZIM)(a,e),s={id:a.id,createdAt:a.createdAt,updatedAt:a.updatedAt,code:a.code,name:r?r.name:""},d=new p.Oe([]);for(const m of a.options){const _=(0,c.ZIM)(m,e),f=this.formBuilder.group({id:m.id,createdAt:m.createdAt,updatedAt:m.updatedAt,code:m.code,name:_?_.name:""});d.push(f)}const l=this.formBuilder.group(s);l.addControl("options",d),o.push(l)}this.detailForm.setControl("optionGroups",o)}}Ft.\u0275fac=function(n){return new(n||Ft)(t.Y36(A.gz),t.Y36(A.F0),t.Y36(c.iHG),t.Y36(c.DoR),t.Y36(K),t.Y36(p.qu),t.Y36(t.sBO),t.Y36(c.gqp))},Ft.\u0275cmp=t.Xpm({type:Ft,selectors:[["vdr-product-options-editor"]],features:[t.qOj],decls:16,vars:14,consts:[[3,"availableLanguageCodes","currentLanguageCode","languageCodeChange"],[1,"flex","center"],[1,"mr2"],["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",1,"clr-row"],["class","clr-col-12 clr-col-xl-6",4,"ngFor","ngForOf"],[1,"clr-col-12","clr-col-xl-6"],[1,"card",3,"formArrayName"],[1,"card-header","option-group-header"],[3,"entity"],[1,"ml2"],[1,"card-block"],["for","name",3,"label"],["type","text","formControlName","name",3,"id","readonly"],["for","code",3,"label"],["type","text","formControlName","code",3,"id","readonly"],["formGroupName","options",1,"facet-values-list","table","mt2","mb4"],["class","facet-value",3,"formGroupName",4,"ngFor","ngForOf"],[1,"facet-value",3,"formGroupName"],[1,"align-middle"],["type","text","formControlName","name",3,"readonly"],["type","text","formControlName","code"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-left")(2,"vdr-language-selector",0),t.NdJ("languageCodeChange",function(a){return e.setLanguage(a)}),t.ALo(3,"async"),t.ALo(4,"async"),t.qZA()(),t.TgZ(5,"vdr-ab-right")(6,"div",1)(7,"div",2)(8,"clr-checkbox-wrapper")(9,"input",3),t.NdJ("ngModelChange",function(a){return e.autoUpdateVariantNames=a}),t.qZA(),t.TgZ(10,"label"),t._uU(11),t.ALo(12,"translate"),t.qZA()()(),t.YNc(13,dr,3,4,"button",4),t.qZA()()(),t.YNc(14,mr,3,2,"form",5),t.ALo(15,"async")),2&n&&(t.xp6(2),t.Q6J("availableLanguageCodes",t.lcZ(3,6,e.availableLanguages$))("currentLanguageCode",t.lcZ(4,8,e.languageCode$)),t.xp6(7),t.Q6J("ngModel",e.autoUpdateVariantNames),t.xp6(2),t.Oqu(t.lcZ(12,10,"catalog.auto-update-product-variant-name")),t.xp6(2),t.Q6J("vdrIfPermissions",e.updatePermission),t.xp6(1),t.Q6J("ngIf",t.lcZ(15,12,e.optionGroups$)))},directives:[P.Kk,P.BN,ct.S,P.mz,h.PEh,V.y,p.Wl,h.KKC,p.JJ,p.On,h.MgK,D.H,x.O5,p._Y,p.JL,p.sg,p.x0,x.sg,p.CE,Dt.V,Et.h,p.Fj,p.u],pipes:[x.Ov,O.X$,N.j],styles:[".option-group-header[_ngcontent-%COMP%]{display:flex;align-items:baseline}"],changeDetection:0});var gr=g(1057),_r=g(4744);function hr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.confirm-deletion-of-unused-variants-title"),"\n")}function fr(i,n){if(1&i&&(t.TgZ(0,"li"),t._uU(1),t.qZA()),2&i){const e=n.$implicit;t.xp6(1),t.AsE("",e.name," (",e.sku,")")}}function vr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",3),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().confirm()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}2&i&&(t.xp6(1),t.Oqu(t.lcZ(2,2,"common.cancel")),t.xp6(3),t.hij(" ",t.lcZ(5,4,"common.confirm")," "))}class Ot{constructor(){this.variants=[]}confirm(){this.resolveWith(!0)}cancel(){this.resolveWith()}}function Cr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"div",7)(1,"div",8)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t.TgZ(5,"input",9),t.NdJ("ngModelChange",function(a){return t.CHM(e).$implicit.name=a}),t.qZA()(),t.TgZ(6,"div",10)(7,"label"),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"vdr-option-value-input",11,12),t.NdJ("add",function(a){const s=t.CHM(e).index;return t.oxw().addOption(s,a.name)})("remove",function(a){const s=t.CHM(e).index;return t.oxw().removeOption(s,a)}),t.qZA()(),t.TgZ(12,"div")(13,"button",13),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.oxw().removeOptionGroup(r)}),t._UZ(14,"clr-icon",14),t.qZA()()()}if(2&i){const e=n.$implicit;t.xp6(3),t.Oqu(t.lcZ(4,8,"catalog.option")),t.xp6(2),t.Q6J("ngModel",e.name)("readonly",!e.isNew),t.xp6(3),t.Oqu(t.lcZ(9,10,"catalog.option-values")),t.xp6(2),t.Q6J("options",e.values)("groupName",e.name)("disabled",""===e.name),t.xp6(3),t.Q6J("disabled",e.locked)}}function xr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-checkbox-wrapper")(1,"input",18),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.enabled=a})("ngModelChange",function(){t.CHM(e);return t.oxw(2).formValueChanged=!0}),t.qZA(),t.TgZ(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA()()}if(2&i){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.enabled),t.xp6(2),t.Oqu(t.lcZ(4,2,"common.create"))}}function br(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-input-container")(1,"input",19),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.sku=a})("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().onFormChanged(a)}),t.ALo(2,"translate"),t.qZA()()}if(2&i){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.sku)("placeholder",t.lcZ(2,2,"catalog.sku"))}}function Zr(i,n){if(1&i&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.sku)}}function Tr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-input-container")(1,"vdr-currency-input",20),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.price=a})("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().onFormChanged(a)}),t.qZA()()}if(2&i){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Q6J("ngModel",e.price)("currencyCode",o.currencyCode)}}function Ar(i,n){if(1&i&&(t.TgZ(0,"span"),t._uU(1),t.ALo(2,"localeCurrency"),t.qZA()),2&i){const e=t.oxw().$implicit,o=t.oxw();t.xp6(1),t.Oqu(t.xi3(2,1,e.price,o.currencyCode))}}function yr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"clr-input-container")(1,"input",21),t.NdJ("ngModelChange",function(a){t.CHM(e);return t.oxw().$implicit.stock=a})("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw().onFormChanged(a)}),t.qZA()()}if(2&i){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.stock)}}function Pr(i,n){if(1&i&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.stock)}}function Fr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-dropdown")(1,"button",22),t._UZ(2,"clr-icon",23),t.qZA(),t.TgZ(3,"vdr-dropdown-menu",24)(4,"button",25),t.NdJ("click",function(){const r=t.CHM(e).ngIf,s=t.oxw().$implicit;return t.oxw().deleteVariant(r,s.options)}),t._UZ(5,"clr-icon",26),t._uU(6),t.ALo(7,"translate"),t.qZA()()()}2&i&&(t.xp6(6),t.hij(" ",t.lcZ(7,1,"common.delete")," "))}function Or(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td",15),t.YNc(2,xr,5,4,"clr-checkbox-wrapper",16),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"td")(7,"div",17),t.YNc(8,br,3,4,"clr-input-container",16),t.YNc(9,Zr,2,1,"span",16),t.qZA()(),t.TgZ(10,"td")(11,"div",17),t.YNc(12,Tr,2,2,"clr-input-container",16),t.YNc(13,Ar,3,4,"span",16),t.qZA()(),t.TgZ(14,"td")(15,"div",17),t.YNc(16,yr,2,1,"clr-input-container",16),t.YNc(17,Pr,2,1,"span",16),t.qZA()(),t.TgZ(18,"td"),t.YNc(19,Fr,8,3,"vdr-dropdown",16),t.qZA()()),2&i){const e=n.$implicit,o=t.oxw();t.ekj("disabled",!e.enabled||e.existing),t.xp6(2),t.Q6J("ngIf",!e.existing),t.xp6(2),t.hij(" ",t.lcZ(5,11,o.getVariantName(e))," "),t.xp6(4),t.Q6J("ngIf",!e.existing),t.xp6(1),t.Q6J("ngIf",e.existing),t.xp6(3),t.Q6J("ngIf",!e.existing),t.xp6(1),t.Q6J("ngIf",e.existing),t.xp6(3),t.Q6J("ngIf",!e.existing),t.xp6(1),t.Q6J("ngIf",e.existing),t.xp6(2),t.Q6J("ngIf",e.productVariantId)}}Ot.\u0275fac=function(n){return new(n||Ot)},Ot.\u0275cmp=t.Xpm({type:Ot,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,hr,2,3,"ng-template",0),t._uU(1),t.ALo(2,"translate"),t.TgZ(3,"ul"),t.YNc(4,fr,2,2,"li",1),t.qZA(),t.YNc(5,vr,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))},directives:[Nt.q,x.sg,qt.n],pipes:[O.X$],styles:[""],changeDetection:0});const Ir=function(i){return{count:i}};class Le{constructor(n){for(const e of Object.keys(n))this[e]=n[e]}}class It{constructor(n,e,o,a,r){this.route=n,this.dataService=e,this.productDetailService=o,this.notificationService=a,this.modalService=r,this.formValueChanged=!1,this.optionsChanged=!1,this.generatedVariants=[]}ngOnInit(){this.initOptionsAndVariants(),this.languageCode=this.route.snapshot.paramMap.get("lang")||(0,c.kAh)(),this.dataService.settings.getActiveChannel().single$.subscribe(n=>{this.currencyCode=n.activeChannel.currencyCode})}onFormChanged(n){this.formValueChanged=!0,n.enabled=!0}canDeactivate(){return!this.formValueChanged}getVariantsToAdd(){return this.generatedVariants.filter(n=>!n.existing&&n.enabled)}getVariantName(n){return 0===n.options.length?(0,u.J)("catalog.default-variant"):n.options.map(e=>e.name).join(" ")}addOptionGroup(){this.optionGroups.push({isNew:!0,locked:!1,name:"",values:[]}),this.optionsChanged=!0}removeOptionGroup(n){const e=n.id;n.isNew?(this.optionGroups=this.optionGroups.filter(o=>o!==n),this.generateVariants(),this.optionsChanged=!0):e&&this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product-option-group"),translationVars:{name:n.name},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.dataService.product.removeOptionGroupFromProduct({optionGroupId:e,productId:this.product.id}):M.E)).subscribe(({removeOptionGroupFromProduct:o})=>{var a;"Product"===o.__typename?(this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"ProductOptionGroup"}),this.initOptionsAndVariants(),this.optionsChanged=!0):"ProductOptionInUseError"===o.__typename&&this.notificationService.error(null!==(a=o.message)&&void 0!==a?a:"")})}addOption(n,e){const o=this.optionGroups[n];o&&(o.values.push({name:e,locked:!1}),this.generateVariants(),this.optionsChanged=!0)}removeOption(n,{id:e,name:o}){const a=this.optionGroups[n];a&&(e?this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product-option"),translationVars:{name:o},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(r=>r?this.dataService.product.deleteProductOption(e):M.E)).subscribe(({deleteProductOption:r})=>{var s;r.result===c.PcR.DELETED?(this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"ProductOption"}),a.values=a.values.filter(d=>d.id!==e),this.generateVariants(),this.optionsChanged=!0):this.notificationService.error(null!==(s=r.message)&&void 0!==s?s:"")}):(a.values=a.values.filter(r=>r.name!==o),this.generateVariants()))}generateVariants(){const n=this.optionGroups.map(a=>a.values),e=this.generatedVariants,o=(a,r,s,d)=>{var l,m,_,f,v,Z;const T=this.getVariantPrototype(r,e);return new Le({enabled:!0,existing:!!s,productVariantId:null==s?void 0:s.id,isDefault:a,options:r,price:null!==(m=null!==(l=null==s?void 0:s.price)&&void 0!==l?l:null==d?void 0:d.price)&&void 0!==m?m:T.price,sku:null!==(f=null!==(_=null==s?void 0:s.sku)&&void 0!==_?_:null==d?void 0:d.sku)&&void 0!==f?f:T.sku,stock:null!==(Z=null!==(v=null==s?void 0:s.stockOnHand)&&void 0!==v?v:null==d?void 0:d.stockOnHand)&&void 0!==Z?Z:T.stock})};this.generatedVariants=n.length?(0,R.generateAllCombinations)(n).map(a=>{const r=this.product.variants.find(d=>this.optionsAreEqual(d.options,a)),s=this.product.variants.find(d=>this.optionsAreSubset(d.options,a));return o(!1,a,r,s)}):[o(!0,[],this.product.variants[0])]}getVariantPrototype(n,e){return e.filter(a=>n.map(r=>r.name).filter(r=>a.options.map(s=>s.name).includes(r))).length?(0,gr.e)(e[0],["sku","price","stock"]):{sku:"",price:0,stock:0}}deleteVariant(n,e){this.modalService.dialog({title:(0,u.J)("catalog.confirm-delete-product-variant"),translationVars:{name:e.map(o=>o.name).join(" ")},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(o=>o?this.productDetailService.deleteProductVariant(n,this.product.id):M.E),(0,b.w)(()=>this.reFetchProduct(null))).subscribe(()=>{this.notificationService.success((0,u.J)("common.notify-delete-success"),{entity:"ProductVariant"}),this.initOptionsAndVariants()},o=>{this.notificationService.error((0,u.J)("common.notify-delete-error"),{entity:"ProductVariant"})})}save(){this.optionGroups=this.optionGroups.filter(e=>e.values.length);const n=this.optionGroups.filter(e=>e.isNew).map(e=>({name:e.name,values:[]}));this.checkUniqueSkus().pipe((0,F.z)(()=>this.confirmDeletionOfObsoleteVariants()),(0,F.z)(()=>this.productDetailService.createProductOptionGroups(n,this.languageCode)),(0,F.z)(e=>this.addOptionGroupsToProduct(e)),(0,F.z)(e=>this.addNewOptionsToGroups(e)),(0,F.z)(e=>this.fetchOptionGroups(e)),(0,F.z)(e=>this.createNewProductVariants(e)),(0,F.z)(e=>this.deleteObsoleteVariants(e.createProductVariants)),(0,F.z)(e=>this.reFetchProduct(e))).subscribe({next:e=>{this.formValueChanged=!1,this.notificationService.success((0,u.J)("catalog.created-new-variants-success"),{count:e.length}),this.initOptionsAndVariants(),this.optionsChanged=!1}})}checkUniqueSkus(){const n=this.generatedVariants.filter((e,o)=>e.enabled&&this.generatedVariants.find(a=>a.sku.trim()===e.sku.trim()&&a!==e));return n.length?this.modalService.dialog({title:(0,u.J)("catalog.duplicate-sku-warning"),body:(0,J.T)(n.map(e=>`${e.sku}`)).join(", "),buttons:[{label:(0,u.J)("common.close"),returnValue:!1,type:"primary"}]}).pipe((0,F.z)(e=>M.E)):(0,k.of)(!0)}confirmDeletionOfObsoleteVariants(){const n=this.getObsoleteVariants();return n.length?this.modalService.fromComponent(Ot,{locals:{variants:n}}).pipe((0,F.z)(e=>!0===e?(0,k.of)(!0):M.E)):(0,k.of)(!0)}getObsoleteVariants(){return this.product.variants.filter(n=>!this.generatedVariants.find(e=>e.productVariantId===n.id))}hasOnlyDefaultVariant(n){return 1===n.variants.length&&0===n.optionGroups.length}addOptionGroupsToProduct(n){return n.length?(0,E.D)(n.map(e=>this.dataService.product.addOptionGroupToProduct({productId:this.product.id,optionGroupId:e.id}))).pipe((0,C.U)(()=>n)):(0,k.of)([])}addNewOptionsToGroups(n){const e=this.optionGroups.map(a=>{const r=n.find(d=>d.name===a.name),s=r?r.id:a.id;if(!s)throw new Error("Could not get a productOptionGroupId");return a.values.filter(d=>!d.locked).map(d=>({productOptionGroupId:s,code:(0,et.U)(d.name,"-"),translations:[{name:d.name,languageCode:this.languageCode}]}))}).reduce((a,r)=>[...a,...r],[]),o=[...n.map(a=>a.id),...this.optionGroups.map(a=>a.id).filter(R.notNullOrUndefined)];return e.length?(0,E.D)(e.map(a=>this.dataService.product.addOptionToGroup(a))).pipe((0,C.U)(()=>o)):(0,k.of)(o)}fetchOptionGroups(n){return(0,E.D)(n.map(e=>this.dataService.product.getProductOptionGroup(e).mapSingle(o=>o.productOptionGroup).pipe((0,Qt.h)(R.notNullOrUndefined)))).pipe((0,_r.d)([]))}createNewProductVariants(n){const e=n.filter(R.notNullOrUndefined).map(a=>a.options).reduce((a,r)=>[...a,...r],[]),o=this.generatedVariants.filter(a=>a.enabled&&!a.existing).map(a=>{const r=n.map((s,d)=>{const l=s.options.find(m=>m.name===a.options[d].name);if(l)return l.id;throw new Error(`Could not find a matching option for group ${s.name}`)});return{price:a.price,sku:a.sku,stock:a.stock,optionIds:r}});return this.productDetailService.createProductVariants(this.product,o,e,this.languageCode)}deleteObsoleteVariants(n){const e=this.getObsoleteVariants();if(e.length){const o=e.map(a=>this.dataService.product.deleteProductVariant(a.id).pipe((0,C.U)(()=>n)));return(0,E.D)(...o)}return(0,k.of)(n)}reFetchProduct(n){const e=this.route.snapshot.paramMap.get("id");return e?this.dataService.product.getProduct(e).single$.pipe((0,C.U)(()=>n)):(0,k.of)(n)}initOptionsAndVariants(){this.dataService.product.getProductVariantsOptions(this.route.snapshot.paramMap.get("id")).mapSingle(({product:n})=>n).subscribe(n=>{this.product=n;const e=n.variants.map(a=>a.options.map(r=>r.id)).flat(),o=n.variants.map(a=>a.options.map(r=>r.groupId)).flat();this.optionGroups=n.optionGroups.map(a=>({id:a.id,isNew:!1,name:a.name,locked:o.includes(a.id),values:a.options.map(r=>({id:r.id,name:r.name,locked:e.includes(r.id)}))})),this.generateVariants()})}optionsAreEqual(n,e){return this.toOptionString(n)===this.toOptionString(e)}optionsAreSubset(n,e){return this.toOptionString(e).includes(this.toOptionString(n))}toOptionString(n){return n.map(e=>e.name).sort().join("|")}}It.\u0275fac=function(n){return new(n||It)(t.Y36(A.gz),t.Y36(c.DoR),t.Y36(K),t.Y36(c.gqp),t.Y36(c.Z7U))},It.\u0275cmp=t.Xpm({type:It,selectors:[["vdr-product-variants-editor"]],decls:29,vars:24,consts:[[1,"btn","btn-primary",3,"disabled","click"],["class","option-groups",4,"ngFor","ngForOf"],[1,"btn","btn-primary-outline","btn-sm",3,"click"],["shape","plus"],[1,"variants-preview"],[1,"table"],[3,"disabled",4,"ngFor","ngForOf"],[1,"option-groups"],[1,"name"],["clrInput","","name","name",3,"ngModel","readonly","ngModelChange"],[1,"values"],[3,"options","groupName","disabled","add","remove"],["optionValueInputComponent",""],[1,"btn","btn-icon","btn-danger-outline","mt5",3,"disabled","click"],["shape","trash"],[1,"left"],[4,"ngIf"],[1,"flex","center"],["type","checkbox","name","enabled","clrCheckbox","",3,"ngModel","ngModelChange"],["clrInput","","type","text","name","sku","required","",3,"ngModel","placeholder","ngModelChange"],["clrInput","","name","price",3,"ngModel","currencyCode","ngModelChange"],["clrInput","","type","number","name","stock","min","0","step","1",3,"ngModel","ngModelChange"],["vdrDropdownTrigger","",1,"icon-button"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["type","button","vdrDropdownItem","",1,"delete-button",3,"click"],["shape","trash",1,"is-danger"]],template:function(n,e){1&n&&(t.TgZ(0,"vdr-action-bar")(1,"vdr-ab-right")(2,"button",0),t.NdJ("click",function(){return e.save()}),t._uU(3),t.ALo(4,"translate"),t.qZA()()(),t.YNc(5,Cr,15,12,"div",1),t.TgZ(6,"button",2),t.NdJ("click",function(){return e.addOptionGroup()}),t._UZ(7,"clr-icon",3),t._uU(8),t.ALo(9,"translate"),t.qZA(),t.TgZ(10,"div",4)(11,"table",5)(12,"thead")(13,"tr"),t._UZ(14,"th"),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,"th"),t._uU(22),t.ALo(23,"translate"),t.qZA(),t.TgZ(24,"th"),t._uU(25),t.ALo(26,"translate"),t.qZA(),t._UZ(27,"th"),t.qZA()(),t.YNc(28,Or,20,13,"tr",6),t.qZA()()),2&n&&(t.xp6(2),t.Q6J("disabled",!e.formValueChanged&&!e.optionsChanged||0===e.getVariantsToAdd().length),t.xp6(1),t.hij(" ",t.xi3(4,9,"common.add-new-variants",t.VKq(22,Ir,e.getVariantsToAdd().length))," "),t.xp6(2),t.Q6J("ngForOf",e.optionGroups),t.xp6(3),t.hij(" ",t.lcZ(9,12,"catalog.add-option"),"\n"),t.xp6(8),t.Oqu(t.lcZ(17,14,"catalog.variant")),t.xp6(3),t.Oqu(t.lcZ(20,16,"catalog.sku")),t.xp6(3),t.Oqu(t.lcZ(23,18,"catalog.price")),t.xp6(3),t.Oqu(t.lcZ(26,20,"catalog.stock-on-hand")),t.xp6(3),t.Q6J("ngForOf",e.generatedVariants))},directives:[P.Kk,P.mz,x.sg,h.MgK,V.y,p.Fj,h.xRP,p.JJ,p.On,W,h.qvL,x.O5,h.PEh,p.Wl,h.KKC,h.G55,p.Q7,zt.K,p.qQ,p.wV,lt.J,dt.U,pt.N,ut.H],pipes:[O.X$,se.k],styles:[".option-groups[_ngcontent-%COMP%]{display:flex}.option-groups[_ngcontent-%COMP%]:first-of-type{margin-top:24px}.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 Mt extends c.p_9{constructor(n,e){super(n,{__typename:"Asset",id:"",createdAt:"",updatedAt:"",name:"",type:c.h3s.IMAGE,fileSize:0,mimeType:"",width:0,height:0,source:"",preview:"",focalPoint:null},o=>e.product.getAsset(o).mapStream(a=>a.asset))}}Mt.\u0275fac=function(n){return new(n||Mt)(t.LFG(A.F0),t.LFG(c.DoR))},Mt.\u0275prov=t.Yz7({token:Mt,factory:Mt.\u0275fac,providedIn:"root"});class kt extends c.p_9{constructor(n,e){super(n,{__typename:"Collection",id:"",createdAt:"",updatedAt:"",languageCode:(0,c.kAh)(),name:"",slug:"",isPrivate:!1,breadcrumbs:[],description:"",featuredAsset:null,assets:[],translations:[],inheritFilters:!0,filters:[],parent:{},children:null},o=>e.collection.getCollection(o).mapStream(a=>a.collection))}}kt.\u0275fac=function(n){return new(n||kt)(t.LFG(A.F0),t.LFG(c.DoR))},kt.\u0275prov=t.Yz7({token:kt,factory:kt.\u0275fac,providedIn:"root"});class Lt extends c.p_9{constructor(n,e){super(n,{__typename:"Facet",id:"",createdAt:"",updatedAt:"",isPrivate:!1,languageCode:(0,c.kAh)(),name:"",code:"",translations:[],values:[]},o=>e.facet.getFacet(o).mapStream(a=>a.facet))}}Lt.\u0275fac=function(n){return new(n||Lt)(t.LFG(A.F0),t.LFG(c.DoR))},Lt.\u0275prov=t.Yz7({token:Lt,factory:Lt.\u0275fac,providedIn:"root"});class Vt extends c.p_9{constructor(n,e){super(e,{__typename:"Product",id:"",createdAt:"",updatedAt:"",enabled:!0,languageCode:(0,c.kAh)(),name:"",slug:"",featuredAsset:null,assets:[],description:"",translations:[],optionGroups:[],facetValues:[],variantList:{items:[],totalItems:0},channels:[]},o=>n.product.getProduct(o,{take:10}).refetchOnChannelChange().mapStream(a=>a.product))}}Vt.\u0275fac=function(n){return new(n||Vt)(t.LFG(c.DoR),t.LFG(A.F0))},Vt.\u0275prov=t.Yz7({token:Vt,factory:Vt.\u0275fac,providedIn:"root"});class it extends c.p_9{constructor(n,e){super(n,{__typename:"Product",id:"",createdAt:"",updatedAt:"",name:"",optionGroups:[],variants:[]},o=>e.product.getProductVariantsOptions(o).mapStream(a=>a.product))}}it.\u0275fac=function(n){return new(n||it)(t.LFG(A.F0),t.LFG(c.DoR))},it.\u0275prov=t.Yz7({token:it,factory:it.\u0275fac,providedIn:"root"});const Ve=[{path:"products",component:Pt,data:{breadcrumb:(0,u.J)("breadcrumb.products")}},{path:"products/:id",component:yt,resolve:(0,c.Po4)(Vt),canDeactivate:[c.TSp],data:{breadcrumb:we}},{path:"products/:id/manage-variants",component:It,resolve:(0,c.Po4)(it),canDeactivate:[c.TSp],data:{breadcrumb:Je}},{path:"products/:id/options",component:Ft,resolve:(0,c.Po4)(it),canDeactivate:[c.TSp],data:{breadcrumb:De}},{path:"facets",component:Ct,data:{breadcrumb:(0,u.J)("breadcrumb.facets")}},{path:"facets/:id",component:vt,resolve:(0,c.Po4)(Lt),canDeactivate:[c.TSp],data:{breadcrumb:Ue}},{path:"collections",component:ft,data:{breadcrumb:(0,u.J)("breadcrumb.collections")}},{path:"collections/:id",component:gt,resolve:(0,c.Po4)(kt),canDeactivate:[c.TSp],data:{breadcrumb:Ne}},{path:"assets",component:st,data:{breadcrumb:(0,u.J)("breadcrumb.assets")}},{path:"assets/:id",component:rt,resolve:(0,c.Po4)(Mt),data:{breadcrumb:qe}}];function we(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.products",getName:e=>e.name,route:"products"})}function Je(i,n){return i.entity.pipe((0,C.U)(e=>[{label:(0,u.J)("breadcrumb.products"),link:["../","products"]},{label:`${e.name}`,link:["../","products",n.id,{tab:"variants"}]},{label:(0,u.J)("breadcrumb.manage-variants"),link:["manage-variants"]}]))}function De(i,n){return i.entity.pipe((0,C.U)(e=>[{label:(0,u.J)("breadcrumb.products"),link:["../","products"]},{label:`${e.name}`,link:["../","products",n.id,{tab:"variants"}]},{label:(0,u.J)("breadcrumb.product-options"),link:["options"]}]))}function Ue(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.facets",getName:e=>e.name,route:"facets"})}function Ne(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.collections",getName:e=>e.name,route:"collections"})}function qe(i,n){return(0,c.YWC)({entity:i.entity,id:n.id,breadcrumbKey:"breadcrumb.assets",getName:e=>e.name,route:"assets"})}function Mr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.assign-to-channel"),"\n")}const kr=function(i){return{channelCode:i}};function Lr(i,n){if(1&i&&(t._uU(0),t.ALo(1,"translate")),2&i){const e=t.oxw(2);t.hij(" ",t.xi3(1,1,"catalog.assign-to-named-channel",t.VKq(4,kr,null==e.selectedChannel?null:e.selectedChannel.code))," ")}}function Vr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.no-channel-selected")," ")}function wr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",4),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",5),t.NdJ("click",function(){return t.CHM(e),t.oxw().assign()}),t.YNc(4,Lr,2,6,"ng-template",6),t.YNc(5,Vr,2,3,"ng-template",null,7,t.W1O),t.qZA()}if(2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Oqu(t.lcZ(2,4,"common.cancel")),t.xp6(2),t.Q6J("disabled",!o.selectedChannel),t.xp6(1),t.Q6J("ngIf",o.selectedChannel)("ngIfElse",e)}}class at{constructor(n,e){this.dataService=n,this.notificationService=e,this.selectedChannelIdControl=new p.NI}ngOnInit(){const n=this.dataService.client.userStatus().mapSingle(({userStatus:o})=>o.activeChannelId),e=this.dataService.settings.getChannels().mapSingle(o=>o.channels);(0,I.a)(n,e).subscribe(([o,a])=>{this.currentChannel=a.find(r=>r.id===o),this.availableChannels=a}),this.selectedChannelIdControl.valueChanges.subscribe(o=>{this.selectChannel(o)})}selectChannel(n){this.selectedChannel=this.availableChannels.find(e=>e.id===n[0])}assign(){const n=this.selectedChannel;n&&this.resolveWith(n)}cancel(){this.resolveWith()}}at.\u0275fac=function(n){return new(n||at)(t.Y36(c.DoR),t.Y36(c.gqp))},at.\u0275cmp=t.Xpm({type:at,selectors:[["vdr-assign-to-channel-dialog"]],decls:7,vars:6,consts:[["vdrDialogTitle",""],[1,"mb4"],["clrInput","",3,"multiple","includeDefaultChannel","formControl"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],[3,"ngIf","ngIfElse"],["noSelection",""]],template:function(n,e){1&n&&(t.YNc(0,Mr,2,3,"ng-template",0),t.TgZ(1,"clr-input-container",1)(2,"label"),t._uU(3),t.ALo(4,"translate"),t.qZA(),t._UZ(5,"vdr-channel-assignment-control",2),t.qZA(),t.YNc(6,wr,7,6,"ng-template",3)),2&n&&(t.xp6(3),t.Oqu(t.lcZ(4,4,"common.channel")),t.xp6(2),t.Q6J("multiple",!1)("includeDefaultChannel",!1)("formControl",e.selectedChannelIdControl))},directives:[Nt.q,h.G55,h.MgK,Te.S,h.xRP,p.JJ,p.oH,qt.n,x.O5],pipes:[O.X$],styles:["vdr-channel-assignment-control[_ngcontent-%COMP%]{min-width:200px}"],changeDetection:0});var Kt=g(727);const Se=Kt.Ps`
|
|
2
2
|
query GetProductsWithFacetValuesByIds($ids: [String!]!) {
|
|
3
3
|
products(options: { filter: { id: { in: $ids } } }) {
|
|
4
4
|
items {
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
`;function Jr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.edit-facet-values"),"\n")}function Dr(i,n){if(1&i&&(t.TgZ(0,"div",14),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.sku)}}function Ur(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",15),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,s=t.oxw().$implicit;return t.oxw(2).removeFacetValue(s,r.id)}),t.qZA()}if(2&i){const e=n.$implicit;t.Q6J("facetValue",e)}}function Nr(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td",10)(2,"div"),t._uU(3),t.qZA(),t.YNc(4,Dr,2,1,"div",11),t.qZA(),t.TgZ(5,"td",12),t.YNc(6,Ur,1,1,"vdr-facet-value-chip",13),t.qZA()()),2&i){const e=n.$implicit;t.xp6(3),t.Oqu(e.name),t.xp6(1),t.Q6J("ngIf",e.sku),t.xp6(2),t.Q6J("ngForOf",e.facetValues)}}function qr(i,n){if(1&i&&(t.TgZ(0,"table",8)(1,"tbody"),t.YNc(2,Nr,7,3,"tr",9),t.qZA()()),2&i){const e=t.oxw();t.xp6(2),t.Q6J("ngForOf",e.items)}}function Sr(i,n){1&i&&(t.TgZ(0,"div",16),t._UZ(1,"clr-spinner"),t.qZA())}function $r(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",18),t.NdJ("click",function(){return t.CHM(e),t.oxw().addFacetValues()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&i){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&&!1===e.facetValuesRemoved),t.xp6(1),t.hij(" ",t.lcZ(5,5,"common.update")," ")}}class wt{constructor(n,e){this.dataService=n,this.changeDetectorRef=e,this.mode="product",this.state="loading",this.selectedValues=[],this.items=[],this.facetValuesRemoved=!1}ngOnInit(){var n,e;const o="product"===this.mode?this.dataService.query(Se,{ids:null!==(n=this.ids)&&void 0!==n?n:[]}).mapSingle(({products:a})=>a.items.map(r=>Object.assign(Object.assign({},r),{facetValues:[...r.facetValues]}))):this.dataService.query($e,{ids:null!==(e=this.ids)&&void 0!==e?e:[]}).mapSingle(({productVariants:a})=>a.items.map(r=>Object.assign(Object.assign({},r),{facetValues:[...r.facetValues]})));this.subscription=o.subscribe({next:a=>{this.items=a,this.state="ready",this.changeDetectorRef.markForCheck()}})}ngOnDestroy(){var n;null===(n=this.subscription)||void 0===n||n.unsubscribe()}cancel(){this.resolveWith()}removeFacetValue(n,e){n.facetValues=n.facetValues.filter(o=>o.id!==e),this.facetValuesRemoved=!0}addFacetValues(){var n,e;const o=this.selectedValues.map(r=>r.id);return this.state="saving",("product"===this.mode?this.dataService.mutate(Qe,{input:null===(n=this.items)||void 0===n?void 0:n.map(r=>({id:r.id,facetValueIds:(0,J.T)([...r.facetValues.map(s=>s.id),...o])}))}):this.dataService.mutate(Ee,{input:null===(e=this.items)||void 0===e?void 0:e.map(r=>({id:r.id,facetValueIds:(0,J.T)([...r.facetValues.map(s=>s.id),...o])}))})).subscribe(r=>{this.resolveWith(this.selectedValues)})}}wt.\u0275fac=function(n){return new(n||wt)(t.Y36(c.DoR),t.Y36(t.sBO))},wt.\u0275cmp=t.Xpm({type:wt,selectors:[["vdr-bulk-add-facet-values-dialog"]],decls:11,vars:5,consts:[["vdrDialogTitle",""],[1,"flex"],[1,"flex","center"],[1,"mr2"],[3,"selectedValuesChange"],["class","table",4,"ngIf","ngIfElse"],["placeholder",""],["vdrDialogButtons",""],[1,"table"],[4,"ngFor","ngForOf"],[1,"left","align-middle"],["class","sku",4,"ngIf"],[1,"left"],[3,"facetValue","remove",4,"ngFor","ngForOf"],[1,"sku"],[3,"facetValue","remove"],[1,"loading"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){if(1&n&&(t.YNc(0,Jr,2,3,"ng-template",0),t.TgZ(1,"div",1)(2,"div",2)(3,"div",3),t._uU(4),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"vdr-facet-value-selector",4),t.NdJ("selectedValuesChange",function(a){return e.selectedValues=a}),t.qZA()()(),t.YNc(7,qr,3,1,"table",5),t.YNc(8,Sr,2,0,"ng-template",null,6,t.W1O),t.YNc(10,$r,6,7,"ng-template",7)),2&n){const o=t.MAs(9);t.xp6(4),t.hij(" ",t.lcZ(5,3,"catalog.add-facet-value")," "),t.xp6(3),t.Q6J("ngIf","loading"!==e.state)("ngIfElse",o)}},directives:[Nt.q,Ze.$,x.O5,x.sg,Rt.q,h.vNO,qt.n],pipes:[O.X$],styles:[".loading[_ngcontent-%COMP%]{min-height:25vh;display:flex;justify-content:center;align-items:center}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"],changeDetection:0});const Ye={location:"collection-list",label:(0,u.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:i=>i.includes(c.y3$.DeleteCollection)||i.includes(c.y3$.DeleteCatalog),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.dialog({title:(0,u.J)("catalog.confirm-bulk-delete-collections"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(d=>d?r.collection.deleteCollections((0,J.T)(n.map(l=>l.id))):M.E)).subscribe(d=>{let l=0;const m=[];for(const _ of d.deleteCollections)_.result===c.PcR.DELETED?l++:_.message&&m.push(_.message);0<l&&s.success((0,u.J)("catalog.notify-bulk-delete-collections-success"),{count:l}),0<m.length&&s.error(m.join("\n")),e.refresh(),o()})}},Ge={location:"collection-list",label:(0,u.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:i=>i.includes(c.y3$.UpdateCatalog)||i.includes(c.y3$.UpdateProduct),isVisible:({injector:i})=>(0,c.SDV)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.fromComponent(at,{size:"md",locals:{}}).pipe((0,b.w)(d=>d?r.collection.assignCollectionsToChannel({collectionIds:n.map(l=>l.id),channelId:d.id}).pipe((0,Gt.h)(d)):M.E)).subscribe(d=>{s.success((0,u.J)("catalog.assign-collections-to-channel-success"),{count:n.length,channelCode:d.code}),o()})}},je={location:"collection-list",label:(0,u.J)("catalog.remove-from-channel"),requiresPermission:i=>i.includes(c.y3$.UpdateChannel)||i.includes(c.y3$.UpdateProduct),getTranslationVars:({injector:i})=>(0,c.PDO)(i.get(c.DoR)),icon:"layers",iconClass:"is-warning",isVisible:({injector:i})=>(0,c._Nz)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp),d=r.client.userStatus().mapSingle(({userStatus:l})=>l.activeChannelId);(0,jt.D)((0,c.PDO)(i.get(c.DoR))).pipe((0,b.w)(({channelCode:l})=>a.dialog({title:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:l},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.remove"),returnValue:!0}]})),(0,b.w)(l=>l?d.pipe((0,b.w)(m=>m?r.collection.removeCollectionsFromChannel({channelId:m,collectionIds:n.map(_=>_.id)}):M.E),(0,Gt.h)(!0)):(0,k.of)(!1))).subscribe(l=>{l&&(o(),s.success((0,u.J)("catalog.notify-remove-collections-from-channel-success"),{count:n.length}),e.refresh())})}},Be={location:"facet-list",label:(0,u.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:i=>i.includes(c.y3$.DeleteFacet)||i.includes(c.y3$.DeleteCatalog),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);function d(l,m){return a.dialog({title:(0,u.J)("catalog.confirm-bulk-delete-facets"),translationVars:{count:n.length},size:m?"lg":"md",body:m,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:m?(0,u.J)("common.force-delete"):(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(_=>_?r.facet.deleteFacets(l,!!m).pipe((0,C.U)(f=>f.deleteFacets)):(0,k.of)([])))}d((0,J.T)(n.map(l=>l.id))).pipe((0,b.w)(l=>{var m;let _=0;const f=[],v=[];let Z=0;for(const T of l)T.result===c.PcR.DELETED?_++:T.message&&(f.push(T.message),v.push(null===(m=n[Z])||void 0===m?void 0:m.id)),Z++;return 0<v.length?d(v,f.join("\n")).pipe((0,C.U)(T=>{const y=T.filter(L=>L.result===c.PcR.DELETED).length;return _+y})):(0,k.of)(_)})).subscribe(l=>{l&&(e.refresh(),o(),s.success((0,u.J)("catalog.notify-bulk-delete-facets-success"),{count:l}))})}},He={location:"facet-list",label:(0,u.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:i=>i.includes(c.y3$.UpdateFacet)||i.includes(c.y3$.UpdateCatalog),isVisible:({injector:i})=>(0,c.SDV)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.fromComponent(at,{size:"md",locals:{}}).pipe((0,b.w)(d=>d?r.facet.assignFacetsToChannel({facetIds:n.map(l=>l.id),channelId:d.id}).pipe((0,Gt.h)(d)):M.E)).subscribe(d=>{s.success((0,u.J)("catalog.assign-facets-to-channel-success"),{count:n.length,channelCode:d.code}),o()})}},Re={location:"facet-list",label:(0,u.J)("catalog.remove-from-channel"),getTranslationVars:({injector:i})=>(0,c.PDO)(i.get(c.DoR)),icon:"layers",iconClass:"is-warning",requiresPermission:i=>i.includes(c.y3$.UpdateFacet)||i.includes(c.y3$.UpdateCatalog),isVisible:({injector:i})=>(0,c._Nz)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp),d=r.client.userStatus().mapSingle(({userStatus:m})=>m.activeChannelId);function l(m,_){return a.dialog({title:(0,u.J)("catalog.remove-from-channel"),translationVars:{count:n.length},size:_?"lg":"md",body:_,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:_?(0,u.J)("common.force-remove"):(0,u.J)("common.remove"),returnValue:!0}]}).pipe((0,b.w)(f=>f?d.pipe((0,b.w)(v=>v?r.facet.removeFacetsFromChannel({channelId:v,facetIds:m,force:!!_}):M.E),(0,C.U)(v=>v.removeFacetsFromChannel)):M.E))}l((0,J.T)(n.map(m=>m.id))).pipe((0,b.w)(m=>{var _;let f=n.length;const v=[],Z=[];let T=0;for(const y of m)"FacetInUseError"===y.__typename&&(v.push(y.message),Z.push(null===(_=n[T])||void 0===_?void 0:_.id),f--),T++;return 0<Z.length?l(Z,v.join("\n")).pipe((0,C.U)(y=>{const L=y.filter(q=>"FacetInUseError"===q.__typename).length;return n.length-L})):(0,k.of)(f)}),(0,b.w)(m=>m?(0,c.PDO)(r).then(({channelCode:_})=>({channelCode:_,removedCount:m})):M.E)).subscribe(({removedCount:m,channelCode:_})=>{m&&(e.refresh(),o(),s.success((0,u.J)("catalog.notify-remove-facets-from-channel-success"),{count:m,channelCode:_}))})}},ze={location:"product-list",label:(0,u.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:i=>i.includes(c.y3$.DeleteProduct)||i.includes(c.y3$.DeleteCatalog),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.dialog({title:(0,u.J)("catalog.confirm-bulk-delete-products"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(d=>d?r.product.deleteProducts((0,J.T)(n.map(l=>l.productId))):M.E)).subscribe(d=>{let l=0;const m=[];for(const _ of d.deleteProducts)_.result===c.PcR.DELETED?l++:_.message&&m.push(_.message);0<l&&s.success((0,u.J)("catalog.notify-bulk-delete-products-success"),{count:l}),0<m.length&&s.error(m.join("\n")),e.refresh(),o()})}},Ke={location:"product-list",label:(0,u.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:i=>i.includes(c.y3$.UpdateCatalog)||i.includes(c.y3$.UpdateProduct),isVisible:({injector:i})=>(0,c.SDV)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U);i.get(c.DoR),i.get(c.gqp);a.fromComponent(z,{size:"lg",locals:{productIds:(0,J.T)(n.map(d=>d.productId)),currentChannelIds:[]}}).subscribe(d=>{d&&o()})}},We={location:"product-list",label:(0,u.J)("catalog.remove-from-channel"),requiresPermission:i=>i.includes(c.y3$.UpdateChannel)||i.includes(c.y3$.UpdateProduct),getTranslationVars:({injector:i})=>(0,c.PDO)(i.get(c.DoR)),icon:"layers",iconClass:"is-warning",isVisible:({injector:i})=>(0,c._Nz)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp),d=r.client.userStatus().mapSingle(({userStatus:l})=>l.activeChannelId);(0,jt.D)((0,c.PDO)(i.get(c.DoR))).pipe((0,b.w)(({channelCode:l})=>a.dialog({title:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:l},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.remove"),returnValue:!0}]})),(0,b.w)(l=>l?d.pipe((0,b.w)(m=>m?r.product.removeProductsFromChannel({channelId:m,productIds:n.map(_=>_.productId)}):M.E),(0,Gt.h)(!0)):(0,k.of)(!1))).subscribe(l=>{l&&(o(),s.success((0,u.J)("common.notify-remove-products-from-channel-success"),{count:n.length}),setTimeout(()=>e.refresh(),1e3))})}},Xe={location:"product-list",label:(0,u.J)("catalog.edit-facet-values"),icon:"tag",requiresPermission:i=>i.includes(c.y3$.UpdateCatalog)||i.includes(c.y3$.UpdateProduct),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),s=(i.get(c.DoR),i.get(c.gqp)),d=e.groupByProduct?"product":"variant",l="product"===d?(0,J.T)(n.map(m=>m.productId)):(0,J.T)(n.map(m=>m.productVariantId));return a.fromComponent(wt,{size:"xl",locals:{mode:d,ids:l}}).subscribe(m=>{m&&(s.success((0,u.J)("common.notify-bulk-update-success"),{count:n.length,entity:"product"===d?"Products":"ProductVariants"}),o())})}};class St{constructor(n){this.bulkActionRegistryService=n,n.registerBulkAction(Xe),n.registerBulkAction(Ke),n.registerBulkAction(We),n.registerBulkAction(ze),n.registerBulkAction(He),n.registerBulkAction(Re),n.registerBulkAction(Be),n.registerBulkAction(Ge),n.registerBulkAction(je),n.registerBulkAction(Ye)}}St.\u0275fac=function(n){return new(n||St)(t.LFG(c._4w))},St.\u0275mod=t.oAB({type:St}),St.\u0275inj=t.cJS({imports:[[c.m81,A.Bz.forChild(Ve)]]})}}]);
|
|
65
|
-
//# sourceMappingURL=430.
|
|
64
|
+
`;function Jr(i,n){1&i&&(t._uU(0),t.ALo(1,"translate")),2&i&&t.hij(" ",t.lcZ(1,1,"catalog.edit-facet-values"),"\n")}function Dr(i,n){if(1&i&&(t.TgZ(0,"div",14),t._uU(1),t.qZA()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.Oqu(e.sku)}}function Ur(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"vdr-facet-value-chip",15),t.NdJ("remove",function(){const r=t.CHM(e).$implicit,s=t.oxw().$implicit;return t.oxw(2).removeFacetValue(s,r.id)}),t.qZA()}if(2&i){const e=n.$implicit;t.Q6J("facetValue",e)}}function Nr(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td",10)(2,"div"),t._uU(3),t.qZA(),t.YNc(4,Dr,2,1,"div",11),t.qZA(),t.TgZ(5,"td",12),t.YNc(6,Ur,1,1,"vdr-facet-value-chip",13),t.qZA()()),2&i){const e=n.$implicit;t.xp6(3),t.Oqu(e.name),t.xp6(1),t.Q6J("ngIf",e.sku),t.xp6(2),t.Q6J("ngForOf",e.facetValues)}}function qr(i,n){if(1&i&&(t.TgZ(0,"table",8)(1,"tbody"),t.YNc(2,Nr,7,3,"tr",9),t.qZA()()),2&i){const e=t.oxw();t.xp6(2),t.Q6J("ngForOf",e.items)}}function Sr(i,n){1&i&&(t.TgZ(0,"div",16),t._UZ(1,"clr-spinner"),t.qZA())}function $r(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){return t.CHM(e),t.oxw().cancel()}),t._uU(1),t.ALo(2,"translate"),t.qZA(),t.TgZ(3,"button",18),t.NdJ("click",function(){return t.CHM(e),t.oxw().addFacetValues()}),t._uU(4),t.ALo(5,"translate"),t.qZA()}if(2&i){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&&!1===e.facetValuesRemoved),t.xp6(1),t.hij(" ",t.lcZ(5,5,"common.update")," ")}}class wt{constructor(n,e){this.dataService=n,this.changeDetectorRef=e,this.mode="product",this.state="loading",this.selectedValues=[],this.items=[],this.facetValuesRemoved=!1}ngOnInit(){var n,e;const o="product"===this.mode?this.dataService.query(Se,{ids:null!==(n=this.ids)&&void 0!==n?n:[]}).mapSingle(({products:a})=>a.items.map(r=>Object.assign(Object.assign({},r),{facetValues:[...r.facetValues]}))):this.dataService.query($e,{ids:null!==(e=this.ids)&&void 0!==e?e:[]}).mapSingle(({productVariants:a})=>a.items.map(r=>Object.assign(Object.assign({},r),{facetValues:[...r.facetValues]})));this.subscription=o.subscribe({next:a=>{this.items=a,this.state="ready",this.changeDetectorRef.markForCheck()}})}ngOnDestroy(){var n;null===(n=this.subscription)||void 0===n||n.unsubscribe()}cancel(){this.resolveWith()}removeFacetValue(n,e){n.facetValues=n.facetValues.filter(o=>o.id!==e),this.facetValuesRemoved=!0}addFacetValues(){var n,e;const o=this.selectedValues.map(r=>r.id);return this.state="saving",("product"===this.mode?this.dataService.mutate(Qe,{input:null===(n=this.items)||void 0===n?void 0:n.map(r=>({id:r.id,facetValueIds:(0,J.T)([...r.facetValues.map(s=>s.id),...o])}))}):this.dataService.mutate(Ee,{input:null===(e=this.items)||void 0===e?void 0:e.map(r=>({id:r.id,facetValueIds:(0,J.T)([...r.facetValues.map(s=>s.id),...o])}))})).subscribe(r=>{this.resolveWith(this.selectedValues)})}}wt.\u0275fac=function(n){return new(n||wt)(t.Y36(c.DoR),t.Y36(t.sBO))},wt.\u0275cmp=t.Xpm({type:wt,selectors:[["vdr-bulk-add-facet-values-dialog"]],decls:11,vars:5,consts:[["vdrDialogTitle",""],[1,"flex"],[1,"flex","center"],[1,"mr2"],[3,"selectedValuesChange"],["class","table",4,"ngIf","ngIfElse"],["placeholder",""],["vdrDialogButtons",""],[1,"table"],[4,"ngFor","ngForOf"],[1,"left","align-middle"],["class","sku",4,"ngIf"],[1,"left"],[3,"facetValue","remove",4,"ngFor","ngForOf"],[1,"sku"],[3,"facetValue","remove"],[1,"loading"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"disabled","click"]],template:function(n,e){if(1&n&&(t.YNc(0,Jr,2,3,"ng-template",0),t.TgZ(1,"div",1)(2,"div",2)(3,"div",3),t._uU(4),t.ALo(5,"translate"),t.qZA(),t.TgZ(6,"vdr-facet-value-selector",4),t.NdJ("selectedValuesChange",function(a){return e.selectedValues=a}),t.qZA()()(),t.YNc(7,qr,3,1,"table",5),t.YNc(8,Sr,2,0,"ng-template",null,6,t.W1O),t.YNc(10,$r,6,7,"ng-template",7)),2&n){const o=t.MAs(9);t.xp6(4),t.hij(" ",t.lcZ(5,3,"catalog.add-facet-value")," "),t.xp6(3),t.Q6J("ngIf","loading"!==e.state)("ngIfElse",o)}},directives:[Nt.q,Ze.$,x.O5,x.sg,Rt.q,h.vNO,qt.n],pipes:[O.X$],styles:[".loading[_ngcontent-%COMP%]{min-height:25vh;display:flex;justify-content:center;align-items:center}.sku[_ngcontent-%COMP%]{color:var(--color-text-300)}"],changeDetection:0});const Ye={location:"collection-list",label:(0,u.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:i=>i.includes(c.y3$.DeleteCollection)||i.includes(c.y3$.DeleteCatalog),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.dialog({title:(0,u.J)("catalog.confirm-bulk-delete-collections"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(d=>d?r.collection.deleteCollections((0,J.T)(n.map(l=>l.id))):M.E)).subscribe(d=>{let l=0;const m=[];for(const _ of d.deleteCollections)_.result===c.PcR.DELETED?l++:_.message&&m.push(_.message);0<l&&s.success((0,u.J)("catalog.notify-bulk-delete-collections-success"),{count:l}),0<m.length&&s.error(m.join("\n")),e.refresh(),o()})}},Ge={location:"collection-list",label:(0,u.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:i=>i.includes(c.y3$.UpdateCatalog)||i.includes(c.y3$.UpdateProduct),isVisible:({injector:i})=>(0,c.SDV)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.fromComponent(at,{size:"md",locals:{}}).pipe((0,b.w)(d=>d?r.collection.assignCollectionsToChannel({collectionIds:n.map(l=>l.id),channelId:d.id}).pipe((0,Gt.h)(d)):M.E)).subscribe(d=>{s.success((0,u.J)("catalog.assign-collections-to-channel-success"),{count:n.length,channelCode:d.code}),o()})}},je={location:"collection-list",label:(0,u.J)("catalog.remove-from-channel"),requiresPermission:i=>i.includes(c.y3$.UpdateChannel)||i.includes(c.y3$.UpdateProduct),getTranslationVars:({injector:i})=>(0,c.PDO)(i.get(c.DoR)),icon:"layers",iconClass:"is-warning",isVisible:({injector:i})=>(0,c._Nz)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp),d=r.client.userStatus().mapSingle(({userStatus:l})=>l.activeChannelId);(0,jt.D)((0,c.PDO)(i.get(c.DoR))).pipe((0,b.w)(({channelCode:l})=>a.dialog({title:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:l},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.remove"),returnValue:!0}]})),(0,b.w)(l=>l?d.pipe((0,b.w)(m=>m?r.collection.removeCollectionsFromChannel({channelId:m,collectionIds:n.map(_=>_.id)}):M.E),(0,Gt.h)(!0)):(0,k.of)(!1))).subscribe(l=>{l&&(o(),s.success((0,u.J)("catalog.notify-remove-collections-from-channel-success"),{count:n.length}),e.refresh())})}},Be={location:"facet-list",label:(0,u.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:i=>i.includes(c.y3$.DeleteFacet)||i.includes(c.y3$.DeleteCatalog),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);function d(l,m){return a.dialog({title:(0,u.J)("catalog.confirm-bulk-delete-facets"),translationVars:{count:n.length},size:m?"lg":"md",body:m,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:m?(0,u.J)("common.force-delete"):(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(_=>_?r.facet.deleteFacets(l,!!m).pipe((0,C.U)(f=>f.deleteFacets)):(0,k.of)([])))}d((0,J.T)(n.map(l=>l.id))).pipe((0,b.w)(l=>{var m;let _=0;const f=[],v=[];let Z=0;for(const T of l)T.result===c.PcR.DELETED?_++:T.message&&(f.push(T.message),v.push(null===(m=n[Z])||void 0===m?void 0:m.id)),Z++;return 0<v.length?d(v,f.join("\n")).pipe((0,C.U)(T=>{const y=T.filter(L=>L.result===c.PcR.DELETED).length;return _+y})):(0,k.of)(_)})).subscribe(l=>{l&&(e.refresh(),o(),s.success((0,u.J)("catalog.notify-bulk-delete-facets-success"),{count:l}))})}},He={location:"facet-list",label:(0,u.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:i=>i.includes(c.y3$.UpdateFacet)||i.includes(c.y3$.UpdateCatalog),isVisible:({injector:i})=>(0,c.SDV)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.fromComponent(at,{size:"md",locals:{}}).pipe((0,b.w)(d=>d?r.facet.assignFacetsToChannel({facetIds:n.map(l=>l.id),channelId:d.id}).pipe((0,Gt.h)(d)):M.E)).subscribe(d=>{s.success((0,u.J)("catalog.assign-facets-to-channel-success"),{count:n.length,channelCode:d.code}),o()})}},Re={location:"facet-list",label:(0,u.J)("catalog.remove-from-channel"),getTranslationVars:({injector:i})=>(0,c.PDO)(i.get(c.DoR)),icon:"layers",iconClass:"is-warning",requiresPermission:i=>i.includes(c.y3$.UpdateFacet)||i.includes(c.y3$.UpdateCatalog),isVisible:({injector:i})=>(0,c._Nz)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp),d=r.client.userStatus().mapSingle(({userStatus:m})=>m.activeChannelId);function l(m,_){return a.dialog({title:(0,u.J)("catalog.remove-from-channel"),translationVars:{count:n.length},size:_?"lg":"md",body:_,buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:_?(0,u.J)("common.force-remove"):(0,u.J)("common.remove"),returnValue:!0}]}).pipe((0,b.w)(f=>f?d.pipe((0,b.w)(v=>v?r.facet.removeFacetsFromChannel({channelId:v,facetIds:m,force:!!_}):M.E),(0,C.U)(v=>v.removeFacetsFromChannel)):M.E))}l((0,J.T)(n.map(m=>m.id))).pipe((0,b.w)(m=>{var _;let f=n.length;const v=[],Z=[];let T=0;for(const y of m)"FacetInUseError"===y.__typename&&(v.push(y.message),Z.push(null===(_=n[T])||void 0===_?void 0:_.id),f--),T++;return 0<Z.length?l(Z,v.join("\n")).pipe((0,C.U)(y=>{const L=y.filter(S=>"FacetInUseError"===S.__typename).length;return n.length-L})):(0,k.of)(f)}),(0,b.w)(m=>m?(0,c.PDO)(r).then(({channelCode:_})=>({channelCode:_,removedCount:m})):M.E)).subscribe(({removedCount:m,channelCode:_})=>{m&&(e.refresh(),o(),s.success((0,u.J)("catalog.notify-remove-facets-from-channel-success"),{count:m,channelCode:_}))})}},ze={location:"product-list",label:(0,u.J)("common.delete"),icon:"trash",iconClass:"is-danger",requiresPermission:i=>i.includes(c.y3$.DeleteProduct)||i.includes(c.y3$.DeleteCatalog),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp);a.dialog({title:(0,u.J)("catalog.confirm-bulk-delete-products"),translationVars:{count:n.length},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.delete"),returnValue:!0}]}).pipe((0,b.w)(d=>d?r.product.deleteProducts((0,J.T)(n.map(l=>l.productId))):M.E)).subscribe(d=>{let l=0;const m=[];for(const _ of d.deleteProducts)_.result===c.PcR.DELETED?l++:_.message&&m.push(_.message);0<l&&s.success((0,u.J)("catalog.notify-bulk-delete-products-success"),{count:l}),0<m.length&&s.error(m.join("\n")),e.refresh(),o()})}},Ke={location:"product-list",label:(0,u.J)("catalog.assign-to-channel"),icon:"layers",requiresPermission:i=>i.includes(c.y3$.UpdateCatalog)||i.includes(c.y3$.UpdateProduct),isVisible:({injector:i})=>(0,c.SDV)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U);i.get(c.DoR),i.get(c.gqp);a.fromComponent(z,{size:"lg",locals:{productIds:(0,J.T)(n.map(d=>d.productId)),currentChannelIds:[]}}).subscribe(d=>{d&&o()})}},We={location:"product-list",label:(0,u.J)("catalog.remove-from-channel"),requiresPermission:i=>i.includes(c.y3$.UpdateChannel)||i.includes(c.y3$.UpdateProduct),getTranslationVars:({injector:i})=>(0,c.PDO)(i.get(c.DoR)),icon:"layers",iconClass:"is-warning",isVisible:({injector:i})=>(0,c._Nz)(i.get(c.DoR)),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),r=i.get(c.DoR),s=i.get(c.gqp),d=r.client.userStatus().mapSingle(({userStatus:l})=>l.activeChannelId);(0,jt.D)((0,c.PDO)(i.get(c.DoR))).pipe((0,b.w)(({channelCode:l})=>a.dialog({title:(0,u.J)("catalog.remove-from-channel"),translationVars:{channelCode:l},buttons:[{type:"secondary",label:(0,u.J)("common.cancel")},{type:"danger",label:(0,u.J)("common.remove"),returnValue:!0}]})),(0,b.w)(l=>l?d.pipe((0,b.w)(m=>m?r.product.removeProductsFromChannel({channelId:m,productIds:n.map(_=>_.productId)}):M.E),(0,Gt.h)(!0)):(0,k.of)(!1))).subscribe(l=>{l&&(o(),s.success((0,u.J)("common.notify-remove-products-from-channel-success"),{count:n.length}),setTimeout(()=>e.refresh(),1e3))})}},Xe={location:"product-list",label:(0,u.J)("catalog.edit-facet-values"),icon:"tag",requiresPermission:i=>i.includes(c.y3$.UpdateCatalog)||i.includes(c.y3$.UpdateProduct),onClick:({injector:i,selection:n,hostComponent:e,clearSelection:o})=>{const a=i.get(c.Z7U),s=(i.get(c.DoR),i.get(c.gqp)),d=e.groupByProduct?"product":"variant",l="product"===d?(0,J.T)(n.map(m=>m.productId)):(0,J.T)(n.map(m=>m.productVariantId));return a.fromComponent(wt,{size:"xl",locals:{mode:d,ids:l}}).subscribe(m=>{m&&(s.success((0,u.J)("common.notify-bulk-update-success"),{count:n.length,entity:"product"===d?"Products":"ProductVariants"}),o())})}};class St{constructor(n){this.bulkActionRegistryService=n,n.registerBulkAction(Xe),n.registerBulkAction(Ke),n.registerBulkAction(We),n.registerBulkAction(ze),n.registerBulkAction(He),n.registerBulkAction(Re),n.registerBulkAction(Be),n.registerBulkAction(Ge),n.registerBulkAction(je),n.registerBulkAction(Ye)}}St.\u0275fac=function(n){return new(n||St)(t.LFG(c._4w))},St.\u0275mod=t.oAB({type:St}),St.\u0275inj=t.cJS({imports:[[c.m81,A.Bz.forChild(Ve)]]})}}]);
|
|
65
|
+
//# sourceMappingURL=430.4469edebdd7335b3.js.map
|