@vendure/admin-ui 1.7.4 → 1.8.1

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.
Files changed (228) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +902 -74
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +2392 -820
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-customer.umd.js +4 -3
  6. package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
  7. package/bundles/vendure-admin-ui-dashboard.umd.js +3 -1
  8. package/bundles/vendure-admin-ui-dashboard.umd.js.map +1 -1
  9. package/bundles/vendure-admin-ui-order.umd.js +781 -175
  10. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  11. package/bundles/vendure-admin-ui-settings.umd.js +5 -4
  12. package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
  13. package/bundles/vendure-admin-ui-system.umd.js +1 -1
  14. package/catalog/catalog.module.d.ts +3 -0
  15. package/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +17 -0
  16. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +38 -0
  17. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
  18. package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +6 -0
  19. package/catalog/components/collection-list/collection-list.component.d.ts +7 -5
  20. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +8 -4
  21. package/catalog/components/collection-tree/collection-tree.component.d.ts +2 -1
  22. package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +5 -0
  23. package/catalog/components/facet-list/facet-list.component.d.ts +2 -1
  24. package/catalog/components/product-list/product-list-bulk-actions.d.ts +6 -0
  25. package/catalog/components/product-list/product-list.component.d.ts +2 -1
  26. package/catalog/public_api.d.ts +6 -0
  27. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  28. package/core/common/component-registry-types.d.ts +1 -1
  29. package/core/common/generated-types.d.ts +609 -3
  30. package/core/common/utilities/bulk-action-utils.d.ts +19 -0
  31. package/core/common/utilities/selection-manager.d.ts +7 -0
  32. package/core/common/version.d.ts +1 -1
  33. package/core/data/definitions/collection-definitions.d.ts +3 -0
  34. package/core/data/definitions/facet-definitions.d.ts +3 -0
  35. package/core/data/definitions/order-definitions.d.ts +12 -0
  36. package/core/data/definitions/product-definitions.d.ts +1 -0
  37. package/core/data/providers/collection-data.service.d.ts +4 -1
  38. package/core/data/providers/facet-data.service.d.ts +4 -1
  39. package/core/data/providers/order-data.service.d.ts +18 -1
  40. package/core/data/providers/product-data.service.d.ts +1 -0
  41. package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +6 -0
  42. package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
  43. package/core/providers/bulk-action-registry/register-bulk-action.d.ts +53 -0
  44. package/core/providers/modal/modal.service.d.ts +2 -0
  45. package/core/providers/nav-builder/nav-builder-types.d.ts +1 -0
  46. package/core/public_api.d.ts +18 -1
  47. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +3 -3
  48. package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +29 -0
  49. package/core/shared/components/data-table/data-table.component.d.ts +26 -7
  50. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +1 -0
  51. package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +21 -0
  52. package/core/shared/components/radio-card/radio-card.component.d.ts +19 -0
  53. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +28 -0
  54. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +31 -0
  55. package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +4 -0
  56. package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +5 -5
  57. package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +1 -1
  58. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +12 -0
  59. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
  60. package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
  61. package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
  62. package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +1 -1
  63. package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
  64. package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
  65. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +7 -3
  66. package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -2
  67. package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +18 -0
  68. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +6 -2
  69. package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +27 -0
  70. package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +19 -0
  71. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +5 -17
  72. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +2 -1
  73. package/core/vendure-admin-ui-core.metadata.json +1 -1
  74. package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +11 -4
  75. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  76. package/esm2015/catalog/catalog.module.js +25 -2
  77. package/esm2015/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.js +4 -1
  78. package/esm2015/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.js +51 -0
  79. package/esm2015/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.js +89 -0
  80. package/esm2015/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.js +69 -0
  81. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +3 -3
  82. package/esm2015/catalog/components/collection-list/collection-list-bulk-actions.js +147 -0
  83. package/esm2015/catalog/components/collection-list/collection-list.component.js +17 -8
  84. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +16 -7
  85. package/esm2015/catalog/components/collection-tree/collection-tree.component.js +3 -2
  86. package/esm2015/catalog/components/facet-list/facet-list-bulk-actions.js +208 -0
  87. package/esm2015/catalog/components/facet-list/facet-list.component.js +13 -4
  88. package/esm2015/catalog/components/product-detail/product-detail.component.js +35 -23
  89. package/esm2015/catalog/components/product-list/product-list-bulk-actions.js +173 -0
  90. package/esm2015/catalog/components/product-list/product-list.component.js +10 -5
  91. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +2 -2
  92. package/esm2015/catalog/providers/routing/collection-resolver.js +2 -1
  93. package/esm2015/catalog/public_api.js +7 -1
  94. package/esm2015/core/common/component-registry-types.js +1 -1
  95. package/esm2015/core/common/generated-types.js +5 -1
  96. package/esm2015/core/common/introspection-result.js +296 -191
  97. package/esm2015/core/common/utilities/bulk-action-utils.js +44 -0
  98. package/esm2015/core/common/utilities/selection-manager.js +33 -1
  99. package/esm2015/core/common/version.js +2 -2
  100. package/esm2015/core/components/breadcrumb/breadcrumb.component.js +1 -1
  101. package/esm2015/core/data/definitions/collection-definitions.js +30 -1
  102. package/esm2015/core/data/definitions/facet-definitions.js +31 -1
  103. package/esm2015/core/data/definitions/order-definitions.js +114 -1
  104. package/esm2015/core/data/definitions/product-definitions.js +15 -1
  105. package/esm2015/core/data/providers/collection-data.service.js +17 -2
  106. package/esm2015/core/data/providers/customer-data.service.js +8 -4
  107. package/esm2015/core/data/providers/facet-data.service.js +18 -2
  108. package/esm2015/core/data/providers/order-data.service.js +38 -2
  109. package/esm2015/core/data/providers/product-data.service.js +7 -2
  110. package/esm2015/core/data/utils/remove-readonly-custom-fields.js +5 -1
  111. package/esm2015/core/providers/bulk-action-registry/bulk-action-registry.service.js +27 -0
  112. package/esm2015/core/providers/bulk-action-registry/bulk-action-types.js +2 -0
  113. package/esm2015/core/providers/bulk-action-registry/register-bulk-action.js +63 -0
  114. package/esm2015/core/providers/dashboard-widget/dashboard-widget.service.js +1 -4
  115. package/esm2015/core/providers/modal/modal.service.js +2 -1
  116. package/esm2015/core/providers/nav-builder/nav-builder-types.js +1 -1
  117. package/esm2015/core/public_api.js +19 -2
  118. package/esm2015/core/shared/components/action-bar/action-bar.component.js +4 -8
  119. package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +2 -2
  120. package/esm2015/core/shared/components/bulk-action-menu/bulk-action-menu.component.js +99 -0
  121. package/esm2015/core/shared/components/data-table/data-table.component.js +64 -15
  122. package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +4 -3
  123. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +2 -2
  124. package/esm2015/core/shared/components/language-selector/language-selector.component.js +2 -2
  125. package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +2 -1
  126. package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +1 -1
  127. package/esm2015/core/shared/components/product-selector/product-selector.component.js +1 -1
  128. package/esm2015/core/shared/components/radio-card/radio-card-fieldset.component.js +57 -0
  129. package/esm2015/core/shared/components/radio-card/radio-card.component.js +54 -0
  130. package/esm2015/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.js +2 -2
  131. package/esm2015/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.js +140 -0
  132. package/esm2015/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.js +45 -0
  133. package/esm2015/core/shared/components/rich-text-editor/prosemirror/custom-nodes.js +60 -0
  134. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/links.js +4 -4
  135. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.js +23 -1
  136. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.js +12 -0
  137. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu.js +73 -18
  138. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.js +16 -0
  139. package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.js +100 -0
  140. package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.js +97 -0
  141. package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.js +166 -0
  142. package/esm2015/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.js +47 -17
  143. package/esm2015/core/shared/components/rich-text-editor/prosemirror/types.js +1 -1
  144. package/esm2015/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.js +57 -0
  145. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +20 -9
  146. package/esm2015/core/shared/components/simple-dialog/simple-dialog.component.js +2 -2
  147. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.js +59 -0
  148. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.js +66 -0
  149. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +47 -84
  150. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +3 -3
  151. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +3 -1
  152. package/esm2015/core/shared/pipes/state-i18n-token.pipe.js +2 -1
  153. package/esm2015/core/shared/shared.module.js +13 -1
  154. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +2 -2
  155. package/esm2015/customer/components/customer-group-member-list/customer-group-member-list.component.js +6 -6
  156. package/esm2015/customer/components/customer-list/customer-list.component.js +2 -2
  157. package/esm2015/dashboard/dashboard.module.js +6 -2
  158. package/esm2015/order/components/coupon-code-selector/coupon-code-selector.component.js +42 -0
  159. package/esm2015/order/components/draft-order-detail/draft-order-detail.component.js +195 -0
  160. package/esm2015/order/components/draft-order-variant-selector/draft-order-variant-selector.component.js +59 -0
  161. package/esm2015/order/components/order-detail/order-detail.component.js +2 -2
  162. package/esm2015/order/components/order-editor/order-editor.component.js +5 -11
  163. package/esm2015/order/components/order-list/order-list.component.js +20 -4
  164. package/esm2015/order/components/order-table/order-table.component.js +16 -5
  165. package/esm2015/order/components/select-address-dialog/select-address-dialog.component.js +91 -0
  166. package/esm2015/order/components/select-address-dialog/select-address-dialog.graphql.js +14 -0
  167. package/esm2015/order/components/select-customer-dialog/select-customer-dialog.component.js +59 -0
  168. package/esm2015/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.js +30 -0
  169. package/esm2015/order/order.module.js +13 -1
  170. package/esm2015/order/order.routes.js +26 -7
  171. package/esm2015/order/providers/routing/order-resolver.js +29 -12
  172. package/esm2015/order/providers/routing/order.guard.js +41 -0
  173. package/esm2015/order/public_api.js +9 -1
  174. package/esm2015/settings/components/country-list/country-list.component.js +2 -2
  175. package/esm2015/settings/components/profile/profile.component.js +2 -2
  176. package/esm2015/settings/components/zone-list/zone-list.component.js +2 -2
  177. package/esm2015/settings/components/zone-member-list/zone-member-list.component.js +2 -2
  178. package/esm2015/system/components/health-check/health-check.component.js +1 -1
  179. package/fesm2015/vendure-admin-ui-catalog.js +835 -61
  180. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  181. package/fesm2015/vendure-admin-ui-core.js +3122 -1514
  182. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  183. package/fesm2015/vendure-admin-ui-customer.js +7 -7
  184. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  185. package/fesm2015/vendure-admin-ui-dashboard.js +5 -1
  186. package/fesm2015/vendure-admin-ui-dashboard.js.map +1 -1
  187. package/fesm2015/vendure-admin-ui-order.js +780 -232
  188. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  189. package/fesm2015/vendure-admin-ui-settings.js +4 -4
  190. package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
  191. package/fesm2015/vendure-admin-ui-system.js +1 -1
  192. package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +18 -0
  193. package/order/components/draft-order-detail/draft-order-detail.component.d.ts +49 -0
  194. package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +21 -0
  195. package/order/components/order-editor/order-editor.component.d.ts +1 -6
  196. package/order/components/order-list/order-list.component.d.ts +1 -0
  197. package/order/components/order-table/order-table.component.d.ts +11 -2
  198. package/order/components/select-address-dialog/select-address-dialog.component.d.ts +24 -0
  199. package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
  200. package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +22 -0
  201. package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +16 -0
  202. package/order/providers/routing/order-resolver.d.ts +8 -5
  203. package/order/providers/routing/order.guard.d.ts +9 -0
  204. package/order/public_api.d.ts +8 -0
  205. package/order/vendure-admin-ui-order.metadata.json +1 -1
  206. package/package.json +13 -12
  207. package/settings/components/zone-member-list/zone-member-list.component.d.ts +3 -1
  208. package/settings/vendure-admin-ui-settings.metadata.json +1 -1
  209. package/static/i18n-messages/cs.json +33 -0
  210. package/static/i18n-messages/de.json +33 -0
  211. package/static/i18n-messages/en.json +36 -4
  212. package/static/i18n-messages/es.json +33 -0
  213. package/static/i18n-messages/fr.json +33 -0
  214. package/static/i18n-messages/it.json +33 -0
  215. package/static/i18n-messages/pl.json +33 -0
  216. package/static/i18n-messages/pt_BR.json +33 -0
  217. package/static/i18n-messages/pt_PT.json +33 -0
  218. package/static/i18n-messages/ru.json +33 -0
  219. package/static/i18n-messages/uk.json +33 -0
  220. package/static/i18n-messages/zh_Hans.json +33 -0
  221. package/static/i18n-messages/zh_Hant.json +33 -0
  222. package/static/styles/global/_forms.scss +4 -2
  223. package/static/styles/global/_overrides.scss +1 -1
  224. package/static/styles/global/_utilities.scss +4 -0
  225. package/static/theme.min.css +1 -1
  226. package/system/vendure-admin-ui-system.metadata.json +1 -1
  227. package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
  228. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/images.js +0 -36
