@deenruv/admin-ui-plugin 1.0.0
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/README.md +5 -0
- package/lib/admin-ui/123.1d21e707f57ee3b4.js +33 -0
- package/lib/admin-ui/123.1d21e707f57ee3b4.js.map +1 -0
- package/lib/admin-ui/132.9c69fc8bd3b0cec4.js +2 -0
- package/lib/admin-ui/132.9c69fc8bd3b0cec4.js.map +1 -0
- package/lib/admin-ui/153.7eec6efd3edd54b4.js +321 -0
- package/lib/admin-ui/153.7eec6efd3edd54b4.js.map +1 -0
- package/lib/admin-ui/3rdpartylicenses.txt +1393 -0
- package/lib/admin-ui/473.fc9f902d000ba044.js +2 -0
- package/lib/admin-ui/473.fc9f902d000ba044.js.map +1 -0
- package/lib/admin-ui/53.7f3fee856943b03f.js +86 -0
- package/lib/admin-ui/53.7f3fee856943b03f.js.map +1 -0
- package/lib/admin-ui/625.64b1900ed11327c1.js +46 -0
- package/lib/admin-ui/625.64b1900ed11327c1.js.map +1 -0
- package/lib/admin-ui/697.ff9c92dd4b564093.js +73 -0
- package/lib/admin-ui/697.ff9c92dd4b564093.js.map +1 -0
- package/lib/admin-ui/99.b9d2442a2288abdb.js +379 -0
- package/lib/admin-ui/99.b9d2442a2288abdb.js.map +1 -0
- package/lib/admin-ui/assets/.gitkeep +0 -0
- package/lib/admin-ui/assets/logo-login.webp +0 -0
- package/lib/admin-ui/assets/logo-top.webp +0 -0
- package/lib/admin-ui/common.868070cec3f2418e.js +2 -0
- package/lib/admin-ui/common.868070cec3f2418e.js.map +1 -0
- package/lib/admin-ui/deenruv-ui-config.json +290 -0
- package/lib/admin-ui/favicon.ico +0 -0
- package/lib/admin-ui/fonts/fonts.scss +253 -0
- package/lib/admin-ui/fonts/inter-cyrillic-ext.woff2 +0 -0
- package/lib/admin-ui/fonts/inter-cyrillic.woff2 +0 -0
- package/lib/admin-ui/fonts/inter-greek-ext.woff2 +0 -0
- package/lib/admin-ui/fonts/inter-greek.woff2 +0 -0
- package/lib/admin-ui/fonts/inter-latin-ext.woff2 +0 -0
- package/lib/admin-ui/fonts/inter-latin.woff2 +0 -0
- package/lib/admin-ui/fonts/inter-vietnamese.woff2 +0 -0
- package/lib/admin-ui/i18n-messages/ar.json +814 -0
- package/lib/admin-ui/i18n-messages/cs.json +814 -0
- package/lib/admin-ui/i18n-messages/de.json +814 -0
- package/lib/admin-ui/i18n-messages/en.json +814 -0
- package/lib/admin-ui/i18n-messages/es.json +814 -0
- package/lib/admin-ui/i18n-messages/fa.json +814 -0
- package/lib/admin-ui/i18n-messages/fr.json +814 -0
- package/lib/admin-ui/i18n-messages/he.json +814 -0
- package/lib/admin-ui/i18n-messages/hr.json +814 -0
- package/lib/admin-ui/i18n-messages/it.json +814 -0
- package/lib/admin-ui/i18n-messages/nb.json +812 -0
- package/lib/admin-ui/i18n-messages/ne.json +814 -0
- package/lib/admin-ui/i18n-messages/pl.json +814 -0
- package/lib/admin-ui/i18n-messages/pt_BR.json +814 -0
- package/lib/admin-ui/i18n-messages/pt_PT.json +814 -0
- package/lib/admin-ui/i18n-messages/ru.json +814 -0
- package/lib/admin-ui/i18n-messages/sv.json +807 -0
- package/lib/admin-ui/i18n-messages/uk.json +814 -0
- package/lib/admin-ui/i18n-messages/zh_Hans.json +814 -0
- package/lib/admin-ui/i18n-messages/zh_Hant.json +814 -0
- package/lib/admin-ui/index.html +14 -0
- package/lib/admin-ui/inter-cyrillic-ext.f62cc866835dd717.woff2 +0 -0
- package/lib/admin-ui/inter-cyrillic.fd42267cbb1bfdb0.woff2 +0 -0
- package/lib/admin-ui/inter-greek-ext.f876a5a3ea45d9a5.woff2 +0 -0
- package/lib/admin-ui/inter-greek.0455348926d6f41d.woff2 +0 -0
- package/lib/admin-ui/inter-latin-ext.7df16007e26681f5.woff2 +0 -0
- package/lib/admin-ui/inter-latin.40c45725dc5f525d.woff2 +0 -0
- package/lib/admin-ui/inter-vietnamese.530676b65c9e977f.woff2 +0 -0
- package/lib/admin-ui/main.a1f6ce60f6b53c40.js +3241 -0
- package/lib/admin-ui/main.a1f6ce60f6b53c40.js.map +1 -0
- package/lib/admin-ui/polyfills.34e462102e9d0666.js +2 -0
- package/lib/admin-ui/polyfills.34e462102e9d0666.js.map +1 -0
- package/lib/admin-ui/polyfills.ts +66 -0
- package/lib/admin-ui/runtime.12183b5e8f8cfd14.js +2 -0
- package/lib/admin-ui/runtime.12183b5e8f8cfd14.js.map +1 -0
- package/lib/admin-ui/styles/_mixins.scss +60 -0
- package/lib/admin-ui/styles/_variables.scss +11 -0
- package/lib/admin-ui/styles/component/prosemirror.scss +511 -0
- package/lib/admin-ui/styles/global/_buttons.scss +147 -0
- package/lib/admin-ui/styles/global/_clarity.scss +140 -0
- package/lib/admin-ui/styles/global/_forms.scss +187 -0
- package/lib/admin-ui/styles/global/_global.scss +41 -0
- package/lib/admin-ui/styles/global/_overrides.scss +165 -0
- package/lib/admin-ui/styles/global/_sass-overrides.scss +8 -0
- package/lib/admin-ui/styles/global/_utilities.scss +155 -0
- package/lib/admin-ui/styles/rtl.scss +143 -0
- package/lib/admin-ui/styles/styles.scss +19 -0
- package/lib/admin-ui/styles/theme/dark.scss +591 -0
- package/lib/admin-ui/styles/theme/default.scss +254 -0
- package/lib/admin-ui/styles/ui-extension-theme.scss +13 -0
- package/lib/admin-ui/styles.2de83a2df5e76526.css +3 -0
- package/lib/admin-ui/styles.2de83a2df5e76526.css.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/src/api/metrics.resolver.d.ts +8 -0
- package/lib/src/api/metrics.resolver.js +41 -0
- package/lib/src/api/metrics.resolver.js.map +1 -0
- package/lib/src/config/metrics-strategies.d.ts +39 -0
- package/lib/src/config/metrics-strategies.js +92 -0
- package/lib/src/config/metrics-strategies.js.map +1 -0
- package/lib/src/constants.d.ts +7 -0
- package/lib/src/constants.js +286 -0
- package/lib/src/constants.js.map +1 -0
- package/lib/src/plugin.d.ts +129 -0
- package/lib/src/plugin.js +332 -0
- package/lib/src/plugin.js.map +1 -0
- package/lib/src/service/metrics.service.d.ts +16 -0
- package/lib/src/service/metrics.service.js +144 -0
- package/lib/src/service/metrics.service.js.map +1 -0
- package/lib/src/types.d.ts +23 -0
- package/lib/src/types.js +14 -0
- package/lib/src/types.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkdeenruv_admin=self.webpackChunkdeenruv_admin||[]).push([[625],{4625:(Lt,k,o)=>{o.r(k),o.d(k,{DEFAULT_DASHBOARD_WIDGET_LAYOUT:()=>U,DEFAULT_WIDGETS:()=>N,DashboardComponent:()=>h,DashboardModule:()=>T,DashboardWidgetComponent:()=>g,GET_ORDER_CHART_DATA:()=>$t,GET_ORDER_SUMMARY:()=>St,LatestOrdersWidgetComponent:()=>u,LatestOrdersWidgetModule:()=>C,OrderChartWidgetComponent:()=>f,OrderSummaryWidgetComponent:()=>v,OrderSummaryWidgetModule:()=>_,TestWidgetComponent:()=>D,TestWidgetModule:()=>O,WelcomeWidgetComponent:()=>I,WelcomeWidgetModule:()=>$,dashboardRoutes:()=>x});var s=o(9214),X=o(7081),l=o(5626),Y=o(4117),t=o(1410),y=o(4677),c=o(4806),b=o(2819),z=o(1787),J=o(2981),H=o(6336),Q=o(5483),K=o(1534),Z=o(8995),q=o(5945),F=o(3161),p=o(654);const tt=["portal"],et=["*"];function nt(a,n){1&a&&t.SdG(0)}function rt(a,n){}class g{ngAfterViewInit(){this.loadWidget()}loadWidget(){var n=this;return(0,q.A)(function*(){const e=n.widgetConfig.loadComponent(),r=e instanceof Promise?yield e:e;n.componentRef=n.portal.createComponent(r),n.componentRef.changeDetectorRef.detectChanges()})()}ngOnDestroy(){this.componentRef&&this.componentRef.destroy()}static{this.\u0275fac=function(e){return new(e||g)}}static{this.\u0275cmp=t.VBU({type:g,selectors:[["vdr-dashboard-widget"]],viewQuery:function(e,r){if(1&e&&t.GBs(tt,5,t.c1b),2&e){let i;t.mGM(i=t.lsd())&&(r.portal=i.first)}},inputs:{widgetConfig:"widgetConfig"},ngContentSelectors:et,decls:5,vars:3,consts:[["portal",""],[3,"title"],["vdrCardControls",""]],template:function(e,r){if(1&e&&(t.NAR(),t.j41(0,"vdr-card",1),t.nI1(1,"translate"),t.DNE(2,nt,1,0,"ng-template",2)(3,rt,0,0,"ng-template",null,0,t.C5r),t.k0s()),2&e){let i;t.Y8G("title",t.bMT(1,1,null!==(i=r.widgetConfig.title)&&void 0!==i?i:""))}},dependencies:[F.i,F.a,p.D9],styles:["[_nghost-%COMP%]{display:block}.card[_ngcontent-%COMP%]{margin-top:0;min-height:200px}.card-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})}}const it=a=>({index:a}),at=a=>({width:a});function ot(a,n){if(1&a){const e=t.RV6();t.j41(0,"button",8),t.bIt("click",function(){const i=t.eBV(e).$implicit,d=t.XpG();return t.Njj(d.addWidget(i.id))}),t.EFF(1),t.nI1(2,"translate"),t.k0s()}if(2&a){let e;const r=n.$implicit;t.R7$(),t.SpI(" ",t.bMT(2,1,null!==(e=r.config.title)&&void 0!==e?e:r.id)," ")}}function st(a,n){if(1&a){const e=t.RV6();t.j41(0,"button",22),t.bIt("click",function(){const i=t.eBV(e).$implicit,d=t.XpG(2).$implicit,m=t.XpG(2);return t.Njj(m.setWidgetWidth(d,i))}),t.EFF(1),t.nI1(2,"translate"),t.k0s()}if(2&a){const e=n.$implicit,r=t.XpG(2).$implicit;t.Y8G("disabled",e===r.width),t.R7$(),t.SpI(" ",t.i5U(2,2,"dashboard.widget-width",t.eq3(5,at,e))," ")}}function dt(a,n){if(1&a){const e=t.RV6();t.j41(0,"vdr-dashboard-widget",13)(1,"div",14)(2,"div",15),t.nrm(3,"clr-icon",16),t.k0s(),t.j41(4,"vdr-dropdown")(5,"button",17),t.nrm(6,"clr-icon",3),t.k0s(),t.j41(7,"vdr-dropdown-menu",4)(8,"h4",18),t.EFF(9),t.nI1(10,"translate"),t.k0s(),t.DNE(11,st,3,7,"button",19),t.nrm(12,"div",20),t.j41(13,"button",8),t.bIt("click",function(){t.eBV(e);const i=t.XpG().$implicit,d=t.XpG(2);return t.Njj(d.removeWidget(i))}),t.nrm(14,"clr-icon",21),t.EFF(15),t.nI1(16,"translate"),t.k0s()()()()()}if(2&a){const e=t.XpG().$implicit,r=t.XpG(2);t.Y8G("widgetConfig",e.config),t.R7$(9),t.JRh(t.bMT(10,4,"dashboard.widget-resize")),t.R7$(2),t.Y8G("ngForOf",r.getSupportedWidths(e.config)),t.R7$(4),t.SpI(" ",t.bMT(16,6,"dashboard.remove-widget")," ")}}function ct(a,n){if(1&a&&(t.j41(0,"div",11),t.DNE(1,dt,17,8,"vdr-dashboard-widget",12),t.k0s()),2&a){const e=n.$implicit,r=t.XpG(2);t.Y8G("ngClass",r.getClassForWidth(e.width))("cdkDragData",e),t.R7$(),t.Y8G("vdrIfPermissions",e.config.requiresPermissions||null)}}function lt(a,n){if(1&a){const e=t.RV6();t.j41(0,"div",9),t.bIt("cdkDropListDropped",function(i){t.eBV(e);const d=t.XpG();return t.Njj(d.drop(i))}),t.DNE(1,ct,2,3,"div",10),t.k0s()}if(2&a){const e=n.$implicit,r=n.index,i=t.XpG();t.Y8G("cdkDropListData",t.eq3(3,it,r)),t.R7$(),t.Y8G("ngForOf",e)("ngForTrackBy",i.trackRowItem)}}class h{constructor(n,e,r,i){this.dashboardWidgetService=n,this.localStorageService=e,this.changedDetectorRef=r,this.dataService=i,this.deletionMarker="__delete__",this.setTitle=(0,s.kwp)()}ngOnInit(){this.availableWidgets$=this.dataService.client.userStatus().stream$.pipe((0,l.T)(({userStatus:n})=>n.permissions),(0,l.T)(n=>this.dashboardWidgetService.getAvailableWidgets(n)),(0,Y.M)(n=>this.widgetLayout=this.initLayout(n.map(e=>e.id)))),this.setTitle("breadcrumb.dashboard")}getClassForWidth(n){switch(n){case 3:return"clr-col-12 clr-col-sm-6 clr-col-lg-3";case 4:return"clr-col-12 clr-col-sm-6 clr-col-lg-4";case 6:return"clr-col-12 clr-col-lg-6";case 8:return"clr-col-12 clr-col-lg-8";case 12:return"clr-col-12";default:(0,X.assertNever)(n)}}getSupportedWidths(n){return n.supportedWidths||[3,4,6,8,12]}setWidgetWidth(n,e){n.width=e,this.recalculateLayout()}trackRow(n,e){return e.map(i=>`${i.id}:${i.width}`).join("|")}trackRowItem(n,e){return e.config}addWidget(n){const e=this.dashboardWidgetService.getWidgetById(n);if(e){const i={id:n,config:e,width:this.getSupportedWidths(e)[0]};let d;this.widgetLayout&&this.widgetLayout.length?d=this.widgetLayout[this.widgetLayout.length-1]:(d=[],this.widgetLayout?.push(d)),d.push(i),this.recalculateLayout()}}removeWidget(n){n.id=this.deletionMarker,this.recalculateLayout()}drop(n){const{currentIndex:e,previousIndex:r,previousContainer:i,container:d}=n;if((r!==e||i.data.index!==d.data.index)&&this.widgetLayout){const m=this.widgetLayout[i.data.index],j=this.widgetLayout[d.data.index];m.splice(r,1),j.splice(e,0,n.item.data),this.recalculateLayout()}}initLayout(n){const e=this.localStorageService.get("dashboardWidgetLayout");let r;return e&&(r=e.filter(i=>n.includes(i.id))),this.dashboardWidgetService.getWidgetLayout(r)}recalculateLayout(){if(this.widgetLayout){const e=this.widgetLayout.reduce((r,i)=>[...r,...i],[]).filter(r=>r.id!==this.deletionMarker).map(r=>({id:r.id,width:r.width}));this.widgetLayout=this.dashboardWidgetService.getWidgetLayout(e),this.localStorageService.set("dashboardWidgetLayout",e),setTimeout(()=>this.changedDetectorRef.markForCheck())}}static{this.\u0275fac=function(e){return new(e||h)(t.rXU(s.g_3),t.rXU(s.sji),t.rXU(t.gRc),t.rXU(s.uSP))}}static{this.\u0275cmp=t.VBU({type:h,selectors:[["vdr-dashboard"]],decls:13,vars:8,consts:[[1,"widget-header","mb-1"],["vdrDropdownTrigger","",1,"btn","btn-secondary","btn-sm"],["shape","plus"],["shape","ellipsis-vertical"],["vdrPosition","bottom-right"],["vdrDropdownItem","",3,"click",4,"ngFor","ngForOf"],["cdkDropListGroup",""],["class","clr-row dashboard-row","cdkDropList","","cdkDropListOrientation","horizontal",3,"cdkDropListData","cdkDropListDropped",4,"ngFor","ngForOf","ngForTrackBy"],["vdrDropdownItem","",3,"click"],["cdkDropList","","cdkDropListOrientation","horizontal",1,"clr-row","dashboard-row",3,"cdkDropListDropped","cdkDropListData"],["class","dashboard-item","cdkDrag","",3,"ngClass","cdkDragData",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"dashboard-item",3,"ngClass","cdkDragData"],[3,"widgetConfig",4,"vdrIfPermissions"],[3,"widgetConfig"],[1,"flex"],["cdkDragHandle","",1,"drag-handle"],["shape","drag-handle","size","24"],["vdrDropdownTrigger","",1,"icon-button"],[1,"dropdown-header"],["vdrDropdownItem","",3,"disabled","click",4,"ngFor","ngForOf"],["role","separator",1,"dropdown-divider"],["shape","trash",1,"is-danger"],["vdrDropdownItem","",3,"click","disabled"]],template:function(e,r){1&e&&(t.j41(0,"vdr-page-block")(1,"div",0)(2,"vdr-dropdown")(3,"button",1),t.nrm(4,"clr-icon",2),t.EFF(5),t.nI1(6,"translate"),t.nrm(7,"clr-icon",3),t.k0s(),t.j41(8,"vdr-dropdown-menu",4),t.DNE(9,ot,3,3,"button",5),t.nI1(10,"async"),t.k0s()()(),t.j41(11,"div",6),t.DNE(12,lt,2,5,"div",7),t.k0s()()),2&e&&(t.R7$(5),t.SpI(" ",t.bMT(6,4,"dashboard.add-widget")," "),t.R7$(4),t.Y8G("ngForOf",t.bMT(10,6,r.availableWidgets$)),t.R7$(3),t.Y8G("ngForOf",r.widgetLayout)("ngForTrackBy",r.trackRow))},dependencies:[y.U4n,c.YU,c.Sq,b.O7,b.RK,b.T1,b.Fb,z.P,J.q,H.j,Q.M,K.p,Z.e,g,c.Jj,p.D9],styles:[".widget-header[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.placeholder[_ngcontent-%COMP%]{color:var(--color-grey-300);text-align:center}.placeholder[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:3em;margin:24px;line-height:1em}.placeholder[_ngcontent-%COMP%] .clr-i-outline{fill:var(--color-grey-200)}vdr-dashboard-widget[_ngcontent-%COMP%]{margin-bottom:24px}.drag-handle[_ngcontent-%COMP%]{cursor:move}.cdk-drag-preview[_ngcontent-%COMP%]{box-sizing:border-box;border-radius:4px}.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:0}.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}.dashboard-row[_ngcontent-%COMP%]{padding:0;border-width:1;margin-bottom:6px;transition:padding .2s,margin .2s}.dashboard-row.cdk-drop-list-dragging[_ngcontent-%COMP%], .dashboard-row.cdk-drop-list-receiving[_ngcontent-%COMP%]{border:2px dashed var(--color-component-border-200);border-radius:var(--border-radius);padding:6px}.dashboard-row.cdk-drop-list-dragging[_ngcontent-%COMP%] .dashboard-item[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"],changeDetection:0})}}var G=o(808);const x=[{path:"",component:h,pathMatch:"full"}];var R=o(9595),w=o(2985),mt=o(8867),pt=o(163),gt=o(5956),ht=o(7595),L=o(1955),E=o(3932);const ut=a=>["/orders/",a];function ft(a,n){if(1&a&&(t.j41(0,"a",6)(1,"span"),t.EFF(2),t.k0s(),t.nrm(3,"clr-icon",7),t.k0s()),2&a){const e=n.item;t.Y8G("routerLink",t.eq3(2,ut,e.id)),t.R7$(2),t.JRh(e.code)}}function vt(a,n){if(1&a&&t.nrm(0,"vdr-order-state-label",8),2&a){const e=n.item;t.Y8G("state",e.state)}}function yt(a,n){if(1&a&&t.nrm(0,"vdr-customer-label",9),2&a){const e=n.item;t.Y8G("customer",e.customer)}}function bt(a,n){if(1&a&&(t.EFF(0),t.nI1(1,"localeCurrency")),2&a){const e=n.item;t.SpI(" ",t.i5U(1,1,e.totalWithTax,e.currencyCode)," ")}}function Ct(a,n){if(1&a&&(t.EFF(0),t.nI1(1,"timeAgo")),2&a){const e=n.item;t.SpI(" ",t.bMT(1,1,e.orderPlacedAt)," ")}}w.J1`
|
|
2
|
+
query GetLatestOrders($options: OrderListOptions) {
|
|
3
|
+
orders(options: $options) {
|
|
4
|
+
items {
|
|
5
|
+
id
|
|
6
|
+
createdAt
|
|
7
|
+
updatedAt
|
|
8
|
+
type
|
|
9
|
+
orderPlacedAt
|
|
10
|
+
code
|
|
11
|
+
state
|
|
12
|
+
total
|
|
13
|
+
totalWithTax
|
|
14
|
+
currencyCode
|
|
15
|
+
customer {
|
|
16
|
+
id
|
|
17
|
+
firstName
|
|
18
|
+
lastName
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
`;class u{constructor(n){this.dataService=n}ngOnInit(){this.latestOrders$=this.dataService.query(s.eWg,{options:{take:10,filter:{active:{eq:!1},state:{notIn:["Cancelled","Draft"]}},sort:{orderPlacedAt:s.xBQ.DESC}}}).refetchOnChannelChange().mapStream(n=>n.orders.items)}static{this.\u0275fac=function(e){return new(e||u)(t.rXU(s.uSP))}}static{this.\u0275cmp=t.VBU({type:u,selectors:[["vdr-latest-orders-widget"]],decls:17,vars:20,consts:[["id","latest-orders-widget-list",3,"items"],["id","code",3,"heading"],["id","state",3,"heading","hiddenByDefault"],["id","customer",3,"heading","hiddenByDefault"],["id","total",3,"heading"],["id","placed-at",3,"heading"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],[3,"state"],[3,"customer"]],template:function(e,r){1&e&&(t.j41(0,"vdr-data-table-2",0),t.nI1(1,"async"),t.j41(2,"vdr-dt2-column",1),t.nI1(3,"translate"),t.DNE(4,ft,4,4,"ng-template"),t.k0s(),t.j41(5,"vdr-dt2-column",2),t.nI1(6,"translate"),t.DNE(7,vt,1,1,"ng-template"),t.k0s(),t.j41(8,"vdr-dt2-column",3),t.nI1(9,"translate"),t.DNE(10,yt,1,1,"ng-template"),t.k0s(),t.j41(11,"vdr-dt2-column",4),t.nI1(12,"translate"),t.DNE(13,bt,2,4,"ng-template"),t.k0s(),t.j41(14,"vdr-dt2-column",5),t.nI1(15,"translate"),t.DNE(16,Ct,2,3,"ng-template"),t.k0s()()),2&e&&(t.Y8G("items",t.bMT(1,8,r.latestOrders$)),t.R7$(2),t.Y8G("heading",t.bMT(3,10,"common.code")),t.R7$(3),t.Y8G("heading",t.bMT(6,12,"order.state"))("hiddenByDefault",!0),t.R7$(3),t.Y8G("heading",t.bMT(9,14,"customer.customer"))("hiddenByDefault",!0),t.R7$(3),t.Y8G("heading",t.bMT(12,16,"order.total")),t.R7$(3),t.Y8G("heading",t.bMT(15,18,"order.placed-at")))},dependencies:[y.U4n,G.Wk,mt.E,pt.F,gt.I,ht.Y,c.Jj,p.D9,L.n,E.u],styles:["vdr-data-table[_ngcontent-%COMP%] table{margin-top:0}vdr-order-state-label[_ngcontent-%COMP%]{display:inline-block;margin-top:2px}"],changeDetection:0})}}class C{static{this.\u0275fac=function(e){return new(e||C)}}static{this.\u0275mod=t.$C({type:C})}static{this.\u0275inj=t.G2t({imports:[s.Ui,s.GgS]})}}var _t=o(6851),A=o(2612),Tt=o(4148),M=o(2430),P=o(9942),Dt=o(7420),Ot=o(977);function It(a,n){if(1&a){const e=t.RV6();t.j41(0,"div",2)(1,"button",3),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.metricType$.next(i.MetricType.OrderTotal))}),t.EFF(2),t.nI1(3,"translate"),t.k0s(),t.j41(4,"button",4),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.metricType$.next(i.MetricType.OrderCount))}),t.EFF(5),t.nI1(6,"translate"),t.k0s(),t.j41(7,"button",4),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.metricType$.next(i.MetricType.AverageOrderValue))}),t.EFF(8),t.nI1(9,"translate"),t.k0s(),t.nrm(10,"div",5),t.j41(11,"button",3),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.refresh())}),t.nrm(12,"clr-icon",6),t.k0s()()}if(2&a){const e=n.ngIf,r=t.XpG();t.R7$(),t.AVh("active",e===r.MetricType.OrderTotal),t.R7$(),t.SpI(" ",t.bMT(3,9,"dashboard.metric-order-total-value")," "),t.R7$(2),t.AVh("active",e===r.MetricType.OrderCount),t.R7$(),t.SpI(" ",t.bMT(6,11,"dashboard.metric-number-of-orders")," "),t.R7$(2),t.AVh("active",e===r.MetricType.AverageOrderValue),t.R7$(),t.SpI(" ",t.bMT(9,13,"dashboard.metric-average-order-value")," ")}}const $t=w.J1`
|
|
24
|
+
query GetOrderChartData($refresh: Boolean, $types: [MetricType!]!) {
|
|
25
|
+
metricSummary(input: { interval: Daily, types: $types, refresh: $refresh }) {
|
|
26
|
+
interval
|
|
27
|
+
type
|
|
28
|
+
entries {
|
|
29
|
+
label
|
|
30
|
+
value
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`;class f{constructor(n){this.dataService=n,this.refresh$=new _t.B,this.metricType$=new A.t(s.vj3.OrderTotal),this.MetricType=s.vj3}ngOnInit(){const n=this.dataService.settings.getActiveChannel().refetchOnChannelChange().mapStream(i=>i.activeChannel.defaultCurrencyCode||void 0),e=this.dataService.client.uiState().mapStream(i=>i.uiState),r=this.metricType$.pipe((0,P.F)());this.metrics$=(0,Tt.z)(r,n,e).pipe((0,M.n)(([i,d,m])=>this.refresh$.pipe((0,Dt.Z)(!1),(0,M.n)(j=>this.dataService.query(s.IEA,{types:[i],refresh:j}).mapSingle(S=>S.metricSummary).pipe((0,l.T)(S=>{const Ft=i===s.vj3.OrderCount?"number":"currency",Gt=`${m.language}-${m.locale}`,xt={formatValueAs:Ft,currencyCode:d,locale:Gt};return S.find(W=>W.type===i)?.entries.map(W=>({...W,formatOptions:xt}))??[]}))))))}refresh(){this.refresh$.next(!0)}static{this.\u0275fac=function(e){return new(e||f)(t.rXU(s.uSP))}}static{this.\u0275cmp=t.VBU({type:f,selectors:[["vdr-order-chart-widget"]],decls:4,vars:6,consts:[[3,"entries"],["class","flex",4,"ngIf"],[1,"flex"],[1,"button-small",3,"click"],[1,"ml-1","button-small",3,"click"],[1,"flex-spacer"],["shape","refresh"]],template:function(e,r){1&e&&(t.nrm(0,"vdr-chart",0),t.nI1(1,"async"),t.DNE(2,It,13,15,"div",1),t.nI1(3,"async")),2&e&&(t.Y8G("entries",t.bMT(1,2,r.metrics$)),t.R7$(2),t.Y8G("ngIf",t.bMT(3,4,r.metricType$)))},dependencies:[y.U4n,c.bT,Ot.Q,c.Jj,p.D9],styles:[".button-small.active[_ngcontent-%COMP%]{background-color:var(--color-primary-200);color:var(--color-primary-900)}"],changeDetection:0})}}var Rt=o(477),V=o.n(Rt),B=o(8422),wt=o(2953);function Mt(a,n){if(1&a){const e=t.RV6();t.j41(0,"div",7)(1,"button",8),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.selection$.next({timeframe:"day",date:i.today}))}),t.EFF(2),t.nI1(3,"translate"),t.k0s(),t.j41(4,"button",9),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.selection$.next({timeframe:"day",date:i.yesterday}))}),t.EFF(5),t.nI1(6,"translate"),t.k0s(),t.j41(7,"button",9),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.selection$.next({timeframe:"week"}))}),t.EFF(8),t.nI1(9,"translate"),t.k0s(),t.j41(10,"button",9),t.bIt("click",function(){t.eBV(e);const i=t.XpG();return t.Njj(i.selection$.next({timeframe:"month"}))}),t.EFF(11),t.nI1(12,"translate"),t.k0s()()}if(2&a){const e=n.ngIf,r=t.XpG();t.R7$(),t.AVh("active",e.date===r.today),t.R7$(),t.SpI(" ",t.bMT(3,12,"dashboard.today")," "),t.R7$(2),t.AVh("active",e.date===r.yesterday),t.R7$(),t.SpI(" ",t.bMT(6,14,"dashboard.yesterday")," "),t.R7$(2),t.AVh("active","week"===e.timeframe),t.R7$(),t.SpI(" ",t.bMT(9,16,"dashboard.thisWeek")," "),t.R7$(2),t.AVh("active","month"===e.timeframe),t.R7$(),t.SpI(" ",t.bMT(12,18,"dashboard.thisMonth")," ")}}function jt(a,n){if(1&a&&(t.j41(0,"div",10),t.EFF(1),t.nI1(2,"localeDate"),t.nI1(3,"localeDate"),t.k0s()),2&a){const e=n.ngIf;t.R7$(),t.Lme(" ",t.bMT(2,2,e.start)," - ",t.bMT(3,4,e.end)," ")}}const St=w.J1`
|
|
35
|
+
query GetOrderSummary($start: DateTime!, $end: DateTime!) {
|
|
36
|
+
orders(options: { filter: { orderPlacedAt: { between: { start: $start, end: $end } } } }) {
|
|
37
|
+
totalItems
|
|
38
|
+
items {
|
|
39
|
+
id
|
|
40
|
+
totalWithTax
|
|
41
|
+
currencyCode
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
`;class v{constructor(n){this.dataService=n,this.today=new Date,this.yesterday=new Date((new Date).setDate(this.today.getDate()-1)),this.selection$=new A.t({timeframe:"day",date:this.today})}ngOnInit(){this.dateRange$=this.selection$.pipe((0,P.F)(),(0,l.T)(e=>({start:V()(e.date).startOf(e.timeframe).toDate(),end:V()(e.date).endOf(e.timeframe).toDate()})),(0,B.t)(1));const n=this.dateRange$.pipe((0,M.n)(({start:e,end:r})=>this.dataService.query(s.mVK,{start:e.toISOString(),end:r.toISOString()}).refetchOnChannelChange().mapStream(i=>i.orders)),(0,B.t)(1));this.totalOrderCount$=n.pipe((0,l.T)(e=>e.totalItems)),this.totalOrderValue$=n.pipe((0,l.T)(e=>e.items.reduce((r,i)=>r+i.totalWithTax,0))),this.currencyCode$=this.dataService.settings.getActiveChannel().refetchOnChannelChange().mapStream(e=>e.activeChannel.defaultCurrencyCode||void 0)}static{this.\u0275fac=function(e){return new(e||v)(t.rXU(s.uSP))}}static{this.\u0275cmp=t.VBU({type:v,selectors:[["vdr-order-summary-widget"]],decls:22,vars:23,consts:[[1,"stats"],[1,"stat"],[1,"stat-figure"],[1,"stat-label"],[1,"footer"],["class","flex",4,"ngIf"],["class","date-range",4,"ngIf"],[1,"flex"],[1,"button-small",3,"click"],[1,"ml-1","button-small",3,"click"],[1,"date-range"]],template:function(e,r){1&e&&(t.j41(0,"div",0)(1,"div",1)(2,"div",2),t.EFF(3),t.nI1(4,"async"),t.k0s(),t.j41(5,"div",3),t.EFF(6),t.nI1(7,"translate"),t.k0s()(),t.j41(8,"div",1)(9,"div",2),t.EFF(10),t.nI1(11,"async"),t.nI1(12,"async"),t.nI1(13,"localeCurrency"),t.k0s(),t.j41(14,"div",3),t.EFF(15),t.nI1(16,"translate"),t.k0s()()(),t.j41(17,"div",4),t.DNE(18,Mt,13,20,"div",5),t.nI1(19,"async"),t.DNE(20,jt,4,6,"div",6),t.nI1(21,"async"),t.k0s()),2&e&&(t.R7$(3),t.JRh(t.bMT(4,6,r.totalOrderCount$)),t.R7$(3),t.JRh(t.bMT(7,8,"dashboard.total-orders")),t.R7$(4),t.SpI(" ",t.i5U(13,14,t.bMT(11,10,r.totalOrderValue$),t.bMT(12,12,r.currencyCode$)||void 0)," "),t.R7$(5),t.JRh(t.bMT(16,17,"dashboard.total-order-value")),t.R7$(3),t.Y8G("ngIf",t.bMT(19,19,r.selection$)),t.R7$(2),t.Y8G("ngIf",t.bMT(21,21,r.dateRange$)))},dependencies:[c.bT,c.Jj,p.D9,wt.P,E.u],styles:[".stats[_ngcontent-%COMP%]{display:flex;justify-content:space-evenly}.stat[_ngcontent-%COMP%]{text-align:center}.stat-figure[_ngcontent-%COMP%]{font-size:2rem;line-height:3rem}.stat-label[_ngcontent-%COMP%]{text-transform:uppercase}.date-range[_ngcontent-%COMP%]{margin-top:calc(var(--space-unit) * 3);font-size:var(--font-size-xs)}.footer[_ngcontent-%COMP%]{margin-top:24px;display:flex;flex-direction:column;justify-content:space-between}.button-small.active[_ngcontent-%COMP%]{background-color:var(--color-primary-200);color:var(--color-primary-900)}"],changeDetection:0})}}class _{static{this.\u0275fac=function(e){return new(e||_)}}static{this.\u0275mod=t.$C({type:_})}static{this.\u0275inj=t.G2t({imports:[s.Ui]})}}const U=[{id:"metrics",width:12},{id:"orderSummary",width:6},{id:"latestOrders",width:6}],N={metrics:{title:(0,R.x)("dashboard.metrics"),supportedWidths:[6,8,12],loadComponent:()=>f,requiresPermissions:[s.aXG.ReadOrder]},orderSummary:{title:(0,R.x)("dashboard.orders-summary"),loadComponent:()=>v,supportedWidths:[4,6,8,12],requiresPermissions:[s.aXG.ReadOrder]},latestOrders:{title:(0,R.x)("dashboard.latest-orders"),loadComponent:()=>u,supportedWidths:[6,8,12],requiresPermissions:[s.aXG.ReadOrder]}};class T{constructor(n){Object.entries(N).map(([e,r])=>{n.getWidgetById(e)||n.registerWidget(e,r)}),0===n.getDefaultLayout().length&&n.setDefaultLayout(U)}static{this.\u0275fac=function(e){return new(e||T)(t.KVO(s.g_3))}}static{this.\u0275mod=t.$C({type:T})}static{this.\u0275inj=t.G2t({imports:[s.GgS,G.iI.forChild(x)]})}}class D{static{this.\u0275fac=function(e){return new(e||D)}}static{this.\u0275cmp=t.VBU({type:D,selectors:[["vdr-test-widget"]],decls:2,vars:0,template:function(e,r){1&e&&(t.j41(0,"p"),t.EFF(1,"This is a test widget!"),t.k0s())},changeDetection:0})}}class O{static{this.\u0275fac=function(e){return new(e||O)}}static{this.\u0275mod=t.$C({type:O})}static{this.\u0275inj=t.G2t({})}}function Wt(a,n){if(1&a&&(t.j41(0,"p",4),t.EFF(1),t.k0s()),2&a){const e=t.XpG(2);t.R7$(),t.Lme(" ",e.hideDeenruvBranding?"":"Deenruv"," ",e.hideVersion?"":"Admin UI v"+e.version," ")}}function kt(a,n){if(1&a&&(t.j41(0,"div")(1,"h4",3),t.EFF(2),t.nrm(3,"br"),t.j41(4,"small",4),t.EFF(5),t.nI1(6,"timeAgo"),t.k0s()(),t.DNE(7,Wt,2,2,"p",5),t.k0s()),2&a){const e=n.ngIf,r=t.XpG();t.R7$(2),t.Lme(" Welcome, ",e.firstName," ",e.lastName,""),t.R7$(3),t.SpI("Last login: ",t.bMT(6,4,e.user.lastLogin),""),t.R7$(2),t.Y8G("ngIf",!r.hideDeenruvBranding||!r.hideVersion)}}class I{constructor(n){this.dataService=n,this.version=s.cBU,this.brand=(0,s.WEc)().brand,this.hideDeenruvBranding=(0,s.WEc)().hideDeenruvBranding,this.hideVersion=(0,s.WEc)().hideVersion}ngOnInit(){this.administrator$=this.dataService.administrator.getActiveAdministrator().mapStream(n=>n.activeAdministrator||null)}static{this.\u0275fac=function(e){return new(e||I)(t.rXU(s.uSP))}}static{this.\u0275cmp=t.VBU({type:I,selectors:[["vdr-welcome-widget"]],decls:4,vars:3,consts:[[4,"ngIf"],[1,"placeholder"],["shape","line-chart","size","128"],[1,""],[1,"p5"],["class","p5",4,"ngIf"]],template:function(e,r){1&e&&(t.DNE(0,kt,8,6,"div",0),t.nI1(1,"async"),t.j41(2,"div",1),t.nrm(3,"clr-icon",2),t.k0s()),2&e&&t.Y8G("ngIf",t.bMT(1,1,r.administrator$))},dependencies:[y.U4n,c.bT,c.Jj,L.n],styles:["[_nghost-%COMP%]{display:flex;justify-content:space-between}.placeholder[_ngcontent-%COMP%]{color:var(--color-grey-200)}"],changeDetection:0})}}class ${static{this.\u0275fac=function(e){return new(e||$)}}static{this.\u0275mod=t.$C({type:$})}static{this.\u0275inj=t.G2t({imports:[s.Ui]})}}}}]);
|
|
46
|
+
//# sourceMappingURL=625.64b1900ed11327c1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"625.64b1900ed11327c1.js","mappings":"6zBAEQA,MAAA,qBCgBF,MAAOC,EAQTC,kBACIC,KAAKC,YACT,CAEcA,aAAU,IAAAC,EAAAF,KAAA,SAAAG,KAAA,YACpB,MAAMC,EAAsBF,EAAKG,aAAaC,gBACxCC,EACFH,aAA+BI,cAAgBJ,EAAsBA,EACzEF,EAAKO,aAAeP,EAAKQ,OAAOC,gBAAgBJ,GAChDL,EAAKO,aAAaG,kBAAkBC,eAAgB,EALhC,EAMxB,CAEAC,cACQd,KAAKS,cACLT,KAAKS,aAAaM,SAE1B,iDAxBSjB,EAAwB,oCAAxBA,EAAwBkB,UAAA,2BAAAC,UAAA,SAAAC,EAAAC,MAAA,EAAAD,cAGJE,qODrBjCvB,MAAA,qCAIIA,MAHA,EAAAwB,GAAA,oBAGAxB,CAH6B,EAAAyB,GAAA,yBAAAzB,OAIjCA,oBALUA,MAAA,QAAAA,MAAA,YAAA0B,EAAAJ,EAAAd,aAAAmB,aAAAC,IAAAF,IAAA,wTESM1B,MAAA,cAGIA,MAAA,yBAAA6B,EAAA7B,MAAA8B,GAAAC,UAAAC,EAAAhC,QAAA,OAAAA,MAASgC,EAAAC,UAAAJ,EAAAK,IAAoB,GAE7BlC,MAAA,wBACJA,0CADIA,cAAA,IAAAA,MAAA,YAAAmC,EAAAN,EAAAO,OAAAT,aAAAC,IAAAO,IAAAN,EAAAK,IAAA,+CAmCYlC,MAAA,eAIIA,MAAA,yBAAAqC,EAAArC,MAAAsC,GAAAP,UAAAQ,EAAAvC,MAAA,GAAA+B,UAAAC,EAAAhC,MAAA,UAAAA,MAASgC,EAAAQ,eAAAD,EAAAF,GAA6B,GAEtCrC,MAAA,wBACJA,yDALIA,MAAA,WAAAqC,IAAAE,EAAAE,OAIAzC,cAAA,IAAAA,MAAA,6BAAAA,MAAA,EAAA0C,GAAAL,IAAA,+CAfZrC,MALR,4BAKQA,CAFP,WAEOA,CADc,YAEVA,MAAA,iBACJA,QAEIA,MADJ,iBACIA,CADU,eAENA,MAAA,gBACJA,QAEIA,MADJ,wBACIA,CAD0C,WACdA,MAAA,yBAA2CA,QACvEA,MAAA,GAAA2C,GAAA,iBAQA3C,MAAA,aACAA,MAAA,eAAwBA,MAAA,mBAAAA,MAAA4C,GAAA,MAAAL,EAAAvC,QAAA+B,UAAAC,EAAAhC,MAAA,UAAAA,MAASgC,EAAAa,aAAAN,GAAoB,GACjDvC,MAAA,kBACAA,MAAA,0BAKpBA,6DA5BIA,MAAA,eAAAuC,EAAAH,QAWwCpC,MAAA,GAAAA,YAAA,iCAINA,MAAA,GAAAA,MAAA,UAAAgC,EAAAc,mBAAAP,EAAAH,SAQlBpC,MAAA,GAAAA,MAAA,IAAAA,MAAA,gEAhCxBA,MAAA,YAOIA,MAAA,EAAA+C,GAAA,gCA+BJ/C,6CAjCIA,MAFA,UAAAgC,EAAAgB,iBAAAT,EAAAE,OAEAzC,CAF0C,cAAAuC,GAKrCvC,cAAA,mBAAAuC,EAAAH,OAAAa,qBAAA,gDAhBbjD,MAAA,WAIIA,MAAA,8BAAAkD,GAAAlD,MAAAmD,GAAA,MAAAnB,EAAAhC,QAAA,OAAAA,MAAsBgC,EAAAoB,KAAAF,GAAY,GAIlClD,MAAA,EAAAqD,GAAA,cAuCJrD,wDAzCIA,MAAA,kBAAAA,MAAA,EAAAsD,GAAAC,IAGuBvD,QAAQA,MAAR,UAAAwD,EAAQxD,CAAA,eAAAgC,EAAAyB,eCPrC,MAAOC,EAKTC,YACYC,EACAC,EACAC,EACAC,GAHA5D,KAAAyD,yBACAzD,KAAA0D,sBACA1D,KAAA2D,qBACA3D,KAAA4D,cANK5D,KAAA6D,eAAiB,aAC1B7D,KAAA8D,YAAWC,QAMhB,CAEHC,WACIhE,KAAKiE,kBAAoBjE,KAAK4D,YAAYM,OAAOC,aAAaC,QAAQC,QAClEC,KAAI,EAAGH,gBAAiBA,EAAWI,cAAW,EAC9CD,KAAIC,GAAevE,KAAKyD,uBAAuBe,oBAAoBD,KAAY,EAC/EE,KAAIC,GAAY1E,KAAK2E,aAAe3E,KAAK4E,WAAWF,EAAQJ,IAAIO,GAAKA,EAAE9C,OAE3E/B,KAAK8D,SAAS,uBAClB,CAEAjB,iBAAiBP,GACb,OAAQA,GACJ,KAAK,EACD,MAAO,uCACX,KAAK,EACD,MAAO,uCACX,KAAK,EACD,MAAO,0BACX,KAAK,EACD,MAAO,0BACX,KAAK,GACD,MAAO,aACX,SACIwC,iBAAYxC,GAExB,CAEAK,mBAAmBV,GACf,OAAOA,EAAO8C,iBAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,GAClD,CAEA1C,eAAe2C,EAAsC1C,GACjD0C,EAAO1C,MAAQA,EACftC,KAAKiF,mBACT,CAEAC,SAASC,EAAeC,GAEpB,OADWA,EAAId,IAAIe,GAAQ,GAAGA,EAAKtD,MAAMsD,EAAK/C,SAASgD,KAAK,IAEhE,CAEAhC,aAAa6B,EAAeE,GACxB,OAAOA,EAAKpD,MAChB,CAEAH,UAAUC,GACN,MAAME,EAASjC,KAAKyD,uBAAuB8B,cAAcxD,GACzD,GAAIE,EAAQ,CACR,MACM+C,EAAuC,CACzCjD,KACAE,SACAK,MAJUtC,KAAK2C,mBAAmBV,GAAQ,IAM9C,IAAIuD,EACAxF,KAAK2E,cAAgB3E,KAAK2E,aAAac,OACvCD,EAAYxF,KAAK2E,aAAa3E,KAAK2E,aAAac,OAAS,IAEzDD,EAAY,GACZxF,KAAK2E,cAAce,KAAKF,IAE5BA,EAAUE,KAAKV,GACfhF,KAAKiF,mBACT,CACJ,CAEAvC,aAAasC,GACTA,EAAOjD,GAAK/B,KAAK6D,eACjB7D,KAAKiF,mBACT,CAEAhC,KAAK0C,GACD,MAAQC,eAAcC,gBAAeC,oBAAmBC,aAAcJ,EACtE,IAAIE,IAAkBD,GAAgBE,EAAkBE,KAAKb,QAAUY,EAAUC,KAAKb,QAIlFnF,KAAK2E,aAAc,CACnB,MAAMsB,EAAoBjG,KAAK2E,aAAamB,EAAkBE,KAAKb,OAC7De,EAAelG,KAAK2E,aAAaoB,EAAUC,KAAKb,OAEtDc,EAAkBE,OAAON,EAAe,GACxCK,EAAaC,OAAOP,EAAc,EAAGD,EAAMN,KAAKW,MAChDhG,KAAKiF,mBACT,CACJ,CAEQL,WAAWwB,GACf,MAAMC,EAAiBrG,KAAK0D,oBAAoB4C,IAAI,yBACpD,IAAIC,EACJ,OAAIF,IAEAE,EAAYF,EAAeG,OAAOnB,GAAQe,EAAaK,SAASpB,EAAKtD,MAElE/B,KAAKyD,uBAAuBiD,gBAAgBH,EACvD,CAEQtB,oBACJ,GAAIjF,KAAK2E,aAAc,CAInB,MAAMgC,EAHY3G,KAAK2E,aAClBiC,OAAO,CAACC,EAAMzB,IAAQ,IAAIyB,KAASzB,GAAM,IACzCoB,OAAOnB,GAAQA,EAAKtD,KAAO/B,KAAK6D,gBACkBS,IAAIe,KACvDtD,GAAIsD,EAAKtD,GACTO,MAAO+C,EAAK/C,SAEhBtC,KAAK2E,aAAe3E,KAAKyD,uBAAuBiD,gBAAgBC,GAChE3G,KAAK0D,oBAAoBoD,IAAI,wBAAyBH,GACtDI,WAAW,IAAM/G,KAAK2D,mBAAmBqD,eAC7C,CACJ,iDAzHSzD,GAAkB1D,MAAAoH,OAAApH,MAAAoH,OAAApH,mBAAAoH,OAAA,oCAAlB1D,EAAkBvC,UAAA,oBAAAkG,MAAA,GAAAC,KAAA,EAAAC,OAAA,6lCAAAC,SAAA,SAAAnG,EAAAC,GAAA,EAAAD,IDnBnBrB,MAHZ,mBAGYA,CAHI,UAGJA,CAFwB,iBAExBA,CADU,cAENA,MAAA,gBACAA,MAAA,wBACAA,MAAA,gBACJA,QACAA,MAAA,yBACIA,MAAA,EAAAyH,GAAA,kCASZzH,YACAA,MAAA,YACIA,MAAA,GAAA0H,GAAA,aAiDR1H,iBAhEgBA,MAAA,GAAAA,MAAA,IAAAA,MAAA,iCAMuBA,MAAA,GAAAA,MAAA,UAAAA,MAAA,KAAAsB,EAAA8C,oBAWXpE,MAAA,GAAoCA,MAApC,UAAAsB,EAAAwD,aAAoC9E,CAAnB,eAAAsB,EAAA+D,4wCElBtC,MAAMsC,EAA0B,CACnC,CACIC,KAAM,GACNC,UAAWnE,EACXoE,UAAW,qJCJF9H,MADL,QACKA,CAAA,UAAMA,MAAA,GAAgBA,QACvBA,MAAA,gBACJA,6BAHwBA,MAAA,aAAAA,MAAA,EAAAsD,GAAAyE,EAAA7F,KACblC,MAAA,GAAAA,MAAA+H,EAAAC,gCAOXhI,MAAA,iDAAuBA,MAAA,QAAAiI,EAAAC,iCAKvBlI,MAAA,8CAAoBA,MAAA,WAAAmI,EAAAC,qCAKpBpI,MAAA,kDAAAA,MAAA,IAAAA,MAAA,IAAAqI,EAAAC,aAAAD,EAAAE,cAAA,gCAKAvI,MAAA,2CAAAA,MAAA,IAAAA,MAAA,IAAAwI,EAAAC,eAAA,MCZcC;;;;;;;;;;;;;;;;;;;;;;EA8BpB,MAAOC,EAEThF,YAAoBI,GAAA5D,KAAA4D,aAA2B,CAE/CI,WACIhE,KAAKyI,cAAgBzI,KAAK4D,YACrB8E,MAAMC,MAAyB,CAC5BC,QAAS,CACLC,KAAM,GACNrC,OAAQ,CACJsC,OAAQ,CAAEC,IAAI,GACdhB,MAAO,CAAEiB,MAAO,CAAC,YAAa,WAElCC,KAAM,CACFX,cAAeY,MAAUC,SAIpCC,yBACAC,UAAUrD,GAAQA,EAAKsD,OAAOC,MACvC,iDApBSf,GAA2B3I,MAAAoH,OAAA,oCAA3BuB,EAA2BxH,UAAA,+BAAAkG,MAAA,GAAAC,KAAA,GAAAC,OAAA,qTAAAC,SAAA,SAAAnG,EAAAC,GAAA,EAAAD,ID5CxCrB,MAAA,yCACIA,MAAA,2CACIA,MAAA,EAAA2J,GAAA,mBAMJ3J,QACAA,MAAA,2CACIA,MAAA,EAAA4J,GAAA,mBAGJ5J,QACAA,MAAA,2CACIA,MAAA,GAAA6J,GAAA,mBAGJ7J,QACAA,MAAA,6CACIA,MAAA,GAAA8J,GAAA,mBAGJ9J,QACAA,MAAA,6CACIA,MAAA,GAAA+J,GAAA,mBAIR/J,iBA7BkBA,MAAA,QAAAA,MAAA,IAAAsB,EAAAsH,gBACE5I,MAAA,GAAAA,MAAA,UAAAA,MAAA,qBAQAA,MAAA,GAAiDA,MAAjD,UAAAA,MAAA,oBAAiDA,CAAZ,sBAKrCA,MAAA,GAA0DA,MAA1D,UAAAA,MAAA,0BAA0DA,CAAf,sBAK3CA,MAAA,GAAAA,MAAA,UAAAA,MAAA,sBAKAA,MAAA,GAAAA,MAAA,UAAAA,MAAA,mQC+Cd,MAAOgK,oDAAwB,mCAAxBA,GAAwB,uCAHvBC,KAAYC,QAAY,wHClElClK,MADJ,UACIA,CAD8D,cAG1DA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAAC,YAAAC,KAAAF,EAAAG,WAAAC,YAAuC,GAGhDvK,MAAA,wBACJA,QACAA,MAAA,cAEIA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAAC,YAAAC,KAAAF,EAAAG,WAAAE,YAAuC,GAGhDxK,MAAA,wBACJA,QACAA,MAAA,cAEIA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAAC,YAAAC,KAAAF,EAAAG,WAAAG,mBAA8C,GAGvDzK,MAAA,wBACJA,QACAA,MAAA,YACAA,MAAA,eAA6BA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAAO,UAAS,GAC3C1K,MAAA,iBAERA,2CAtBQA,cAAA,SAAA2K,IAAAR,EAAAG,WAAAC,YAEAvK,cAAA,IAAAA,MAAA,+CAKAA,MAAA,GAAAA,MAAA,SAAA2K,IAAAR,EAAAG,WAAAE,YAEAxK,cAAA,IAAAA,MAAA,+CAKAA,MAAA,GAAAA,MAAA,SAAA2K,IAAAR,EAAAG,WAAAG,mBAEAzK,cAAA,IAAAA,MAAA,mDCTD,MAAM4K,GAAuBlC;;;;;;;;;;;EAmB9B,MAAOmC,EACTlH,YAAoBI,GAAA5D,KAAA4D,cAEpB5D,KAAA2K,SAAW,IAAIC,KACf5K,KAAAiK,YAAc,IAAIY,IAAgBV,MAAWC,YAC7CpK,KAAAmK,WAAaA,KAJkC,CAM/CnG,WACI,MAAM8G,EAAgB9K,KAAK4D,YAAYmH,SAClCC,mBACA5B,yBACAC,UAAUrD,GAAQA,EAAKiF,cAAcC,0BAAuBzJ,GAC3D0J,EAAWnL,KAAK4D,YAAYM,OAAOkH,UAAU/B,UAAUrD,GAAQA,EAAKoF,SACpEnB,EAAcjK,KAAKiK,YAAY5F,QAAKgH,QAC1CrL,KAAKsL,YAAWC,MAActB,EAAaa,EAAeK,GAAU9G,QAChEmH,KAAU,EAAEC,EAAYrD,EAAcgD,KAClCpL,KAAK2K,SAAStG,QACVqH,OAAU,IAAK,EACfF,KAAUjB,GACNvK,KAAK4D,YACA8E,MAAMiD,MAA2B,CAC9BC,MAAO,CAACH,GACRlB,YAEHsB,UAAU7F,GAAQA,EAAK8F,eACvBzH,QACGC,KAAIyH,IACA,MAAMC,GACFP,IAAetB,MAAWE,WAAa,SAAW,WAChD4B,GAAS,GAAGb,EAAQc,YAAYd,EAAQa,SAExCE,GAAoC,CACtCH,iBACA5D,eACA6D,WAEJ,OACIF,EACKK,KAAKC,GAAKA,EAAEC,OAASb,IACpBc,QAAQjI,IAAIkI,QAAeA,EAAOL,qBAAqB,SAQjG,CAEA5B,UACIvK,KAAK2K,SAAST,MAAK,EACvB,iDAnDSQ,GAAyB7K,MAAAoH,OAAA,oCAAzByD,EAAyB1J,UAAA,6BAAAkG,MAAA,EAAAC,KAAA,EAAAC,OAAA,4JAAAC,SAAA,SAAAnG,EAAAC,GAAA,EAAAD,ID/BtCrB,MAAA,kCACAA,MAAA,EAAA4M,GAAA,uCADW5M,MAAA,UAAAA,MAAA,IAAAsB,EAAAmK,WACQzL,MAAA,GAAAA,MAAA,OAAAA,MAAA,IAAAsB,EAAA8I,iSEaXpK,MADJ,UACIA,CADsD,cACiBA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAA0C,WAAAxC,KAAgB,CAAAyC,UAAY,MAAKC,KAAA5C,EAAA6C,QAAe,GAC5HhN,MAAA,wBACJA,QACAA,MAAA,cAAgFA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAA0C,WAAAxC,KAAgB,CAAAyC,UAAY,MAAKC,KAAA5C,EAAA8C,YAAmB,GACzIjN,MAAA,wBACJA,QACAA,MAAA,cAAkFA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAA0C,WAAAxC,KAAgB,CAAAyC,UAAY,SAAQ,GAC3H9M,MAAA,wBACJA,QACAA,MAAA,eAAmFA,MAAA,mBAAAA,MAAA8B,GAAA,MAAAqI,EAAAnK,QAAA,OAAAA,MAASmK,EAAA0C,WAAAxC,KAAgB,CAAAyC,UAAY,UAAS,GAC7H9M,MAAA,0BAERA,2CAZiCA,cAAA,SAAAkN,EAAAH,OAAA5C,EAAA6C,OACzBhN,cAAA,IAAAA,MAAA,6BAE8BA,MAAA,GAAAA,MAAA,SAAAkN,EAAAH,OAAA5C,EAAA8C,WAC9BjN,cAAA,IAAAA,MAAA,iCAE8BA,MAAA,GAAAA,MAAA,kBAAAkN,EAAAJ,WAC9B9M,cAAA,IAAAA,MAAA,gCAE8BA,MAAA,GAAAA,MAAA,mBAAAkN,EAAAJ,WAC9B9M,cAAA,IAAAA,MAAA,6DAIRA,MAAA,YACIA,MAAA,+CACJA,6BADIA,cAAA,IAAAA,MAAA,IAAAmN,EAAAC,OAAA,MAAApN,MAAA,IAAAmN,EAAAE,KAAA,MCpBD,MAAMC,GAAoB5E;;;;;;;;;;;EAmB3B,MAAO6E,EAYT5J,YAAoBI,GAAA5D,KAAA4D,cAXpB5D,KAAA6M,MAAQ,IAAIQ,KACZrN,KAAA8M,UAAY,IAAIO,UAASA,MAAOC,QAAQtN,KAAK6M,MAAMU,UAAY,IAI/DvN,KAAA0M,WAAa,IAAI7B,IAAuD,CACpE8B,UAAW,MACXC,KAAM5M,KAAK6M,OAIgC,CAE/C7I,WACIhE,KAAKwN,WAAaxN,KAAK0M,WAAWrI,QAC9BgH,QAAoB,EACpB/G,KAAImJ,KACAR,MAAOS,IAAMD,EAAUb,MAAMe,QAAQF,EAAUd,WAAWiB,SAC1DV,IAAKQ,IAAMD,EAAUb,MAAMiB,MAAMJ,EAAUd,WAAWiB,aACxD,EACFE,KAAY,IAEhB,MAAMC,EAAgB/N,KAAKwN,WAAWnJ,QAClCmH,KAAU,EAAGyB,QAAOC,SAChBlN,KAAK4D,YACA8E,MAAMsF,MAAyB,CAAEf,MAAOA,EAAMgB,cAAef,IAAKA,EAAIe,gBACtE7E,yBACAC,UAAUrD,GAAQA,EAAKsD,UAAO,EAEvCwE,KAAY,IAEhB9N,KAAKkO,iBAAmBH,EAAc1J,QAAKC,KAAI6J,GAAOA,EAAIC,aAC1DpO,KAAKqO,iBAAmBN,EAAc1J,QAClCC,KAAI6J,GAAOA,EAAI5E,MAAM3C,OAAO,CAAC0H,EAAOC,IAAUD,EAAQC,EAAMpG,aAAc,KAE9EnI,KAAK8K,cAAgB9K,KAAK4D,YAAYmH,SACjCC,mBACA5B,yBACAC,UAAUrD,GAAQA,EAAKiF,cAAcC,0BAAuBzJ,EACrE,iDAxCS2L,GAA2BvN,MAAAoH,OAAA,oCAA3BmG,EAA2BpM,UAAA,+BAAAkG,MAAA,GAAAC,KAAA,GAAAC,OAAA,gOAAAC,SAAA,SAAAnG,EAAAC,GAAA,EAAAD,ID1BhCrB,MAFR,UAEQA,CAFW,UAEXA,CADc,WACWA,MAAA,oBAA8BA,QACvDA,MAAA,WAAwBA,MAAA,wBAC5BA,UAEIA,MADJ,UACIA,CADc,WAEVA,MAAA,mEACJA,QACAA,MAAA,YAAwBA,MAAA,0BAEhCA,YACAA,MAAA,YACIA,MAAA,GAAA2O,GAAA,iCAeA3O,MAAA,GAAA4O,GAAA,+BAGJ5O,eA7BiCA,MAAA,GAAAA,YAAA,IAAAsB,EAAA+M,mBACDrO,MAAA,GAAAA,YAAA,+BAIpBA,MAAA,GAAAA,MAAA,IAAAA,MAAA,MAAAA,MAAA,MAAAsB,EAAAkN,kBAAAxO,MAAA,MAAAsB,EAAA2J,qBAAArJ,GAAA,KAEoB5B,MAAA,GAAAA,YAAA,sCAITA,MAAA,GAAAA,MAAA,OAAAA,MAAA,MAAAsB,EAAAuL,aAeM7M,MAAA,GAAAA,MAAA,OAAAA,MAAA,MAAAsB,EAAAqM,+nBC+CvB,MAAOkB,oDAAwB,mCAAxBA,GAAwB,uCAHvB5E,OAAU,ECjEjB,MAAM6E,EAA0D,CACnE,CAAE5M,GAAI,UAAWO,MAAO,IACxB,CAAEP,GAAI,eAAgBO,MAAO,GAC7B,CAAEP,GAAI,eAAgBO,MAAO,IAGpBsM,EAA2D,CACpE7C,QAAS,CACLvK,SAAOqN,KAAE,qBACT9J,gBAAiB,CAAC,EAAG,EAAG,IACxBzE,cAAeA,IAAMoK,EACrB5H,oBAAqB,CAACgM,MAAWC,YAErCC,aAAc,CACVxN,SAAOqN,KAAE,4BACTvO,cAAeA,IAAM8M,EACrBrI,gBAAiB,CAAC,EAAG,EAAG,EAAG,IAC3BjC,oBAAqB,CAACgM,MAAWC,YAErCE,aAAc,CACVzN,SAAOqN,KAAE,2BACTvO,cAAeA,IAAMkI,EACrBzD,gBAAiB,CAAC,EAAG,EAAG,IACxBjC,oBAAqB,CAACgM,MAAWC,aChBnC,MAAOG,EACT1L,YAAYC,GACR0L,OAAO5C,QAAQqC,GAAiBtK,IAAI,EAAEvC,EAAIE,MACjCwB,EAAuB8B,cAAcxD,IACtC0B,EAAuB2L,eAAerN,EAAIE,EAAM,GAGC,IAArDwB,EAAuB4L,mBAAmB5J,QAC1ChC,EAAuB6L,iBAAiBX,EAEhD,iDAVSO,GAAerP,MAAAoH,OAAA,mCAAfiI,GAAe,uCAHdnF,MAAcwF,KAAaC,SAAShI,KAAgB,ECH5D,MAAOiI,oDAAmB,oCAAnBA,EAAmBzO,UAAA,sBAAAkG,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAnG,EAAAC,GAAA,EAAAD,ICRhCrB,MAAA,OAAGA,MAAA,4BAAsBA,+BDanB,MAAO6P,oDAAgB,mCAAhBA,GAAgB,4DEPzB7P,MAAA,SACIA,MAAA,GACJA,+BADIA,cAAA,IAAA8P,EAAAC,oBAAA,iBAAAD,EAAAE,YAAA,gBAAAF,EAAAG,QAAA,gCANJjQ,MADJ,QACIA,CADiD,UAE7CA,MAAA,GAAmEA,MAAA,QACnEA,MAAA,aAAkBA,MAAA,sBACtBA,UAEAA,MAAA,EAAAkQ,GAAA,WAGJlQ,uCAPQA,MAAA,GAAAA,MAAA,aAAAmQ,EAAAC,UAAA,IAAAD,EAAAE,SAAA,IACkBrQ,MAAA,GAAAA,MAAA,eAAAA,MAAA,IAAAmQ,EAAAG,KAAAC,WAAA,IAGPvQ,MAAA,GAAAA,MAAA,QAAA8P,EAAAC,sBAAAD,EAAAE,cCUb,MAAOQ,EAOT7M,YAAoBI,GAAA5D,KAAA4D,cANpB5D,KAAA8P,QAAUQ,MAEVtQ,KAAAuQ,SAAQC,SAAeD,MACvBvQ,KAAA4P,uBAAsBY,SAAeZ,oBACrC5P,KAAA6P,eAAcW,SAAeX,WAEkB,CAE/C7L,WACIhE,KAAKyQ,eAAiBzQ,KAAK4D,YAAY8M,cAClCC,yBACAtH,UAAUrD,GAAQA,EAAK4K,qBAAuB,KACvD,iDAbSP,GAAsBxQ,MAAAoH,OAAA,oCAAtBoJ,EAAsBrP,UAAA,yBAAAkG,MAAA,EAAAC,KAAA,EAAAC,OAAA,2GAAAC,SAAA,SAAAnG,EAAAC,GAAA,EAAAD,IDhBnCrB,MAAA,EAAAgR,GAAA,8BAUAhR,MAAA,WACIA,MAAA,gBACJA,cAZMA,MAAA,OAAAA,MAAA,IAAAsB,EAAAsP,8MCoCA,MAAOK,oDAAmB,mCAAnBA,GAAmB,uCAHlBhH,OAAU","names":["i0","DashboardWidgetComponent","ngAfterViewInit","this","loadWidget","_this","_asyncToGenerator","loadComponentResult","widgetConfig","loadComponent","componentType","Promise","componentRef","portal","createComponent","changeDetectorRef","detectChanges","ngOnDestroy","destroy","selectors","viewQuery","rf","ctx","ViewContainerRef","DashboardWidgetComponent_ng_template_2_Template","DashboardWidgetComponent_ng_template_3_Template","tmp_1_0","title","undefined","widget_r2","_r1","$implicit","ctx_r2","addWidget","id","tmp_2_0","config","width_r7","_r6","widget_r8","setWidgetWidth","width","_c1","DashboardComponent_div_12_div_1_vdr_dashboard_widget_1_button_11_Template","_r5","removeWidget","getSupportedWidths","DashboardComponent_div_12_div_1_vdr_dashboard_widget_1_Template","getClassForWidth","requiresPermissions","$event","_r4","drop","DashboardComponent_div_12_div_1_Template","_c0","rowIndex_r10","row_r9","trackRowItem","DashboardComponent","constructor","dashboardWidgetService","localStorageService","changedDetectorRef","dataService","deletionMarker","setTitle","titleSetter","ngOnInit","availableWidgets$","client","userStatus","stream$","pipe","map","permissions","getAvailableWidgets","tap","widgets","widgetLayout","initLayout","w","assertNever","supportedWidths","widget","recalculateLayout","trackRow","index","row","item","join","getWidgetById","targetRow","length","push","event","currentIndex","previousIndex","previousContainer","container","data","previousLayoutRow","newLayoutRow","splice","availableIds","savedLayoutDef","get","layoutDef","filter","includes","getWidgetLayout","newLayoutDef","reduce","flat","set","setTimeout","markForCheck","i1","decls","vars","consts","template","DashboardComponent_button_9_Template","DashboardComponent_div_12_Template","dashboardRoutes","path","component","pathMatch","order_r1","code","order_r2","state","order_r3","customer","order_r4","totalWithTax","currencyCode","order_r5","orderPlacedAt","gql","LatestOrdersWidgetComponent","latestOrders$","query","GetLatestOrdersDocument","options","take","active","eq","notIn","sort","SortOrder","DESC","refetchOnChannelChange","mapStream","orders","items","LatestOrdersWidgetComponent_ng_template_4_Template","LatestOrdersWidgetComponent_ng_template_7_Template","LatestOrdersWidgetComponent_ng_template_10_Template","LatestOrdersWidgetComponent_ng_template_13_Template","LatestOrdersWidgetComponent_ng_template_16_Template","LatestOrdersWidgetModule","CoreModule","SharedModule","ctx_r1","metricType$","next","MetricType","OrderTotal","OrderCount","AverageOrderValue","refresh","activeMetricType_r3","GET_ORDER_CHART_DATA","OrderChartWidgetComponent","refresh$","Subject","BehaviorSubject","currencyCode$","settings","getActiveChannel","activeChannel","defaultCurrencyCode","uiState$","uiState","distinctUntilChanged","metrics$","combineLatest","switchMap","metricType","startWith","GetOrderChartDataDocument","types","mapSingle","metricSummary","metrics","formatValueAs","locale","language","formatOptions","find","m","type","entries","entry","OrderChartWidgetComponent_div_2_Template","selection$","timeframe","date","today","yesterday","selection_r3","range_r4","start","end","GET_ORDER_SUMMARY","OrderSummaryWidgetComponent","Date","setDate","getDate","dateRange$","selection","dayjs","startOf","toDate","endOf","shareReplay","orderSummary$","GetOrderSummaryDocument","toISOString","totalOrderCount$","res","totalItems","totalOrderValue$","total","order","OrderSummaryWidgetComponent_div_18_Template","OrderSummaryWidgetComponent_div_20_Template","OrderSummaryWidgetModule","DEFAULT_DASHBOARD_WIDGET_LAYOUT","DEFAULT_WIDGETS","_","Permission","ReadOrder","orderSummary","latestOrders","DashboardModule","Object","registerWidget","getDefaultLayout","setDefaultLayout","RouterModule","forChild","TestWidgetComponent","TestWidgetModule","ctx_r0","hideDeenruvBranding","hideVersion","version","WelcomeWidgetComponent_div_0_p_7_Template","administrator_r2","firstName","lastName","user","lastLogin","WelcomeWidgetComponent","ADMIN_UI_VERSION","brand","getAppConfig","administrator$","administrator","getActiveAdministrator","activeAdministrator","WelcomeWidgetComponent_div_0_Template","WelcomeWidgetModule"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/lib/dashboard/src/components/dashboard-widget/dashboard-widget.component.html","./src/lib/dashboard/src/components/dashboard-widget/dashboard-widget.component.ts","./src/lib/dashboard/src/components/dashboard/dashboard.component.html","./src/lib/dashboard/src/components/dashboard/dashboard.component.ts","./src/lib/dashboard/src/dashboard.routes.ts","./src/lib/dashboard/src/widgets/latest-orders-widget/latest-orders-widget.component.html","./src/lib/dashboard/src/widgets/latest-orders-widget/latest-orders-widget.component.ts","./src/lib/dashboard/src/widgets/order-chart-widget/order-chart-widget.component.html","./src/lib/dashboard/src/widgets/order-chart-widget/order-chart-widget.component.ts","./src/lib/dashboard/src/widgets/order-summary-widget/order-summary-widget.component.html","./src/lib/dashboard/src/widgets/order-summary-widget/order-summary-widget.component.ts","./src/lib/dashboard/src/default-widgets.ts","./src/lib/dashboard/src/dashboard.module.ts","./src/lib/dashboard/src/widgets/test-widget/test-widget.component.ts","./src/lib/dashboard/src/widgets/test-widget/test-widget.component.html","./src/lib/dashboard/src/widgets/welcome-widget/welcome-widget.component.html","./src/lib/dashboard/src/widgets/welcome-widget/welcome-widget.component.ts"],"sourcesContent":["<vdr-card [title]=\"widgetConfig.title ?? '' | translate\">\n <ng-template vdrCardControls>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #portal></ng-template>\n</vdr-card>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { DashboardWidgetConfig } from '@deenruv/admin-ui/core';\n\n@Component({\n selector: 'vdr-dashboard-widget',\n templateUrl: './dashboard-widget.component.html',\n styleUrls: ['./dashboard-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DashboardWidgetComponent implements AfterViewInit, OnDestroy {\n @Input() widgetConfig: DashboardWidgetConfig;\n\n @ViewChild('portal', { read: ViewContainerRef })\n private portal: ViewContainerRef;\n\n private componentRef: ComponentRef<any>;\n\n ngAfterViewInit(): void {\n this.loadWidget();\n }\n\n private async loadWidget() {\n const loadComponentResult = this.widgetConfig.loadComponent();\n const componentType =\n loadComponentResult instanceof Promise ? await loadComponentResult : loadComponentResult;\n this.componentRef = this.portal.createComponent(componentType);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n}\n","<vdr-page-block>\n <div class=\"widget-header mb-1\">\n <vdr-dropdown>\n <button class=\"btn btn-secondary btn-sm\" vdrDropdownTrigger>\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'dashboard.add-widget' | translate }}\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n <button\n vdrDropdownItem\n *ngFor=\"let widget of availableWidgets$ | async\"\n (click)=\"addWidget(widget.id)\"\n >\n {{ (widget.config.title ?? widget.id) | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n <div cdkDropListGroup>\n <div\n class=\"clr-row dashboard-row\"\n *ngFor=\"let row of widgetLayout; index as rowIndex; trackBy: trackRow\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListData]=\"{ index: rowIndex }\"\n >\n <div\n *ngFor=\"let widget of row; trackBy: trackRowItem\"\n class=\"dashboard-item\"\n [ngClass]=\"getClassForWidth(widget.width)\"\n cdkDrag\n [cdkDragData]=\"widget\"\n >\n <vdr-dashboard-widget\n *vdrIfPermissions=\"widget.config.requiresPermissions || null\"\n [widgetConfig]=\"widget.config\"\n >\n <div class=\"flex\">\n <div class=\"drag-handle\" cdkDragHandle>\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\n </div>\n <vdr-dropdown>\n <button class=\"icon-button\" vdrDropdownTrigger>\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n <h4 class=\"dropdown-header\">{{ 'dashboard.widget-resize' | translate }}</h4>\n <button\n vdrDropdownItem\n [disabled]=\"width === widget.width\"\n *ngFor=\"let width of getSupportedWidths(widget.config)\"\n (click)=\"setWidgetWidth(widget, width)\"\n >\n {{ 'dashboard.widget-width' | translate : { width: width } }}\n </button>\n <div class=\"dropdown-divider\" role=\"separator\"></div>\n <button vdrDropdownItem (click)=\"removeWidget(widget)\">\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'dashboard.remove-widget' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </vdr-dashboard-widget>\n </div>\n </div>\n </div>\n</vdr-page-block>\n","import { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport {\n DashboardWidgetConfig,\n DashboardWidgetService,\n DashboardWidgetWidth,\n DataService,\n LocalStorageService,\n titleSetter,\n WidgetLayout,\n WidgetLayoutDefinition,\n} from '@deenruv/admin-ui/core';\nimport { assertNever } from '@deenruv/common/lib/shared-utils';\nimport { Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'vdr-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DashboardComponent implements OnInit {\n widgetLayout: WidgetLayout | undefined;\n availableWidgets$: Observable<Array<{ id: string; config: DashboardWidgetConfig }>>;\n private readonly deletionMarker = '__delete__';\n private setTitle = titleSetter();\n constructor(\n private dashboardWidgetService: DashboardWidgetService,\n private localStorageService: LocalStorageService,\n private changedDetectorRef: ChangeDetectorRef,\n private dataService: DataService,\n ) {}\n\n ngOnInit() {\n this.availableWidgets$ = this.dataService.client.userStatus().stream$.pipe(\n map(({ userStatus }) => userStatus.permissions),\n map(permissions => this.dashboardWidgetService.getAvailableWidgets(permissions)),\n tap(widgets => (this.widgetLayout = this.initLayout(widgets.map(w => w.id)))),\n );\n this.setTitle('breadcrumb.dashboard');\n }\n\n getClassForWidth(width: DashboardWidgetWidth): string {\n switch (width) {\n case 3:\n return `clr-col-12 clr-col-sm-6 clr-col-lg-3`;\n case 4:\n return `clr-col-12 clr-col-sm-6 clr-col-lg-4`;\n case 6:\n return `clr-col-12 clr-col-lg-6`;\n case 8:\n return `clr-col-12 clr-col-lg-8`;\n case 12:\n return `clr-col-12`;\n default:\n assertNever(width);\n }\n }\n\n getSupportedWidths(config: DashboardWidgetConfig): DashboardWidgetWidth[] {\n return config.supportedWidths || [3, 4, 6, 8, 12];\n }\n\n setWidgetWidth(widget: WidgetLayout[number][number], width: DashboardWidgetWidth) {\n widget.width = width;\n this.recalculateLayout();\n }\n\n trackRow(index: number, row: WidgetLayout[number]) {\n const id = row.map(item => `${item.id}:${item.width}`).join('|');\n return id;\n }\n\n trackRowItem(index: number, item: WidgetLayout[number][number]) {\n return item.config;\n }\n\n addWidget(id: string) {\n const config = this.dashboardWidgetService.getWidgetById(id);\n if (config) {\n const width = this.getSupportedWidths(config)[0];\n const widget: WidgetLayout[number][number] = {\n id,\n config,\n width,\n };\n let targetRow: WidgetLayout[number];\n if (this.widgetLayout && this.widgetLayout.length) {\n targetRow = this.widgetLayout[this.widgetLayout.length - 1];\n } else {\n targetRow = [];\n this.widgetLayout?.push(targetRow);\n }\n targetRow.push(widget);\n this.recalculateLayout();\n }\n }\n\n removeWidget(widget: WidgetLayout[number][number]) {\n widget.id = this.deletionMarker;\n this.recalculateLayout();\n }\n\n drop(event: CdkDragDrop<{ index: number }>) {\n const { currentIndex, previousIndex, previousContainer, container } = event;\n if (previousIndex === currentIndex && previousContainer.data.index === container.data.index) {\n // Nothing changed\n return;\n }\n if (this.widgetLayout) {\n const previousLayoutRow = this.widgetLayout[previousContainer.data.index];\n const newLayoutRow = this.widgetLayout[container.data.index];\n\n previousLayoutRow.splice(previousIndex, 1);\n newLayoutRow.splice(currentIndex, 0, event.item.data);\n this.recalculateLayout();\n }\n }\n\n private initLayout(availableIds: string[]): WidgetLayout {\n const savedLayoutDef = this.localStorageService.get('dashboardWidgetLayout');\n let layoutDef: WidgetLayoutDefinition | undefined;\n if (savedLayoutDef) {\n // validate all the IDs from the saved layout are still available\n layoutDef = savedLayoutDef.filter(item => availableIds.includes(item.id));\n }\n return this.dashboardWidgetService.getWidgetLayout(layoutDef);\n }\n\n private recalculateLayout() {\n if (this.widgetLayout) {\n const flattened = this.widgetLayout\n .reduce((flat, row) => [...flat, ...row], [])\n .filter(item => item.id !== this.deletionMarker);\n const newLayoutDef: WidgetLayoutDefinition = flattened.map(item => ({\n id: item.id,\n width: item.width,\n }));\n this.widgetLayout = this.dashboardWidgetService.getWidgetLayout(newLayoutDef);\n this.localStorageService.set('dashboardWidgetLayout', newLayoutDef);\n setTimeout(() => this.changedDetectorRef.markForCheck());\n }\n }\n}\n","import { Routes } from '@angular/router';\n\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\n\nexport const dashboardRoutes: Routes = [\n {\n path: '',\n component: DashboardComponent,\n pathMatch: 'full',\n },\n];\n","<vdr-data-table-2 [items]=\"latestOrders$ | async\" id=\"latest-orders-widget-list\">\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\n <ng-template let-order=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/orders/', order.id]\"\n ><span>{{ order.code }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\" [hiddenByDefault]=\"true\">\n <ng-template let-order=\"item\">\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.customer' | translate\" id=\"customer\" [hiddenByDefault]=\"true\">\n <ng-template let-order=\"item\">\n <vdr-customer-label [customer]=\"order.customer\"></vdr-customer-label>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\">\n <ng-template let-order=\"item\">\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\">\n <ng-template let-order=\"item\">\n {{ order.orderPlacedAt | timeAgo }}\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\nimport {\n CoreModule,\n DataService,\n GetLatestOrdersDocument,\n GetLatestOrdersQuery,\n GetOrderListQuery,\n ItemOf,\n SharedModule,\n SortOrder,\n} from '@deenruv/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\n\nconst GET_LATEST_ORDERS = gql`\n query GetLatestOrders($options: OrderListOptions) {\n orders(options: $options) {\n items {\n id\n createdAt\n updatedAt\n type\n orderPlacedAt\n code\n state\n total\n totalWithTax\n currencyCode\n customer {\n id\n firstName\n lastName\n }\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-latest-orders-widget',\n templateUrl: './latest-orders-widget.component.html',\n styleUrls: ['./latest-orders-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LatestOrdersWidgetComponent implements OnInit {\n latestOrders$: Observable<Array<ItemOf<GetLatestOrdersQuery, 'orders'>>>;\n constructor(private dataService: DataService) {}\n\n ngOnInit(): void {\n this.latestOrders$ = this.dataService\n .query(GetLatestOrdersDocument, {\n options: {\n take: 10,\n filter: {\n active: { eq: false },\n state: { notIn: ['Cancelled', 'Draft'] },\n },\n sort: {\n orderPlacedAt: SortOrder.DESC,\n },\n },\n })\n .refetchOnChannelChange()\n .mapStream(data => data.orders.items);\n }\n}\n\n@NgModule({\n imports: [CoreModule, SharedModule],\n declarations: [LatestOrdersWidgetComponent],\n})\nexport class LatestOrdersWidgetModule {}\n","<vdr-chart [entries]=\"metrics$ | async\" />\n<div class=\"flex\" *ngIf=\"metricType$ | async as activeMetricType\">\n <button\n class=\"button-small\"\n (click)=\"metricType$.next(MetricType.OrderTotal)\"\n [class.active]=\"activeMetricType === MetricType.OrderTotal\"\n >\n {{ 'dashboard.metric-order-total-value' | translate }}\n </button>\n <button\n class=\"ml-1 button-small\"\n (click)=\"metricType$.next(MetricType.OrderCount)\"\n [class.active]=\"activeMetricType === MetricType.OrderCount\"\n >\n {{ 'dashboard.metric-number-of-orders' | translate }}\n </button>\n <button\n class=\"ml-1 button-small\"\n (click)=\"metricType$.next(MetricType.AverageOrderValue)\"\n [class.active]=\"activeMetricType === MetricType.AverageOrderValue\"\n >\n {{ 'dashboard.metric-average-order-value' | translate }}\n </button>\n <div class=\"flex-spacer\"></div>\n <button class=\"button-small\" (click)=\"refresh()\">\n <clr-icon shape=\"refresh\"></clr-icon>\n </button>\n</div>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport {\n OldChartEntry,\n ChartFormatOptions,\n DataService,\n GetOrderChartDataDocument,\n MetricType,\n} from '@deenruv/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { BehaviorSubject, combineLatest, Observable, Subject, switchMap } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\nexport const GET_ORDER_CHART_DATA = gql`\n query GetOrderChartData($refresh: Boolean, $types: [MetricType!]!) {\n metricSummary(input: { interval: Daily, types: $types, refresh: $refresh }) {\n interval\n type\n entries {\n label\n value\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-order-chart-widget',\n templateUrl: './order-chart-widget.component.html',\n styleUrls: ['./order-chart-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OrderChartWidgetComponent implements OnInit {\n constructor(private dataService: DataService) {}\n metrics$: Observable<OldChartEntry[]>;\n refresh$ = new Subject<boolean>();\n metricType$ = new BehaviorSubject(MetricType.OrderTotal);\n MetricType = MetricType;\n\n ngOnInit() {\n const currencyCode$ = this.dataService.settings\n .getActiveChannel()\n .refetchOnChannelChange()\n .mapStream(data => data.activeChannel.defaultCurrencyCode || undefined);\n const uiState$ = this.dataService.client.uiState().mapStream(data => data.uiState);\n const metricType$ = this.metricType$.pipe(distinctUntilChanged());\n this.metrics$ = combineLatest(metricType$, currencyCode$, uiState$).pipe(\n switchMap(([metricType, currencyCode, uiState]) =>\n this.refresh$.pipe(\n startWith(false),\n switchMap(refresh =>\n this.dataService\n .query(GetOrderChartDataDocument, {\n types: [metricType],\n refresh,\n })\n .mapSingle(data => data.metricSummary)\n .pipe(\n map(metrics => {\n const formatValueAs: 'currency' | 'number' =\n metricType === MetricType.OrderCount ? 'number' : 'currency';\n const locale = `${uiState.language}-${uiState.locale}`;\n\n const formatOptions: ChartFormatOptions = {\n formatValueAs,\n currencyCode,\n locale,\n };\n return (\n metrics\n .find(m => m.type === metricType)\n ?.entries.map(entry => ({ ...entry, formatOptions })) ?? []\n );\n }),\n ),\n ),\n ),\n ),\n );\n }\n\n refresh() {\n this.refresh$.next(true);\n }\n}\n","<div class=\"stats\">\n <div class=\"stat\">\n <div class=\"stat-figure\">{{ totalOrderCount$ | async }}</div>\n <div class=\"stat-label\">{{ 'dashboard.total-orders' | translate }}</div>\n </div>\n <div class=\"stat\">\n <div class=\"stat-figure\">\n {{ totalOrderValue$ | async | localeCurrency: (currencyCode$ | async) || undefined }}\n </div>\n <div class=\"stat-label\">{{ 'dashboard.total-order-value' | translate }}</div>\n </div>\n</div>\n<div class=\"footer\">\n <div class=\"flex\" *ngIf=\"selection$ | async as selection\">\n <button class=\"button-small\" [class.active]=\"selection.date === today\" (click)=\"selection$.next({timeframe: 'day', date: today})\">\n {{ 'dashboard.today' | translate }}\n </button>\n <button class=\"ml-1 button-small\" [class.active]=\"selection.date === yesterday\" (click)=\"selection$.next({timeframe: 'day', date: yesterday})\">\n {{ 'dashboard.yesterday' | translate }}\n </button>\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'week'\" (click)=\"selection$.next({timeframe: 'week'})\">\n {{ 'dashboard.thisWeek' | translate }}\n </button>\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'month'\" (click)=\"selection$.next({timeframe: 'month'})\">\n {{ 'dashboard.thisMonth' | translate }}\n </button>\n </div>\n\n <div class=\"date-range\" *ngIf=\"dateRange$ | async as range\">\n {{ range.start | localeDate }} - {{ range.end | localeDate }}\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\nimport { CoreModule, DataService, GetOrderSummaryDocument } from '@deenruv/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport dayjs from 'dayjs';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs/operators';\n\nexport type Timeframe = 'day' | 'week' | 'month';\n\nexport const GET_ORDER_SUMMARY = gql`\n query GetOrderSummary($start: DateTime!, $end: DateTime!) {\n orders(options: { filter: { orderPlacedAt: { between: { start: $start, end: $end } } } }) {\n totalItems\n items {\n id\n totalWithTax\n currencyCode\n }\n }\n }\n`;\n\n@Component({\n selector: 'vdr-order-summary-widget',\n templateUrl: './order-summary-widget.component.html',\n styleUrls: ['./order-summary-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OrderSummaryWidgetComponent implements OnInit {\n today = new Date();\n yesterday = new Date(new Date().setDate(this.today.getDate() - 1));\n totalOrderCount$: Observable<number>;\n totalOrderValue$: Observable<number>;\n currencyCode$: Observable<string | undefined>;\n selection$ = new BehaviorSubject<{ timeframe: Timeframe; date?: Date }>({\n timeframe: 'day',\n date: this.today,\n });\n dateRange$: Observable<{ start: Date; end: Date }>;\n\n constructor(private dataService: DataService) {}\n\n ngOnInit(): void {\n this.dateRange$ = this.selection$.pipe(\n distinctUntilChanged(),\n map(selection => ({\n start: dayjs(selection.date).startOf(selection.timeframe).toDate(),\n end: dayjs(selection.date).endOf(selection.timeframe).toDate(),\n })),\n shareReplay(1),\n );\n const orderSummary$ = this.dateRange$.pipe(\n switchMap(({ start, end }) =>\n this.dataService\n .query(GetOrderSummaryDocument, { start: start.toISOString(), end: end.toISOString() })\n .refetchOnChannelChange()\n .mapStream(data => data.orders),\n ),\n shareReplay(1),\n );\n this.totalOrderCount$ = orderSummary$.pipe(map(res => res.totalItems));\n this.totalOrderValue$ = orderSummary$.pipe(\n map(res => res.items.reduce((total, order) => total + order.totalWithTax, 0)),\n );\n this.currencyCode$ = this.dataService.settings\n .getActiveChannel()\n .refetchOnChannelChange()\n .mapStream(data => data.activeChannel.defaultCurrencyCode || undefined);\n }\n}\n\n@NgModule({\n imports: [CoreModule],\n declarations: [OrderSummaryWidgetComponent],\n})\nexport class OrderSummaryWidgetModule {}\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { DashboardWidgetConfig, Permission, WidgetLayoutDefinition } from '@deenruv/admin-ui/core';\n\nimport { LatestOrdersWidgetComponent } from './widgets/latest-orders-widget/latest-orders-widget.component';\nimport { OrderChartWidgetComponent } from './widgets/order-chart-widget/order-chart-widget.component';\nimport { OrderSummaryWidgetComponent } from './widgets/order-summary-widget/order-summary-widget.component';\n\nexport const DEFAULT_DASHBOARD_WIDGET_LAYOUT: WidgetLayoutDefinition = [\n { id: 'metrics', width: 12 },\n { id: 'orderSummary', width: 6 },\n { id: 'latestOrders', width: 6 },\n];\n\nexport const DEFAULT_WIDGETS: { [id: string]: DashboardWidgetConfig } = {\n metrics: {\n title: _('dashboard.metrics'),\n supportedWidths: [6, 8, 12],\n loadComponent: () => OrderChartWidgetComponent,\n requiresPermissions: [Permission.ReadOrder],\n },\n orderSummary: {\n title: _('dashboard.orders-summary'),\n loadComponent: () => OrderSummaryWidgetComponent,\n supportedWidths: [4, 6, 8, 12],\n requiresPermissions: [Permission.ReadOrder],\n },\n latestOrders: {\n title: _('dashboard.latest-orders'),\n loadComponent: () => LatestOrdersWidgetComponent,\n supportedWidths: [6, 8, 12],\n requiresPermissions: [Permission.ReadOrder],\n },\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { DashboardWidgetService, SharedModule } from '@deenruv/admin-ui/core';\n\nimport { DashboardWidgetComponent } from './components/dashboard-widget/dashboard-widget.component';\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\nimport { dashboardRoutes } from './dashboard.routes';\nimport { DEFAULT_DASHBOARD_WIDGET_LAYOUT, DEFAULT_WIDGETS } from './default-widgets';\nimport { OrderChartWidgetComponent } from './widgets/order-chart-widget/order-chart-widget.component';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild(dashboardRoutes)],\n declarations: [DashboardComponent, DashboardWidgetComponent, OrderChartWidgetComponent],\n})\nexport class DashboardModule {\n constructor(dashboardWidgetService: DashboardWidgetService) {\n Object.entries(DEFAULT_WIDGETS).map(([id, config]) => {\n if (!dashboardWidgetService.getWidgetById(id)) {\n dashboardWidgetService.registerWidget(id, config);\n }\n });\n if (dashboardWidgetService.getDefaultLayout().length === 0) {\n dashboardWidgetService.setDefaultLayout(DEFAULT_DASHBOARD_WIDGET_LAYOUT);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, NgModule } from '@angular/core';\n\n@Component({\n selector: 'vdr-test-widget',\n templateUrl: './test-widget.component.html',\n styleUrls: ['./test-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TestWidgetComponent {}\n\n@NgModule({\n declarations: [TestWidgetComponent],\n})\nexport class TestWidgetModule {}\n","<p>This is a test widget!</p>\n","<div *ngIf=\"administrator$ | async as administrator\">\n <h4 class=\"\">\n Welcome, {{ administrator.firstName }} {{ administrator.lastName }}<br />\n <small class=\"p5\">Last login: {{ administrator.user.lastLogin | timeAgo }}</small>\n </h4>\n\n <p class=\"p5\" *ngIf=\"!hideDeenruvBranding || !hideVersion\">\n {{ hideDeenruvBranding ? '' : 'Deenruv' }} {{ hideVersion ? '' : 'Admin UI v' + version }}\n </p>\n</div>\n<div class=\"placeholder\">\n <clr-icon shape=\"line-chart\" size=\"128\"></clr-icon>\n</div>\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\nimport {\n ADMIN_UI_VERSION,\n CoreModule,\n DataService,\n GetActiveAdministratorQuery,\n getAppConfig,\n} from '@deenruv/admin-ui/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'vdr-welcome-widget',\n templateUrl: './welcome-widget.component.html',\n styleUrls: ['./welcome-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WelcomeWidgetComponent implements OnInit {\n version = ADMIN_UI_VERSION;\n administrator$: Observable<GetActiveAdministratorQuery['activeAdministrator']>;\n brand = getAppConfig().brand;\n hideDeenruvBranding = getAppConfig().hideDeenruvBranding;\n hideVersion = getAppConfig().hideVersion;\n\n constructor(private dataService: DataService) {}\n\n ngOnInit(): void {\n this.administrator$ = this.dataService.administrator\n .getActiveAdministrator()\n .mapStream(data => data.activeAdministrator || null);\n }\n}\n\n@NgModule({\n imports: [CoreModule],\n declarations: [WelcomeWidgetComponent],\n})\nexport class WelcomeWidgetModule {}\n"],"x_google_ignoreList":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkdeenruv_admin=self.webpackChunkdeenruv_admin||[]).push([[697],{8697:(hs,ae,a)=>{a.r(ae),a.d(ae,{AddCustomerToGroupDialogComponent:()=>D,AddressCardComponent:()=>$,AddressDetailDialogComponent:()=>R,CUSTOMER_DETAIL_QUERY:()=>Rn,CUSTOMER_GROUP_DETAIL_QUERY:()=>Nn,CUSTOMER_LIST_QUERY:()=>_s,CustomerDetailComponent:()=>j,CustomerGroupDetailComponent:()=>A,CustomerGroupDetailDialogComponent:()=>Z,CustomerGroupListComponent:()=>P,CustomerGroupMemberListComponent:()=>I,CustomerHistoryComponent:()=>N,CustomerHistoryEntryHostComponent:()=>k,CustomerListComponent:()=>x,CustomerModule:()=>y,CustomerStatusLabelComponent:()=>T,GET_CUSTOMER_GROUP_LIST:()=>ss,SelectCustomerGroupDialogComponent:()=>S,createRoutes:()=>ke,customerBreadcrumb:()=>gs,deleteCustomerGroupsBulkAction:()=>Re,deleteCustomersBulkAction:()=>Me,removeCustomerGroupMembersBulkAction:()=>Se});var F=a(2612),C=a(2430),u=a(5626),e=a(1410),c=a(9214),Y=a(5907),B=a(3240),m=a(1217),q=a(6851),U=a(4148),O=a(7420),ee=a(9942),Ne=a(5168),je=a(4117),ce=a(4361),b=a(808),v=a(4677),te=a(4195),V=a(5956),L=a(7595),ne=a(6637),p=a(4806),X=a(7145),h=a(654);function Ae(n,s){1&n&&(e.qex(0),e.nrm(1,"clr-icon",1),e.EFF(2),e.nI1(3,"translate"),e.bVm()),2&n&&(e.R7$(2),e.SpI(" ",e.bMT(3,1,"customer.verified")," "))}function Pe(n,s){1&n&&(e.qex(0),e.nrm(1,"clr-icon",2),e.EFF(2),e.nI1(3,"translate"),e.bVm()),2&n&&(e.R7$(2),e.SpI(" ",e.bMT(3,1,"customer.registered")," "))}function xe(n,s){if(1&n&&(e.j41(0,"vdr-chip"),e.DNE(1,Ae,4,3,"ng-container",0)(2,Pe,4,3,"ng-container",0),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.Y8G("ngIf",null==t.customer.user?null:t.customer.user.verified),e.R7$(),e.Y8G("ngIf",!(null!=t.customer.user&&t.customer.user.verified))}}function Ye(n,s){1&n&&(e.j41(0,"vdr-chip"),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n&&(e.R7$(),e.JRh(e.bMT(2,1,"customer.guest")))}class T{static{this.\u0275fac=function(t){return new(t||T)}}static{this.\u0275cmp=e.VBU({type:T,selectors:[["vdr-customer-status-label"]],inputs:{customer:"customer"},decls:2,vars:2,consts:[[4,"ngIf"],["shape","check-circle",1,"verified-user-icon"],["shape","check-circle",1,"registered-user-icon"]],template:function(t,o){1&t&&e.DNE(0,xe,3,2,"vdr-chip",0)(1,Ye,3,3,"vdr-chip",0),2&t&&(e.Y8G("ngIf",null==o.customer.user?null:o.customer.user.id),e.R7$(),e.Y8G("ngIf",!(null!=o.customer.user&&o.customer.user.id)))},dependencies:[v.U4n,p.bT,X.w,h.D9],styles:[".registered-user-icon[_ngcontent-%COMP%]{color:var(--color-grey-300)}.verified-user-icon[_ngcontent-%COMP%]{color:var(--color-success-500)}"],changeDetection:0})}}var H=a(2953);const Be=n=>["/customer/customers",n];function Ue(n,s){if(1&n&&e.EFF(0),2&n){const t=s.item;e.SpI(" ",t.id," ")}}function Oe(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.createdAt,"short")," ")}}function Ve(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.createdAt,"short")," ")}}function Le(n,s){if(1&n&&(e.j41(0,"a",9)(1,"span"),e.EFF(2),e.k0s(),e.nrm(3,"clr-icon",10),e.k0s()),2&n){const t=s.item;e.Y8G("routerLink",e.eq3(4,Be,t.id)),e.R7$(2),e.E5c(" ",t.title," ",t.firstName," ",t.lastName," ")}}function Xe(n,s){if(1&n&&e.nrm(0,"vdr-customer-status-label",11),2&n){const t=s.item;e.Y8G("customer",t)}}function He(n,s){if(1&n&&e.EFF(0),2&n){const t=s.item;e.SpI(" ",t.emailAddress," ")}}class I{constructor(s,t){this.router=s,this.dataService=t,this.selectedMemberIds=[],this.selectionChange=new e.bkB,this.fetchParamsChange=new e.bkB,this.filterTermControl=new m.MJ(""),this.selectionManager=new c.YlH({multiSelect:!0,itemsAreEqual:(o,r)=>o.id===r.id,additiveMode:!0}),this.refresh$=new F.t(!0),this.destroy$=new q.B}ngOnInit(){this.membersCurrentPage$=this.route.paramMap.pipe((0,u.T)(t=>t.get("membersPage")),(0,u.T)(t=>t?+t:1),(0,O.Z)(1),(0,ee.F)()),this.membersItemsPerPage$=this.route.paramMap.pipe((0,u.T)(t=>t.get("membersPerPage")),(0,u.T)(t=>t?+t:10),(0,O.Z)(10),(0,ee.F)());const s=this.filterTermControl.valueChanges.pipe((0,Ne.B)(250),(0,je.M)(()=>this.setContentsPageNumber(1)),(0,O.Z)(""));(0,U.z)(this.membersCurrentPage$,this.membersItemsPerPage$,s,this.refresh$).pipe((0,ce.Q)(this.destroy$)).subscribe(([t,o,r])=>{const i=o,d=(t-1)*o;this.fetchParamsChange.emit({filterTerm:r??"",skip:d,take:i})}),this.selectionManager.setCurrentItems(this.members?.filter(t=>this.selectedMemberIds.includes(t.id))??[]),this.selectionManager.selectionChanges$.pipe((0,ce.Q)(this.destroy$)).subscribe(t=>{this.selectionChange.emit(t.map(o=>o.id))})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setContentsPageNumber(s){this.setParam("membersPage",s)}setContentsItemsPerPage(s){this.setParam("membersPerPage",s)}refresh(){this.refresh$.next(!0)}setParam(s,t){this.router.navigate(["./",{...this.route.snapshot.params,[s]:t}],{relativeTo:this.route,queryParamsHandling:"merge"})}static{this.\u0275fac=function(t){return new(t||I)(e.rXU(b.Ix),e.rXU(c.uSP))}}static{this.\u0275cmp=e.VBU({type:I,selectors:[["vdr-customer-group-member-list"]],inputs:{locationId:"locationId",members:"members",totalItems:"totalItems",route:"route",selectedMemberIds:"selectedMemberIds",activeGroup:"activeGroup"},outputs:{selectionChange:"selectionChange",fetchParamsChange:"fetchParamsChange"},decls:24,vars:39,consts:[[3,"pageChange","itemsPerPageChange","id","items","itemsPerPage","totalItems","currentPage"],[3,"locationId","hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault"],["id","updated-at",3,"heading","hiddenByDefault"],["id","name",3,"heading","optional"],["id","status",3,"heading","hiddenByDefault"],["id","email-address",3,"heading"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],[3,"customer"]],template:function(t,o){1&t&&(e.j41(0,"vdr-data-table-2",0),e.nI1(1,"async"),e.nI1(2,"async"),e.bIt("pageChange",function(i){return o.setContentsPageNumber(i)})("itemsPerPageChange",function(i){return o.setContentsItemsPerPage(i)}),e.nrm(3,"vdr-bulk-action-menu",1)(4,"vdr-dt2-search",2),e.nI1(5,"translate"),e.j41(6,"vdr-dt2-column",3),e.nI1(7,"translate"),e.DNE(8,Ue,1,1,"ng-template"),e.k0s(),e.j41(9,"vdr-dt2-column",4),e.nI1(10,"translate"),e.DNE(11,Oe,2,4,"ng-template"),e.k0s(),e.j41(12,"vdr-dt2-column",5),e.nI1(13,"translate"),e.DNE(14,Ve,2,4,"ng-template"),e.k0s(),e.j41(15,"vdr-dt2-column",6),e.nI1(16,"translate"),e.DNE(17,Le,4,6,"ng-template"),e.k0s(),e.j41(18,"vdr-dt2-column",7),e.nI1(19,"translate"),e.DNE(20,Xe,1,1,"ng-template"),e.k0s(),e.j41(21,"vdr-dt2-column",8),e.nI1(22,"translate"),e.DNE(23,He,1,1,"ng-template"),e.k0s()()),2&t&&(e.Y8G("id",o.locationId)("items",o.members)("itemsPerPage",e.bMT(1,21,o.membersItemsPerPage$))("totalItems",o.totalItems)("currentPage",e.bMT(2,23,o.membersCurrentPage$)),e.R7$(3),e.Y8G("locationId",o.locationId)("hostComponent",o)("selectionManager",o.selectionManager),e.R7$(),e.Y8G("searchTermControl",o.filterTermControl)("searchTermPlaceholder",e.bMT(5,25,"customer.search-customers-by-email")),e.R7$(2),e.Y8G("heading",e.bMT(7,27,"common.id"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(10,29,"common.created-at"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(13,31,"common.updated-at"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(16,33,"customer.name"))("optional",!1),e.R7$(3),e.Y8G("heading",e.bMT(19,35,"common.status"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(22,37,"customer.email-address")))},dependencies:[v.U4n,b.Wk,te.T,V.I,L.Y,ne.E,T,p.Jj,h.D9,H.P],changeDetection:0})}}const we=n=>({groupName:n}),Je=n=>({count:n});function We(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"translate")),2&n){const t=e.XpG();e.SpI(" ",e.i5U(1,1,"customer.add-customers-to-group-with-name",e.eq3(4,we,t.group.name)),"\n")}}function Qe(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",3),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.cancel())}),e.EFF(1),e.nI1(2,"translate"),e.k0s(),e.j41(3,"button",4),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.add())}),e.EFF(4),e.nI1(5,"translate"),e.k0s()}if(2&n){const t=e.XpG();e.R7$(),e.JRh(e.bMT(2,3,"common.cancel")),e.R7$(2),e.Y8G("disabled",!t.selectedCustomerIds.length),e.R7$(),e.SpI(" ",e.i5U(5,5,"customer.add-customers-to-group-with-count",e.eq3(8,Je,t.selectedCustomerIds.length))," ")}}class D{constructor(s){this.dataService=s,this.selectedCustomerIds=[],this.fetchGroupMembers$=new F.t({skip:0,take:10,filterTerm:""})}ngOnInit(){const s=this.fetchGroupMembers$.pipe((0,C.n)(({skip:t,take:o,filterTerm:r})=>this.dataService.customer.getCustomerList(o,t,r).mapStream(i=>i.customers)));this.customers$=s.pipe((0,u.T)(t=>t.items)),this.customersTotal$=s.pipe((0,u.T)(t=>t.totalItems))}cancel(){this.resolveWith()}add(){this.resolveWith(this.selectedCustomerIds)}static{this.\u0275fac=function(t){return new(t||D)(e.rXU(c.uSP))}}static{this.\u0275cmp=e.VBU({type:D,selectors:[["vdr-add-customer-to-group-dialog"]],decls:5,vars:8,consts:[["vdrDialogTitle",""],["locationId","customer-group-members-picker-list",3,"fetchParamsChange","selectionChange","members","totalItems","route","selectedMemberIds"],["vdrDialogButtons",""],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"click","disabled"]],template:function(t,o){1&t&&(e.DNE(0,We,2,6,"ng-template",0),e.j41(1,"vdr-customer-group-member-list",1),e.nI1(2,"async"),e.nI1(3,"async"),e.bIt("fetchParamsChange",function(i){return o.fetchGroupMembers$.next(i)})("selectionChange",function(i){return o.selectedCustomerIds=i}),e.k0s(),e.DNE(4,Qe,6,10,"ng-template",2)),2&t&&(e.R7$(),e.Y8G("members",e.bMT(2,4,o.customers$))("totalItems",e.bMT(3,6,o.customersTotal$))("route",o.route)("selectedMemberIds",o.selectedCustomerIds))},dependencies:[Y.b,B.M,I,p.Jj,h.D9],changeDetection:0})}}var me=a(740),le=a(2913),ze=a(2023);function Ze(n,s){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&n){const t=s.ngIf;e.R7$(),e.SpI("",t,",")}}function Ke(n,s){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&n){const t=s.ngIf;e.R7$(),e.SpI(" ",t,"")}}function qe(n,s){if(1&n&&e.DNE(0,Ze,2,1,"span",3)(1,Ke,2,1,"span",3),2&n){let t,o;const r=e.XpG();e.Y8G("ngIf",null==(t=r.addressForm.get("streetLine1"))?null:t.value),e.R7$(),e.Y8G("ngIf",null==(o=r.addressForm.get("countryCode"))?null:o.value)}}function et(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",4),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.cancel())}),e.EFF(1),e.nI1(2,"translate"),e.k0s(),e.j41(3,"button",5),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.save())}),e.EFF(4),e.nI1(5,"translate"),e.k0s()}if(2&n){const t=e.XpG();e.R7$(),e.JRh(e.bMT(2,3,"common.cancel")),e.R7$(2),e.Y8G("disabled",!t.addressForm.valid||!t.addressForm.touched),e.R7$(),e.SpI(" ",e.bMT(5,5,"common.update")," ")}}class R{constructor(s){this.changeDetector=s,this.availableCountries=[]}ngOnInit(){this.addressForm.valueChanges.subscribe(()=>this.changeDetector.markForCheck())}cancel(){this.resolveWith()}save(){this.resolveWith(this.addressForm)}static{this.\u0275fac=function(t){return new(t||R)(e.rXU(e.gRc))}}static{this.\u0275cmp=e.VBU({type:R,selectors:[["vdr-address-detail-dialog"]],decls:3,vars:3,consts:[["vdrDialogTitle",""],[3,"formGroup","availableCountries","customFields"],["vdrDialogButtons",""],[4,"ngIf"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"click","disabled"]],template:function(t,o){1&t&&(e.DNE(0,qe,2,2,"ng-template",0),e.nrm(1,"vdr-address-form",1),e.DNE(2,et,6,7,"ng-template",2)),2&t&&(e.R7$(),e.Y8G("formGroup",o.addressForm)("availableCountries",o.availableCountries)("customFields",o.customFields))},dependencies:[p.bT,m.cb,m.j4,Y.b,B.M,ze.O,h.D9],styles:["clr-input-container[_ngcontent-%COMP%]{margin-bottom:12px}"],changeDetection:0})}}var de=a(1787),ue=a(2981),pe=a(6336),_e=a(5483),tt=a(2643),nt=a(6719);function st(n,s){if(1&n&&(e.j41(0,"span",14),e.EFF(1),e.k0s()),2&n){const t=e.XpG().ngIf;e.R7$(),e.SpI("",t.streetLine1,",")}}function ot(n,s){1&n&&(e.j41(0,"vdr-chip",15),e.nrm(1,"clr-icon",16),e.EFF(2),e.nI1(3,"translate"),e.k0s()),2&n&&(e.R7$(2),e.SpI(" ",e.bMT(3,1,"customer.default-shipping-address")," "))}function rt(n,s){1&n&&(e.j41(0,"vdr-chip",15),e.nrm(1,"clr-icon",17),e.EFF(2),e.nI1(3,"translate"),e.k0s()),2&n&&(e.R7$(2),e.SpI(" ",e.bMT(3,1,"customer.default-billing-address")," "))}function it(n,s){if(1&n){const t=e.RV6();e.qex(0),e.j41(1,"button",18),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.editAddress())}),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.j41(4,"vdr-dropdown")(5,"button",19),e.EFF(6),e.nI1(7,"translate"),e.nrm(8,"clr-icon",20),e.k0s(),e.j41(9,"vdr-dropdown-menu")(10,"button",21),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.setAsDefaultShippingAddress())}),e.EFF(11),e.nI1(12,"translate"),e.k0s(),e.j41(13,"button",21),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.setAsDefaultBillingAddress())}),e.EFF(14),e.nI1(15,"translate"),e.k0s(),e.nrm(16,"div",22),e.j41(17,"button",23),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.delete())}),e.nrm(18,"clr-icon",24),e.EFF(19),e.nI1(20,"translate"),e.k0s()()(),e.bVm()}if(2&n){const t=e.XpG(2);e.R7$(2),e.SpI(" ",e.bMT(3,7,"common.edit")," "),e.R7$(4),e.SpI(" ",e.bMT(7,9,"common.more")," "),e.R7$(4),e.Y8G("disabled",t.isDefaultShipping),e.R7$(),e.SpI(" ",e.bMT(12,11,"customer.set-as-default-shipping-address")," "),e.R7$(2),e.Y8G("disabled",t.isDefaultBilling),e.R7$(),e.SpI(" ",e.bMT(15,13,"customer.set-as-default-billing-address")," "),e.R7$(5),e.SpI(" ",e.bMT(20,15,"common.delete")," ")}}function at(n,s){if(1&n&&(e.j41(0,"div",1)(1,"div",2)(2,"div",3),e.DNE(3,st,2,1,"span",4),e.EFF(4),e.k0s(),e.j41(5,"div",5),e.DNE(6,ot,4,3,"vdr-chip",6)(7,rt,4,3,"vdr-chip",6),e.k0s()(),e.j41(8,"div",7)(9,"div",8),e.nrm(10,"vdr-formatted-address",9),e.k0s()(),e.j41(11,"div",10)(12,"div",11),e.nrm(13,"vdr-entity-info",12),e.DNE(14,it,21,17,"ng-container",13),e.k0s()()()),2&n){const t=s.ngIf,o=e.XpG();e.R7$(3),e.Y8G("ngIf",t.streetLine1),e.R7$(),e.SpI(" ",t.countryCode," "),e.R7$(2),e.Y8G("ngIf",o.isDefaultShipping),e.R7$(),e.Y8G("ngIf",o.isDefaultBilling),e.R7$(3),e.Y8G("address",t),e.R7$(3),e.Y8G("entity",t),e.R7$(),e.Y8G("ngIf",o.editable)}}class ${constructor(s,t){this.modalService=s,this.changeDetector=t,this.availableCountries=[],this.editable=!0,this.setAsDefaultShipping=new e.bkB,this.setAsDefaultBilling=new e.bkB,this.deleteAddress=new e.bkB,this.dataDependenciesPopulated=new F.t(!1)}ngOnInit(){this.addressForm.get("streetLine1").value||this.dataDependenciesPopulated.pipe((0,me.p)(t=>t),(0,le.s)(1)).subscribe(()=>{this.editAddress()})}ngOnChanges(s){null!=this.customFields&&null!=this.availableCountries&&this.dataDependenciesPopulated.next(!0)}getCountryName(s){if(!this.availableCountries)return"";const t=this.availableCountries.find(o=>o.code===s);return t?t.name:""}setAsDefaultBillingAddress(){this.setAsDefaultBilling.emit(this.addressForm.value.id),this.addressForm.markAsDirty()}setAsDefaultShippingAddress(){this.setAsDefaultShipping.emit(this.addressForm.value.id),this.addressForm.markAsDirty()}delete(){this.deleteAddress.emit(this.addressForm.value.id),this.addressForm.markAsDirty()}editAddress(){this.modalService.fromComponent(R,{locals:{addressForm:this.addressForm,customFields:this.customFields,availableCountries:this.availableCountries},size:"md",closable:!0}).subscribe(()=>{this.changeDetector.markForCheck()})}static{this.\u0275fac=function(t){return new(t||$)(e.rXU(c.Bg8),e.rXU(e.gRc))}}static{this.\u0275cmp=e.VBU({type:$,selectors:[["vdr-address-card"]],inputs:{addressForm:"addressForm",customFields:"customFields",availableCountries:"availableCountries",isDefaultBilling:"isDefaultBilling",isDefaultShipping:"isDefaultShipping",editable:"editable"},outputs:{setAsDefaultShipping:"setAsDefaultShipping",setAsDefaultBilling:"setAsDefaultBilling",deleteAddress:"deleteAddress"},features:[e.OA$],decls:1,vars:1,consts:[["class","card",4,"ngIf"],[1,"card"],[1,"card-header"],[1,"address-title"],["class","street-line",4,"ngIf"],[1,"default-controls"],["class","is-default p8",4,"ngIf"],[1,"card-block"],[1,"card-text"],[3,"address"],[1,"card-footer"],[1,"address-actions"],[3,"entity"],[4,"ngIf"],[1,"street-line"],[1,"is-default","p8"],["shape","truck"],["shape","credit-card"],[1,"button-small",3,"click"],["type","button","vdrDropdownTrigger","",1,"button-small"],["shape","ellipsis-vertical","size","12"],["vdrDropdownItem","",3,"click","disabled"],[1,"dropdown-divider"],["type","button","vdrDropdownItem","",3,"click"],["shape","trash",1,"is-danger"]],template:function(t,o){1&t&&e.DNE(0,at,15,7,"div",0),2&t&&e.Y8G("ngIf",o.addressForm.value)},dependencies:[v.U4n,p.bT,X.w,de.P,ue.q,pe.j,_e.M,tt.W,nt.n,h.D9],styles:["[_nghost-%COMP%]{display:block;max-width:360px}clr-input-container[_ngcontent-%COMP%]{margin-bottom:12px}.defaul-controls[_ngcontent-%COMP%]{display:flex}.is-default[_ngcontent-%COMP%]{margin:0;color:var(--color-success-500)}.address-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--space-unit)}.address-actions[_ngcontent-%COMP%] vdr-entity-info[_ngcontent-%COMP%]{margin-top:1px}"],changeDetection:0})}}var l=a(9595),ct=a(7081),w=a(2985),mt=a(2132),ge=a(141),E=a(9103),lt=a(8422),dt=a(6030);const{isArray:ut}=Array;var _t=a(1589),he=a(3846);function gt(...n){const s=(0,he.lI)(n),t=(0,he.R0)(n,1/0);return n=function pt(n){return 1===n.length&&ut(n[0])?n[0]:n}(n),(0,dt.N)((o,r)=>{(0,_t.U)(t)((0,ge.H)([o,...n],s)).subscribe(r)})}var ht=a(2855),ft=a(1146),se=a(2810);const Ct=n=>({count:n});function bt(n,s){1&n&&(e.EFF(0),e.nI1(1,"translate")),2&n&&e.SpI(" ",e.bMT(1,1,"customer.add-customer-to-group"),"\n")}function vt(n,s){if(1&n){const t=e.RV6();e.j41(0,"span",5),e.bIt("click",function(){const r=e.eBV(t),i=r.item,d=r.clear;return e.Njj(d(i))}),e.EFF(1," \xd7 "),e.k0s(),e.j41(2,"vdr-chip",6),e.EFF(3),e.k0s()}if(2&n){const t=s.item;e.R7$(2),e.Y8G("colorFrom",t.id),e.R7$(),e.JRh(t.name)}}function Tt(n,s){if(1&n&&(e.j41(0,"vdr-chip",6),e.EFF(1),e.k0s()),2&n){const t=s.item;e.Y8G("colorFrom",t.id),e.R7$(),e.JRh(t.name)}}function It(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",7),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.cancel())}),e.EFF(1),e.nI1(2,"translate"),e.k0s(),e.j41(3,"button",8),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.add())}),e.EFF(4),e.nI1(5,"translate"),e.k0s()}if(2&n){const t=e.XpG();e.R7$(),e.JRh(e.bMT(2,3,"common.cancel")),e.R7$(2),e.Y8G("disabled",!t.selectedGroupIds.length),e.R7$(),e.SpI(" ",e.i5U(5,5,"customer.add-customer-to-groups-with-count",e.eq3(8,Ct,t.selectedGroupIds.length))," ")}}class S{constructor(s){this.dataService=s,this.selectedGroupIds=[]}ngOnInit(){this.groups$=this.dataService.customer.getCustomerGroupList().mapStream(s=>s.customerGroups.items)}cancel(){this.resolveWith()}add(){this.resolveWith(this.selectedGroupIds)}static{this.\u0275fac=function(t){return new(t||S)(e.rXU(c.uSP))}}static{this.\u0275cmp=e.VBU({type:S,selectors:[["vdr-select-customer-group-dialog"]],decls:6,vars:8,consts:[["vdrDialogTitle",""],["appendTo","body","bindValue","id",3,"ngModelChange","items","addTag","multiple","ngModel","clearable","searchable"],["ng-label-tmp",""],["ng-option-tmp",""],["vdrDialogButtons",""],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[3,"colorFrom"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"click","disabled"]],template:function(t,o){1&t&&(e.DNE(0,bt,2,3,"ng-template",0),e.j41(1,"ng-select",1),e.nI1(2,"async"),e.mxI("ngModelChange",function(i){return e.DH7(o.selectedGroupIds,i)||(o.selectedGroupIds=i),i}),e.DNE(3,vt,4,2,"ng-template",2)(4,Tt,2,2,"ng-template",3),e.k0s(),e.DNE(5,It,6,10,"ng-template",4)),2&t&&(e.R7$(),e.Y8G("items",e.bMT(2,6,o.groups$))("addTag",!1)("multiple",!0),e.R50("ngModel",o.selectedGroupIds),e.Y8G("clearable",!0)("searchable",!1))},dependencies:[m.BC,m.vS,se.vr,se.Uq,se.ZZ,X.w,Y.b,B.M,p.Jj,h.D9],changeDetection:0})}}var f=a(273),J=a(3869),oe=a(4763),W=a(5889),yt=a(163),fe=a(945),M=a(1534),Q=a(7395),re=a(4585),Ce=a(8097),be=a(2124),z=a(8995),ve=a(8557),Te=a(8205),Ie=a(3849),ye=a(3161),Gt=a(1195),Ge=a(2337),Ft=a(8387);const Dt=["portal"];class k{constructor(s){this.historyEntryComponentService=s,this.expandClick=new e.bkB}ngOnInit(){const s=this.historyEntryComponentService.getComponent(this.entry.type),t=this.portalRef.createComponent(s);t.instance.entry=this.entry,t.instance.customer=this.customer,this.instance=t.instance,this.componentRef=t}ngOnDestroy(){this.componentRef?.destroy()}static{this.\u0275fac=function(t){return new(t||k)(e.rXU(c.HMZ))}}static{this.\u0275cmp=e.VBU({type:k,selectors:[["vdr-customer-history-entry-host"]],viewQuery:function(t,o){if(1&t&&e.GBs(Dt,7,e.c1b),2&t){let r;e.mGM(r=e.lsd())&&(o.portalRef=r.first)}},inputs:{entry:"entry",customer:"customer",expanded:"expanded"},outputs:{expandClick:"expandClick"},exportAs:["historyEntry"],decls:3,vars:6,consts:[["portal",""],[3,"expandClick","displayType","iconShape","createdAt","name","featured","collapsed"]],template:function(t,o){if(1&t){const r=e.RV6();e.j41(0,"vdr-timeline-entry",1),e.bIt("expandClick",function(){return e.eBV(r),e.Njj(o.expandClick.emit())}),e.nrm(1,"div",null,0),e.k0s()}2&t&&e.Y8G("displayType",o.instance.getDisplayType(o.entry))("iconShape",o.instance.getIconShape&&o.instance.getIconShape(o.entry))("createdAt",o.entry.createdAt)("name",o.instance.getName&&o.instance.getName(o.entry))("featured",o.instance.isFeatured(o.entry))("collapsed",!o.expanded&&!o.instance.isFeatured(o.entry))},dependencies:[Ge.r],encapsulation:2})}}var ie=a(4612);const Fe=n=>({strategy:n}),De=n=>({groupName:n});function Rt(n,s){if(1&n){const t=e.RV6();e.j41(0,"vdr-timeline-entry",6)(1,"div",7)(2,"textarea",8),e.mxI("ngModelChange",function(r){e.eBV(t);const i=e.XpG();return e.DH7(i.note,r)||(i.note=r),e.Njj(r)}),e.k0s(),e.j41(3,"button",9),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.addNoteToCustomer())}),e.EFF(4),e.nI1(5,"translate"),e.k0s()()()}if(2&n){const t=e.XpG();e.Y8G("featured",!0)("isFirst",!0),e.R7$(2),e.R50("ngModel",t.note),e.R7$(),e.Y8G("disabled",!t.note),e.R7$(),e.SpI(" ",e.bMT(5,5,"order.add-note")," ")}}function $t(n,s){if(1&n){const t=e.RV6();e.j41(0,"vdr-customer-history-entry-host",11),e.bIt("expandClick",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.expanded=!r.expanded)}),e.k0s()}if(2&n){const t=e.XpG().$implicit,o=e.XpG();e.Y8G("customer",o.customer)("entry",t)("expanded",o.expanded)}}function Et(n,s){1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"customer.history-using-native-auth-strategy")," "))}function St(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"translate")),2&n){const t=e.XpG(3).$implicit;e.SpI(" ",e.i5U(1,1,"customer.history-using-external-auth-strategy",e.eq3(4,Fe,t.data.strategy))," ")}}function Mt(n,s){if(1&n&&(e.qex(0),e.j41(1,"div",16),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.DNE(4,Et,3,3,"ng-container",17)(5,St,2,6,"ng-template",null,1,e.C5r),e.bVm()),2&n){const t=e.sdS(6),o=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",e.bMT(3,3,"customer.history-customer-registered")," "),e.R7$(2),e.Y8G("ngIf","native"===o.data.strategy)("ngIfElse",t)}}function kt(n,s){1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"customer.history-using-native-auth-strategy")," "))}function Nt(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"translate")),2&n){const t=e.XpG(3).$implicit;e.SpI(" ",e.i5U(1,1,"customer.history-using-external-auth-strategy",e.eq3(4,Fe,t.data.strategy))," ")}}function jt(n,s){if(1&n&&(e.qex(0),e.j41(1,"div",16),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.DNE(4,kt,3,3,"ng-container",17)(5,Nt,2,6,"ng-template",null,1,e.C5r),e.bVm()),2&n){const t=e.sdS(6),o=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",e.bMT(3,3,"customer.history-customer-verified")," "),e.R7$(2),e.Y8G("ngIf","native"===o.data.strategy)("ngIfElse",t)}}function At(n,s){if(1&n&&(e.qex(0),e.j41(1,"div",18),e.EFF(2),e.nI1(3,"translate"),e.j41(4,"vdr-history-entry-detail"),e.nrm(5,"vdr-object-tree",19),e.k0s()(),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",e.bMT(3,2,"customer.history-customer-detail-updated")," "),e.R7$(3),e.Y8G("value",t.data.input)}}function Pt(n,s){if(1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",e.i5U(2,1,"customer.history-customer-added-to-group",e.eq3(4,De,t.data.groupName))," ")}}function xt(n,s){if(1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",e.i5U(2,1,"customer.history-customer-removed-from-group",e.eq3(4,De,t.data.groupName))," ")}}function Yt(n,s){if(1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.j41(3,"div",18)(4,"div",20),e.EFF(5),e.k0s()(),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",e.bMT(2,2,"customer.history-customer-address-created")," "),e.R7$(4),e.JRh(t.data.address)}}function Bt(n,s){if(1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.j41(3,"div",18)(4,"div",20),e.EFF(5),e.k0s(),e.j41(6,"vdr-history-entry-detail"),e.nrm(7,"vdr-object-tree",19),e.k0s()(),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",e.bMT(2,3,"customer.history-customer-address-updated")," "),e.R7$(4),e.JRh(t.data.address),e.R7$(2),e.Y8G("value",t.data.input)}}function Ut(n,s){if(1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.j41(3,"div",20),e.EFF(4),e.k0s(),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",e.bMT(2,2,"customer.history-customer-address-deleted")," "),e.R7$(3),e.JRh(t.data.address)}}function Ot(n,s){1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"customer.history-customer-password-updated")," "))}function Vt(n,s){1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"customer.history-customer-password-reset-requested")," "))}function Lt(n,s){1&n&&(e.qex(0),e.EFF(1),e.nI1(2,"translate"),e.bVm()),2&n&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"customer.history-customer-password-reset-verified")," "))}function Xt(n,s){if(1&n&&(e.qex(0),e.j41(1,"div",18),e.EFF(2),e.nI1(3,"translate"),e.j41(4,"vdr-history-entry-detail")(5,"vdr-labeled-data",21),e.nI1(6,"translate"),e.EFF(7),e.k0s(),e.j41(8,"vdr-labeled-data",21),e.nI1(9,"translate"),e.EFF(10),e.k0s()()(),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",e.bMT(3,5,"customer.history-customer-email-update-requested")," "),e.R7$(3),e.Y8G("label",e.bMT(6,7,"customer.old-email-address")),e.R7$(2),e.SpI("",t.data.oldEmailAddress," "),e.R7$(),e.Y8G("label",e.bMT(9,9,"customer.new-email-address")),e.R7$(2),e.SpI("",t.data.newEmailAddress," ")}}function Ht(n,s){if(1&n&&(e.qex(0),e.j41(1,"div",18),e.EFF(2),e.nI1(3,"translate"),e.j41(4,"vdr-history-entry-detail")(5,"vdr-labeled-data",21),e.nI1(6,"translate"),e.EFF(7),e.k0s(),e.j41(8,"vdr-labeled-data",21),e.nI1(9,"translate"),e.EFF(10),e.k0s()()(),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",e.bMT(3,5,"customer.history-customer-email-update-verified")," "),e.R7$(3),e.Y8G("label",e.bMT(6,7,"customer.old-email-address")),e.R7$(2),e.SpI("",t.data.oldEmailAddress," "),e.R7$(),e.Y8G("label",e.bMT(9,9,"customer.new-email-address")),e.R7$(2),e.SpI("",t.data.newEmailAddress," ")}}function wt(n,s){if(1&n){const t=e.RV6();e.qex(0),e.j41(1,"div",18)(2,"div",22),e.EFF(3),e.k0s(),e.nrm(4,"div",23),e.j41(5,"vdr-dropdown")(6,"button",24),e.nrm(7,"clr-icon",25),e.k0s(),e.j41(8,"vdr-dropdown-menu",26)(9,"button",27),e.nI1(10,"hasPermission"),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2).$implicit,i=e.XpG();return e.Njj(i.updateNote.emit(r))}),e.nrm(11,"clr-icon",28),e.EFF(12),e.nI1(13,"translate"),e.k0s(),e.nrm(14,"div",29),e.j41(15,"button",27),e.nI1(16,"hasPermission"),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2).$implicit,i=e.XpG();return e.Njj(i.deleteNote.emit(r))}),e.nrm(17,"clr-icon",30),e.EFF(18),e.nI1(19,"translate"),e.k0s()()()(),e.bVm()}if(2&n){const t=e.XpG(2).$implicit;e.R7$(3),e.SpI(" ",t.data.note," "),e.R7$(6),e.Y8G("disabled",!e.bMT(10,5,"UpdateCustomer")),e.R7$(3),e.SpI(" ",e.bMT(13,7,"common.edit")," "),e.R7$(3),e.Y8G("disabled",!e.bMT(16,9,"UpdateCustomer")),e.R7$(3),e.SpI(" ",e.bMT(19,11,"common.delete")," ")}}function Jt(n,s){if(1&n&&(e.j41(0,"vdr-history-entry-detail"),e.nrm(1,"vdr-object-tree",19),e.k0s()),2&n){const t=e.XpG(3).$implicit;e.R7$(),e.Y8G("value",t.data)}}function Wt(n,s){if(1&n&&(e.qex(0),e.j41(1,"div",16),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.DNE(4,Jt,2,1,"vdr-history-entry-detail",31),e.bVm()),2&n){const t=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",e.bMT(3,2,t.type)," "),e.R7$(2),e.Y8G("ngIf",t.data)}}function Qt(n,s){if(1&n&&(e.j41(0,"vdr-timeline-entry",12),e.qex(1,13),e.DNE(2,Mt,7,5,"ng-container",14)(3,jt,7,5,"ng-container",14)(4,At,6,4,"ng-container",14)(5,Pt,3,6,"ng-container",14)(6,xt,3,6,"ng-container",14)(7,Yt,6,4,"ng-container",14)(8,Bt,8,5,"ng-container",14)(9,Ut,5,4,"ng-container",14)(10,Ot,3,3,"ng-container",14)(11,Vt,3,3,"ng-container",14)(12,Lt,3,3,"ng-container",14)(13,Xt,11,11,"ng-container",14)(14,Ht,11,11,"ng-container",14)(15,wt,20,13,"ng-container",14)(16,Wt,5,4,"ng-container",15),e.bVm(),e.k0s()),2&n){const t=e.XpG().$implicit,o=e.XpG();e.Y8G("displayType",o.getDisplayType(t))("iconShape",o.getTimelineIcon(t))("createdAt",t.createdAt)("name",o.getName(t))("featured",o.isFeatured(t)),e.R7$(),e.Y8G("ngSwitch",t.type),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_REGISTERED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_VERIFIED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_DETAIL_UPDATED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_ADDED_TO_GROUP),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_REMOVED_FROM_GROUP),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_ADDRESS_CREATED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_ADDRESS_UPDATED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_ADDRESS_DELETED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_PASSWORD_UPDATED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_PASSWORD_RESET_REQUESTED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_PASSWORD_RESET_VERIFIED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_EMAIL_UPDATE_REQUESTED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_EMAIL_UPDATE_VERIFIED),e.R7$(),e.Y8G("ngSwitchCase",o.type.CUSTOMER_NOTE)}}function zt(n,s){if(1&n&&(e.qex(0),e.DNE(1,$t,1,3,"vdr-customer-history-entry-host",10)(2,Qt,17,20,"ng-template",null,0,e.C5r),e.bVm()),2&n){const t=s.$implicit,o=e.sdS(3),r=e.XpG();e.R7$(),e.Y8G("ngIf",r.hasCustomComponent(t.type))("ngIfElse",o)}}class N{constructor(s){this.historyEntryComponentService=s,this.addNote=new e.bkB,this.updateNote=new e.bkB,this.deleteNote=new e.bkB,this.note="",this.expanded=!1,this.type=c.Htj}hasCustomComponent(s){return!!this.historyEntryComponentService.getComponent(s)}getDisplayType(s){switch(s.type){case c.Htj.CUSTOMER_VERIFIED:case c.Htj.CUSTOMER_EMAIL_UPDATE_VERIFIED:case c.Htj.CUSTOMER_PASSWORD_RESET_VERIFIED:return"success";case c.Htj.CUSTOMER_REGISTERED:return"muted";case c.Htj.CUSTOMER_REMOVED_FROM_GROUP:return"error";default:return"default"}}getTimelineIcon(s){switch(s.type){case c.Htj.CUSTOMER_REGISTERED:return"user";case c.Htj.CUSTOMER_VERIFIED:return["assign-user","is-solid"];case c.Htj.CUSTOMER_NOTE:return"note";case c.Htj.CUSTOMER_ADDED_TO_GROUP:case c.Htj.CUSTOMER_REMOVED_FROM_GROUP:return"users"}}isFeatured(s){switch(s.type){case c.Htj.CUSTOMER_REGISTERED:case c.Htj.CUSTOMER_VERIFIED:return!0;default:return!1}}getName(s){const{administrator:t}=s;return t?`${t.firstName} ${t.lastName}`:`${this.customer.firstName} ${this.customer.lastName}`}addNoteToCustomer(){this.addNote.emit({note:this.note}),this.note=""}static{this.\u0275fac=function(t){return new(t||N)(e.rXU(c.HMZ))}}static{this.\u0275cmp=e.VBU({type:N,selectors:[["vdr-customer-history"]],inputs:{customer:"customer",history:"history"},outputs:{addNote:"addNote",updateNote:"updateNote",deleteNote:"deleteNote"},decls:4,vars:3,consts:[["defaultComponents",""],["namedStrategy",""],[1,"entry-list"],["iconShape","note","displayType","muted",3,"featured","isFirst",4,"vdrIfPermissions"],[4,"ngFor","ngForOf"],[3,"isLast"],["iconShape","note","displayType","muted",3,"featured","isFirst"],[1,"note-entry"],["name","note",1,"note",3,"ngModelChange","ngModel"],[1,"btn","btn-secondary",3,"click","disabled"],[3,"customer","entry","expanded","expandClick",4,"ngIf","ngIfElse"],[3,"expandClick","customer","entry","expanded"],[3,"displayType","iconShape","createdAt","name","featured"],[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[1,"title"],[4,"ngIf","ngIfElse"],[1,"flex"],[3,"value"],[1,"address-string"],[3,"label"],[1,"note-text"],[1,"flex-spacer"],["vdrDropdownTrigger","",1,"button-small","ml-1"],["shape","ellipsis-vertical","size","12"],["vdrPosition","bottom-right"],["vdrDropdownItem","",3,"click","disabled"],["shape","edit"],[1,"dropdown-divider"],["shape","trash",1,"is-danger"],[4,"ngIf"]],template:function(t,o){1&t&&(e.j41(0,"div",2),e.DNE(1,Rt,6,7,"vdr-timeline-entry",3)(2,zt,4,2,"ng-container",4),e.nrm(3,"vdr-timeline-entry",5),e.k0s()),2&t&&(e.R7$(),e.Y8G("vdrIfPermissions","UpdateCustomer"),e.R7$(),e.Y8G("ngForOf",o.history),e.R7$(),e.Y8G("isLast",!0))},dependencies:[v.U4n,p.Sq,p.bT,p.ux,p.e1,p.fG,m.me,m.BC,m.vS,W.V,de.P,ue.q,pe.j,_e.M,fe.B,Gt.T,M.p,Ge.r,Ft.f,k,h.D9,ie.E],styles:[".entry-list[_ngcontent-%COMP%]{margin:24px 12px 24px 24px}.note-entry[_ngcontent-%COMP%]{display:flex;align-items:center}.note-entry[_ngcontent-%COMP%] .note[_ngcontent-%COMP%]{flex:1}.note-entry[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:0}textarea.note[_ngcontent-%COMP%]{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text[_ngcontent-%COMP%]{color:var(--color-text-100);white-space:pre-wrap}.address-string[_ngcontent-%COMP%]{font-size:smaller;color:var(--color-text-200)}"],changeDetection:0})}}var Zt=a(1955),Kt=a(3932);const qt=()=>["UpdateCustomer"],en=n=>["/orders",n];function tn(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",22),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.create())}),e.EFF(1),e.nI1(2,"translate"),e.k0s()}if(2&n){const t=e.XpG();e.Y8G("disabled",!(t.addressDefaultsUpdated||t.detailForm.valid&&t.detailForm.dirty)),e.R7$(),e.SpI(" ",e.bMT(2,2,"common.create")," ")}}function nn(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",22),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.save())}),e.EFF(1),e.nI1(2,"translate"),e.k0s()}if(2&n){const t=e.XpG(2);e.Y8G("disabled",!(t.addressDefaultsUpdated||t.detailForm.valid&&t.detailForm.dirty)),e.R7$(),e.SpI(" ",e.bMT(2,2,"common.update")," ")}}function sn(n,s){1&n&&e.DNE(0,nn,3,4,"button",23),2&n&&e.Y8G("vdrIfPermissions","UpdateCustomer")}function on(n,s){if(1&n&&(e.j41(0,"vdr-labeled-data",26),e.nI1(1,"translate"),e.j41(2,"time",27),e.EFF(3),e.nI1(4,"timeAgo"),e.k0s()()),2&n){const t=s.ngIf;e.Y8G("label",e.bMT(1,3,"customer.last-login")),e.R7$(2),e.Y8G("dateTime",t),e.R7$(),e.JRh(e.bMT(4,5,t))}}function rn(n,s){if(1&n&&(e.j41(0,"vdr-card"),e.nrm(1,"vdr-customer-status-label",24),e.DNE(2,on,5,7,"vdr-labeled-data",25),e.k0s()),2&n){const t=s.ngIf;e.R7$(),e.Y8G("customer",t),e.R7$(),e.Y8G("ngIf",null==t.user?null:t.user.lastLogin)}}function an(n,s){if(1&n){const t=e.RV6();e.j41(0,"vdr-chip",32),e.bIt("iconClick",function(){const r=e.eBV(t).$implicit,i=e.XpG(3);return e.Njj(i.removeFromGroup(r))}),e.EFF(1),e.k0s()}if(2&n){const t=s.$implicit;e.Y8G("colorFrom",t.id),e.R7$(),e.JRh(t.name)}}function cn(n,s){if(1&n&&(e.j41(0,"div"),e.DNE(1,an,2,2,"vdr-chip",31),e.k0s()),2&n){const t=e.XpG().ngIf;e.R7$(),e.Y8G("ngForOf",t)}}function mn(n,s){1&n&&(e.j41(0,"span",33),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n&&(e.R7$(),e.SpI(" ",e.bMT(2,1,"customer.not-a-member-of-any-groups")," "))}function ln(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",34),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.addToGroup())}),e.nrm(1,"clr-icon",35),e.EFF(2),e.nI1(3,"translate"),e.k0s()}2&n&&(e.R7$(2),e.SpI(" ",e.bMT(3,1,"customer.add-customer-to-group")," "))}function dn(n,s){if(1&n&&(e.j41(0,"vdr-card",28),e.nI1(1,"translate"),e.DNE(2,cn,2,1,"div",29)(3,mn,3,3,"ng-template",null,1,e.C5r),e.j41(5,"div"),e.DNE(6,ln,4,3,"button",30),e.k0s()()),2&n){const t=s.ngIf,o=e.sdS(4);e.Y8G("title",e.bMT(1,4,"customer.customer-groups")),e.R7$(2),e.Y8G("ngIf",t.length)("ngIfElse",o),e.R7$(4),e.Y8G("vdrIfPermissions","UpdateCustomerGroup")}}function un(n,s){if(1&n&&e.nrm(0,"vdr-page-entity-info",36),2&n){const t=s.ngIf;e.Y8G("entity",t)}}function pn(n,s){1&n&&(e.j41(0,"vdr-form-field",37),e.nI1(1,"translate"),e.nrm(2,"input",38),e.k0s()),2&n&&e.Y8G("label",e.bMT(1,1,"customer.password"))}function _n(n,s){if(1&n&&(e.j41(0,"vdr-card",39),e.nI1(1,"translate"),e.nrm(2,"vdr-tabbed-custom-fields",40),e.k0s()),2&n){const t=e.XpG();e.Y8G("title",e.bMT(1,3,"common.custom-fields")),e.R7$(2),e.Y8G("customFields",t.customFields)("customFieldsFormGroup",t.detailForm.get("customer.customFields"))}}function gn(n,s){if(1&n){const t=e.RV6();e.j41(0,"vdr-address-card",55),e.nI1(1,"async"),e.nI1(2,"hasPermission"),e.bIt("setAsDefaultBilling",function(r){e.eBV(t);const i=e.XpG(2);return e.Njj(i.setDefaultBillingAddressId(r))})("setAsDefaultShipping",function(r){e.eBV(t);const i=e.XpG(2);return e.Njj(i.setDefaultShippingAddressId(r))})("deleteAddress",function(r){e.eBV(t);const i=e.XpG(2);return e.Njj(i.toggleDeleteAddress(r))}),e.k0s()}if(2&n){const t=s.$implicit,o=e.XpG(2);e.AVh("to-delete",o.addressesToDeleteIds.has(t.value.id)),e.Y8G("availableCountries",e.bMT(1,8,o.availableCountries$))("isDefaultBilling",o.defaultBillingAddressId===t.value.id)("isDefaultShipping",o.defaultShippingAddressId===t.value.id)("addressForm",t)("customFields",o.addressCustomFields)("editable",e.bMT(2,10,e.lJ4(12,qt))&&!o.addressesToDeleteIds.has(t.value.id))}}function hn(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",56),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.addAddress())}),e.nrm(1,"clr-icon",35),e.EFF(2),e.nI1(3,"translate"),e.k0s()}2&n&&(e.R7$(2),e.SpI(" ",e.bMT(3,1,"customer.create-new-address")," "))}function fn(n,s){if(1&n&&e.EFF(0),2&n){const t=s.item;e.SpI(" ",t.id," ")}}function Cn(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.createdAt,"short")," ")}}function bn(n,s){if(1&n&&(e.j41(0,"a",57)(1,"span"),e.EFF(2),e.k0s(),e.nrm(3,"clr-icon",58),e.k0s()),2&n){const t=s.item;e.Y8G("routerLink",e.eq3(2,en,t.id)),e.R7$(2),e.JRh(t.code)}}function vn(n,s){if(1&n&&(e.j41(0,"vdr-chip"),e.EFF(1),e.k0s()),2&n){const t=s.item;e.R7$(),e.JRh(t.type)}}function Tn(n,s){if(1&n&&e.nrm(0,"vdr-order-state-label",59),2&n){const t=s.item;e.Y8G("state",t.state)}}function In(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeCurrency")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.totalWithTax,t.currencyCode)," ")}}function yn(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"timeAgo")),2&n){const t=s.item;e.SpI(" ",e.bMT(1,1,t.updatedAt)," ")}}function Gn(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.orderPlacedAt,"short")," ")}}function Fn(n,s){if(1&n&&e.nrm(0,"vdr-dt2-custom-field-column",60),2&n){const t=s.$implicit;e.Y8G("customField",t)}}function Dn(n,s){if(1&n){const t=e.RV6();e.qex(0),e.j41(1,"vdr-card",28),e.nI1(2,"translate"),e.j41(3,"div",8),e.DNE(4,gn,3,13,"vdr-address-card",41),e.k0s(),e.DNE(5,hn,4,3,"button",42),e.k0s(),e.j41(6,"vdr-card",43),e.nI1(7,"translate"),e.j41(8,"vdr-data-table-2",44),e.nI1(9,"async"),e.nI1(10,"async"),e.nI1(11,"translate"),e.bIt("itemsPerPageChange",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.setOrderItemsPerPage(r))})("pageChange",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.setOrderCurrentPage(r))}),e.j41(12,"vdr-dt2-column",45),e.nI1(13,"translate"),e.DNE(14,fn,1,1,"ng-template"),e.k0s(),e.j41(15,"vdr-dt2-column",46),e.nI1(16,"translate"),e.DNE(17,Cn,2,4,"ng-template"),e.k0s(),e.j41(18,"vdr-dt2-column",47),e.nI1(19,"translate"),e.DNE(20,bn,4,4,"ng-template"),e.k0s(),e.j41(21,"vdr-dt2-column",48),e.nI1(22,"translate"),e.DNE(23,vn,2,1,"ng-template"),e.k0s(),e.j41(24,"vdr-dt2-column",49),e.nI1(25,"translate"),e.DNE(26,Tn,1,1,"ng-template"),e.k0s(),e.j41(27,"vdr-dt2-column",50),e.nI1(28,"translate"),e.DNE(29,In,2,4,"ng-template"),e.k0s(),e.j41(30,"vdr-dt2-column",51),e.nI1(31,"translate"),e.DNE(32,yn,2,3,"ng-template"),e.k0s(),e.j41(33,"vdr-dt2-column",52),e.nI1(34,"translate"),e.DNE(35,Gn,2,4,"ng-template"),e.k0s(),e.DNE(36,Fn,1,1,"vdr-dt2-custom-field-column",53),e.k0s()(),e.j41(37,"vdr-card",28),e.nI1(38,"translate"),e.j41(39,"vdr-customer-history",54),e.nI1(40,"async"),e.nI1(41,"async"),e.bIt("addNote",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.addNoteToCustomer(r))})("updateNote",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.updateNote(r))})("deleteNote",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.deleteNote(r))}),e.k0s()(),e.bVm()}if(2&n){const t=e.XpG();e.R7$(),e.Y8G("title",e.bMT(2,26,"customer.addresses")),e.R7$(3),e.Y8G("ngForOf",t.getAddressFormControls()),e.R7$(),e.Y8G("vdrIfPermissions","UpdateCustomer"),e.R7$(),e.Y8G("title",e.bMT(7,28,"customer.orders"))("paddingX",!1),e.R7$(2),e.Y8G("items",e.bMT(9,30,t.orders$))("itemsPerPage",t.ordersPerPage)("totalItems",e.bMT(10,32,t.ordersCount$))("currentPage",t.currentOrdersPage)("emptyStateLabel",e.bMT(11,34,"customer.no-orders-placed")),e.R7$(4),e.Y8G("heading",e.bMT(13,36,"common.id"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(16,38,"common.created-at"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(19,40,"common.code"))("optional",!1),e.R7$(3),e.Y8G("heading",e.bMT(22,42,"order.order-type"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(25,44,"order.state")),e.R7$(3),e.Y8G("heading",e.bMT(28,46,"order.total")),e.R7$(3),e.Y8G("heading",e.bMT(31,48,"common.updated-at")),e.R7$(3),e.Y8G("heading",e.bMT(34,50,"order.placed-at")),e.R7$(3),e.Y8G("ngForOf",t.customFields),e.R7$(),e.Y8G("title",e.bMT(38,52,"customer.customer-history")),e.R7$(2),e.Y8G("customer",e.bMT(40,54,t.entity$))("history",e.bMT(41,56,t.history$))}}const Rn=w.J1`
|
|
2
|
+
query CustomerDetailQuery($id: ID!, $orderListOptions: OrderListOptions) {
|
|
3
|
+
customer(id: $id) {
|
|
4
|
+
...Customer
|
|
5
|
+
groups {
|
|
6
|
+
id
|
|
7
|
+
name
|
|
8
|
+
}
|
|
9
|
+
orders(options: $orderListOptions) {
|
|
10
|
+
items {
|
|
11
|
+
id
|
|
12
|
+
code
|
|
13
|
+
type
|
|
14
|
+
state
|
|
15
|
+
total
|
|
16
|
+
totalWithTax
|
|
17
|
+
currencyCode
|
|
18
|
+
createdAt
|
|
19
|
+
updatedAt
|
|
20
|
+
orderPlacedAt
|
|
21
|
+
}
|
|
22
|
+
totalItems
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
${c.oKx}
|
|
27
|
+
`;class j extends c.wi7{constructor(s,t,o,r,i){super(),this.changeDetector=s,this.formBuilder=t,this.dataService=o,this.modalService=r,this.notificationService=i,this.customFields=this.getCustomFieldConfig("Customer"),this.addressCustomFields=this.getCustomFieldConfig("Address"),this.detailForm=this.formBuilder.group({customer:this.formBuilder.group({title:"",firstName:["",m.k0.required],lastName:["",m.k0.required],phoneNumber:"",emailAddress:["",[m.k0.required,m.k0.email]],password:"",customFields:this.formBuilder.group((0,c.HCD)(this.customFields))}),addresses:new m.Bm([])}),this.fetchHistory=new q.B,this.addressesToDeleteIds=new Set,this.addressDefaultsUpdated=!1,this.ordersPerPage=10,this.currentOrdersPage=1,this.orderListUpdates$=new q.B}ngOnInit(){this.init(),this.availableCountries$=this.dataService.settings.getAvailableCountries().mapSingle(t=>t.countries.items).pipe((0,lt.t)(1));const s=this.entity$.pipe(gt(this.orderListUpdates$));this.orders$=s.pipe((0,u.T)(t=>t.orders.items)),this.ordersCount$=this.entity$.pipe((0,u.T)(t=>t.orders.totalItems)),this.history$=this.fetchHistory.pipe((0,O.Z)(null),(0,C.n)(()=>this.dataService.customer.getCustomerHistory(this.id,{sort:{createdAt:c.xBQ.DESC}}).mapStream(t=>t.customer?.history.items)))}ngOnDestroy(){this.destroy(),this.orderListUpdates$.complete()}getAddressFormControls(){return this.detailForm.get(["addresses"]).controls}setDefaultBillingAddressId(s){this.defaultBillingAddressId=s,this.addressDefaultsUpdated=!0}setDefaultShippingAddressId(s){this.defaultShippingAddressId=s,this.addressDefaultsUpdated=!0}toggleDeleteAddress(s){this.addressesToDeleteIds.has(s)?this.addressesToDeleteIds.delete(s):this.addressesToDeleteIds.add(s)}addAddress(){const s=this.detailForm.get("addresses"),t=this.formBuilder.group({fullName:"",company:"",streetLine1:["",m.k0.required],streetLine2:"",city:"",province:"",postalCode:"",countryCode:["",m.k0.required],phoneNumber:"",defaultShippingAddress:!1,defaultBillingAddress:!1,customFields:this.formBuilder.group(this.addressCustomFields.reduce((o,r)=>({...o,[r.name]:""}),{}))});s.push(t)}setOrderItemsPerPage(s){this.ordersPerPage=+s,this.fetchOrdersList()}setOrderCurrentPage(s){this.currentOrdersPage=+s,this.fetchOrdersList()}create(){const s=this.detailForm.get("customer");if(!s)return;const{title:t,emailAddress:o,firstName:r,lastName:i,phoneNumber:d,password:_}=s.value,g=s.get("customFields")?.value;if(!o||!r||!i)return;const G={title:t,emailAddress:o,firstName:r,lastName:i,phoneNumber:d,customFields:g};this.dataService.customer.createCustomer(G,_).subscribe(({createCustomer:K})=>{switch(K.__typename){case"Customer":this.notificationService.success((0,l.x)("common.notify-create-success"),{entity:"Customer"}),K.emailAddress&&!_&&this.notificationService.notify({message:(0,l.x)("customer.email-verification-sent"),translationVars:{emailAddress:o},type:"info",duration:1e4}),this.detailForm.markAsPristine(),this.addressDefaultsUpdated=!1,this.changeDetector.markForCheck(),this.router.navigate(["../",K.id],{relativeTo:this.route});break;case"EmailAddressConflictError":this.notificationService.error(K.message)}})}save(){this.entity$.pipe((0,le.s)(1),(0,ht.Z)(({id:s})=>{const t=[],o=this.detailForm.get("customer");if(o&&o.dirty){const i=o.value,d=o.get("customFields")?.value,_={id:s,title:i.title,emailAddress:i.emailAddress,firstName:i.firstName,lastName:i.lastName,phoneNumber:i.phoneNumber,customFields:d};t.push(this.dataService.customer.updateCustomer(_).pipe((0,u.T)(g=>g.updateCustomer)))}const r=this.detailForm.get("addresses");if(r&&r.dirty||this.addressDefaultsUpdated)for(const i of r.controls)if(i.dirty||this.addressDefaultsUpdated){const d=i.value,_={fullName:d.fullName,company:d.company,streetLine1:d.streetLine1,streetLine2:d.streetLine2,city:d.city,province:d.province,postalCode:d.postalCode,countryCode:d.countryCode,phoneNumber:d.phoneNumber,defaultShippingAddress:this.defaultShippingAddressId===d.id,defaultBillingAddress:this.defaultBillingAddressId===d.id,customFields:d.customFields};d.id?this.addressesToDeleteIds.has(d.id)?t.push(this.dataService.customer.deleteCustomerAddress(d.id).pipe((0,u.T)(g=>g.deleteCustomerAddress))):t.push(this.dataService.customer.updateCustomerAddress({..._,id:d.id}).pipe((0,u.T)(g=>g.updateCustomerAddress))):t.push(this.dataService.customer.createCustomerAddress(s,_).pipe((0,u.T)(g=>g.createCustomerAddress)))}return(0,mt.p)(t)})).subscribe(s=>{let t=!1;for(const o of s)switch(o.__typename){case"Customer":case"Address":case"Success":t||(this.notificationService.success((0,l.x)("common.notify-update-success"),{entity:"Customer"}),t=!0,this.detailForm.markAsPristine(),this.addressDefaultsUpdated=!1,this.changeDetector.markForCheck(),this.fetchHistory.next(),this.refreshCustomer().subscribe());break;case"EmailAddressConflictError":this.notificationService.error(o.message)}},s=>{this.notificationService.error((0,l.x)("common.notify-update-error"),{entity:"Customer"})})}addToGroup(){this.modalService.fromComponent(S,{size:"md"}).pipe((0,C.n)(s=>s?(0,ge.H)(s):E.w),(0,ft.H)(s=>this.dataService.customer.addCustomersToGroup(s,[this.id]))).subscribe({next:s=>{this.notificationService.success((0,l.x)("customer.add-customers-to-group-success"),{customerCount:1,groupName:s.addCustomersToGroup.name})},complete:()=>{this.refreshCustomer().subscribe(),this.fetchHistory.next()}})}removeFromGroup(s){this.modalService.dialog({title:(0,l.x)("customer.confirm-remove-customer-from-group"),buttons:[{type:"secondary",label:(0,l.x)("common.cancel")},{type:"danger",label:(0,l.x)("common.delete"),returnValue:!0}]}).pipe((0,C.n)(t=>t?this.dataService.customer.removeCustomersFromGroup(s.id,[this.id]):E.w),(0,C.n)(()=>this.refreshCustomer())).subscribe(t=>{this.notificationService.success((0,l.x)("customer.remove-customers-from-group-success"),{customerCount:1,groupName:s.name}),this.fetchHistory.next()})}addNoteToCustomer({note:s}){this.dataService.customer.addNoteToCustomer(this.id,s).subscribe(()=>{this.fetchHistory.next(),this.notificationService.success((0,l.x)("common.notify-create-success"),{entity:"Note"})})}updateNote(s){this.modalService.fromComponent(c.MR8,{closable:!0,locals:{displayPrivacyControls:!1,note:s.data.note}}).pipe((0,C.n)(t=>t?this.dataService.customer.updateCustomerNote({noteId:s.id,note:t.note}):E.w)).subscribe(t=>{this.fetchHistory.next(),this.notificationService.success((0,l.x)("common.notify-update-success"),{entity:"Note"})})}deleteNote(s){return this.modalService.dialog({title:(0,l.x)("common.confirm-delete-note"),body:s.data.note,buttons:[{type:"secondary",label:(0,l.x)("common.cancel")},{type:"danger",label:(0,l.x)("common.delete"),returnValue:!0}]}).pipe((0,C.n)(t=>t?this.dataService.customer.deleteCustomerNote(s.id):E.w)).subscribe(()=>{this.fetchHistory.next(),this.notificationService.success((0,l.x)("common.notify-delete-success"),{entity:"Note"})})}setFormValues(s){const t=this.detailForm.get("customer");if(t&&t.patchValue({title:s.title??null,firstName:s.firstName,lastName:s.lastName,phoneNumber:s.phoneNumber??null,emailAddress:s.emailAddress,password:"",customFields:{}}),s.addresses){const o=new m.Bm([]);for(const r of s.addresses){const{customFields:i,...d}=r,_=this.formBuilder.group({...d,countryCode:r.country.code,customFields:this.formBuilder.group(this.addressCustomFields.reduce((g,G)=>({...g,[G.name]:r.customFields[G.name]}),{}))});o.push(_),r.defaultShippingAddress&&(this.defaultShippingAddressId=r.id),r.defaultBillingAddress&&(this.defaultBillingAddressId=r.id)}this.detailForm.setControl("addresses",o)}this.customFields.length&&this.setCustomFieldFormValues(this.customFields,this.detailForm.get(["customer","customFields"]),s),this.changeDetector.markForCheck()}fetchOrdersList(){this.dataService.query(c.L7M,{id:this.id,orderListOptions:{take:this.ordersPerPage,skip:(this.currentOrdersPage-1)*this.ordersPerPage,sort:{orderPlacedAt:c.xBQ.DESC}}}).single$.pipe((0,u.T)(s=>s.customer),(0,me.p)(ct.notNullOrUndefined)).subscribe(s=>this.orderListUpdates$.next(s))}refreshCustomer(){return this.dataService.query(c.L7M,{id:this.id,orderListOptions:{take:0}}).single$}static{this.\u0275fac=function(t){return new(t||j)(e.rXU(e.gRc),e.rXU(m.ok),e.rXU(c.uSP),e.rXU(c.Bg8),e.rXU(c.JEu))}}static{this.\u0275cmp=e.VBU({type:j,selectors:[["vdr-customer-detail"]],features:[e.Vt3],decls:50,vars:53,consts:[["updateButton",""],["noGroups",""],["locationId","customer-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],[4,"ngIf"],[3,"title",4,"ngIf"],[3,"entity",4,"ngIf"],[1,"form",3,"formGroup"],[1,"form-grid"],["for","title",3,"label","readOnlyToggle"],["id","title","type","text","formControlName","title"],["for","firstName",3,"label","readOnlyToggle"],["id","firstName","type","text","formControlName","firstName"],["for","lastName",3,"label","readOnlyToggle"],["id","lastName","type","text","formControlName","lastName"],["for","emailAddress",3,"label","readOnlyToggle"],["id","emailAddress","type","text","formControlName","emailAddress"],["for","phoneNumber",3,"label","readOnlyToggle"],["id","phoneNumber","type","text","formControlName","phoneNumber"],["for","password",3,"label",4,"ngIf"],["formGroupName","customFields",3,"title",4,"ngIf"],["locationId","customer-detail",3,"entity$","detailForm"],[1,"btn","btn-primary",3,"click","disabled"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"customer"],["class","last-login",3,"label",4,"ngIf"],[1,"last-login",3,"label"],[3,"dateTime"],[3,"title"],[4,"ngIf","ngIfElse"],["class","button-small mt-1",3,"click",4,"vdrIfPermissions"],["icon","times",3,"colorFrom","iconClick",4,"ngFor","ngForOf"],["icon","times",3,"iconClick","colorFrom"],[1,"color-weight-400"],[1,"button-small","mt-1",3,"click"],["shape","plus"],[3,"entity"],["for","password",3,"label"],["id","password","type","password","formControlName","password"],["formGroupName","customFields",3,"title"],["entityName","Customer",3,"customFields","customFieldsFormGroup"],[3,"to-delete","availableCountries","isDefaultBilling","isDefaultShipping","addressForm","customFields","editable","setAsDefaultBilling","setAsDefaultShipping","deleteAddress",4,"ngFor","ngForOf"],["class","btn btn-secondary mt-2",3,"click",4,"vdrIfPermissions"],[3,"title","paddingX"],["id","customer-order-list",3,"itemsPerPageChange","pageChange","items","itemsPerPage","totalItems","currentPage","emptyStateLabel"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault"],["id","code",3,"heading","optional"],["id","order-type",3,"heading","hiddenByDefault"],["id","state",3,"heading"],["id","total",3,"heading"],["id","updated-at",3,"heading"],["id","placed-at",3,"heading"],[3,"customField",4,"ngFor","ngForOf"],[3,"addNote","updateNote","deleteNote","customer","history"],[3,"setAsDefaultBilling","setAsDefaultShipping","deleteAddress","availableCountries","isDefaultBilling","isDefaultShipping","addressForm","customFields","editable"],[1,"btn","btn-secondary","mt-2",3,"click"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],[3,"state"],[3,"customField"]],template:function(t,o){if(1&t&&(e.j41(0,"vdr-page-block")(1,"vdr-action-bar"),e.nrm(2,"vdr-ab-left"),e.j41(3,"vdr-ab-right"),e.nrm(4,"vdr-action-bar-items",2),e.DNE(5,tn,3,4,"button",3),e.nI1(6,"async"),e.DNE(7,sn,1,1,"ng-template",null,0,e.C5r),e.nrm(9,"vdr-action-bar-dropdown-menu",2),e.k0s()()(),e.j41(10,"vdr-page-detail-layout")(11,"vdr-page-detail-sidebar"),e.DNE(12,rn,3,2,"vdr-card",4),e.nI1(13,"async"),e.DNE(14,dn,7,6,"vdr-card",5),e.nI1(15,"async"),e.j41(16,"vdr-card"),e.DNE(17,un,1,1,"vdr-page-entity-info",6),e.nI1(18,"async"),e.k0s()(),e.j41(19,"vdr-page-block")(20,"form",7)(21,"vdr-card")(22,"div",8)(23,"vdr-form-field",9),e.nI1(24,"translate"),e.nI1(25,"async"),e.nrm(26,"input",10),e.k0s(),e.nrm(27,"div"),e.j41(28,"vdr-form-field",11),e.nI1(29,"translate"),e.nI1(30,"async"),e.nrm(31,"input",12),e.k0s(),e.j41(32,"vdr-form-field",13),e.nI1(33,"translate"),e.nI1(34,"async"),e.nrm(35,"input",14),e.k0s(),e.j41(36,"vdr-form-field",15),e.nI1(37,"translate"),e.nI1(38,"async"),e.nrm(39,"input",16),e.k0s(),e.j41(40,"vdr-form-field",17),e.nI1(41,"translate"),e.nI1(42,"async"),e.nrm(43,"input",18),e.k0s(),e.DNE(44,pn,3,3,"vdr-form-field",19),e.nI1(45,"async"),e.k0s()(),e.DNE(46,_n,3,5,"vdr-card",20),e.k0s(),e.nrm(47,"vdr-custom-detail-component-host",21),e.DNE(48,Dn,42,58,"ng-container",4),e.nI1(49,"async"),e.k0s()()),2&t){let r;const i=e.sdS(8);e.R7$(5),e.Y8G("ngIf",e.bMT(6,21,o.isNew$))("ngIfElse",i),e.R7$(7),e.Y8G("ngIf",e.bMT(13,23,o.entity$)),e.R7$(2),e.Y8G("ngIf",null==(r=e.bMT(15,25,o.entity$))?null:r.groups),e.R7$(3),e.Y8G("ngIf",e.bMT(18,27,o.entity$)),e.R7$(3),e.Y8G("formGroup",o.detailForm.get("customer")),e.R7$(3),e.Y8G("label",e.bMT(24,29,"customer.title"))("readOnlyToggle",!e.bMT(25,31,o.isNew$)),e.R7$(5),e.Y8G("label",e.bMT(29,33,"customer.first-name"))("readOnlyToggle",!e.bMT(30,35,o.isNew$)),e.R7$(4),e.Y8G("label",e.bMT(33,37,"customer.last-name"))("readOnlyToggle",!e.bMT(34,39,o.isNew$)),e.R7$(4),e.Y8G("label",e.bMT(37,41,"customer.email-address"))("readOnlyToggle",!e.bMT(38,43,o.isNew$)),e.R7$(4),e.Y8G("label",e.bMT(41,45,"customer.phone-number"))("readOnlyToggle",!e.bMT(42,47,o.isNew$)),e.R7$(4),e.Y8G("ngIf",e.bMT(45,49,o.isNew$)),e.R7$(2),e.Y8G("ngIf",o.customFields.length),e.R7$(),e.Y8G("entity$",o.entity$)("detailForm",o.detailForm),e.R7$(),e.Y8G("ngIf",!e.bMT(49,51,o.isNew$))}},dependencies:[v.U4n,p.Sq,p.bT,m.qT,m.me,m.BC,m.cb,m.j4,m.JD,m.$R,b.Wk,f.nG,f.wL,f.TX,J.l,X.w,oe.K,W.V,yt.F,fe.B,M.p,Q.T,re.W,Ce.L,V.I,L.Y,be.T,z.e,ve.E,Te.c,Ie.e,ye.i,T,$,N,p.Jj,h.D9,ie.E,Zt.n,H.P,Kt.u],styles:[".last-login[_ngcontent-%COMP%]{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete[_ngcontent-%COMP%]{opacity:.5}"],changeDetection:0})}}function $n(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",10),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.create())}),e.EFF(1),e.nI1(2,"translate"),e.k0s()}if(2&n){const t=e.XpG();e.Y8G("disabled",!(t.detailForm.valid&&t.detailForm.dirty)),e.R7$(),e.SpI(" ",e.bMT(2,2,"common.create")," ")}}function En(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",10),e.bIt("click",function(){e.eBV(t);const r=e.XpG(2);return e.Njj(r.save())}),e.EFF(1),e.nI1(2,"translate"),e.k0s()}if(2&n){const t=e.XpG(2);e.Y8G("disabled",!(t.detailForm.valid&&t.detailForm.dirty)),e.R7$(),e.SpI(" ",e.bMT(2,2,"common.update")," ")}}function Sn(n,s){1&n&&e.DNE(0,En,3,4,"button",11),2&n&&e.Y8G("vdrIfPermissions","UpdateCustomer")}function Mn(n,s){if(1&n&&(e.j41(0,"vdr-card"),e.nrm(1,"vdr-page-entity-info",12),e.k0s()),2&n){const t=s.ngIf;e.R7$(),e.Y8G("entity",t)}}function kn(n,s){if(1&n&&(e.j41(0,"vdr-card",13),e.nI1(1,"translate"),e.nrm(2,"vdr-tabbed-custom-fields",14),e.k0s()),2&n){const t=e.XpG();e.Y8G("title",e.bMT(1,3,"common.custom-fields")),e.R7$(2),e.Y8G("customFields",t.customFields)("customFieldsFormGroup",t.detailForm.get("customFields"))}}const Nn=w.J1`
|
|
28
|
+
query GetCustomerGroupDetail($id: ID!) {
|
|
29
|
+
customerGroup(id: $id) {
|
|
30
|
+
...CustomerGroupDetail
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
fragment CustomerGroupDetail on CustomerGroup {
|
|
34
|
+
id
|
|
35
|
+
createdAt
|
|
36
|
+
updatedAt
|
|
37
|
+
name
|
|
38
|
+
}
|
|
39
|
+
`;class A extends c.wi7{constructor(s,t,o,r){super(),this.formBuilder=s,this.dataService=t,this.modalService=o,this.notificationService=r,this.customFields=this.getCustomFieldConfig("CustomerGroup"),this.detailForm=this.formBuilder.group({name:"",customFields:this.formBuilder.group((0,c.HCD)(this.customFields))})}ngOnInit(){super.init()}create(){const s=this.detailForm.value;s.name&&this.dataService.customer.createCustomerGroup({name:s.name,customFields:s.customFields,customerIds:[]}).subscribe(({createCustomerGroup:t})=>{this.notificationService.success((0,l.x)("common.notify-create-success"),{entity:"CustomerGroup"}),this.detailForm.markAsPristine(),this.router.navigate(["../",t.id],{relativeTo:this.route})},t=>{this.notificationService.error((0,l.x)("common.notify-create-error"),{entity:"CustomerGroup"})})}save(){const s=this.detailForm.value;this.dataService.customer.updateCustomerGroup({id:this.id,...s}).subscribe(()=>{this.notificationService.success((0,l.x)("common.notify-update-success"),{entity:"CustomerGroup"}),this.detailForm.markAsPristine()},t=>{this.notificationService.error((0,l.x)("common.notify-update-error"),{entity:"CustomerGroup"})})}setFormValues(s){if(this.detailForm.patchValue({name:s.name}),this.customFields.length){this.detailForm.get(["customFields"]);this.setCustomFieldFormValues(this.customFields,this.detailForm.get("customFields"),s)}}static{this.\u0275fac=function(t){return new(t||A)(e.rXU(m.ok),e.rXU(c.uSP),e.rXU(c.Bg8),e.rXU(c.JEu))}}static{this.\u0275cmp=e.VBU({type:A,selectors:[["vdr-customer-group-detail"]],features:[e.Vt3],decls:23,vars:14,consts:[["updateButton",""],["locationId","customer-group-detail"],["class","btn btn-primary",3,"disabled","click",4,"ngIf","ngIfElse"],[1,"form",3,"formGroup"],[4,"ngIf"],[1,"form-grid"],["for","name",3,"label"],["id","name","type","text","formControlName","name"],["formGroupName","customFields",3,"title",4,"ngIf"],["locationId","customer-group-detail",3,"entity$","detailForm"],[1,"btn","btn-primary",3,"click","disabled"],["class","btn btn-primary",3,"disabled","click",4,"vdrIfPermissions"],[3,"entity"],["formGroupName","customFields",3,"title"],["entityName","CustomerGroup",3,"customFields","customFieldsFormGroup"]],template:function(t,o){if(1&t&&(e.j41(0,"vdr-page-block")(1,"vdr-action-bar"),e.nrm(2,"vdr-ab-left"),e.j41(3,"vdr-ab-right"),e.nrm(4,"vdr-action-bar-items",1),e.DNE(5,$n,3,4,"button",2),e.nI1(6,"async"),e.DNE(7,Sn,1,1,"ng-template",null,0,e.C5r),e.nrm(9,"vdr-action-bar-dropdown-menu",1),e.k0s()()(),e.j41(10,"form",3)(11,"vdr-page-detail-layout")(12,"vdr-page-detail-sidebar"),e.DNE(13,Mn,2,1,"vdr-card",4),e.nI1(14,"async"),e.k0s(),e.j41(15,"vdr-page-block")(16,"vdr-card")(17,"div",5)(18,"vdr-form-field",6),e.nI1(19,"translate"),e.nrm(20,"input",7),e.k0s()()(),e.DNE(21,kn,3,5,"vdr-card",8),e.nrm(22,"vdr-custom-detail-component-host",9),e.k0s()()()),2&t){const r=e.sdS(8);e.R7$(5),e.Y8G("ngIf",e.bMT(6,8,o.isNew$))("ngIfElse",r),e.R7$(5),e.Y8G("formGroup",o.detailForm),e.R7$(3),e.Y8G("ngIf",e.bMT(14,10,o.entity$)),e.R7$(5),e.Y8G("label",e.bMT(19,12,"common.name")),e.R7$(3),e.Y8G("ngIf",o.customFields.length),e.R7$(),e.Y8G("entity$",o.entity$)("detailForm",o.detailForm)}},dependencies:[p.bT,m.qT,m.me,m.BC,m.cb,m.j4,m.JD,m.$R,f.nG,f.wL,f.TX,J.l,oe.K,W.V,M.p,Q.T,re.W,Ce.L,z.e,ve.E,Te.c,Ie.e,ye.i,p.Jj,h.D9],changeDetection:0})}}const jn=()=>["CreateCustomerGroup","UpdateCustomerGroup"];function An(n,s){1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n&&(e.R7$(),e.JRh(e.bMT(2,1,"customer.update-customer-group")))}function Pn(n,s){1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n&&(e.R7$(),e.JRh(e.bMT(2,1,"customer.create-customer-group")))}function xn(n,s){if(1&n&&e.DNE(0,An,3,3,"span",6)(1,Pn,3,3,"span",6),2&n){const t=e.XpG();e.Y8G("ngIf",t.group.id),e.R7$(),e.Y8G("ngIf",!t.group.id)}}function Yn(n,s){if(1&n&&(e.j41(0,"section",7)(1,"label"),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.nrm(4,"vdr-tabbed-custom-fields",8),e.k0s()),2&n){const t=e.XpG();e.R7$(2),e.JRh(e.bMT(3,3,"common.custom-fields")),e.R7$(2),e.Y8G("customFields",t.customFields)("customFieldsFormGroup",t.form.get("customFields"))}}function Bn(n,s){1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n&&(e.R7$(),e.JRh(e.bMT(2,1,"customer.update-customer-group")))}function Un(n,s){1&n&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n&&(e.R7$(),e.JRh(e.bMT(2,1,"customer.create-customer-group")))}function On(n,s){if(1&n){const t=e.RV6();e.j41(0,"button",9),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.cancel())}),e.EFF(1),e.nI1(2,"translate"),e.k0s(),e.j41(3,"button",10),e.bIt("click",function(){e.eBV(t);const r=e.XpG();return e.Njj(r.save())}),e.DNE(4,Bn,3,3,"span",6)(5,Un,3,3,"span",6),e.k0s()}if(2&n){const t=e.XpG();e.R7$(),e.JRh(e.bMT(2,4,"common.cancel")),e.R7$(2),e.Y8G("disabled",!t.form.valid),e.R7$(),e.Y8G("ngIf",t.group.id),e.R7$(),e.Y8G("ngIf",!t.group.id)}}class Z{constructor(s,t){this.serverConfigService=s,this.formBuilder=t,this.customFields=this.serverConfigService.getCustomFieldsFor("CustomerGroup")}ngOnInit(){if(this.form=this.formBuilder.group({name:[this.group.name,m.k0.required],customFields:this.formBuilder.group((0,c.HCD)(this.customFields))}),this.customFields.length){const s=this.form.get("customFields");for(const t of this.customFields){const o=t.name,r=this.group.customFields?.[o],i=s.get(o);i&&i.patchValue(r)}}}cancel(){this.resolveWith()}save(){this.resolveWith(this.form.value)}static{this.\u0275fac=function(t){return new(t||Z)(e.rXU(c.BBL),e.rXU(m.ze))}}static{this.\u0275cmp=e.VBU({type:Z,selectors:[["vdr-customer-group-detail-dialog"]],decls:8,vars:9,consts:[["vdrDialogTitle",""],[3,"formGroup"],["for","name",3,"label"],["id","name","type","text","formControlName","name",3,"readonly"],["formGroupName","customFields",4,"ngIf"],["vdrDialogButtons",""],[4,"ngIf"],["formGroupName","customFields"],["entityName","CustomerGroup",3,"customFields","customFieldsFormGroup"],["type","button",1,"btn",3,"click"],["type","submit",1,"btn","btn-primary",3,"click","disabled"]],template:function(t,o){1&t&&(e.DNE(0,xn,2,2,"ng-template",0),e.j41(1,"form",1)(2,"vdr-form-field",2),e.nI1(3,"translate"),e.nrm(4,"input",3),e.nI1(5,"hasPermission"),e.k0s(),e.DNE(6,Yn,5,5,"section",4),e.k0s(),e.DNE(7,On,6,6,"ng-template",5)),2&t&&(e.R7$(),e.Y8G("formGroup",o.form),e.R7$(),e.Y8G("label",e.bMT(3,4,"common.name")),e.R7$(2),e.Y8G("readonly",!e.bMT(5,6,e.lJ4(8,jn))),e.R7$(2),e.Y8G("ngIf",o.customFields.length))},dependencies:[v.aZZ,p.bT,m.qT,m.me,m.BC,m.cb,m.j4,m.JD,m.$R,oe.K,W.V,Y.b,B.M,re.W,h.D9,ie.E],changeDetection:0})}}const Re=(0,c.AfA)({location:"customer-group-list",requiresPermission:n=>n.includes(c.aXG.DeleteCustomerGroup),getItemName:n=>n.name,bulkDelete:(n,s)=>n.customer.deleteCustomerGroups(s).pipe((0,u.T)(t=>t.deleteCustomerGroups))});var Vn=a(81),Ln=a(303),Xn=a(1693),$e=a(8671);const Hn=()=>["./","create"],Ee=n=>["./",n],wn=n=>({contents:n}),Jn=n=>({groupName:n});function Wn(n,s){1&n&&(e.j41(0,"a",5),e.nrm(1,"clr-icon",6),e.EFF(2),e.nI1(3,"translate"),e.k0s()),2&n&&(e.Y8G("routerLink",e.lJ4(4,Hn)),e.R7$(2),e.SpI(" ",e.bMT(3,2,"customer.create-new-customer-group")," "))}function Qn(n,s){if(1&n&&e.EFF(0),2&n){const t=s.item;e.SpI(" ",t.id," ")}}function zn(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.createdAt,"short")," ")}}function Zn(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.updatedAt,"short")," ")}}function Kn(n,s){if(1&n&&(e.j41(0,"a",15)(1,"span"),e.EFF(2),e.k0s(),e.nrm(3,"clr-icon",16),e.k0s()),2&n){const t=s.item;e.Y8G("routerLink",e.eq3(2,Ee,t.id)),e.R7$(2),e.JRh(t.name)}}function qn(n,s){if(1&n&&(e.j41(0,"a",17)(1,"span"),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.nrm(4,"clr-icon",18),e.k0s()),2&n){const t=s.item;e.Y8G("routerLink",e.eq3(6,Ee,e.eq3(4,wn,t.id))),e.R7$(2),e.JRh(e.bMT(3,2,"customer.view-group-members"))}}function es(n,s){if(1&n){const t=e.RV6();e.j41(0,"vdr-data-table-2",7),e.nI1(1,"async"),e.nI1(2,"async"),e.nI1(3,"async"),e.nI1(4,"async"),e.nI1(5,"async"),e.bIt("pageChange",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.setPageNumber(r))})("itemsPerPageChange",function(r){e.eBV(t);const i=e.XpG();return e.Njj(i.setItemsPerPage(r))}),e.nrm(6,"vdr-bulk-action-menu",8)(7,"vdr-dt2-search",9),e.nI1(8,"translate"),e.j41(9,"vdr-dt2-column",10),e.nI1(10,"translate"),e.DNE(11,Qn,1,1,"ng-template"),e.k0s(),e.j41(12,"vdr-dt2-column",11),e.nI1(13,"translate"),e.DNE(14,zn,2,4,"ng-template"),e.k0s(),e.j41(15,"vdr-dt2-column",12),e.nI1(16,"translate"),e.DNE(17,Zn,2,4,"ng-template"),e.k0s(),e.j41(18,"vdr-dt2-column",13),e.nI1(19,"translate"),e.DNE(20,Kn,4,4,"ng-template"),e.k0s(),e.j41(21,"vdr-dt2-column",14),e.nI1(22,"translate"),e.DNE(23,qn,5,8,"ng-template"),e.k0s()()}if(2&n){const t=e.XpG();e.Y8G("items",e.bMT(1,23,t.items$))("itemsPerPage",e.bMT(2,25,t.itemsPerPage$))("totalItems",e.bMT(3,27,t.totalItems$))("currentPage",e.bMT(4,29,t.currentPage$))("filters",t.filters)("activeIndex",e.bMT(5,31,t.activeIndex$)),e.R7$(6),e.Y8G("hostComponent",t)("selectionManager",t.selectionManager),e.R7$(),e.Y8G("searchTermControl",t.searchTermControl)("searchTermPlaceholder",e.bMT(8,33,"common.search-by-name")),e.R7$(2),e.Y8G("heading",e.bMT(10,35,"common.id"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(13,37,"common.created-at"))("hiddenByDefault",!0)("sort",t.sorts.get("createdAt")),e.R7$(3),e.Y8G("heading",e.bMT(16,39,"common.updated-at"))("hiddenByDefault",!0)("sort",t.sorts.get("updatedAt")),e.R7$(3),e.Y8G("heading",e.bMT(19,41,"common.name"))("optional",!1)("sort",t.sorts.get("name")),e.R7$(3),e.Y8G("heading",e.bMT(22,43,"common.view-contents"))("optional",!1)}}function ts(n,s){if(1&n){const t=e.RV6();e.qex(0),e.j41(1,"button",20),e.bIt("click",function(){const r=e.eBV(t).ngIf,i=e.XpG(2);return e.Njj(i.addToGroup(r))}),e.nrm(2,"clr-icon",6),e.j41(3,"span"),e.EFF(4),e.nI1(5,"translate"),e.k0s()(),e.j41(6,"vdr-customer-group-member-list",21),e.nI1(7,"async"),e.nI1(8,"async"),e.nI1(9,"async"),e.bIt("fetchParamsChange",function(r){e.eBV(t);const i=e.XpG(2);return e.Njj(i.fetchGroupMembers$.next(r))}),e.k0s(),e.bVm()}if(2&n){const t=s.ngIf,o=e.XpG(2);e.R7$(4),e.JRh(e.i5U(5,5,"customer.add-customers-to-group",e.eq3(14,Jn,t.name))),e.R7$(2),e.Y8G("members",e.bMT(7,8,o.members$))("route",o.route)("totalItems",e.bMT(8,10,o.membersTotal$))("activeGroup",e.bMT(9,12,o.activeGroup$))}}function ns(n,s){if(1&n&&(e.DNE(0,ts,10,16,"ng-container",19),e.nI1(1,"async")),2&n){const t=e.XpG();e.Y8G("ngIf",e.bMT(1,1,t.activeGroup$))}}const ss=w.J1`
|
|
40
|
+
query GetCustomerGroupList($options: CustomerGroupListOptions) {
|
|
41
|
+
customerGroups(options: $options) {
|
|
42
|
+
items {
|
|
43
|
+
...CustomerGroup
|
|
44
|
+
}
|
|
45
|
+
totalItems
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
${c.QaK}
|
|
49
|
+
`;class P extends c.B8I{constructor(s,t,o,r,i){super(),this.dataService=s,this.notificationService=t,this.modalService=o,this.route=r,this.router=i,this.fetchGroupMembers$=new F.t({skip:0,take:0,filterTerm:""}),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilter({name:"name",type:{kind:"text"},label:(0,l.x)("common.name"),filterField:"name"}).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("createdAt","DESC").addSort({name:"createdAt"}).addSort({name:"updatedAt"}).addSort({name:"name"}).connectToRoute(this.route),this.refreshActiveGroupMembers$=new F.t(void 0),super.configure({document:c.DUl,getItems:d=>d.customerGroups,setVariables:(d,_)=>({options:{skip:d,take:_,filter:{name:{contains:this.searchTermControl.value},...this.filters.createFilterInput()},sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.filters.valueChanges,this.sorts.valueChanges]})}ngOnInit(){super.ngOnInit();const s=this.route.paramMap.pipe((0,u.T)(o=>o.get("contents")),(0,ee.F)());this.listIsEmpty$=this.items$.pipe((0,u.T)(o=>0===o.length)),this.activeGroup$=(0,U.z)(this.items$,s).pipe((0,u.T)(([o,r])=>{if(r)return o.find(i=>i.id===r)})),this.activeIndex$=(0,U.z)(this.items$,s).pipe((0,u.T)(([o,r])=>r?o.findIndex(i=>i.id===r):-1));const t=(0,U.z)(this.activeGroup$,this.fetchGroupMembers$,this.refreshActiveGroupMembers$).pipe((0,C.n)(([o,{skip:r,take:i,filterTerm:d}])=>o?this.dataService.customer.getCustomerGroupWithCustomers(o.id,{skip:r,take:i,filter:{emailAddress:{contains:d}}}).mapStream(_=>_.customerGroup?.customers):(0,Vn.of)(void 0)));this.members$=t.pipe((0,u.T)(o=>o?.items??[])),this.membersTotal$=t.pipe((0,u.T)(o=>o?.totalItems??0))}closeMembers(){const s={...this.route.snapshot.params};delete s.contents,this.router.navigate(["./",s],{relativeTo:this.route,queryParamsHandling:"preserve"})}addToGroup(s){this.modalService.fromComponent(D,{locals:{group:s,route:this.route},size:"md",verticalAlign:"top"}).pipe((0,C.n)(t=>t?this.dataService.customer.addCustomersToGroup(s.id,t).pipe((0,Ln.u)(t)):E.w)).subscribe({next:t=>{this.notificationService.success((0,l.x)("customer.add-customers-to-group-success"),{customerCount:t.length,groupName:s.name}),this.refreshActiveGroupMembers$.next()}})}static{this.\u0275fac=function(t){return new(t||P)(e.rXU(c.uSP),e.rXU(c.JEu),e.rXU(c.Bg8),e.rXU(b.nX),e.rXU(b.Ix))}}static{this.\u0275cmp=e.VBU({type:P,selectors:[["vdr-customer-group-list"]],features:[e.Vt3],decls:12,vars:7,consts:[["locationId","customer-group-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],[3,"closeClicked","rightPanelOpen"],["vdrSplitViewLeft",""],["vdrSplitViewRight","",3,"splitViewTitle"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],["id","customer-group-list",1,"mt-2",3,"pageChange","itemsPerPageChange","items","itemsPerPage","totalItems","currentPage","filters","activeIndex"],["locationId","customer-group-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","name",3,"heading","optional","sort"],["id","view-contents",3,"heading","optional"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],["queryParamsHandling","preserve",1,"button-small","bg-weight-150",3,"routerLink"],["shape","file-group"],[4,"ngIf"],[1,"button-ghost","ml-4",3,"click"],["locationId","customer-group-members-list",3,"fetchParamsChange","members","route","totalItems","activeGroup"]],template:function(t,o){if(1&t&&(e.j41(0,"vdr-page-block")(1,"vdr-action-bar"),e.nrm(2,"vdr-ab-left"),e.j41(3,"vdr-ab-right"),e.nrm(4,"vdr-action-bar-items",0),e.DNE(5,Wn,4,5,"a",1),e.nrm(6,"vdr-action-bar-dropdown-menu",0),e.k0s()()(),e.j41(7,"vdr-split-view",2),e.nI1(8,"async"),e.bIt("closeClicked",function(){return o.closeMembers()}),e.DNE(9,es,24,45,"ng-template",3)(10,ns,2,3,"ng-template",4),e.nI1(11,"async"),e.k0s()),2&t){let r;e.R7$(5),e.Y8G("vdrIfPermissions","CreateCustomerGroup"),e.R7$(2),e.Y8G("rightPanelOpen",e.bMT(8,3,o.activeGroup$)),e.R7$(3),e.Y8G("splitViewTitle",null==(r=e.bMT(11,5,o.activeGroup$))?null:r.name)}},dependencies:[v.U4n,p.bT,b.Wk,f.nG,f.wL,f.TX,J.l,M.p,Q.T,te.T,V.I,L.Y,ne.E,Xn.l,$e.w,$e.P,z.e,I,p.Jj,h.D9,H.P],styles:["vdr-empty-placeholder[_ngcontent-%COMP%]{flex:1}"],changeDetection:0})}}const Se={location:"customer-group-members-list",label:(0,l.x)("customer.remove-from-group"),icon:"trash",iconClass:"is-danger",requiresPermission:c.aXG.UpdateCustomerGroup,onClick:({injector:n,selection:s,hostComponent:t,clearSelection:o})=>{n.get(c.Bg8);const i=n.get(c.uSP),d=n.get(c.JEu),_=t.activeGroup,g=s.map(G=>G.id);i.customer.removeCustomersFromGroup(_.id,g).subscribe({complete:()=>{d.success((0,l.x)("customer.remove-customers-from-group-success"),{customerCount:g.length,groupName:_.name}),o(),t.refresh()}})}},Me=(0,c.AfA)({location:"customer-list",requiresPermission:n=>n.includes(c.aXG.DeleteCustomer),getItemName:n=>n.firstName+" "+n.lastName,bulkDelete:(n,s)=>n.customer.deleteCustomers(s).pipe((0,u.T)(t=>t.deleteCustomers))}),os=()=>["./create"],rs=n=>["./",n];function is(n,s){1&n&&(e.j41(0,"a",12),e.nrm(1,"clr-icon",13),e.EFF(2),e.nI1(3,"translate"),e.k0s()),2&n&&(e.Y8G("routerLink",e.lJ4(4,os)),e.R7$(2),e.SpI(" ",e.bMT(3,2,"customer.create-new-customer")," "))}function as(n,s){if(1&n&&e.EFF(0),2&n){const t=s.item;e.SpI(" ",t.id," ")}}function cs(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.createdAt,"short")," ")}}function ms(n,s){if(1&n&&(e.EFF(0),e.nI1(1,"localeDate")),2&n){const t=s.item;e.SpI(" ",e.i5U(1,1,t.updatedAt,"short")," ")}}function ls(n,s){if(1&n&&(e.j41(0,"a",14)(1,"span"),e.EFF(2),e.k0s(),e.nrm(3,"clr-icon",15),e.k0s()),2&n){const t=s.item;e.Y8G("routerLink",e.eq3(4,rs,t.id)),e.R7$(2),e.E5c(" ",t.title," ",t.firstName," ",t.lastName," ")}}function ds(n,s){if(1&n&&e.nrm(0,"vdr-customer-status-label",16),2&n){const t=s.item;e.Y8G("customer",t)}}function us(n,s){if(1&n&&e.EFF(0),2&n){const t=s.item;e.SpI(" ",t.emailAddress," ")}}function ps(n,s){if(1&n&&e.nrm(0,"vdr-dt2-custom-field-column",17),2&n){const t=s.$implicit,o=e.XpG();e.Y8G("customField",t)("sorts",o.sorts)}}const _s=w.J1`
|
|
50
|
+
query CustomerListQuery($options: CustomerListOptions) {
|
|
51
|
+
customers(options: $options) {
|
|
52
|
+
items {
|
|
53
|
+
...CustomerListItem
|
|
54
|
+
}
|
|
55
|
+
totalItems
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
fragment CustomerListItem on Customer {
|
|
60
|
+
id
|
|
61
|
+
createdAt
|
|
62
|
+
updatedAt
|
|
63
|
+
title
|
|
64
|
+
firstName
|
|
65
|
+
lastName
|
|
66
|
+
emailAddress
|
|
67
|
+
user {
|
|
68
|
+
id
|
|
69
|
+
verified
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
`;class x extends c.B8I{constructor(){super(),this.customFields=this.getCustomFieldConfig("Customer"),this.filters=this.createFilterCollection().addIdFilter().addDateFilters().addFilter({name:"firstName",type:{kind:"text"},label:(0,l.x)("customer.first-name"),filterField:"firstName"}).addFilter({name:"lastName",type:{kind:"text"},label:(0,l.x)("customer.last-name"),filterField:"lastName"}).addFilter({name:"emailAddress",type:{kind:"text"},label:(0,l.x)("customer.email-address"),filterField:"emailAddress"}).addCustomFieldFilters(this.customFields).connectToRoute(this.route),this.sorts=this.createSortCollection().defaultSort("createdAt","DESC").addSort({name:"createdAt"}).addSort({name:"updatedAt"}).addSort({name:"lastName"}).addSort({name:"emailAddress"}).addCustomFieldSorts(this.customFields).connectToRoute(this.route),this.configure({document:c.S57,getItems:s=>s.customers,setVariables:(s,t)=>({options:{skip:s,take:t,filter:{...this.searchTermControl.value?{emailAddress:{contains:this.searchTermControl.value},lastName:{contains:this.searchTermControl.value},postalCode:{contains:this.searchTermControl.value}}:{},...this.filters.createFilterInput()},filterOperator:this.searchTermControl.value?c.umn.OR:c.umn.AND,sort:this.sorts.createSortInput()}}),refreshListOnChanges:[this.sorts.valueChanges,this.filters.valueChanges]})}static{this.\u0275fac=function(t){return new(t||x)}}static{this.\u0275cmp=e.VBU({type:x,selectors:[["vdr-customer-list"]],features:[e.Vt3],decls:34,vars:47,consts:[["locationId","customer-list"],["class","btn btn-primary",3,"routerLink",4,"vdrIfPermissions"],["id","customer-list",1,"mt-2",3,"pageChange","itemsPerPageChange","items","itemsPerPage","totalItems","currentPage","filters"],["locationId","customer-list",3,"hostComponent","selectionManager"],[3,"searchTermControl","searchTermPlaceholder"],["id","id",3,"heading","hiddenByDefault"],["id","created-at",3,"heading","hiddenByDefault","sort"],["id","updated-at",3,"heading","hiddenByDefault","sort"],["id","name",3,"heading","optional","sort"],["id","status",3,"heading"],["id","email-address",3,"heading","sort"],[3,"customField","sorts",4,"ngFor","ngForOf"],[1,"btn","btn-primary",3,"routerLink"],["shape","plus"],[1,"button-ghost",3,"routerLink"],["shape","arrow right"],[3,"customer"],[3,"customField","sorts"]],template:function(t,o){1&t&&(e.j41(0,"vdr-page-block")(1,"vdr-action-bar"),e.nrm(2,"vdr-ab-left"),e.j41(3,"vdr-ab-right"),e.nrm(4,"vdr-action-bar-items",0),e.DNE(5,is,4,5,"a",1),e.nrm(6,"vdr-action-bar-dropdown-menu",0),e.k0s()()(),e.j41(7,"vdr-data-table-2",2),e.nI1(8,"async"),e.nI1(9,"async"),e.nI1(10,"async"),e.nI1(11,"async"),e.bIt("pageChange",function(i){return o.setPageNumber(i)})("itemsPerPageChange",function(i){return o.setItemsPerPage(i)}),e.nrm(12,"vdr-bulk-action-menu",3)(13,"vdr-dt2-search",4),e.nI1(14,"translate"),e.j41(15,"vdr-dt2-column",5),e.nI1(16,"translate"),e.DNE(17,as,1,1,"ng-template"),e.k0s(),e.j41(18,"vdr-dt2-column",6),e.nI1(19,"translate"),e.DNE(20,cs,2,4,"ng-template"),e.k0s(),e.j41(21,"vdr-dt2-column",7),e.nI1(22,"translate"),e.DNE(23,ms,2,4,"ng-template"),e.k0s(),e.j41(24,"vdr-dt2-column",8),e.nI1(25,"translate"),e.DNE(26,ls,4,6,"ng-template"),e.k0s(),e.j41(27,"vdr-dt2-column",9),e.nI1(28,"translate"),e.DNE(29,ds,1,1,"ng-template"),e.k0s(),e.j41(30,"vdr-dt2-column",10),e.nI1(31,"translate"),e.DNE(32,us,1,1,"ng-template"),e.k0s(),e.DNE(33,ps,1,2,"vdr-dt2-custom-field-column",11),e.k0s()),2&t&&(e.R7$(5),e.Y8G("vdrIfPermissions","CreateCustomer"),e.R7$(2),e.Y8G("items",e.bMT(8,25,o.items$))("itemsPerPage",e.bMT(9,27,o.itemsPerPage$))("totalItems",e.bMT(10,29,o.totalItems$))("currentPage",e.bMT(11,31,o.currentPage$))("filters",o.filters),e.R7$(5),e.Y8G("hostComponent",o)("selectionManager",o.selectionManager),e.R7$(),e.Y8G("searchTermControl",o.searchTermControl)("searchTermPlaceholder",e.bMT(14,33,"customer.search-customers-by-email-last-name-postal-code")),e.R7$(2),e.Y8G("heading",e.bMT(16,35,"common.id"))("hiddenByDefault",!0),e.R7$(3),e.Y8G("heading",e.bMT(19,37,"common.created-at"))("hiddenByDefault",!0)("sort",o.sorts.get("createdAt")),e.R7$(3),e.Y8G("heading",e.bMT(22,39,"common.updated-at"))("hiddenByDefault",!0)("sort",o.sorts.get("updatedAt")),e.R7$(3),e.Y8G("heading",e.bMT(25,41,"customer.name"))("optional",!1)("sort",o.sorts.get("lastName")),e.R7$(3),e.Y8G("heading",e.bMT(28,43,"common.status")),e.R7$(3),e.Y8G("heading",e.bMT(31,45,"customer.email-address"))("sort",o.sorts.get("emailAddress")),e.R7$(3),e.Y8G("ngForOf",o.customFields))},dependencies:[v.U4n,p.Sq,b.Wk,f.nG,f.wL,f.TX,J.l,M.p,Q.T,te.T,V.I,L.Y,ne.E,be.T,z.e,T,p.Jj,h.D9,H.P],styles:[".search-input[_ngcontent-%COMP%]{margin-top:6px;min-width:300px}"]})}}const ke=n=>[{path:"customers",component:c.H1b,data:{locationId:"customer-list",breadcrumb:(0,l.x)("breadcrumb.customers")},children:n.getPageTabRoutes("customer-list")},{path:"customers/:id",component:c.H1b,data:{locationId:"customer-detail",breadcrumb:{label:(0,l.x)("breadcrumb.customers"),link:["../","customers"]}},children:n.getPageTabRoutes("customer-detail")},{path:"groups",component:c.H1b,data:{locationId:"customer-group-list",breadcrumb:(0,l.x)("breadcrumb.customer-groups")},children:n.getPageTabRoutes("customer-group-list")},{path:"groups/:id",component:c.H1b,data:{locationId:"customer-group-detail",breadcrumb:{label:(0,l.x)("breadcrumb.customer-groups"),link:["../","groups"]}},children:n.getPageTabRoutes("customer-group-detail")}];function gs(n,s){return(0,c.bv4)({entity:n.entity,id:s.id,breadcrumbKey:"breadcrumb.customers",getName:t=>`${t.firstName} ${t.lastName}`,route:"customers"})}class y{static{this.hasRegisteredTabsAndBulkActions=!1}constructor(s,t){y.hasRegisteredTabsAndBulkActions||(s.registerBulkAction(Me),s.registerBulkAction(Re),s.registerBulkAction(Se),t.registerPageTab({priority:0,location:"customer-list",tab:(0,l.x)("customer.customers"),route:"",component:x}),t.registerPageTab({priority:0,location:"customer-detail",tab:(0,l.x)("customer.customer"),route:"",component:(0,c.HL6)({component:j,query:c.L7M,entityKey:"customer",variables:{orderListOptions:{sort:{orderPlacedAt:c.xBQ.DESC}}},getBreadcrumbs:o=>[{label:o?`${o?.firstName} ${o?.lastName}`:(0,l.x)("customer.create-new-customer"),link:[o?.id]}]})}),t.registerPageTab({priority:0,location:"customer-group-list",tab:(0,l.x)("customer.customer-groups"),route:"",component:P}),t.registerPageTab({priority:0,location:"customer-group-detail",tab:(0,l.x)("customer.customer-group"),route:"",component:(0,c.HL6)({component:A,query:c.U6p,entityKey:"customerGroup",getBreadcrumbs:o=>[{label:o?o.name:(0,l.x)("customer.create-new-customer-group"),link:[o?.id]}]})}),y.hasRegisteredTabsAndBulkActions=!0)}static{this.\u0275fac=function(t){return new(t||y)(e.KVO(c.HCh),e.KVO(c.bPm))}}static{this.\u0275mod=e.$C({type:y})}static{this.\u0275inj=e.G2t({providers:[{provide:b.bw,useFactory:s=>ke(s),multi:!0,deps:[c.bPm]}],imports:[c.GgS,b.iI.forChild([])]})}}}}]);
|
|
73
|
+
//# sourceMappingURL=697.ff9c92dd4b564093.js.map
|