@vendure/admin-ui 2.1.0-next.1 → 2.1.0-next.3
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/catalog/components/collection-detail/collection-detail.component.d.ts +3 -1
- package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +6 -4
- package/catalog/components/facet-detail/facet-detail.component.d.ts +3 -1
- package/catalog/components/product-detail/product-detail.component.d.ts +3 -1
- package/catalog/components/stock-location-detail/stock-location-detail.component.d.ts +3 -1
- package/core/common/base-detail.component.d.ts +11 -1
- package/core/common/component-registry-types.d.ts +2 -1
- package/core/common/utilities/custom-field-default-value.d.ts +6 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +2 -0
- package/core/extension/add-action-bar-item.d.ts +28 -0
- package/core/extension/add-nav-menu-item.d.ts +60 -0
- package/core/extension/components/angular-route.component.d.ts +6 -0
- package/core/extension/components/route.component.d.ts +13 -0
- package/core/extension/providers/page-metadata.service.d.ts +9 -0
- package/core/{providers/bulk-action-registry → extension}/register-bulk-action.d.ts +1 -1
- package/core/extension/register-custom-detail-component.d.ts +10 -0
- package/core/{providers/dashboard-widget → extension}/register-dashboard-widget.d.ts +5 -1
- package/core/extension/register-data-table-component.d.ts +44 -0
- package/core/extension/register-form-input-component.d.ts +50 -0
- package/core/extension/register-history-entry-component.d.ts +11 -0
- package/core/extension/register-route-component.d.ts +59 -0
- package/core/extension/types.d.ts +11 -0
- package/core/providers/component-registry/component-registry.service.d.ts +6 -3
- package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +2 -1
- package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -9
- package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +1 -10
- package/core/providers/dashboard-widget/dashboard-widget-types.d.ts +17 -1
- package/core/providers/modal/modal.service.d.ts +1 -3
- package/core/providers/nav-builder/nav-builder.service.d.ts +0 -85
- package/core/public_api.d.ts +16 -3
- package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +3 -3
- package/core/shared/components/data-table-2/data-table-column.component.d.ts +2 -2
- package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +52 -0
- package/core/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +0 -1
- package/core/shared/components/data-table-2/data-table2.component.d.ts +9 -2
- package/core/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +2 -3
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +13 -4
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +15 -0
- package/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +3 -3
- package/core/shared/shared.module.d.ts +25 -25
- package/customer/components/customer-detail/customer-detail.component.d.ts +3 -1
- package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +3 -1
- package/customer/components/customer-history/customer-history-entry-host.component.d.ts +2 -3
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/dashboard/components/dashboard-widget/dashboard-widget.component.d.ts +1 -3
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +3 -3
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +3 -3
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +3 -3
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +3 -3
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +8 -5
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +3 -3
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +3 -3
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-list/product-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +3 -3
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +3 -3
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +3 -3
- package/esm2022/catalog/components/stock-location-detail/stock-location-detail.component.mjs +3 -3
- package/esm2022/catalog/components/stock-location-list/stock-location-list.component.mjs +3 -3
- package/esm2022/core/common/base-detail.component.mjs +9 -7
- package/esm2022/core/common/component-registry-types.mjs +1 -1
- package/esm2022/core/common/utilities/create-updated-translatable.mjs +5 -23
- package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +16 -10
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +3 -3
- package/esm2022/core/components/main-nav/main-nav.component.mjs +3 -3
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +1 -1
- package/esm2022/core/core.module.mjs +2 -2
- package/esm2022/core/extension/add-action-bar-item.mjs +38 -0
- package/esm2022/core/extension/add-nav-menu-item.mjs +79 -0
- package/esm2022/core/extension/components/angular-route.component.mjs +22 -0
- package/esm2022/core/extension/components/route.component.mjs +59 -0
- package/esm2022/core/extension/providers/page-metadata.service.mjs +20 -0
- package/esm2022/core/extension/register-bulk-action.mjs +63 -0
- package/esm2022/core/extension/register-custom-detail-component.mjs +20 -0
- package/esm2022/core/extension/register-dashboard-widget.mjs +36 -0
- package/esm2022/core/extension/register-data-table-component.mjs +50 -0
- package/esm2022/core/extension/register-form-input-component.mjs +60 -0
- package/esm2022/core/extension/register-history-entry-component.mjs +21 -0
- package/esm2022/core/extension/register-route-component.mjs +44 -0
- package/esm2022/core/extension/types.mjs +2 -0
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +3 -3
- package/esm2022/core/providers/custom-detail-component/custom-detail-component-types.mjs +1 -1
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +2 -19
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +2 -20
- package/esm2022/core/providers/dashboard-widget/dashboard-widget-types.mjs +1 -1
- package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +1 -8
- package/esm2022/core/providers/data-table/data-table-filter.mjs +1 -1
- package/esm2022/core/providers/modal/modal.service.mjs +5 -7
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +2 -113
- package/esm2022/core/public_api.mjs +17 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +3 -3
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +3 -3
- package/esm2022/core/shared/components/card/card.component.mjs +3 -3
- package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +13 -9
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +5 -6
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +26 -0
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +2 -4
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +23 -10
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +2 -2
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +6 -4
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +2 -2
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +6 -8
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +3 -3
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +2 -2
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -2
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +97 -5
- package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +44 -0
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +20 -16
- package/esm2022/core/shared/shared.module.mjs +14 -13
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +5 -5
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +3 -3
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +3 -2
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +3 -3
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +5 -7
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +10 -7
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -7
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +3 -3
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +3 -3
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +2 -2
- package/esm2022/order/components/order-detail/order-detail.component.mjs +3 -3
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +7 -9
- package/esm2022/order/components/order-list/order-list.component.mjs +3 -3
- package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
- package/esm2022/react/components/react-custom-column.component.mjs +25 -0
- package/esm2022/react/components/react-custom-detail.component.mjs +23 -0
- package/esm2022/react/components/react-form-input.component.mjs +24 -0
- package/esm2022/react/components/react-route.component.mjs +26 -0
- package/esm2022/react/directives/react-component-host.directive.mjs +54 -0
- package/esm2022/react/public_api.mjs +19 -0
- package/esm2022/react/react-components/Card.mjs +28 -0
- package/esm2022/react/react-components/Link.mjs +30 -0
- package/esm2022/react/react-hooks/use-detail-component-data.mjs +48 -0
- package/esm2022/react/react-hooks/use-form-control.mjs +66 -0
- package/esm2022/react/react-hooks/use-injector.mjs +33 -0
- package/esm2022/react/react-hooks/use-page-metadata.mjs +41 -0
- package/esm2022/react/react-hooks/use-query.mjs +124 -0
- package/esm2022/react/register-react-custom-detail-component.mjs +33 -0
- package/esm2022/react/register-react-data-table-component.mjs +62 -0
- package/esm2022/react/register-react-form-input-component.mjs +27 -0
- package/esm2022/react/register-react-route-component.mjs +25 -0
- package/esm2022/react/types.mjs +2 -0
- package/esm2022/react/vendure-admin-ui-react.mjs +5 -0
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +3 -3
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +3 -3
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +10 -10
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +3 -3
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +3 -3
- package/esm2022/settings/components/country-list/country-list.component.mjs +3 -3
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +3 -3
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +3 -3
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +3 -3
- package/esm2022/settings/components/profile/profile.component.mjs +3 -3
- package/esm2022/settings/components/role-list/role-list.component.mjs +3 -3
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +3 -3
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +3 -3
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +3 -3
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +3 -3
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +3 -3
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +3 -3
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +3 -3
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +3 -3
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +3 -3
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
- package/esm2022/settings/settings.routes.mjs +1 -1
- package/esm2022/system/components/job-list/job-list.component.mjs +3 -3
- package/fesm2022/vendure-admin-ui-catalog.mjs +34 -31
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +659 -346
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +19 -18
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +5 -8
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +4 -4
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +14 -16
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +641 -0
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -0
- package/fesm2022/vendure-admin-ui-settings.mjs +41 -41
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +2 -2
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-detail/promotion-detail.component.d.ts +3 -1
- package/order/components/order-detail/order-detail.component.d.ts +3 -1
- package/order/components/order-history/order-history-entry-host.component.d.ts +2 -3
- package/package.json +22 -14
- package/react/components/react-custom-column.component.d.ts +17 -0
- package/react/components/react-custom-detail.component.d.ts +24 -0
- package/react/components/react-form-input.component.d.ts +20 -0
- package/react/components/react-route.component.d.ts +10 -0
- package/react/directives/react-component-host.directive.d.ts +23 -0
- package/react/index.d.ts +5 -0
- package/react/public_api.d.ts +17 -0
- package/react/react-components/Card.d.ts +24 -0
- package/react/react-components/Link.d.ts +22 -0
- package/react/react-hooks/use-detail-component-data.d.ts +32 -0
- package/react/react-hooks/use-form-control.d.ts +29 -0
- package/react/react-hooks/use-injector.d.ts +24 -0
- package/react/react-hooks/use-page-metadata.d.ts +30 -0
- package/react/react-hooks/use-query.d.ts +92 -0
- package/react/register-react-custom-detail-component.d.ts +38 -0
- package/react/register-react-data-table-component.d.ts +81 -0
- package/react/register-react-form-input-component.d.ts +9 -0
- package/react/register-react-route-component.d.ts +26 -0
- package/react/types.d.ts +17 -0
- package/settings/components/admin-detail/admin-detail.component.d.ts +3 -1
- package/settings/components/channel-detail/channel-detail.component.d.ts +5 -3
- package/settings/components/country-detail/country-detail.component.d.ts +3 -1
- package/settings/components/global-settings/global-settings.component.d.ts +3 -1
- package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +3 -1
- package/settings/components/profile/profile.component.d.ts +3 -1
- package/settings/components/seller-detail/seller-detail.component.d.ts +3 -1
- package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +3 -1
- package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +3 -1
- package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +3 -1
- package/settings/components/zone-detail/zone-detail.component.d.ts +3 -1
- package/static/i18n-messages/cs.json +789 -789
- package/static/i18n-messages/de.json +789 -789
- package/static/i18n-messages/en.json +789 -789
- package/static/i18n-messages/es.json +789 -789
- package/static/i18n-messages/fr.json +789 -789
- package/static/i18n-messages/he.json +789 -789
- package/static/i18n-messages/it.json +789 -789
- package/static/i18n-messages/pl.json +789 -789
- package/static/i18n-messages/pt_BR.json +789 -789
- package/static/i18n-messages/pt_PT.json +789 -789
- package/static/i18n-messages/ru.json +789 -789
- package/static/i18n-messages/uk.json +789 -789
- package/static/i18n-messages/zh_Hans.json +789 -789
- package/static/i18n-messages/zh_Hant.json +789 -789
- package/static/styles/_mixins.scss +4 -4
- package/static/styles/global/_forms.scss +2 -2
- package/static/styles/rtl.scss +1 -1
- package/static/styles/theme/dark.scss +1 -16
- package/static/styles/theme/default.scss +1 -0
- package/static/theme.min.css +1 -1
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +0 -64
- package/esm2022/core/providers/bulk-action-registry/register-bulk-action.mjs +0 -63
- package/esm2022/core/providers/dashboard-widget/register-dashboard-widget.mjs +0 -32
- package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +0 -102
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { DashboardWidgetService } from '../providers/dashboard-widget/dashboard-widget.service';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Registers a dashboard widget. Once registered, the widget can be set as part of the default
|
|
6
|
+
* (using {@link setDashboardWidgetLayout}).
|
|
7
|
+
*
|
|
8
|
+
* @docsCategory dashboard-widgets
|
|
9
|
+
*/
|
|
10
|
+
export function registerDashboardWidget(id, config) {
|
|
11
|
+
return {
|
|
12
|
+
provide: APP_INITIALIZER,
|
|
13
|
+
multi: true,
|
|
14
|
+
useFactory: (dashboardWidgetService) => () => {
|
|
15
|
+
dashboardWidgetService.registerWidget(id, config);
|
|
16
|
+
},
|
|
17
|
+
deps: [DashboardWidgetService],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @description
|
|
22
|
+
* Sets the default widget layout for the Admin UI dashboard.
|
|
23
|
+
*
|
|
24
|
+
* @docsCategory dashboard-widgets
|
|
25
|
+
*/
|
|
26
|
+
export function setDashboardWidgetLayout(layoutDef) {
|
|
27
|
+
return {
|
|
28
|
+
provide: APP_INITIALIZER,
|
|
29
|
+
multi: true,
|
|
30
|
+
useFactory: (dashboardWidgetService) => () => {
|
|
31
|
+
dashboardWidgetService.setDefaultLayout(layoutDef);
|
|
32
|
+
},
|
|
33
|
+
deps: [DashboardWidgetService],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGFzaGJvYXJkLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZXh0ZW5zaW9uL3JlZ2lzdGVyLWRhc2hib2FyZC13aWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFNakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFaEc7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBQVUsRUFBRSxNQUE2QjtJQUM3RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxzQkFBOEMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ2pFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0tBQ2pDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsU0FBaUM7SUFDdEUsT0FBTztRQUNILE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsc0JBQThDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUNqRSxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsc0JBQXNCLENBQUM7S0FDakMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEZhY3RvcnlQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIERhc2hib2FyZFdpZGdldENvbmZpZyxcclxuICAgIFdpZGdldExheW91dERlZmluaXRpb24sXHJcbn0gZnJvbSAnLi4vcHJvdmlkZXJzL2Rhc2hib2FyZC13aWRnZXQvZGFzaGJvYXJkLXdpZGdldC10eXBlcyc7XHJcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UgfSBmcm9tICcuLi9wcm92aWRlcnMvZGFzaGJvYXJkLXdpZGdldC9kYXNoYm9hcmQtd2lkZ2V0LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBSZWdpc3RlcnMgYSBkYXNoYm9hcmQgd2lkZ2V0LiBPbmNlIHJlZ2lzdGVyZWQsIHRoZSB3aWRnZXQgY2FuIGJlIHNldCBhcyBwYXJ0IG9mIHRoZSBkZWZhdWx0XHJcbiAqICh1c2luZyB7QGxpbmsgc2V0RGFzaGJvYXJkV2lkZ2V0TGF5b3V0fSkuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgZGFzaGJvYXJkLXdpZGdldHNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRhc2hib2FyZFdpZGdldChpZDogc3RyaW5nLCBjb25maWc6IERhc2hib2FyZFdpZGdldENvbmZpZyk6IEZhY3RvcnlQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoZGFzaGJvYXJkV2lkZ2V0U2VydmljZTogRGFzaGJvYXJkV2lkZ2V0U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLnJlZ2lzdGVyV2lkZ2V0KGlkLCBjb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVwczogW0Rhc2hib2FyZFdpZGdldFNlcnZpY2VdLFxyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBTZXRzIHRoZSBkZWZhdWx0IHdpZGdldCBsYXlvdXQgZm9yIHRoZSBBZG1pbiBVSSBkYXNoYm9hcmQuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgZGFzaGJvYXJkLXdpZGdldHNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXREYXNoYm9hcmRXaWRnZXRMYXlvdXQobGF5b3V0RGVmOiBXaWRnZXRMYXlvdXREZWZpbml0aW9uKTogRmFjdG9yeVByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIHVzZUZhY3Rvcnk6IChkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlOiBEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRhc2hib2FyZFdpZGdldFNlcnZpY2Uuc2V0RGVmYXVsdExheW91dChsYXlvdXREZWYpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVwczogW0Rhc2hib2FyZFdpZGdldFNlcnZpY2VdLFxyXG4gICAgfTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { DataTableCustomComponentService, } from '../shared/components/data-table-2/data-table-custom-component.service';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Allows you to override the default component used to render the data of a particular column in a DataTable.
|
|
6
|
+
* The component should implement the {@link CustomDataTableColumnComponent} interface.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts title="components/custom-table.component.ts"
|
|
10
|
+
* import { Component, Input } from '\@angular/core';
|
|
11
|
+
* import { CustomColumnComponent } from '\@vendure/admin-ui/core';
|
|
12
|
+
*
|
|
13
|
+
* @Component({
|
|
14
|
+
* selector: 'custom-slug-component',
|
|
15
|
+
* template: `
|
|
16
|
+
* <a [href]="'https://example.com/products/' + rowItem.slug" target="_blank">{{ rowItem.slug }}</a>
|
|
17
|
+
* `,
|
|
18
|
+
* standalone: true,
|
|
19
|
+
* })
|
|
20
|
+
* export class CustomTableComponent implements CustomColumnComponent {
|
|
21
|
+
* \@Input() rowItem: any;
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* ```ts title="providers.ts"
|
|
26
|
+
* import { registerDataTableComponent } from '\@vendure/admin-ui/core';
|
|
27
|
+
* import { CustomTableComponent } from './components/custom-table.component';
|
|
28
|
+
*
|
|
29
|
+
* export default [
|
|
30
|
+
* registerDataTableComponent({
|
|
31
|
+
* component: CustomTableComponent,
|
|
32
|
+
* tableId: 'product-list',
|
|
33
|
+
* columnId: 'slug',
|
|
34
|
+
* }),
|
|
35
|
+
* ];
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @docsCategory custom-table-components
|
|
39
|
+
*/
|
|
40
|
+
export function registerDataTableComponent(config) {
|
|
41
|
+
return {
|
|
42
|
+
provide: APP_INITIALIZER,
|
|
43
|
+
multi: true,
|
|
44
|
+
useFactory: (dataTableCustomComponentService) => () => {
|
|
45
|
+
dataTableCustomComponentService.registerCustomComponent(config);
|
|
46
|
+
},
|
|
47
|
+
deps: [DataTableCustomComponentService],
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGF0YS10YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2V4dGVuc2lvbi9yZWdpc3Rlci1kYXRhLXRhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFSCwrQkFBK0IsR0FDbEMsTUFBTSx1RUFBdUUsQ0FBQztBQUUvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE1BQWdDO0lBQ3ZFLE9BQU87UUFDSCxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLCtCQUFnRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsK0JBQStCLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLCtCQUErQixDQUFDO0tBQzFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhVGFibGVDb21wb25lbnRDb25maWcsXHJcbiAgICBEYXRhVGFibGVDdXN0b21Db21wb25lbnRTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtMi9kYXRhLXRhYmxlLWN1c3RvbS1jb21wb25lbnQuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29tcG9uZW50IHVzZWQgdG8gcmVuZGVyIHRoZSBkYXRhIG9mIGEgcGFydGljdWxhciBjb2x1bW4gaW4gYSBEYXRhVGFibGUuXHJcbiAqIFRoZSBjb21wb25lbnQgc2hvdWxkIGltcGxlbWVudCB0aGUge0BsaW5rIEN1c3RvbURhdGFUYWJsZUNvbHVtbkNvbXBvbmVudH0gaW50ZXJmYWNlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0cyB0aXRsZT1cImNvbXBvbmVudHMvY3VzdG9tLXRhYmxlLmNvbXBvbmVudC50c1wiXHJcbiAqIGltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdcXEBhbmd1bGFyL2NvcmUnO1xyXG4gKiBpbXBvcnQgeyBDdXN0b21Db2x1bW5Db21wb25lbnQgfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG4gKlxyXG4gKiBAQ29tcG9uZW50KHtcclxuICogICAgIHNlbGVjdG9yOiAnY3VzdG9tLXNsdWctY29tcG9uZW50JyxcclxuICogICAgIHRlbXBsYXRlOiBgXHJcbiAqICAgICAgICAgPGEgW2hyZWZdPVwiJ2h0dHBzOi8vZXhhbXBsZS5jb20vcHJvZHVjdHMvJyArIHJvd0l0ZW0uc2x1Z1wiIHRhcmdldD1cIl9ibGFua1wiPnt7IHJvd0l0ZW0uc2x1ZyB9fTwvYT5cclxuICogICAgIGAsXHJcbiAqICAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgQ3VzdG9tVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBDdXN0b21Db2x1bW5Db21wb25lbnQge1xyXG4gKiAgICAgXFxASW5wdXQoKSByb3dJdGVtOiBhbnk7XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIGBgYHRzIHRpdGxlPVwicHJvdmlkZXJzLnRzXCJcclxuICogaW1wb3J0IHsgcmVnaXN0ZXJEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG4gKiBpbXBvcnQgeyBDdXN0b21UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdGFibGUuY29tcG9uZW50JztcclxuICpcclxuICogZXhwb3J0IGRlZmF1bHQgW1xyXG4gKiAgICAgcmVnaXN0ZXJEYXRhVGFibGVDb21wb25lbnQoe1xyXG4gKiAgICAgICAgIGNvbXBvbmVudDogQ3VzdG9tVGFibGVDb21wb25lbnQsXHJcbiAqICAgICAgICAgdGFibGVJZDogJ3Byb2R1Y3QtbGlzdCcsXHJcbiAqICAgICAgICAgY29sdW1uSWQ6ICdzbHVnJyxcclxuICogICAgIH0pLFxyXG4gKiBdO1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20tdGFibGUtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGF0YVRhYmxlQ29tcG9uZW50KGNvbmZpZzogRGF0YVRhYmxlQ29tcG9uZW50Q29uZmlnKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZTogRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBkYXRhVGFibGVDdXN0b21Db21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZV0sXHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { ComponentRegistryService } from '../providers/component-registry/component-registry.service';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Registers a custom FormInputComponent which can be used to control the argument inputs
|
|
6
|
+
* of a {@link ConfigurableOperationDef} (e.g. CollectionFilter, ShippingMethod etc) or for
|
|
7
|
+
* a custom field.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```TypeScript
|
|
11
|
+
* \@NgModule({
|
|
12
|
+
* imports: [SharedModule],
|
|
13
|
+
* declarations: [MyCustomFieldControl],
|
|
14
|
+
* providers: [
|
|
15
|
+
* registerFormInputComponent('my-custom-input', MyCustomFieldControl),
|
|
16
|
+
* ],
|
|
17
|
+
* })
|
|
18
|
+
* export class MyUiExtensionModule {}
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* This input component can then be used in a custom field:
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```TypeScript
|
|
25
|
+
* const config = {
|
|
26
|
+
* // ...
|
|
27
|
+
* customFields: {
|
|
28
|
+
* ProductVariant: [
|
|
29
|
+
* {
|
|
30
|
+
* name: 'rrp',
|
|
31
|
+
* type: 'int',
|
|
32
|
+
* ui: { component: 'my-custom-input' },
|
|
33
|
+
* },
|
|
34
|
+
* ]
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* or with an argument of a {@link ConfigurableOperationDef}:
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```TypeScript
|
|
43
|
+
* args: {
|
|
44
|
+
* rrp: { type: 'int', ui: { component: 'my-custom-input' } },
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @docsCategory custom-input-components
|
|
49
|
+
*/
|
|
50
|
+
export function registerFormInputComponent(id, component) {
|
|
51
|
+
return {
|
|
52
|
+
provide: APP_INITIALIZER,
|
|
53
|
+
multi: true,
|
|
54
|
+
useFactory: (registry) => () => {
|
|
55
|
+
registry.registerInputComponent(id, component);
|
|
56
|
+
},
|
|
57
|
+
deps: [ComponentRegistryService],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZm9ybS1pbnB1dC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2V4dGVuc2lvbi9yZWdpc3Rlci1mb3JtLWlucHV0LWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUV0Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxFQUFVLEVBQUUsU0FBbUM7SUFDdEYsT0FBTztRQUNILE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsUUFBa0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3JELFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLHdCQUF3QixDQUFDO0tBQ25DLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBGYWN0b3J5UHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9jb21wb25lbnQtcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBSZWdpc3RlcnMgYSBjdXN0b20gRm9ybUlucHV0Q29tcG9uZW50IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIGFyZ3VtZW50IGlucHV0c1xyXG4gKiBvZiBhIHtAbGluayBDb25maWd1cmFibGVPcGVyYXRpb25EZWZ9IChlLmcuIENvbGxlY3Rpb25GaWx0ZXIsIFNoaXBwaW5nTWV0aG9kIGV0Yykgb3IgZm9yXHJcbiAqIGEgY3VzdG9tIGZpZWxkLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBUeXBlU2NyaXB0XHJcbiAqIFxcQE5nTW9kdWxlKHtcclxuICogICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlXSxcclxuICogICBkZWNsYXJhdGlvbnM6IFtNeUN1c3RvbUZpZWxkQ29udHJvbF0sXHJcbiAqICAgcHJvdmlkZXJzOiBbXHJcbiAqICAgICAgIHJlZ2lzdGVyRm9ybUlucHV0Q29tcG9uZW50KCdteS1jdXN0b20taW5wdXQnLCBNeUN1c3RvbUZpZWxkQ29udHJvbCksXHJcbiAqICAgXSxcclxuICogfSlcclxuICogZXhwb3J0IGNsYXNzIE15VWlFeHRlbnNpb25Nb2R1bGUge31cclxuICogYGBgXHJcbiAqXHJcbiAqIFRoaXMgaW5wdXQgY29tcG9uZW50IGNhbiB0aGVuIGJlIHVzZWQgaW4gYSBjdXN0b20gZmllbGQ6XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogY29uc3QgY29uZmlnID0ge1xyXG4gKiAgIC8vIC4uLlxyXG4gKiAgIGN1c3RvbUZpZWxkczoge1xyXG4gKiAgICAgUHJvZHVjdFZhcmlhbnQ6IFtcclxuICogICAgICAge1xyXG4gKiAgICAgICAgIG5hbWU6ICdycnAnLFxyXG4gKiAgICAgICAgIHR5cGU6ICdpbnQnLFxyXG4gKiAgICAgICAgIHVpOiB7IGNvbXBvbmVudDogJ215LWN1c3RvbS1pbnB1dCcgfSxcclxuICogICAgICAgfSxcclxuICogICAgIF1cclxuICogICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIG9yIHdpdGggYW4gYXJndW1lbnQgb2YgYSB7QGxpbmsgQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmfTpcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgVHlwZVNjcmlwdFxyXG4gKiBhcmdzOiB7XHJcbiAqICAgcnJwOiB7IHR5cGU6ICdpbnQnLCB1aTogeyBjb21wb25lbnQ6ICdteS1jdXN0b20taW5wdXQnIH0gfSxcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20taW5wdXQtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRm9ybUlucHV0Q29tcG9uZW50KGlkOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxGb3JtSW5wdXRDb21wb25lbnQ+KTogRmFjdG9yeVByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVySW5wdXRDb21wb25lbnQoaWQsIGNvbXBvbmVudCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlXSxcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { HistoryEntryComponentService } from '../providers/custom-history-entry-component/history-entry-component.service';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* Registers a {@link HistoryEntryComponent} for displaying history entries in the Order/Customer
|
|
6
|
+
* history timeline.
|
|
7
|
+
*
|
|
8
|
+
* @since 1.9.0
|
|
9
|
+
* @docsCategory custom-history-entry-components
|
|
10
|
+
*/
|
|
11
|
+
export function registerHistoryEntryComponent(config) {
|
|
12
|
+
return {
|
|
13
|
+
provide: APP_INITIALIZER,
|
|
14
|
+
multi: true,
|
|
15
|
+
useFactory: (customHistoryEntryComponentService) => () => {
|
|
16
|
+
customHistoryEntryComponentService.registerComponent(config);
|
|
17
|
+
},
|
|
18
|
+
deps: [HistoryEntryComponentService],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItaGlzdG9yeS1lbnRyeS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2V4dGVuc2lvbi9yZWdpc3Rlci1oaXN0b3J5LWVudHJ5LWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBRTNIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsTUFBMEI7SUFDcEUsT0FBTztRQUNILE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsa0NBQWdFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUNuRixrQ0FBa0MsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsNEJBQTRCLENBQUM7S0FDdkMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhpc3RvcnlFbnRyeUNvbmZpZyB9IGZyb20gJy4uL3Byb3ZpZGVycy9jdXN0b20taGlzdG9yeS1lbnRyeS1jb21wb25lbnQvaGlzdG9yeS1lbnRyeS1jb21wb25lbnQtdHlwZXMnO1xyXG5pbXBvcnQgeyBIaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2N1c3RvbS1oaXN0b3J5LWVudHJ5LWNvbXBvbmVudC9oaXN0b3J5LWVudHJ5LWNvbXBvbmVudC5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogUmVnaXN0ZXJzIGEge0BsaW5rIEhpc3RvcnlFbnRyeUNvbXBvbmVudH0gZm9yIGRpc3BsYXlpbmcgaGlzdG9yeSBlbnRyaWVzIGluIHRoZSBPcmRlci9DdXN0b21lclxyXG4gKiBoaXN0b3J5IHRpbWVsaW5lLlxyXG4gKlxyXG4gKiBAc2luY2UgMS45LjBcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20taGlzdG9yeS1lbnRyeS1jb21wb25lbnRzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJIaXN0b3J5RW50cnlDb21wb25lbnQoY29uZmlnOiBIaXN0b3J5RW50cnlDb25maWcpOiBQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoY3VzdG9tSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZTogSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBjdXN0b21IaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZV0sXHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { createBaseDetailResolveFn } from '../common/base-detail.component';
|
|
4
|
+
import { ROUTE_COMPONENT_OPTIONS, RouteComponent } from './components/route.component';
|
|
5
|
+
export function registerRouteComponent(options) {
|
|
6
|
+
const { query, entityKey, variables, getBreadcrumbs } = options;
|
|
7
|
+
const breadcrumbSubject$ = new BehaviorSubject(options.breadcrumb ?? '');
|
|
8
|
+
const titleSubject$ = new BehaviorSubject(options.title);
|
|
9
|
+
const resolveFn = query && entityKey
|
|
10
|
+
? createBaseDetailResolveFn({
|
|
11
|
+
query,
|
|
12
|
+
entityKey,
|
|
13
|
+
variables,
|
|
14
|
+
})
|
|
15
|
+
: undefined;
|
|
16
|
+
return {
|
|
17
|
+
path: options.path ?? '',
|
|
18
|
+
providers: [
|
|
19
|
+
{
|
|
20
|
+
provide: ROUTE_COMPONENT_OPTIONS,
|
|
21
|
+
useValue: {
|
|
22
|
+
component: options.component,
|
|
23
|
+
title$: titleSubject$,
|
|
24
|
+
breadcrumb$: breadcrumbSubject$,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
...(options.routeConfig?.providers ?? []),
|
|
28
|
+
],
|
|
29
|
+
...(options.routeConfig ?? {}),
|
|
30
|
+
resolve: { ...(resolveFn ? { detail: resolveFn } : {}), ...(options.routeConfig?.resolve ?? {}) },
|
|
31
|
+
data: {
|
|
32
|
+
breadcrumb: breadcrumbSubject$,
|
|
33
|
+
...(options.routeConfig?.data ?? {}),
|
|
34
|
+
...(getBreadcrumbs
|
|
35
|
+
? {
|
|
36
|
+
breadcrumb: data => data.detail.entity.pipe(map((entity) => getBreadcrumbs(entity))),
|
|
37
|
+
}
|
|
38
|
+
: {}),
|
|
39
|
+
...(options.routeConfig?.data ?? {}),
|
|
40
|
+
},
|
|
41
|
+
component: RouteComponent,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItcm91dGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9leHRlbnNpb24vcmVnaXN0ZXItcm91dGUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBdUIseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFxQnZGLE1BQU0sVUFBVSxzQkFBc0IsQ0FNcEMsT0FBc0U7SUFDcEUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVoRSxNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFrQixPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLE1BQU0sYUFBYSxHQUFHLElBQUksZUFBZSxDQUFxQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0UsTUFBTSxTQUFTLEdBTVgsS0FBSyxJQUFJLFNBQVM7UUFDZCxDQUFDLENBQUMseUJBQXlCLENBQUM7WUFDdEIsS0FBSztZQUNMLFNBQVM7WUFDVCxTQUFTO1NBQ1osQ0FBQztRQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFcEIsT0FBTztRQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDeEIsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsUUFBUSxFQUFFO29CQUNOLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztvQkFDNUIsTUFBTSxFQUFFLGFBQWE7b0JBQ3JCLFdBQVcsRUFBRSxrQkFBa0I7aUJBQ0Y7YUFDcEM7WUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1NBQzVDO1FBQ0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzlCLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDakcsSUFBSSxFQUFFO1lBQ0YsVUFBVSxFQUFFLGtCQUFrQjtZQUM5QixHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxjQUFjO2dCQUNkLENBQUMsQ0FBQztvQkFDSSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FDZixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztpQkFDNUU7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7U0FDdkM7UUFDRCxTQUFTLEVBQUUsY0FBYztLQUNaLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzb2x2ZUZuLCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJlc3VsdE9mLCBUeXBlZERvY3VtZW50Tm9kZSB9IGZyb20gJ0BncmFwaHFsLXR5cGVkLWRvY3VtZW50LW5vZGUvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50Tm9kZSB9IGZyb20gJ2dyYXBocWwnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlRGV0YWlsQ29tcG9uZW50LCBjcmVhdGVCYXNlRGV0YWlsUmVzb2x2ZUZuIH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJWYWx1ZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9icmVhZGNydW1iL2JyZWFkY3J1bWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJPVVRFX0NPTVBPTkVOVF9PUFRJT05TLCBSb3V0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3V0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZUNvbXBvbmVudE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbmV4cG9ydCB0eXBlIFJlZ2lzdGVyUm91dGVDb21wb25lbnRPcHRpb25zPFxyXG4gICAgQ29tcG9uZW50IGV4dGVuZHMgYW55IHwgQmFzZURldGFpbENvbXBvbmVudDxFbnRpdHk+LFxyXG4gICAgRW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nOyB1cGRhdGVkQXQ/OiBzdHJpbmcgfSxcclxuICAgIFQgZXh0ZW5kcyBEb2N1bWVudE5vZGUgfCBUeXBlZERvY3VtZW50Tm9kZTxhbnksIHsgaWQ6IHN0cmluZyB9PixcclxuICAgIEZpZWxkIGV4dGVuZHMga2V5b2YgUmVzdWx0T2Y8VD4sXHJcbiAgICBSIGV4dGVuZHMgRmllbGQsXHJcbj4gPSB7XHJcbiAgICBjb21wb25lbnQ6IFR5cGU8Q29tcG9uZW50PiB8IENvbXBvbmVudDtcclxuICAgIHRpdGxlPzogc3RyaW5nO1xyXG4gICAgYnJlYWRjcnVtYj86IEJyZWFkY3J1bWJWYWx1ZTtcclxuICAgIHBhdGg/OiBzdHJpbmc7XHJcbiAgICBxdWVyeT86IFQ7XHJcbiAgICBnZXRCcmVhZGNydW1icz86IChlbnRpdHk6IEV4Y2x1ZGU8UmVzdWx0T2Y8VD5bUl0sICdRdWVyeSc+KSA9PiBCcmVhZGNydW1iVmFsdWU7XHJcbiAgICBlbnRpdHlLZXk/OiBDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGV0YWlsQ29tcG9uZW50PEVudGl0eT4gPyBSIDogdW5kZWZpbmVkO1xyXG4gICAgdmFyaWFibGVzPzogVCBleHRlbmRzIFR5cGVkRG9jdW1lbnROb2RlPGFueSwgaW5mZXIgVj4gPyBPbWl0PFYsICdpZCc+IDogbmV2ZXI7XHJcbiAgICByb3V0ZUNvbmZpZz86IFJvdXRlO1xyXG59ICYgKENvbXBvbmVudCBleHRlbmRzIEJhc2VEZXRhaWxDb21wb25lbnQ8RW50aXR5PiA/IHsgZW50aXR5S2V5OiBSIH0gOiB1bmtub3duKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclJvdXRlQ29tcG9uZW50PFxyXG4gICAgQ29tcG9uZW50IGV4dGVuZHMgYW55IHwgQmFzZURldGFpbENvbXBvbmVudDxFbnRpdHk+LFxyXG4gICAgRW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nOyB1cGRhdGVkQXQ/OiBzdHJpbmcgfSxcclxuICAgIFQgZXh0ZW5kcyBEb2N1bWVudE5vZGUgfCBUeXBlZERvY3VtZW50Tm9kZTxhbnksIHsgaWQ6IHN0cmluZyB9PixcclxuICAgIEZpZWxkIGV4dGVuZHMga2V5b2YgUmVzdWx0T2Y8VD4sXHJcbiAgICBSIGV4dGVuZHMgRmllbGQsXHJcbj4ob3B0aW9uczogUmVnaXN0ZXJSb3V0ZUNvbXBvbmVudE9wdGlvbnM8Q29tcG9uZW50LCBFbnRpdHksIFQsIEZpZWxkLCBSPikge1xyXG4gICAgY29uc3QgeyBxdWVyeSwgZW50aXR5S2V5LCB2YXJpYWJsZXMsIGdldEJyZWFkY3J1bWJzIH0gPSBvcHRpb25zO1xyXG5cclxuICAgIGNvbnN0IGJyZWFkY3J1bWJTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYlZhbHVlPihvcHRpb25zLmJyZWFkY3J1bWIgPz8gJycpO1xyXG4gICAgY29uc3QgdGl0bGVTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPihvcHRpb25zLnRpdGxlKTtcclxuXHJcbiAgICBjb25zdCByZXNvbHZlRm46XHJcbiAgICAgICAgfCBSZXNvbHZlRm48e1xyXG4gICAgICAgICAgICAgIGVudGl0eTogT2JzZXJ2YWJsZTxSZXN1bHRPZjxUPltGaWVsZF0gfCBudWxsPjtcclxuICAgICAgICAgICAgICByZXN1bHQ/OiBSZXN1bHRPZjxUPjtcclxuICAgICAgICAgIH0+XHJcbiAgICAgICAgfCB1bmRlZmluZWQgPVxyXG4gICAgICAgIHF1ZXJ5ICYmIGVudGl0eUtleVxyXG4gICAgICAgICAgICA/IGNyZWF0ZUJhc2VEZXRhaWxSZXNvbHZlRm4oe1xyXG4gICAgICAgICAgICAgICAgICBxdWVyeSxcclxuICAgICAgICAgICAgICAgICAgZW50aXR5S2V5LFxyXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZXMsXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGggPz8gJycsXHJcbiAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFX0NPTVBPTkVOVF9PUFRJT05TLFxyXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG9wdGlvbnMuY29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlJDogdGl0bGVTdWJqZWN0JCxcclxuICAgICAgICAgICAgICAgICAgICBicmVhZGNydW1iJDogYnJlYWRjcnVtYlN1YmplY3QkLFxyXG4gICAgICAgICAgICAgICAgfSBzYXRpc2ZpZXMgUm91dGVDb21wb25lbnRPcHRpb25zLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy5yb3V0ZUNvbmZpZz8ucHJvdmlkZXJzID8/IFtdKSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIC4uLihvcHRpb25zLnJvdXRlQ29uZmlnID8/IHt9KSxcclxuICAgICAgICByZXNvbHZlOiB7IC4uLihyZXNvbHZlRm4gPyB7IGRldGFpbDogcmVzb2x2ZUZuIH0gOiB7fSksIC4uLihvcHRpb25zLnJvdXRlQ29uZmlnPy5yZXNvbHZlID8/IHt9KSB9LFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgYnJlYWRjcnVtYjogYnJlYWRjcnVtYlN1YmplY3QkLFxyXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy5yb3V0ZUNvbmZpZz8uZGF0YSA/PyB7fSksXHJcbiAgICAgICAgICAgIC4uLihnZXRCcmVhZGNydW1ic1xyXG4gICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhZGNydW1iOiBkYXRhID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5kZXRhaWwuZW50aXR5LnBpcGUobWFwKChlbnRpdHk6IGFueSkgPT4gZ2V0QnJlYWRjcnVtYnMoZW50aXR5KSkpLFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA6IHt9KSxcclxuICAgICAgICAgICAgLi4uKG9wdGlvbnMucm91dGVDb25maWc/LmRhdGEgPz8ge30pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcG9uZW50OiBSb3V0ZUNvbXBvbmVudCxcclxuICAgIH0gc2F0aXNmaWVzIFJvdXRlO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2V4dGVuc2lvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJWYWx1ZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9icmVhZGNydW1iL2JyZWFkY3J1bWIuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlQ29tcG9uZW50T3B0aW9ucyB7XHJcbiAgICBjb21wb25lbnQ6IGFueTtcclxuICAgIHRpdGxlJDogU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG4gICAgYnJlYWRjcnVtYiQ6IFN1YmplY3Q8QnJlYWRjcnVtYlZhbHVlPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyUm91dGVDb21wb25lbnRPcHRpb25zIGV4dGVuZHMgUm91dGVDb21wb25lbnRPcHRpb25zIHtcclxuICAgIGNvbXBvbmVudDogVHlwZTxhbnk+O1xyXG59XHJcbiJdfQ==
|
|
@@ -4,11 +4,11 @@ export class ComponentRegistryService {
|
|
|
4
4
|
constructor() {
|
|
5
5
|
this.inputComponentMap = new Map();
|
|
6
6
|
}
|
|
7
|
-
registerInputComponent(id, component) {
|
|
7
|
+
registerInputComponent(id, component, providers) {
|
|
8
8
|
if (this.inputComponentMap.has(id)) {
|
|
9
9
|
throw new Error(`Cannot register an InputComponent with the id "${id}", as one with that id already exists`);
|
|
10
10
|
}
|
|
11
|
-
this.inputComponentMap.set(id, component);
|
|
11
|
+
this.inputComponentMap.set(id, { type: component, providers: providers || [] });
|
|
12
12
|
}
|
|
13
13
|
getInputComponent(id) {
|
|
14
14
|
return this.inputComponentMap.get(id);
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
22
22
|
providedIn: 'root',
|
|
23
23
|
}]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9jb21wb25lbnQtcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7O0FBTzNELE1BQU0sT0FBTyx3QkFBd0I7SUFIckM7UUFJWSxzQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFHaEMsQ0FBQztLQWdCUDtJQWRHLHNCQUFzQixDQUFDLEVBQVUsRUFBRSxTQUF3QyxFQUFFLFNBQXNCO1FBQy9GLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUNYLGtEQUFrRCxFQUFFLHVDQUF1QyxDQUM5RixDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxpQkFBaUIsQ0FDYixFQUFVO1FBRVYsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OEdBbkJRLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBpbnB1dENvbXBvbmVudE1hcCA9IG5ldyBNYXA8XHJcbiAgICAgICAgc3RyaW5nLFxyXG4gICAgICAgIHsgdHlwZTogVHlwZTxGb3JtSW5wdXRDb21wb25lbnQ8YW55Pj47IHByb3ZpZGVyczogUHJvdmlkZXJbXSB9XHJcbiAgICA+KCk7XHJcblxyXG4gICAgcmVnaXN0ZXJJbnB1dENvbXBvbmVudChpZDogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8Rm9ybUlucHV0Q29tcG9uZW50PGFueT4+LCBwcm92aWRlcnM/OiBQcm92aWRlcltdKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRDb21wb25lbnRNYXAuaGFzKGlkKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgQ2Fubm90IHJlZ2lzdGVyIGFuIElucHV0Q29tcG9uZW50IHdpdGggdGhlIGlkIFwiJHtpZH1cIiwgYXMgb25lIHdpdGggdGhhdCBpZCBhbHJlYWR5IGV4aXN0c2AsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW5wdXRDb21wb25lbnRNYXAuc2V0KGlkLCB7IHR5cGU6IGNvbXBvbmVudCwgcHJvdmlkZXJzOiBwcm92aWRlcnMgfHwgW10gfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgaWQ6IHN0cmluZyxcclxuICAgICk6IHsgdHlwZTogVHlwZTxGb3JtSW5wdXRDb21wb25lbnQ8YW55Pj47IHByb3ZpZGVyczogUHJvdmlkZXJbXSB9IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dENvbXBvbmVudE1hcC5nZXQoaWQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRldGFpbC1jb21wb25lbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9jdXN0b20tZGV0YWlsLWNvbXBvbmVudC9jdXN0b20tZGV0YWlsLWNvbXBvbmVudC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tRGV0YWlsQ29tcG9uZW50TG9jYXRpb25JZCB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb21wb25lbnQtcmVnaXN0cnktdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBDdXN0b21EZXRhaWxDb21wb25lbnRzIGFsbG93IGFueSBhcmJpdHJhcnkgQW5ndWxhciBjb21wb25lbnRzIHRvIGJlIGVtYmVkZGVkIGluIGVudGl0eSBkZXRhaWxcclxuICogcGFnZXMgb2YgdGhlIEFkbWluIFVJLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IGN1c3RvbS1kZXRhaWwtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21EZXRhaWxDb21wb25lbnQge1xyXG4gICAgZW50aXR5JDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgZGV0YWlsRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBDb25maWd1cmVzIGEge0BsaW5rIEN1c3RvbURldGFpbENvbXBvbmVudH0gdG8gYmUgcGxhY2VkIGluIHRoZSBnaXZlbiBsb2NhdGlvbi5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20tZGV0YWlsLWNvbXBvbmVudHNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRGV0YWlsQ29tcG9uZW50Q29uZmlnIHtcclxuICAgIGxvY2F0aW9uSWQ6IEN1c3RvbURldGFpbENvbXBvbmVudExvY2F0aW9uSWQ7XHJcbiAgICBjb21wb25lbnQ6IFR5cGU8Q3VzdG9tRGV0YWlsQ29tcG9uZW50PjtcclxuICAgIHByb3ZpZGVycz86IFByb3ZpZGVyW107XHJcbn1cclxuIl19
|
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* @description
|
|
5
|
-
* Registers a {@link CustomDetailComponent} to be placed in a given location. This allows you
|
|
6
|
-
* to embed any type of custom Angular component in the entity detail pages of the Admin UI.
|
|
7
|
-
*
|
|
8
|
-
* @docsCategory custom-detail-components
|
|
9
|
-
*/
|
|
10
|
-
export function registerCustomDetailComponent(config) {
|
|
11
|
-
return {
|
|
12
|
-
provide: APP_INITIALIZER,
|
|
13
|
-
multi: true,
|
|
14
|
-
useFactory: (customDetailComponentService) => () => {
|
|
15
|
-
customDetailComponentService.registerCustomDetailComponent(config);
|
|
16
|
-
},
|
|
17
|
-
deps: [CustomDetailComponentService],
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
3
|
export class CustomDetailComponentService {
|
|
21
4
|
constructor() {
|
|
22
5
|
this.customDetailComponents = new Map();
|
|
@@ -41,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
41
24
|
providedIn: 'root',
|
|
42
25
|
}]
|
|
43
26
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRldGFpbC1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2N1c3RvbS1kZXRhaWwtY29tcG9uZW50L2N1c3RvbS1kZXRhaWwtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLDRCQUE0QjtJQUh6QztRQUlZLDJCQUFzQixHQUFHLElBQUksR0FBRyxFQUF5QyxDQUFDO0tBYXJGO0lBWEcsNkJBQTZCLENBQUMsTUFBbUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEU7YUFBTTtZQUNILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsVUFBa0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDOzhHQWJRLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRnpCLE1BQU07OzJGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21EZXRhaWxDb21wb25lbnRDb25maWcgfSBmcm9tICcuL2N1c3RvbS1kZXRhaWwtY29tcG9uZW50LXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbURldGFpbENvbXBvbmVudFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBjdXN0b21EZXRhaWxDb21wb25lbnRzID0gbmV3IE1hcDxzdHJpbmcsIEN1c3RvbURldGFpbENvbXBvbmVudENvbmZpZ1tdPigpO1xyXG5cclxuICAgIHJlZ2lzdGVyQ3VzdG9tRGV0YWlsQ29tcG9uZW50KGNvbmZpZzogQ3VzdG9tRGV0YWlsQ29tcG9uZW50Q29uZmlnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRGV0YWlsQ29tcG9uZW50cy5oYXMoY29uZmlnLmxvY2F0aW9uSWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRGV0YWlsQ29tcG9uZW50cy5nZXQoY29uZmlnLmxvY2F0aW9uSWQpPy5wdXNoKGNvbmZpZyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21EZXRhaWxDb21wb25lbnRzLnNldChjb25maWcubG9jYXRpb25JZCwgW2NvbmZpZ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRDdXN0b21EZXRhaWxDb21wb25lbnRzRm9yKGxvY2F0aW9uSWQ6IHN0cmluZyk6IEN1c3RvbURldGFpbENvbXBvbmVudENvbmZpZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21EZXRhaWxDb21wb25lbnRzLmdldChsb2NhdGlvbklkKSA/PyBbXTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs
CHANGED
|
@@ -1,23 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* @description
|
|
5
|
-
* Registers a {@link HistoryEntryComponent} for displaying history entries in the Order/Customer
|
|
6
|
-
* history timeline.
|
|
7
|
-
*
|
|
8
|
-
* @since 1.9.0
|
|
9
|
-
* @docsCategory custom-history-entry-components
|
|
10
|
-
*/
|
|
11
|
-
export function registerHistoryEntryComponent(config) {
|
|
12
|
-
return {
|
|
13
|
-
provide: APP_INITIALIZER,
|
|
14
|
-
multi: true,
|
|
15
|
-
useFactory: (customHistoryEntryComponentService) => () => {
|
|
16
|
-
customHistoryEntryComponentService.registerComponent(config);
|
|
17
|
-
},
|
|
18
|
-
deps: [HistoryEntryComponentService],
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
3
|
export class HistoryEntryComponentService {
|
|
22
4
|
constructor() {
|
|
23
5
|
this.customEntryComponents = new Map();
|
|
@@ -37,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
37
19
|
providedIn: 'root',
|
|
38
20
|
}]
|
|
39
21
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1lbnRyeS1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2N1c3RvbS1oaXN0b3J5LWVudHJ5LWNvbXBvbmVudC9oaXN0b3J5LWVudHJ5LWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7O0FBT2pELE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSwwQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztLQVN6RTtJQVBHLGlCQUFpQixDQUFDLE1BQTBCO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUMzRCxDQUFDOzhHQVRRLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRnpCLE1BQU07OzJGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBIaXN0b3J5RW50cnlDb21wb25lbnQsIEhpc3RvcnlFbnRyeUNvbmZpZyB9IGZyb20gJy4vaGlzdG9yeS1lbnRyeS1jb21wb25lbnQtdHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZSB7XHJcbiAgICBwcml2YXRlIGN1c3RvbUVudHJ5Q29tcG9uZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBIaXN0b3J5RW50cnlDb25maWc+KCk7XHJcblxyXG4gICAgcmVnaXN0ZXJDb21wb25lbnQoY29uZmlnOiBIaXN0b3J5RW50cnlDb25maWcpIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUVudHJ5Q29tcG9uZW50cy5zZXQoY29uZmlnLnR5cGUsIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29tcG9uZW50KHR5cGU6IHN0cmluZyk6IFR5cGU8SGlzdG9yeUVudHJ5Q29tcG9uZW50PiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRW50cnlDb21wb25lbnRzLmdldCh0eXBlKT8uY29tcG9uZW50O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2Rhc2hib2FyZC13aWRnZXQvZGFzaGJvYXJkLXdpZGdldC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgRGFzaGJvYXJkV2lkZ2V0V2lkdGggPSAzIHwgNCB8IDYgfCA4IHwgMTI7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIGEgZGFzaGJvYXJkIHdpZGdldC5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBkYXNoYm9hcmQtd2lkZ2V0c1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRXaWRnZXRDb25maWcge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFVzZWQgdG8gc3BlY2lmeSB0aGUgd2lkZ2V0IGNvbXBvbmVudC4gU3VwcG9ydHMgYm90aCBlYWdlci0gYW5kIGxhenktbG9hZGluZy5cclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiBgYGB0c1xyXG4gICAgICogLy8gZWFnZXItbG9hZGluZ1xyXG4gICAgICogbG9hZENvbXBvbmVudDogKCkgPT4gTXlXaWRnZXRDb21wb25lbnQsXHJcbiAgICAgKlxyXG4gICAgICogLy8gbGF6eS1sb2FkaW5nXHJcbiAgICAgKiBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGF0aC10by93aWRnZXQuY29tcG9uZW50JykudGhlbihtID0+IG0uTXlXaWRnZXRDb21wb25lbnQpLFxyXG4gICAgICogYGBgXHJcbiAgICAgKi9cclxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IFByb21pc2U8VHlwZTxhbnk+PiB8IFR5cGU8YW55PjtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIHdpZGdldC4gQ2FuIGJlIGEgdHJhbnNsYXRpb24gdG9rZW4gYXMgaXQgd2lsbCBnZXQgcGFzc2VkXHJcbiAgICAgKiB0aHJvdWdoIHRoZSBgdHJhbnNsYXRlYCBwaXBlLlxyXG4gICAgICovXHJcbiAgICB0aXRsZT86IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBUaGUgc3VwcG9ydGVkIHdpZHRocyBvZiB0aGUgd2lkZ2V0LCBpbiB0ZXJtcyBvZiBhIEJvb3RzdHJhcC1zdHlsZSAxMi1jb2x1bW4gZ3JpZC5cclxuICAgICAqIElmIG9taXR0ZWQsIHRoZW4gaXQgaXMgYXNzdW1lZCB0aGUgd2lkZ2V0IHN1cHBvcnRzIGFsbCB3aWR0aHMuXHJcbiAgICAgKi9cclxuICAgIHN1cHBvcnRlZFdpZHRocz86IERhc2hib2FyZFdpZGdldFdpZHRoW107XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogSWYgc2V0LCB0aGUgd2lkZ2V0IHdpbGwgb25seSBiZSBkaXNwbGF5ZWQgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWxsIHRoZVxyXG4gICAgICogc3BlY2lmaWVkIHBlcm1pc3Npb25zLlxyXG4gICAgICovXHJcbiAgICByZXF1aXJlc1Blcm1pc3Npb25zPzogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgZGFzaGJvYXJkIHdpZGdldCBsYXlvdXQuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgZGFzaGJvYXJkLXdpZGdldHNcclxuICovXHJcbmV4cG9ydCB0eXBlIFdpZGdldExheW91dERlZmluaXRpb24gPSBBcnJheTx7IGlkOiBzdHJpbmc7IHdpZHRoOiBEYXNoYm9hcmRXaWRnZXRXaWR0aCB9PjtcclxuZXhwb3J0IHR5cGUgV2lkZ2V0TGF5b3V0ID0gQXJyYXk8XHJcbiAgICBBcnJheTx7IGlkOiBzdHJpbmc7IGNvbmZpZzogRGFzaGJvYXJkV2lkZ2V0Q29uZmlnOyB3aWR0aDogRGFzaGJvYXJkV2lkZ2V0V2lkdGggfT5cclxuPjtcclxuIl19
|
|
@@ -161,13 +161,6 @@ export class DataTableFilterCollection {
|
|
|
161
161
|
}, {});
|
|
162
162
|
}
|
|
163
163
|
connectToRoute(route) {
|
|
164
|
-
this.valueChanges.subscribe(() => {
|
|
165
|
-
this.router.navigate(['./'], {
|
|
166
|
-
queryParams: { [this.#filtersQueryParamName]: this.serialize(), page: 1 },
|
|
167
|
-
relativeTo: route,
|
|
168
|
-
queryParamsHandling: 'merge',
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
164
|
route.queryParamMap
|
|
172
165
|
.pipe(map(params => params.get(this.#filtersQueryParamName)), distinctUntilChanged(), startWith(route.snapshot.queryParamMap.get(this.#filtersQueryParamName) ?? ''))
|
|
173
166
|
.subscribe(value => {
|
|
@@ -283,4 +276,4 @@ export class DataTableFilterCollection {
|
|
|
283
276
|
return new FilterWithValue(filter, value, v => this.#valueChanges$.next(v));
|
|
284
277
|
}
|
|
285
278
|
}
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRixPQUFPLEVBQ0gsZUFBZSxHQVdsQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ29CLE1BQWtDLEVBQzNDLEtBQWlDLEVBQ3hDLFFBQXNEO1FBRnRDLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQzNDLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBSHBDLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7UUFNekUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBK0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFX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QUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DO2dCQUNJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBaUMsRUFBRSxLQUFnQztRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxxQkFBcUIsQ0FDekIsTUFBaUMsRUFDakMsS0FBZ0Q7UUFFaEQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7IEN1c3RvbUZpZWxkVHlwZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xuaW1wb3J0IGV4dGVuZCBmcm9tICdqdXN0LWV4dGVuZCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgQ3VzdG9tRmllbGRDb25maWcsXG4gICAgRGF0ZU9wZXJhdG9ycyxcbiAgICBJZE9wZXJhdG9ycyxcbiAgICBOdW1iZXJPcGVyYXRvcnMsXG4gICAgU3RyaW5nT3BlcmF0b3JzLFxufSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcbmltcG9ydCB7XG4gICAgRGF0YVRhYmxlRmlsdGVyLFxuICAgIERhdGFUYWJsZUZpbHRlckJvb2xlYW5UeXBlLFxuICAgIERhdGFUYWJsZUZpbHRlckN1c3RvbVR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSxcbiAgICBEYXRhVGFibGVGaWx0ZXJJRFR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZSxcbiAgICBEYXRhVGFibGVGaWx0ZXJPcHRpb25zLFxuICAgIERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyVGV4dFR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyVHlwZSxcbiAgICBEYXRhVGFibGVGaWx0ZXJWYWx1ZSxcbn0gZnJvbSAnLi9kYXRhLXRhYmxlLWZpbHRlcic7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJXaXRoVmFsdWU8VHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGUgPSBEYXRhVGFibGVGaWx0ZXJUeXBlPiB7XG4gICAgcHJpdmF0ZSBvblVwZGF0ZUZucyA9IG5ldyBTZXQ8KHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZD4oKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyPGFueSwgVHlwZT4sXG4gICAgICAgIHB1YmxpYyB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4sXG4gICAgICAgIG9uVXBkYXRlPzogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCxcbiAgICApIHtcbiAgICAgICAgaWYgKG9uVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChvblVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblVwZGF0ZShmbjogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChmbik7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsdWUodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgZm9yIChjb25zdCBmbiBvZiB0aGlzLm9uVXBkYXRlRm5zKSB7XG4gICAgICAgICAgICBmbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0lkKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlcklEVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnaWQnO1xuICAgIH1cblxuICAgIGlzVGV4dCgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJUZXh0VHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAndGV4dCc7XG4gICAgfVxuXG4gICAgaXNOdW1iZXIoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBpc0Jvb2xlYW4oKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ2Jvb2xlYW4nO1xuICAgIH1cblxuICAgIGlzU2VsZWN0KCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ3NlbGVjdCc7XG4gICAgfVxuXG4gICAgaXNEYXRlUmFuZ2UoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnZGF0ZVJhbmdlJztcbiAgICB9XG5cbiAgICBpc0N1c3RvbSgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdjdXN0b20nO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHJlYWRvbmx5ICNmaWx0ZXJzOiBBcnJheTxEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIGFueT4+ID0gW107XG4gICAgI2FjdGl2ZUZpbHRlcnM6IEZpbHRlcldpdGhWYWx1ZVtdID0gW107XG4gICAgI3ZhbHVlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxGaWx0ZXJXaXRoVmFsdWVbXT4oKTtcbiAgICAjY29ubmVjdGVkVG9Sb3V0ZXIgPSBmYWxzZTtcbiAgICB2YWx1ZUNoYW5nZXMgPSB0aGlzLiN2YWx1ZUNoYW5nZXMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwKSk7XG4gICAgcmVhZG9ubHkgI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSA9ICdmaWx0ZXJzJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlRmlsdGVycygpOiBGaWx0ZXJXaXRoVmFsdWVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzO1xuICAgIH1cblxuICAgIGFkZEZpbHRlcjxGaWx0ZXJUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXG4gICAgICAgIGNvbmZpZzogRGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4sXG4gICAgKTogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD4ge1xuICAgICAgICBpZiAodGhpcy4jY29ubmVjdGVkVG9Sb3V0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnQ2Fubm90IGFkZCBmaWx0ZXIgYWZ0ZXIgY29ubmVjdGluZyB0byByb3V0ZXIuIE1ha2Ugc3VyZSB0byBjYWxsIGFkZEZpbHRlcigpIGJlZm9yZSBjb25uZWN0VG9Sb3V0ZSgpJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgbmV3IERhdGFUYWJsZUZpbHRlcihjb25maWcsIChmaWx0ZXIsIHZhbHVlKSA9PiB0aGlzLm9uQWN0aXZhdGVGaWx0ZXIoZmlsdGVyLCB2YWx1ZSkpLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhZGRGaWx0ZXJzPEZpbHRlclR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlPihcbiAgICAgICAgY29uZmlnczogQXJyYXk8RGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4+LFxuICAgICk6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgY29uZmlncykge1xuICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXIoY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhZGRJZEZpbHRlcigpOiBGaWx0ZXJJbnB1dCBleHRlbmRzIHtcbiAgICAgICAgaWQ/OiBJZE9wZXJhdG9ycyB8IG51bGw7XG4gICAgfVxuICAgICAgICA/IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+XG4gICAgICAgIDogbmV2ZXIge1xuICAgICAgICB0aGlzLmFkZEZpbHRlcih7XG4gICAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnaWQnIH0sXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmlkJyksXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2lkJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcbiAgICB9XG5cbiAgICBhZGREYXRlRmlsdGVycygpOiBGaWx0ZXJJbnB1dCBleHRlbmRzIHtcbiAgICAgICAgY3JlYXRlZEF0PzogRGF0ZU9wZXJhdG9ycyB8IG51bGw7XG4gICAgICAgIHVwZGF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xuICAgIH1cbiAgICAgICAgPyBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0PlxuICAgICAgICA6IG5ldmVyIHtcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdkYXRlUmFuZ2UnIH0sXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmNyZWF0ZWQtYXQnKSxcbiAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcbiAgICAgICAgICAgIG5hbWU6ICd1cGRhdGVkQXQnLFxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnZGF0ZVJhbmdlJyB9LFxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi51cGRhdGVkLWF0JyksXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ3VwZGF0ZWRBdCcsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgYWRkQ3VzdG9tRmllbGRGaWx0ZXJzKGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjdXN0b21GaWVsZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBjb25maWcudHlwZSBhcyBDdXN0b21GaWVsZFR5cGU7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmxpc3QpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmaWx0ZXJUeXBlOiBEYXRhVGFibGVGaWx0ZXJUeXBlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdib29sZWFuJyB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb2F0JzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ251bWJlcicgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0geyBraW5kOiAnZGF0ZVJhbmdlJyB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvY2FsZVN0cmluZyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICd0ZXh0JyB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdyZWxhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbm5vdCBzb3J0IHJlbGF0aW9uc1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBhc3NlcnROZXZlcih0eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbmZpZy5sYWJlbCA/PyBjb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6IGNvbmZpZy5uYW1lLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGdldEZpbHRlcihuYW1lOiBzdHJpbmcpOiBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZpbHRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gbmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVycygpOiBBcnJheTxEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzO1xuICAgIH1cblxuICAgIHJlbW92ZUFjdGl2ZUZpbHRlckF0SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuI3ZhbHVlQ2hhbmdlcyQubmV4dCh0aGlzLiNhY3RpdmVGaWx0ZXJzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVGaWx0ZXJJbnB1dCgpOiBGaWx0ZXJJbnB1dCB7XG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzLnJlZHVjZSgoYWNjLCB7IGZpbHRlciwgdmFsdWUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZSAhPSBudWxsID8gZmlsdGVyLnRvRmlsdGVySW5wdXQodmFsdWUpIDoge307XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBleHRlbmQodHJ1ZSwgYWNjLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEZpbHRlcklucHV0O1xuICAgICAgICB9LCB7fSBhcyBGaWx0ZXJJbnB1dCk7XG4gICAgfVxuXG4gICAgY29ubmVjdFRvUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJ10sIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBbdGhpcy4jZmlsdGVyc1F1ZXJ5UGFyYW1OYW1lXTogdGhpcy5zZXJpYWxpemUoKSwgcGFnZTogMSB9LFxuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHJvdXRlLFxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGUucXVlcnlQYXJhbU1hcFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHBhcmFtcyA9PiBwYXJhbXMuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkgPz8gJycpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4jYWN0aXZlRmlsdGVycyA9IFtdO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5UGFyYW1zID0gKHZhbHVlID8/ICcnKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJzsnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKHZhbHVlID0+IHZhbHVlLnNwbGl0KCc6JykpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7IG5hbWUsIHZhbHVlIH0pKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHsgbmFtZSwgdmFsdWUgfSBvZiBmaWx0ZXJRdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdldEZpbHRlcihuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5kZXNlcmlhbGl6ZVZhbHVlKGZpbHRlciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmFjdGl2YXRlKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLiNjb25uZWN0ZWRUb1JvdXRlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzXG4gICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgIChmaWx0ZXJXaXRoVmFsdWUsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgIGAke2ZpbHRlcldpdGhWYWx1ZS5maWx0ZXIubmFtZX06JHt0aGlzLnNlcmlhbGl6ZVZhbHVlKGZpbHRlcldpdGhWYWx1ZSl9YCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCc7Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXJpYWxpemVWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXG4gICAgICAgIGZpbHRlcldpdGhWYWx1ZTogRmlsdGVyV2l0aFZhbHVlPFR5cGU+LFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNJZCgpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsPy5vcGVyYXRvcn0sJHt2YWw/LnRlcm19YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzVGV4dCgpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsPy5vcGVyYXRvcn0sJHt2YWw/LnRlcm19YDtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNOdW1iZXIoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIGAke3ZhbC5vcGVyYXRvcn0sJHt2YWwuYW1vdW50fWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzU2VsZWN0KCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB2YWwuam9pbignLCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc0Jvb2xlYW4oKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHZhbCA/ICcxJyA6ICcwJztcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNEYXRlUmFuZ2UoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgaWYgKHZhbC5tb2RlID09PSAncmVsYXRpdmUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3ZhbC5tb2RlfSwke3ZhbC5yZWxhdGl2ZVZhbHVlfSwke3ZhbC5yZWxhdGl2ZVVuaXR9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB2YWwuc3RhcnQgPyBuZXcgRGF0ZSh2YWwuc3RhcnQpLmdldFRpbWUoKSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHZhbC5lbmQgPyBuZXcgRGF0ZSh2YWwuZW5kKS5nZXRUaW1lKCkgOiAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c3RhcnR9LCR7ZW5kfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzQ3VzdG9tKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJXaXRoVmFsdWUuZmlsdGVyLnR5cGUuc2VyaWFsaXplVmFsdWUoZmlsdGVyV2l0aFZhbHVlLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZXJpYWxpemVWYWx1ZShcbiAgICAgICAgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXIsXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgKTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8RGF0YVRhYmxlRmlsdGVyVHlwZT4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2lkJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRvciwgdGVybV0gPSB2YWx1ZS5zcGxpdCgnLCcpIGFzIFtrZXlvZiBTdHJpbmdPcGVyYXRvcnMsIHN0cmluZ107XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIHRlcm0gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3RleHQnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCB0ZXJtXSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIFN0cmluZ09wZXJhdG9ycywgc3RyaW5nXTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgdGVybSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRvciwgYW1vdW50XSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIE51bWJlck9wZXJhdG9ycywgc3RyaW5nXTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgYW1vdW50OiArYW1vdW50IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAnMSc7XG4gICAgICAgICAgICBjYXNlICdkYXRlUmFuZ2UnOlxuICAgICAgICAgICAgICAgIGxldCBtb2RlID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBsZXQgcmVsYXRpdmVWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGxldCByZWxhdGl2ZVVuaXQ6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgc3RhcnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgZW5kOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ3JlbGF0aXZlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9ICdyZWxhdGl2ZSc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtfLCByZWxhdGl2ZVZhbHVlU3RyLCByZWxhdGl2ZVVuaXRTdHJdID0gdmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZSA9IE51bWJlcihyZWxhdGl2ZVZhbHVlU3RyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVVbml0ID0gcmVsYXRpdmVVbml0U3RyIGFzICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtb2RlID0gJ3JhbmdlJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N0YXJ0VGltZXN0YW1wLCBlbmRUaW1lc3RhbXBdID0gdmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydFRpbWVzdGFtcCA/IG5ldyBEYXRlKE51bWJlcihzdGFydFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgZW5kID0gZW5kVGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKGVuZFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbW9kZSwgcmVsYXRpdmVWYWx1ZSwgcmVsYXRpdmVVbml0LCBzdGFydCwgZW5kIH07XG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudHlwZS5kZXNlcmlhbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIoZmlsdGVyLnR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFjdGl2YXRlRmlsdGVyKGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyPGFueSwgYW55PiwgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPGFueT4pIHtcbiAgICAgICAgdGhpcy4jYWN0aXZlRmlsdGVycy5wdXNoKHRoaXMuY3JlYXRlRmlsdGVyV2l0aFZhbHVlKGZpbHRlciwgdmFsdWUpKTtcbiAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRmlsdGVyV2l0aFZhbHVlKFxuICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxhbnksIGFueT4sXG4gICAgICAgIHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxEYXRhVGFibGVGaWx0ZXJUeXBlPixcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJXaXRoVmFsdWUoZmlsdGVyLCB2YWx1ZSwgdiA9PiB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodikpO1xuICAgIH1cbn1cbiJdfQ==
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRixPQUFPLEVBQ0gsZUFBZSxHQVdsQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ29CLE1BQWtDLEVBQzNDLEtBQWlDLEVBQ3hDLFFBQXNEO1FBRnRDLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQzNDLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBSHBDLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7UUFNekUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBK0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFX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SUFFTyxxQkFBcUIsQ0FDekIsTUFBaUMsRUFDakMsS0FBZ0Q7UUFFaEQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgZXh0ZW5kIGZyb20gJ2p1c3QtZXh0ZW5kJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxyXG4gICAgRGF0ZU9wZXJhdG9ycyxcclxuICAgIElkT3BlcmF0b3JzLFxyXG4gICAgTnVtYmVyT3BlcmF0b3JzLFxyXG4gICAgU3RyaW5nT3BlcmF0b3JzLFxyXG59IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVRhYmxlRmlsdGVyLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlcklEVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlck51bWJlclR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJPcHRpb25zLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyU2VsZWN0VHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlclRleHRUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlclZhbHVlLFxyXG59IGZyb20gJy4vZGF0YS10YWJsZS1maWx0ZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlcldpdGhWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZSA9IERhdGFUYWJsZUZpbHRlclR5cGU+IHtcclxuICAgIHByaXZhdGUgb25VcGRhdGVGbnMgPSBuZXcgU2V0PCh2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4pID0+IHZvaWQ+KCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8YW55LCBUeXBlPixcclxuICAgICAgICBwdWJsaWMgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+LFxyXG4gICAgICAgIG9uVXBkYXRlPzogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCxcclxuICAgICkge1xyXG4gICAgICAgIGlmIChvblVwZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChvblVwZGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZuOiAodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgdGhpcy5vblVwZGF0ZUZucy5hZGQoZm4pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGZuIG9mIHRoaXMub25VcGRhdGVGbnMpIHtcclxuICAgICAgICAgICAgZm4odmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc0lkKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlcklEVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdpZCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNUZXh0KCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlclRleHRUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ3RleHQnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzTnVtYmVyKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlck51bWJlclR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnbnVtYmVyJztcclxuICAgIH1cclxuXHJcbiAgICBpc0Jvb2xlYW4oKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnYm9vbGVhbic7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTZWxlY3QoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyU2VsZWN0VHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdzZWxlY3QnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRGF0ZVJhbmdlKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlckRhdGVSYW5nZVR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnZGF0ZVJhbmdlJztcclxuICAgIH1cclxuXHJcbiAgICBpc0N1c3RvbSgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ2N1c3RvbSc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcclxuICAgIHJlYWRvbmx5ICNmaWx0ZXJzOiBBcnJheTxEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIGFueT4+ID0gW107XHJcbiAgICAjYWN0aXZlRmlsdGVyczogRmlsdGVyV2l0aFZhbHVlW10gPSBbXTtcclxuICAgICN2YWx1ZUNoYW5nZXMkID0gbmV3IFN1YmplY3Q8RmlsdGVyV2l0aFZhbHVlW10+KCk7XHJcbiAgICAjY29ubmVjdGVkVG9Sb3V0ZXIgPSBmYWxzZTtcclxuICAgIHZhbHVlQ2hhbmdlcyA9IHRoaXMuI3ZhbHVlQ2hhbmdlcyQuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTApKTtcclxuICAgIHJlYWRvbmx5ICNmaWx0ZXJzUXVlcnlQYXJhbU5hbWUgPSAnZmlsdGVycyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cclxuXHJcbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZpbHRlcnMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhY3RpdmVGaWx0ZXJzKCk6IEZpbHRlcldpdGhWYWx1ZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICBhZGRGaWx0ZXI8RmlsdGVyVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+KFxyXG4gICAgICAgIGNvbmZpZzogRGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4sXHJcbiAgICApOiBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuI2Nvbm5lY3RlZFRvUm91dGVyKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICdDYW5ub3QgYWRkIGZpbHRlciBhZnRlciBjb25uZWN0aW5nIHRvIHJvdXRlci4gTWFrZSBzdXJlIHRvIGNhbGwgYWRkRmlsdGVyKCkgYmVmb3JlIGNvbm5lY3RUb1JvdXRlKCknLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLiNmaWx0ZXJzLnB1c2goXHJcbiAgICAgICAgICAgIG5ldyBEYXRhVGFibGVGaWx0ZXIoY29uZmlnLCAoZmlsdGVyLCB2YWx1ZSkgPT4gdGhpcy5vbkFjdGl2YXRlRmlsdGVyKGZpbHRlciwgdmFsdWUpKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZpbHRlcnM8RmlsdGVyVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+KFxyXG4gICAgICAgIGNvbmZpZ3M6IEFycmF5PERhdGFUYWJsZUZpbHRlck9wdGlvbnM8RmlsdGVySW5wdXQsIEZpbHRlclR5cGU+PixcclxuICAgICk6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+IHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZElkRmlsdGVyKCk6IEZpbHRlcklucHV0IGV4dGVuZHMge1xyXG4gICAgICAgIGlkPzogSWRPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgfVxyXG4gICAgICAgID8gRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD5cclxuICAgICAgICA6IG5ldmVyIHtcclxuICAgICAgICB0aGlzLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICdpZCcsXHJcbiAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ2lkJyB9LFxyXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmlkJyksXHJcbiAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnaWQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcclxuICAgIH1cclxuXHJcbiAgICBhZGREYXRlRmlsdGVycygpOiBGaWx0ZXJJbnB1dCBleHRlbmRzIHtcclxuICAgICAgICBjcmVhdGVkQXQ/OiBEYXRlT3BlcmF0b3JzIHwgbnVsbDtcclxuICAgICAgICB1cGRhdGVkQXQ/OiBEYXRlT3BlcmF0b3JzIHwgbnVsbDtcclxuICAgIH1cclxuICAgICAgICA/IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+XHJcbiAgICAgICAgOiBuZXZlciB7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAnY3JlYXRlZEF0JyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnZGF0ZVJhbmdlJyB9LFxyXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmNyZWF0ZWQtYXQnKSxcclxuICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdjcmVhdGVkQXQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXHJcbiAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ2RhdGVSYW5nZScgfSxcclxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi51cGRhdGVkLWF0JyksXHJcbiAgICAgICAgICAgIGZpbHRlckZpZWxkOiAndXBkYXRlZEF0JyxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ3VzdG9tRmllbGRGaWx0ZXJzKGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSkge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGN1c3RvbUZpZWxkcykge1xyXG4gICAgICAgICAgICBjb25zdCB0eXBlID0gY29uZmlnLnR5cGUgYXMgQ3VzdG9tRmllbGRUeXBlO1xyXG4gICAgICAgICAgICBpZiAoY29uZmlnLmxpc3QpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXJUeXBlOiBEYXRhVGFibGVGaWx0ZXJUeXBlIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdib29sZWFuJyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnaW50JzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb2F0JzpcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0geyBraW5kOiAnbnVtYmVyJyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdkYXRlUmFuZ2UnIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWxlU3RyaW5nJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvY2FsZVRleHQnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ3RleHQnIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyZWxhdGlvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2Fubm90IHNvcnQgcmVsYXRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChmaWx0ZXJUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogY29uZmlnLmxhYmVsID8/IGNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkOiBjb25maWcubmFtZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcihuYW1lOiBzdHJpbmcpOiBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQ+IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jZmlsdGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWx0ZXJzKCk6IEFycmF5PERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dD4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jZmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBY3RpdmVGaWx0ZXJBdEluZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUZpbHRlcklucHV0KCk6IEZpbHRlcklucHV0IHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVycy5yZWR1Y2UoKGFjYywgeyBmaWx0ZXIsIHZhbHVlIH0pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZSAhPSBudWxsID8gZmlsdGVyLnRvRmlsdGVySW5wdXQodmFsdWUpIDoge307XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4dGVuZCh0cnVlLCBhY2MsIG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBGaWx0ZXJJbnB1dDtcclxuICAgICAgICB9LCB7fSBhcyBGaWx0ZXJJbnB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29ubmVjdFRvUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICAgICAgcm91dGUucXVlcnlQYXJhbU1hcFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLmdldCh0aGlzLiNmaWx0ZXJzUXVlcnlQYXJhbU5hbWUpKSxcclxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgocm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQodGhpcy4jZmlsdGVyc1F1ZXJ5UGFyYW1OYW1lKSA/PyAnJyksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzID0gW107XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5UGFyYW1zID0gKHZhbHVlID8/ICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnOycpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiB2YWx1ZS5zcGxpdCgnOicpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7IG5hbWUsIHZhbHVlIH0pKTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgeyBuYW1lLCB2YWx1ZSB9IG9mIGZpbHRlclF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXIobmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmRlc2VyaWFsaXplVmFsdWUoZmlsdGVyLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5hY3RpdmF0ZSh2YWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuI2Nvbm5lY3RlZFRvUm91dGVyID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc2VyaWFsaXplKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2FjdGl2ZUZpbHRlcnNcclxuICAgICAgICAgICAgLm1hcChcclxuICAgICAgICAgICAgICAgIChmaWx0ZXJXaXRoVmFsdWUsIGkpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgYCR7ZmlsdGVyV2l0aFZhbHVlLmZpbHRlci5uYW1lfToke3RoaXMuc2VyaWFsaXplVmFsdWUoZmlsdGVyV2l0aFZhbHVlKX1gLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5qb2luKCc7Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXJpYWxpemVWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXHJcbiAgICAgICAgZmlsdGVyV2l0aFZhbHVlOiBGaWx0ZXJXaXRoVmFsdWU8VHlwZT4sXHJcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNJZCgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3ZhbD8ub3BlcmF0b3J9LCR7dmFsPy50ZXJtfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNUZXh0KCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsPy5vcGVyYXRvcn0sJHt2YWw/LnRlcm19YDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc051bWJlcigpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3ZhbC5vcGVyYXRvcn0sJHt2YWwuYW1vdW50fWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNTZWxlY3QoKSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWwuam9pbignLCcpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzQm9vbGVhbigpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbCA/ICcxJyA6ICcwJztcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc0RhdGVSYW5nZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgaWYgKHZhbC5tb2RlID09PSAncmVsYXRpdmUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsLm1vZGV9LCR7dmFsLnJlbGF0aXZlVmFsdWV9LCR7dmFsLnJlbGF0aXZlVW5pdH1gO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB2YWwuc3RhcnQgPyBuZXcgRGF0ZSh2YWwuc3RhcnQpLmdldFRpbWUoKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gdmFsLmVuZCA/IG5ldyBEYXRlKHZhbC5lbmQpLmdldFRpbWUoKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3N0YXJ0fSwke2VuZH1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNDdXN0b20oKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyV2l0aFZhbHVlLmZpbHRlci50eXBlLnNlcmlhbGl6ZVZhbHVlKGZpbHRlcldpdGhWYWx1ZS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVzZXJpYWxpemVWYWx1ZShcclxuICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcixcclxuICAgICAgICB2YWx1ZTogc3RyaW5nLFxyXG4gICAgKTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8RGF0YVRhYmxlRmlsdGVyVHlwZT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUua2luZCkge1xyXG4gICAgICAgICAgICBjYXNlICdpZCc6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRvciwgdGVybV0gPSB2YWx1ZS5zcGxpdCgnLCcpIGFzIFtrZXlvZiBTdHJpbmdPcGVyYXRvcnMsIHN0cmluZ107XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgdGVybSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3RleHQnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbb3BlcmF0b3IsIHRlcm1dID0gdmFsdWUuc3BsaXQoJywnKSBhcyBba2V5b2YgU3RyaW5nT3BlcmF0b3JzLCBzdHJpbmddO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIHRlcm0gfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdudW1iZXInOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbb3BlcmF0b3IsIGFtb3VudF0gPSB2YWx1ZS5zcGxpdCgnLCcpIGFzIFtrZXlvZiBOdW1iZXJPcGVyYXRvcnMsIHN0cmluZ107XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgYW1vdW50OiArYW1vdW50IH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnc2VsZWN0JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpO1xyXG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJzEnO1xyXG4gICAgICAgICAgICBjYXNlICdkYXRlUmFuZ2UnOlxyXG4gICAgICAgICAgICAgICAgbGV0IG1vZGUgPSAncmVsYXRpdmUnO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlbGF0aXZlVmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGxldCByZWxhdGl2ZVVuaXQ6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGxldCBzdGFydDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgbGV0IGVuZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ3JlbGF0aXZlJykpIHtcclxuICAgICAgICAgICAgICAgICAgICBtb2RlID0gJ3JlbGF0aXZlJztcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbXywgcmVsYXRpdmVWYWx1ZVN0ciwgcmVsYXRpdmVVbml0U3RyXSA9IHZhbHVlLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZSA9IE51bWJlcihyZWxhdGl2ZVZhbHVlU3RyKTtcclxuICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVVuaXQgPSByZWxhdGl2ZVVuaXRTdHIgYXMgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBtb2RlID0gJ3JhbmdlJztcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbc3RhcnRUaW1lc3RhbXAsIGVuZFRpbWVzdGFtcF0gPSB2YWx1ZS5zcGxpdCgnLCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnRUaW1lc3RhbXAgPyBuZXcgRGF0ZShOdW1iZXIoc3RhcnRUaW1lc3RhbXApKS50b0lTT1N0cmluZygpIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZW5kID0gZW5kVGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKGVuZFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB7IG1vZGUsIHJlbGF0aXZlVmFsdWUsIHJlbGF0aXZlVW5pdCwgc3RhcnQsIGVuZCB9O1xyXG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlci50eXBlLmRlc2VyaWFsaXplVmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIoZmlsdGVyLnR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uQWN0aXZhdGVGaWx0ZXIoZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8YW55LCBhbnk+LCB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8YW55Pikge1xyXG4gICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMucHVzaCh0aGlzLmNyZWF0ZUZpbHRlcldpdGhWYWx1ZShmaWx0ZXIsIHZhbHVlKSk7XHJcbiAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlRmlsdGVyV2l0aFZhbHVlKFxyXG4gICAgICAgIGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyPGFueSwgYW55PixcclxuICAgICAgICB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8RGF0YVRhYmxlRmlsdGVyVHlwZT4sXHJcbiAgICApIHtcclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlcldpdGhWYWx1ZShmaWx0ZXIsIHZhbHVlLCB2ID0+IHRoaXMuI3ZhbHVlQ2hhbmdlcyQubmV4dCh2KSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|