@@ -1 +1 @@
1
- {"version":3,"file":"vendure-admin-ui-dashboard.js","sources":["../../src/lib/dashboard/src/components/dashboard/dashboard.component.ts","../../src/lib/dashboard/src/components/dashboard-widget/dashboard-widget.component.ts","../../src/lib/dashboard/src/dashboard.routes.ts","../../src/lib/dashboard/src/widgets/latest-orders-widget/latest-orders-widget.component.ts","../../src/lib/dashboard/src/widgets/order-summary-widget/order-summary-widget.component.ts","../../src/lib/dashboard/src/widgets/test-widget/test-widget.component.ts","../../src/lib/dashboard/src/widgets/welcome-widget/welcome-widget.component.ts","../../src/lib/dashboard/src/default-widgets.ts","../../src/lib/dashboard/src/dashboard.module.ts","../../src/lib/dashboard/src/public_api.ts","../../src/lib/dashboard/src/vendure-admin-ui-dashboard.ts"],"sourcesContent":["import { CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport {\r\n DashboardWidgetConfig,\r\n DashboardWidgetService,\r\n DashboardWidgetWidth,\r\n DataService,\r\n LocalStorageService,\r\n WidgetLayout,\r\n WidgetLayoutDefinition,\r\n} from '@vendure/admin-ui/core';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'vdr-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n widgetLayout: WidgetLayout | undefined;\r\n availableWidgetIds$: Observable<string[]>;\r\n private readonly deletionMarker = '__delete__';\r\n\r\n constructor(\r\n private dashboardWidgetService: DashboardWidgetService,\r\n private localStorageService: LocalStorageService,\r\n private changedDetectorRef: ChangeDetectorRef,\r\n private dataService: DataService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.availableWidgetIds$ = this.dataService.client.userStatus().stream$.pipe(\r\n map(({ userStatus }) => userStatus.permissions),\r\n map(permissions => this.dashboardWidgetService.getAvailableIds(permissions)),\r\n tap(ids => (this.widgetLayout = this.initLayout(ids))),\r\n );\r\n }\r\n\r\n getClassForWidth(width: DashboardWidgetWidth): string {\r\n switch (width) {\r\n case 3:\r\n return `clr-col-12 clr-col-sm-6 clr-col-lg-3`;\r\n case 4:\r\n return `clr-col-12 clr-col-sm-6 clr-col-lg-4`;\r\n case 6:\r\n return `clr-col-12 clr-col-lg-6`;\r\n case 8:\r\n return `clr-col-12 clr-col-lg-8`;\r\n case 12:\r\n return `clr-col-12`;\r\n default:\r\n assertNever(width);\r\n }\r\n }\r\n\r\n getSupportedWidths(config: DashboardWidgetConfig): DashboardWidgetWidth[] {\r\n return config.supportedWidths || [3, 4, 6, 8, 12];\r\n }\r\n\r\n setWidgetWidth(widget: WidgetLayout[number][number], width: DashboardWidgetWidth) {\r\n widget.width = width;\r\n this.recalculateLayout();\r\n }\r\n\r\n trackRow(index: number, row: WidgetLayout[number]) {\r\n const id = row.map(item => `${item.id}:${item.width}`).join('|');\r\n return id;\r\n }\r\n\r\n trackRowItem(index: number, item: WidgetLayout[number][number]) {\r\n return item.config;\r\n }\r\n\r\n addWidget(id: string) {\r\n const config = this.dashboardWidgetService.getWidgetById(id);\r\n if (config) {\r\n const width = this.getSupportedWidths(config)[0];\r\n const widget: WidgetLayout[number][number] = {\r\n id,\r\n config,\r\n width,\r\n };\r\n let targetRow: WidgetLayout[number];\r\n if (this.widgetLayout && this.widgetLayout.length) {\r\n targetRow = this.widgetLayout[this.widgetLayout.length - 1];\r\n } else {\r\n targetRow = [];\r\n this.widgetLayout?.push(targetRow);\r\n }\r\n targetRow.push(widget);\r\n this.recalculateLayout();\r\n }\r\n }\r\n\r\n removeWidget(widget: WidgetLayout[number][number]) {\r\n widget.id = this.deletionMarker;\r\n this.recalculateLayout();\r\n }\r\n\r\n drop(event: CdkDragDrop<{ index: number }>) {\r\n const { currentIndex, previousIndex, previousContainer, container } = event;\r\n if (previousIndex === currentIndex && previousContainer.data.index === container.data.index) {\r\n // Nothing changed\r\n return;\r\n }\r\n if (this.widgetLayout) {\r\n const previousLayoutRow = this.widgetLayout[previousContainer.data.index];\r\n const newLayoutRow = this.widgetLayout[container.data.index];\r\n\r\n previousLayoutRow.splice(previousIndex, 1);\r\n newLayoutRow.splice(currentIndex, 0, event.item.data);\r\n this.recalculateLayout();\r\n }\r\n }\r\n\r\n private initLayout(availableIds: string[]): WidgetLayout {\r\n const savedLayoutDef = this.localStorageService.get('dashboardWidgetLayout');\r\n let layoutDef: WidgetLayoutDefinition | undefined;\r\n if (savedLayoutDef) {\r\n // validate all the IDs from the saved layout are still available\r\n layoutDef = savedLayoutDef.filter(item => availableIds.includes(item.id));\r\n }\r\n return this.dashboardWidgetService.getWidgetLayout(layoutDef);\r\n }\r\n\r\n private recalculateLayout() {\r\n if (this.widgetLayout) {\r\n const flattened = this.widgetLayout\r\n .reduce((flat, row) => [...flat, ...row], [])\r\n .filter(item => item.id !== this.deletionMarker);\r\n const newLayoutDef: WidgetLayoutDefinition = flattened.map(item => ({\r\n id: item.id,\r\n width: item.width,\r\n }));\r\n this.widgetLayout = this.dashboardWidgetService.getWidgetLayout(newLayoutDef);\r\n this.localStorageService.set('dashboardWidgetLayout', newLayoutDef);\r\n setTimeout(() => this.changedDetectorRef.markForCheck());\r\n }\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { DashboardWidgetConfig } from '@vendure/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 constructor(private componentFactoryResolver: ComponentFactoryResolver) {}\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(\n this.componentFactoryResolver.resolveComponentFactory(componentType),\n );\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n}\n","import { Routes } from '@angular/router';\r\n\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\n\r\nexport const dashboardRoutes: Routes = [\r\n {\r\n path: '',\r\n component: DashboardComponent,\r\n pathMatch: 'full',\r\n },\r\n];\r\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\r\nimport { CoreModule, DataService, GetOrderList, SharedModule, SortOrder } from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-latest-orders-widget',\r\n templateUrl: './latest-orders-widget.component.html',\r\n styleUrls: ['./latest-orders-widget.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LatestOrdersWidgetComponent implements OnInit {\r\n latestOrders$: Observable<GetOrderList.Items[]>;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.latestOrders$ = this.dataService.order\r\n .getOrders({\r\n take: 10,\r\n filter: {\r\n active: { eq: false },\r\n state: { notEq: 'Cancelled' },\r\n },\r\n sort: {\r\n orderPlacedAt: SortOrder.DESC,\r\n },\r\n })\r\n .refetchOnChannelChange()\r\n .mapStream(data => data.orders.items);\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CoreModule, SharedModule],\r\n declarations: [LatestOrdersWidgetComponent],\r\n})\r\nexport class LatestOrdersWidgetModule {}\r\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\r\nimport { CoreModule, DataService } from '@vendure/admin-ui/core';\r\nimport dayjs from 'dayjs';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs/operators';\r\n\r\nexport type Timeframe = 'day' | 'week' | 'month';\r\n\r\n@Component({\r\n selector: 'vdr-order-summary-widget',\r\n templateUrl: './order-summary-widget.component.html',\r\n styleUrls: ['./order-summary-widget.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderSummaryWidgetComponent implements OnInit {\r\n today = new Date();\r\n yesterday = new Date(new Date().setDate(this.today.getDate() - 1));\r\n totalOrderCount$: Observable<number>;\r\n totalOrderValue$: Observable<number>;\r\n currencyCode$: Observable<string | undefined>;\r\n selection$ = new BehaviorSubject<{ timeframe: Timeframe; date?: Date }>({\r\n timeframe: 'day',\r\n date: this.today,\r\n });\r\n dateRange$: Observable<{ start: Date; end: Date }>;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.dateRange$ = this.selection$.pipe(\r\n distinctUntilChanged(),\r\n map(selection => {\r\n return {\r\n start: dayjs(selection.date).startOf(selection.timeframe).toDate(),\r\n end: dayjs(selection.date).endOf(selection.timeframe).toDate(),\r\n };\r\n }),\r\n shareReplay(1),\r\n );\r\n const orderSummary$ = this.dateRange$.pipe(\r\n switchMap(({ start, end }) => {\r\n return this.dataService.order\r\n .getOrderSummary(start, end)\r\n .refetchOnChannelChange()\r\n .mapStream(data => data.orders);\r\n }),\r\n shareReplay(1),\r\n );\r\n this.totalOrderCount$ = orderSummary$.pipe(map(res => res.totalItems));\r\n this.totalOrderValue$ = orderSummary$.pipe(\r\n map(res => res.items.reduce((total, order) => total + order.total, 0) / 100),\r\n );\r\n this.currencyCode$ = this.dataService.settings\r\n .getActiveChannel()\r\n .refetchOnChannelChange()\r\n .mapStream(data => data.activeChannel.currencyCode || undefined);\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CoreModule],\r\n declarations: [OrderSummaryWidgetComponent],\r\n})\r\nexport class OrderSummaryWidgetModule {}\r\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","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\r\nimport {\r\n Administrator,\r\n ADMIN_UI_VERSION,\r\n CoreModule,\r\n DataService,\r\n GetActiveAdministrator,\r\n getAppConfig,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-welcome-widget',\r\n templateUrl: './welcome-widget.component.html',\r\n styleUrls: ['./welcome-widget.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WelcomeWidgetComponent implements OnInit {\r\n version = ADMIN_UI_VERSION;\r\n administrator$: Observable<GetActiveAdministrator.ActiveAdministrator | null>;\r\n brand = getAppConfig().brand;\r\n hideVendureBranding = getAppConfig().hideVendureBranding;\r\n hideVersion = getAppConfig().hideVersion;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.administrator$ = this.dataService.administrator\r\n .getActiveAdministrator()\r\n .mapStream(data => data.activeAdministrator || null);\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CoreModule],\r\n declarations: [WelcomeWidgetComponent],\r\n})\r\nexport class WelcomeWidgetModule {}\r\n","import { APP_INITIALIZER, FactoryProvider } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DashboardWidgetConfig,\n DashboardWidgetService,\n Permission,\n WidgetLayoutDefinition,\n} from '@vendure/admin-ui/core';\n\nimport { LatestOrdersWidgetComponent } from './widgets/latest-orders-widget/latest-orders-widget.component';\nimport { OrderSummaryWidgetComponent } from './widgets/order-summary-widget/order-summary-widget.component';\nimport { TestWidgetComponent } from './widgets/test-widget/test-widget.component';\nimport { WelcomeWidgetComponent } from './widgets/welcome-widget/welcome-widget.component';\n\nexport const DEFAULT_DASHBOARD_WIDGET_LAYOUT: WidgetLayoutDefinition = [\n { id: 'welcome', width: 12 },\n { id: 'orderSummary', width: 6 },\n { id: 'latestOrders', width: 6 },\n];\n\nexport const DEFAULT_WIDGETS: { [id: string]: DashboardWidgetConfig } = {\n welcome: {\n loadComponent: () => WelcomeWidgetComponent,\n },\n orderSummary: {\n title: _('dashboard.orders-summary'),\n loadComponent: () => OrderSummaryWidgetComponent,\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 testWidget: {\n title: 'Test Widget',\n loadComponent: () => TestWidgetComponent,\n },\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { DashboardWidgetService, SharedModule } from '@vendure/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';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild(dashboardRoutes)],\n declarations: [DashboardComponent, DashboardWidgetComponent],\n})\nexport class DashboardModule {\n constructor(dashboardWidgetService: DashboardWidgetService) {\n Object.entries(DEFAULT_WIDGETS).map(([id, config]) =>\n dashboardWidgetService.registerWidget(id, config),\n );\n if (dashboardWidgetService.getDefaultLayout().length === 0) {\n dashboardWidgetService.setDefaultLayout(DEFAULT_DASHBOARD_WIDGET_LAYOUT);\n }\n }\n}\n","// This file was generated by the build-public-api.ts script\nexport * from './components/dashboard/dashboard.component';\nexport * from './components/dashboard-widget/dashboard-widget.component';\nexport * from './dashboard.module';\nexport * from './dashboard.routes';\nexport * from './default-widgets';\nexport * from './widgets/latest-orders-widget/latest-orders-widget.component';\nexport * from './widgets/order-summary-widget/order-summary-widget.component';\nexport * from './widgets/test-widget/test-widget.component';\nexport * from './widgets/welcome-widget/welcome-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_"],"mappings":"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"}
1
+ {"version":3,"file":"vendure-admin-ui-dashboard.js","sources":["../../src/lib/dashboard/src/components/dashboard/dashboard.component.ts","../../src/lib/dashboard/src/components/dashboard-widget/dashboard-widget.component.ts","../../src/lib/dashboard/src/dashboard.routes.ts","../../src/lib/dashboard/src/widgets/latest-orders-widget/latest-orders-widget.component.ts","../../src/lib/dashboard/src/widgets/order-summary-widget/order-summary-widget.component.ts","../../src/lib/dashboard/src/widgets/test-widget/test-widget.component.ts","../../src/lib/dashboard/src/widgets/welcome-widget/welcome-widget.component.ts","../../src/lib/dashboard/src/default-widgets.ts","../../src/lib/dashboard/src/dashboard.module.ts","../../src/lib/dashboard/src/public_api.ts","../../src/lib/dashboard/src/vendure-admin-ui-dashboard.ts"],"sourcesContent":["import { CdkDragDrop } from '@angular/cdk/drag-drop';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport {\r\n DashboardWidgetConfig,\r\n DashboardWidgetService,\r\n DashboardWidgetWidth,\r\n DataService,\r\n LocalStorageService,\r\n WidgetLayout,\r\n WidgetLayoutDefinition,\r\n} from '@vendure/admin-ui/core';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'vdr-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n widgetLayout: WidgetLayout | undefined;\r\n availableWidgetIds$: Observable<string[]>;\r\n private readonly deletionMarker = '__delete__';\r\n\r\n constructor(\r\n private dashboardWidgetService: DashboardWidgetService,\r\n private localStorageService: LocalStorageService,\r\n private changedDetectorRef: ChangeDetectorRef,\r\n private dataService: DataService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.availableWidgetIds$ = this.dataService.client.userStatus().stream$.pipe(\r\n map(({ userStatus }) => userStatus.permissions),\r\n map(permissions => this.dashboardWidgetService.getAvailableIds(permissions)),\r\n tap(ids => (this.widgetLayout = this.initLayout(ids))),\r\n );\r\n }\r\n\r\n getClassForWidth(width: DashboardWidgetWidth): string {\r\n switch (width) {\r\n case 3:\r\n return `clr-col-12 clr-col-sm-6 clr-col-lg-3`;\r\n case 4:\r\n return `clr-col-12 clr-col-sm-6 clr-col-lg-4`;\r\n case 6:\r\n return `clr-col-12 clr-col-lg-6`;\r\n case 8:\r\n return `clr-col-12 clr-col-lg-8`;\r\n case 12:\r\n return `clr-col-12`;\r\n default:\r\n assertNever(width);\r\n }\r\n }\r\n\r\n getSupportedWidths(config: DashboardWidgetConfig): DashboardWidgetWidth[] {\r\n return config.supportedWidths || [3, 4, 6, 8, 12];\r\n }\r\n\r\n setWidgetWidth(widget: WidgetLayout[number][number], width: DashboardWidgetWidth) {\r\n widget.width = width;\r\n this.recalculateLayout();\r\n }\r\n\r\n trackRow(index: number, row: WidgetLayout[number]) {\r\n const id = row.map(item => `${item.id}:${item.width}`).join('|');\r\n return id;\r\n }\r\n\r\n trackRowItem(index: number, item: WidgetLayout[number][number]) {\r\n return item.config;\r\n }\r\n\r\n addWidget(id: string) {\r\n const config = this.dashboardWidgetService.getWidgetById(id);\r\n if (config) {\r\n const width = this.getSupportedWidths(config)[0];\r\n const widget: WidgetLayout[number][number] = {\r\n id,\r\n config,\r\n width,\r\n };\r\n let targetRow: WidgetLayout[number];\r\n if (this.widgetLayout && this.widgetLayout.length) {\r\n targetRow = this.widgetLayout[this.widgetLayout.length - 1];\r\n } else {\r\n targetRow = [];\r\n this.widgetLayout?.push(targetRow);\r\n }\r\n targetRow.push(widget);\r\n this.recalculateLayout();\r\n }\r\n }\r\n\r\n removeWidget(widget: WidgetLayout[number][number]) {\r\n widget.id = this.deletionMarker;\r\n this.recalculateLayout();\r\n }\r\n\r\n drop(event: CdkDragDrop<{ index: number }>) {\r\n const { currentIndex, previousIndex, previousContainer, container } = event;\r\n if (previousIndex === currentIndex && previousContainer.data.index === container.data.index) {\r\n // Nothing changed\r\n return;\r\n }\r\n if (this.widgetLayout) {\r\n const previousLayoutRow = this.widgetLayout[previousContainer.data.index];\r\n const newLayoutRow = this.widgetLayout[container.data.index];\r\n\r\n previousLayoutRow.splice(previousIndex, 1);\r\n newLayoutRow.splice(currentIndex, 0, event.item.data);\r\n this.recalculateLayout();\r\n }\r\n }\r\n\r\n private initLayout(availableIds: string[]): WidgetLayout {\r\n const savedLayoutDef = this.localStorageService.get('dashboardWidgetLayout');\r\n let layoutDef: WidgetLayoutDefinition | undefined;\r\n if (savedLayoutDef) {\r\n // validate all the IDs from the saved layout are still available\r\n layoutDef = savedLayoutDef.filter(item => availableIds.includes(item.id));\r\n }\r\n return this.dashboardWidgetService.getWidgetLayout(layoutDef);\r\n }\r\n\r\n private recalculateLayout() {\r\n if (this.widgetLayout) {\r\n const flattened = this.widgetLayout\r\n .reduce((flat, row) => [...flat, ...row], [])\r\n .filter(item => item.id !== this.deletionMarker);\r\n const newLayoutDef: WidgetLayoutDefinition = flattened.map(item => ({\r\n id: item.id,\r\n width: item.width,\r\n }));\r\n this.widgetLayout = this.dashboardWidgetService.getWidgetLayout(newLayoutDef);\r\n this.localStorageService.set('dashboardWidgetLayout', newLayoutDef);\r\n setTimeout(() => this.changedDetectorRef.markForCheck());\r\n }\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { DashboardWidgetConfig } from '@vendure/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 constructor(private componentFactoryResolver: ComponentFactoryResolver) {}\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(\n this.componentFactoryResolver.resolveComponentFactory(componentType),\n );\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n}\n","import { Routes } from '@angular/router';\r\n\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\n\r\nexport const dashboardRoutes: Routes = [\r\n {\r\n path: '',\r\n component: DashboardComponent,\r\n pathMatch: 'full',\r\n },\r\n];\r\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\r\nimport { CoreModule, DataService, GetOrderList, SharedModule, SortOrder } from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-latest-orders-widget',\r\n templateUrl: './latest-orders-widget.component.html',\r\n styleUrls: ['./latest-orders-widget.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LatestOrdersWidgetComponent implements OnInit {\r\n latestOrders$: Observable<GetOrderList.Items[]>;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.latestOrders$ = this.dataService.order\r\n .getOrders({\r\n take: 10,\r\n filter: {\r\n active: { eq: false },\r\n state: { notEq: 'Cancelled' },\r\n },\r\n sort: {\r\n orderPlacedAt: SortOrder.DESC,\r\n },\r\n })\r\n .refetchOnChannelChange()\r\n .mapStream(data => data.orders.items);\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CoreModule, SharedModule],\r\n declarations: [LatestOrdersWidgetComponent],\r\n})\r\nexport class LatestOrdersWidgetModule {}\r\n","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\r\nimport { CoreModule, DataService } from '@vendure/admin-ui/core';\r\nimport dayjs from 'dayjs';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs/operators';\r\n\r\nexport type Timeframe = 'day' | 'week' | 'month';\r\n\r\n@Component({\r\n selector: 'vdr-order-summary-widget',\r\n templateUrl: './order-summary-widget.component.html',\r\n styleUrls: ['./order-summary-widget.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderSummaryWidgetComponent implements OnInit {\r\n today = new Date();\r\n yesterday = new Date(new Date().setDate(this.today.getDate() - 1));\r\n totalOrderCount$: Observable<number>;\r\n totalOrderValue$: Observable<number>;\r\n currencyCode$: Observable<string | undefined>;\r\n selection$ = new BehaviorSubject<{ timeframe: Timeframe; date?: Date }>({\r\n timeframe: 'day',\r\n date: this.today,\r\n });\r\n dateRange$: Observable<{ start: Date; end: Date }>;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.dateRange$ = this.selection$.pipe(\r\n distinctUntilChanged(),\r\n map(selection => {\r\n return {\r\n start: dayjs(selection.date).startOf(selection.timeframe).toDate(),\r\n end: dayjs(selection.date).endOf(selection.timeframe).toDate(),\r\n };\r\n }),\r\n shareReplay(1),\r\n );\r\n const orderSummary$ = this.dateRange$.pipe(\r\n switchMap(({ start, end }) => {\r\n return this.dataService.order\r\n .getOrderSummary(start, end)\r\n .refetchOnChannelChange()\r\n .mapStream(data => data.orders);\r\n }),\r\n shareReplay(1),\r\n );\r\n this.totalOrderCount$ = orderSummary$.pipe(map(res => res.totalItems));\r\n this.totalOrderValue$ = orderSummary$.pipe(\r\n map(res => res.items.reduce((total, order) => total + order.total, 0) / 100),\r\n );\r\n this.currencyCode$ = this.dataService.settings\r\n .getActiveChannel()\r\n .refetchOnChannelChange()\r\n .mapStream(data => data.activeChannel.currencyCode || undefined);\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CoreModule],\r\n declarations: [OrderSummaryWidgetComponent],\r\n})\r\nexport class OrderSummaryWidgetModule {}\r\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","import { ChangeDetectionStrategy, Component, NgModule, OnInit } from '@angular/core';\r\nimport {\r\n Administrator,\r\n ADMIN_UI_VERSION,\r\n CoreModule,\r\n DataService,\r\n GetActiveAdministrator,\r\n getAppConfig,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-welcome-widget',\r\n templateUrl: './welcome-widget.component.html',\r\n styleUrls: ['./welcome-widget.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WelcomeWidgetComponent implements OnInit {\r\n version = ADMIN_UI_VERSION;\r\n administrator$: Observable<GetActiveAdministrator.ActiveAdministrator | null>;\r\n brand = getAppConfig().brand;\r\n hideVendureBranding = getAppConfig().hideVendureBranding;\r\n hideVersion = getAppConfig().hideVersion;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.administrator$ = this.dataService.administrator\r\n .getActiveAdministrator()\r\n .mapStream(data => data.activeAdministrator || null);\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CoreModule],\r\n declarations: [WelcomeWidgetComponent],\r\n})\r\nexport class WelcomeWidgetModule {}\r\n","import { APP_INITIALIZER, FactoryProvider } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DashboardWidgetConfig,\n DashboardWidgetService,\n Permission,\n WidgetLayoutDefinition,\n} from '@vendure/admin-ui/core';\n\nimport { LatestOrdersWidgetComponent } from './widgets/latest-orders-widget/latest-orders-widget.component';\nimport { OrderSummaryWidgetComponent } from './widgets/order-summary-widget/order-summary-widget.component';\nimport { TestWidgetComponent } from './widgets/test-widget/test-widget.component';\nimport { WelcomeWidgetComponent } from './widgets/welcome-widget/welcome-widget.component';\n\nexport const DEFAULT_DASHBOARD_WIDGET_LAYOUT: WidgetLayoutDefinition = [\n { id: 'welcome', width: 12 },\n { id: 'orderSummary', width: 6 },\n { id: 'latestOrders', width: 6 },\n];\n\nexport const DEFAULT_WIDGETS: { [id: string]: DashboardWidgetConfig } = {\n welcome: {\n loadComponent: () => WelcomeWidgetComponent,\n },\n orderSummary: {\n title: _('dashboard.orders-summary'),\n loadComponent: () => OrderSummaryWidgetComponent,\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 testWidget: {\n title: 'Test Widget',\n loadComponent: () => TestWidgetComponent,\n },\n};\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DashboardWidgetService, SharedModule } from '@vendure/admin-ui/core';\r\n\r\nimport { DashboardWidgetComponent } from './components/dashboard-widget/dashboard-widget.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { dashboardRoutes } from './dashboard.routes';\r\nimport { DEFAULT_DASHBOARD_WIDGET_LAYOUT, DEFAULT_WIDGETS } from './default-widgets';\r\n\r\n@NgModule({\r\n imports: [SharedModule, RouterModule.forChild(dashboardRoutes)],\r\n declarations: [DashboardComponent, DashboardWidgetComponent],\r\n})\r\nexport class DashboardModule {\r\n constructor(dashboardWidgetService: DashboardWidgetService) {\r\n Object.entries(DEFAULT_WIDGETS).map(([id, config]) => {\r\n if (!dashboardWidgetService.getWidgetById(id)) {\r\n dashboardWidgetService.registerWidget(id, config);\r\n }\r\n });\r\n if (dashboardWidgetService.getDefaultLayout().length === 0) {\r\n dashboardWidgetService.setDefaultLayout(DEFAULT_DASHBOARD_WIDGET_LAYOUT);\r\n }\r\n }\r\n}\r\n","// This file was generated by the build-public-api.ts script\nexport * from './components/dashboard/dashboard.component';\nexport * from './components/dashboard-widget/dashboard-widget.component';\nexport * from './dashboard.module';\nexport * from './dashboard.routes';\nexport * from './default-widgets';\nexport * from './widgets/latest-orders-widget/latest-orders-widget.component';\nexport * from './widgets/order-summary-widget/order-summary-widget.component';\nexport * from './widgets/test-widget/test-widget.component';\nexport * from './widgets/welcome-widget/welcome-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_"],"mappings":"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"}