@vendure/admin-ui 2.1.0-next.2 → 2.1.0-next.4
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/product-list/product-list.component.d.ts +1 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/catalog/components/stock-location-detail/stock-location-detail.component.d.ts +3 -1
- package/catalog/components/stock-location-list/stock-location-list.component.d.ts +1 -1
- package/catalog/providers/product-detail/product-detail.service.d.ts +1 -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/generated-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 +21 -13
- 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
|
@@ -63,11 +63,11 @@ export class DataTableFilterPresetsComponent {
|
|
|
63
63
|
this.filterPresetService.reorderPresets(this.dataTableId, event.previousIndex, event.currentIndex);
|
|
64
64
|
}
|
|
65
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableFilterPresetsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.FilterPresetService }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: { dataTableId: "dataTableId", filters: "filters" }, ngImport: i0, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\n <div\n class=\"preset-tabs\"\n *ngIf=\"filters && filterPresets.length\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div\n *ngFor=\"let preset of filterPresets\"\n class=\"preset-tab\"\n [class.active]=\"preset.value === serializedActiveFilters\"\n cdkDrag\n cdkDragBoundary=\".preset-tabs\"\n cdkDragLockAxis=\"x\"\n >\n <div class=\"drag-handle\" cdkDragHandle>\n <clr-icon shape=\"drag-handle\"></clr-icon>\n </div>\n <a\n [routerLink]=\"['./']\"\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value }\"\n >\n <div>{{ preset.name }}</div>\n </a>\n <vdr-dropdown>\n <button class=\"icon-button\" vdrDropdownTrigger>\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\n <clr-icon shape=\"edit\"></clr-icon>\n {{ 'common.rename-filter-preset' | translate }}\n </button>\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'common.delete' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </div>\n</ng-container>\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;display:flex;overflow-x:auto;overflow-y:hidden
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: { dataTableId: "dataTableId", filters: "filters" }, ngImport: i0, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value, page: 1 }\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i4.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i7.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i8.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i9.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i10.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
67
67
|
}
|
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableFilterPresetsComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'vdr-data-table-filter-presets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\n <div\n class=\"preset-tabs\"\n *ngIf=\"filters && filterPresets.length\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div\n *ngFor=\"let preset of filterPresets\"\n class=\"preset-tab\"\n [class.active]=\"preset.value === serializedActiveFilters\"\n cdkDrag\n cdkDragBoundary=\".preset-tabs\"\n cdkDragLockAxis=\"x\"\n >\n <div class=\"drag-handle\" cdkDragHandle>\n <clr-icon shape=\"drag-handle\"></clr-icon>\n </div>\n <a\n [routerLink]=\"['./']\"\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value }\"\n >\n <div>{{ preset.name }}</div>\n </a>\n <vdr-dropdown>\n <button class=\"icon-button\" vdrDropdownTrigger>\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\n <clr-icon shape=\"edit\"></clr-icon>\n {{ 'common.rename-filter-preset' | translate }}\n </button>\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'common.delete' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </div>\n</ng-container>\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;display:flex;overflow-x:auto;overflow-y:hidden
|
|
70
|
+
args: [{ selector: 'vdr-data-table-filter-presets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value, page: 1 }\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
71
71
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.FilterPresetService }, { type: i3.ModalService }]; }, propDecorators: { dataTableId: [{
|
|
72
72
|
type: Input,
|
|
73
73
|
args: [{ required: true }]
|
|
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
75
75
|
type: Input,
|
|
76
76
|
args: [{ required: true }]
|
|
77
77
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE1RixNQUFNLE9BQU8sK0JBQStCO0lBUXhDLFlBQ1ksS0FBcUIsRUFDckIsbUJBQXdDLEVBQ3hDLFlBQTBCO1FBRjFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFMOUIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNcEMsQ0FBQztJQUNKLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7YUFDbkIsSUFBSSxDQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDOUIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV4RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUM5RCxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUN6RSxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixJQUFJO1NBQ1AsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLFlBQVk7YUFDWixhQUFhLENBQUMsaUNBQWlDLEVBQUU7WUFDOUMsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUU7Z0JBQ0osSUFBSTthQUNQO1NBQ0osQ0FBQzthQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQixJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUM7b0JBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsT0FBTyxFQUFFLE1BQU07aUJBQ2xCLENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQXVCO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RyxDQUFDOzhHQWhFUSwrQkFBK0I7a0dBQS9CLCtCQUErQixpSUNoQjVDLGd6REEyQ0E7OzJGRDNCYSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0ksK0JBQStCLG1CQUd4Qix1QkFBdUIsQ0FBQyxNQUFNO2tLQUdwQixXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxPQUFPO3NCQUFqQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyUHJlc2V0U2VydmljZSB9IGZyb20gJy4vZmlsdGVyLXByZXNldC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlbmFtZUZpbHRlclByZXNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vcmVuYW1lLWZpbHRlci1wcmVzZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLWRhdGEtdGFibGUtZmlsdGVyLXByZXNldHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlclByZXNldHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZGF0YVRhYmxlSWQ6IHN0cmluZztcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBmaWx0ZXJzOiBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uO1xuICAgIHNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzOiBzdHJpbmc7XG4gICAgZmlsdGVyUHJlc2V0cyQ6IE9ic2VydmFibGU8QXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+O1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZmlsdGVyUHJlc2V0U2VydmljZTogRmlsdGVyUHJlc2V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICApIHt9XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHFwbSA9PiBxcG0uZ2V0KCdmaWx0ZXJzJykpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJpYWxpemVkQWN0aXZlRmlsdGVycyA9IHRoaXMuZmlsdGVycy5zZXJpYWxpemUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID0gdGhpcy5maWx0ZXJzLnNlcmlhbGl6ZSgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyUHJlc2V0cyQgPSB0aGlzLmZpbHRlclByZXNldFNlcnZpY2UucHJlc2V0Q2hhbmdlcyQucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZpbHRlclByZXNldFNlcnZpY2UuZ2V0RmlsdGVyUHJlc2V0cyh0aGlzLmRhdGFUYWJsZUlkKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmlsdGVyUHJlc2V0KG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZpbHRlclByZXNldFNlcnZpY2UuZGVsZXRlRmlsdGVyUHJlc2V0KHtcbiAgICAgICAgICAgIGRhdGFUYWJsZUlkOiB0aGlzLmRhdGFUYWJsZUlkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuc2VyaWFsaXplKCk7XG4gICAgfVxuXG4gICAgcmVuYW1lRmlsdGVyUHJlc2V0KG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoUmVuYW1lRmlsdGVyUHJlc2V0RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclByZXNldFNlcnZpY2UucmVuYW1lRmlsdGVyUHJlc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFUYWJsZUlkOiB0aGlzLmRhdGFUYWJsZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkTmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld05hbWU6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pikge1xuICAgICAgICB0aGlzLmZpbHRlclByZXNldFNlcnZpY2UucmVvcmRlclByZXNldHModGhpcy5kYXRhVGFibGVJZCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyUHJlc2V0cyQgfCBhc3luYyBhcyBmaWx0ZXJQcmVzZXRzXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInByZXNldC10YWJzXCJcbiAgICAgICAgKm5nSWY9XCJmaWx0ZXJzICYmIGZpbHRlclByZXNldHMubGVuZ3RoXCJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJlc2V0IG9mIGZpbHRlclByZXNldHNcIlxuICAgICAgICAgICAgY2xhc3M9XCJwcmVzZXQtdGFiXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicHJlc2V0LnZhbHVlID09PSBzZXJpYWxpemVkQWN0aXZlRmlsdGVyc1wiXG4gICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIucHJlc2V0LXRhYnNcIlxuICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIGNka0RyYWdIYW5kbGU+XG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZHJhZy1oYW5kbGVcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi8nXVwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInByZXNldC52YWx1ZSA9PT0gc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnMgPyB7fSA6IHsgZmlsdGVyczogcHJlc2V0LnZhbHVlIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXY+e3sgcHJlc2V0Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDx2ZHItZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiIHNpemU9XCIxMlwiLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHZkckRyb3Bkb3duSXRlbSAoY2xpY2spPVwicmVuYW1lRmlsdGVyUHJlc2V0KHByZXNldC5uYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLnJlbmFtZS1maWx0ZXItcHJlc2V0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB2ZHJEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZUZpbHRlclByZXNldChwcmVzZXQubmFtZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5kZWxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE1RixNQUFNLE9BQU8sK0JBQStCO0lBUXhDLFlBQ1ksS0FBcUIsRUFDckIsbUJBQXdDLEVBQ3hDLFlBQTBCO1FBRjFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFMOUIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNcEMsQ0FBQztJQUNKLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7YUFDbkIsSUFBSSxDQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDOUIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV4RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUM5RCxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUN6RSxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixJQUFJO1NBQ1AsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLFlBQVk7YUFDWixhQUFhLENBQUMsaUNBQWlDLEVBQUU7WUFDOUMsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUU7Z0JBQ0osSUFBSTthQUNQO1NBQ0osQ0FBQzthQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQixJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUM7b0JBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsT0FBTyxFQUFFLE1BQU07aUJBQ2xCLENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQXVCO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RyxDQUFDOzhHQWhFUSwrQkFBK0I7a0dBQS9CLCtCQUErQixpSUNoQjVDLCs0REEyQ0E7OzJGRDNCYSwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0ksK0JBQStCLG1CQUd4Qix1QkFBdUIsQ0FBQyxNQUFNO2tLQUdwQixXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxPQUFPO3NCQUFqQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXItcHJlc2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZW5hbWVGaWx0ZXJQcmVzZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3JlbmFtZS1maWx0ZXItcHJlc2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlRmlsdGVyUHJlc2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGFUYWJsZUlkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBmaWx0ZXJzOiBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uO1xyXG4gICAgc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnM6IHN0cmluZztcclxuICAgIGZpbHRlclByZXNldHMkOiBPYnNlcnZhYmxlPEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PjtcclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGZpbHRlclByZXNldFNlcnZpY2U6IEZpbHRlclByZXNldFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICkge31cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChxcG0gPT4gcXBtLmdldCgnZmlsdGVycycpKSxcclxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID0gdGhpcy5maWx0ZXJzLnNlcmlhbGl6ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID0gdGhpcy5maWx0ZXJzLnNlcmlhbGl6ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmZpbHRlclByZXNldHMkID0gdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLnByZXNldENoYW5nZXMkLnBpcGUoXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZpbHRlclByZXNldFNlcnZpY2UuZ2V0RmlsdGVyUHJlc2V0cyh0aGlzLmRhdGFUYWJsZUlkKSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlRmlsdGVyUHJlc2V0KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUHJlc2V0U2VydmljZS5kZWxldGVGaWx0ZXJQcmVzZXQoe1xyXG4gICAgICAgICAgICBkYXRhVGFibGVJZDogdGhpcy5kYXRhVGFibGVJZCxcclxuICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID0gdGhpcy5maWx0ZXJzLnNlcmlhbGl6ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmFtZUZpbHRlclByZXNldChuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChSZW5hbWVGaWx0ZXJQcmVzZXREaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclByZXNldFNlcnZpY2UucmVuYW1lRmlsdGVyUHJlc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVRhYmxlSWQ6IHRoaXMuZGF0YVRhYmxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9sZE5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld05hbWU6IHJlc3VsdCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pikge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUHJlc2V0U2VydmljZS5yZW9yZGVyUHJlc2V0cyh0aGlzLmRhdGFUYWJsZUlkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJQcmVzZXRzJCB8IGFzeW5jIGFzIGZpbHRlclByZXNldHNcIj5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInByZXNldC10YWJzXCJcclxuICAgICAgICAqbmdJZj1cImZpbHRlcnMgJiYgZmlsdGVyUHJlc2V0cy5sZW5ndGhcIlxyXG4gICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxyXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcmVzZXQgb2YgZmlsdGVyUHJlc2V0c1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwicHJlc2V0LXRhYlwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicHJlc2V0LnZhbHVlID09PSBzZXJpYWxpemVkQWN0aXZlRmlsdGVyc1wiXHJcbiAgICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLnByZXNldC10YWJzXCJcclxuICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGVcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZHJhZy1oYW5kbGVcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi8nXVwiXHJcbiAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwicHJlc2V0LnZhbHVlID09PSBzZXJpYWxpemVkQWN0aXZlRmlsdGVycyA/IHt9IDogeyBmaWx0ZXJzOiBwcmVzZXQudmFsdWUsIHBhZ2U6IDEgfVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgcHJlc2V0Lm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVsbGlwc2lzLXZlcnRpY2FsXCIgc2l6ZT1cIjEyXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJyZW5hbWVGaWx0ZXJQcmVzZXQocHJlc2V0Lm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVkaXRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLnJlbmFtZS1maWx0ZXItcHJlc2V0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVGaWx0ZXJQcmVzZXQocHJlc2V0Lm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
76
76
|
providedIn: 'root',
|
|
77
77
|
}]
|
|
78
78
|
}], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXByZXNldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2ZpbHRlci1wcmVzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZwRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsV0FBbUI7UUFDNUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQy9CLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRztnQkFDM0IsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsYUFBYSxFQUFFLEVBQUU7YUFDcEIsQ0FBQztTQUNMO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQW1CO1FBQ2hDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxPQUFPLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUE0RDtRQUN6RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUM5RSxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxZQUFZLEVBQUU7WUFDZCxZQUFZLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDckM7YUFBTTtZQUNILGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDdEIsQ0FBQyxDQUFDO1NBQ047UUFDRCxlQUFlLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBNkM7UUFDNUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxlQUFlLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQy9ELE1BQU0sQ0FBQyxXQUFXLENBQ3JCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDckQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBaUU7UUFDaEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDOUUsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksWUFBWSxFQUFFO1lBQ2QsWUFBWSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNsRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNDO0lBQ0wsQ0FBQzs4R0F2RVEsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ29uZmlnLCBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlclByZXNldFNlcnZpY2Uge1xyXG4gICAgcHJlc2V0Q2hhbmdlcyQ6IE9ic2VydmFibGU8QXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+O1xyXG4gICAgcHJpdmF0ZSBfcHJlc2V0Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMucHJlc2V0Q2hhbmdlcyQgPSB0aGlzLl9wcmVzZXRDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXREYXRhVGFibGVDb25maWcoZGF0YVRhYmxlSWQ6IHN0cmluZyk6IERhdGFUYWJsZUNvbmZpZyB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgnZGF0YVRhYmxlQ29uZmlnJykgPz8ge307XHJcbiAgICAgICAgaWYgKCFkYXRhVGFibGVDb25maWdbZGF0YVRhYmxlSWRdKSB7XHJcbiAgICAgICAgICAgIGRhdGFUYWJsZUNvbmZpZ1tkYXRhVGFibGVJZF0gPSB7XHJcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBbXSxcclxuICAgICAgICAgICAgICAgIG9yZGVyOiB7fSxcclxuICAgICAgICAgICAgICAgIHNob3dTZWFyY2hGaWx0ZXJSb3c6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyUHJlc2V0czogW10sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkYXRhVGFibGVDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZ2V0RGF0YVRhYmxlQ29uZmlnKGRhdGFUYWJsZUlkKTtcclxuICAgICAgICByZXR1cm4gZGF0YVRhYmxlQ29uZmlnW2RhdGFUYWJsZUlkXS5maWx0ZXJQcmVzZXRzID8/IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVGaWx0ZXJQcmVzZXQoY29uZmlnOiB7IGRhdGFUYWJsZUlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5nZXREYXRhVGFibGVDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkKTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJQcmVzZXRzID0gZGF0YVRhYmxlQ29uZmlnW2NvbmZpZy5kYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA/PyBbXTtcclxuICAgICAgICBjb25zdCBleGlzdGluZ05hbWUgPSBmaWx0ZXJQcmVzZXRzLmZpbmQocCA9PiBwLm5hbWUgPT09IGNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoZXhpc3RpbmdOYW1lKSB7XHJcbiAgICAgICAgICAgIGV4aXN0aW5nTmFtZS52YWx1ZSA9IGNvbmZpZy52YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmaWx0ZXJQcmVzZXRzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLnZhbHVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnW2NvbmZpZy5kYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA9IGZpbHRlclByZXNldHM7XHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgnZGF0YVRhYmxlQ29uZmlnJywgZGF0YVRhYmxlQ29uZmlnKTtcclxuICAgICAgICB0aGlzLl9wcmVzZXRDaGFuZ2VzLm5leHQoZmlsdGVyUHJlc2V0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlRmlsdGVyUHJlc2V0KGNvbmZpZzogeyBkYXRhVGFibGVJZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZ2V0RGF0YVRhYmxlQ29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCk7XHJcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnW2NvbmZpZy5kYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA9IGRhdGFUYWJsZUNvbmZpZ1tcclxuICAgICAgICAgICAgY29uZmlnLmRhdGFUYWJsZUlkXHJcbiAgICAgICAgXS5maWx0ZXJQcmVzZXRzLmZpbHRlcihwID0+IHAubmFtZSAhPT0gY29uZmlnLm5hbWUpO1xyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ2RhdGFUYWJsZUNvbmZpZycsIGRhdGFUYWJsZUNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGRhdGFUYWJsZUNvbmZpZ1tjb25maWcuZGF0YVRhYmxlSWRdLmZpbHRlclByZXNldHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlb3JkZXJQcmVzZXRzKGRhdGFUYWJsZUlkOiBzdHJpbmcsIGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCBwcmVzZXRzID0gdGhpcy5nZXRGaWx0ZXJQcmVzZXRzKGRhdGFUYWJsZUlkKTtcclxuICAgICAgICBtb3ZlSXRlbUluQXJyYXkocHJlc2V0cywgZnJvbUluZGV4LCB0b0luZGV4KTtcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmdldERhdGFUYWJsZUNvbmZpZyhkYXRhVGFibGVJZCk7XHJcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnW2RhdGFUYWJsZUlkXS5maWx0ZXJQcmVzZXRzID0gcHJlc2V0cztcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCdkYXRhVGFibGVDb25maWcnLCBkYXRhVGFibGVDb25maWcpO1xyXG4gICAgICAgIHRoaXMuX3ByZXNldENoYW5nZXMubmV4dChwcmVzZXRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5hbWVGaWx0ZXJQcmVzZXQoY29uZmlnOiB7IGRhdGFUYWJsZUlkOiBzdHJpbmc7IG9sZE5hbWU6IHN0cmluZzsgbmV3TmFtZTogc3RyaW5nIH0pIHtcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmdldERhdGFUYWJsZUNvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQpO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclByZXNldHMgPSBkYXRhVGFibGVDb25maWdbY29uZmlnLmRhdGFUYWJsZUlkXS5maWx0ZXJQcmVzZXRzID8/IFtdO1xyXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTmFtZSA9IGZpbHRlclByZXNldHMuZmluZChwID0+IHAubmFtZSA9PT0gY29uZmlnLm9sZE5hbWUpO1xyXG4gICAgICAgIGlmIChleGlzdGluZ05hbWUpIHtcclxuICAgICAgICAgICAgZXhpc3RpbmdOYW1lLm5hbWUgPSBjb25maWcubmV3TmFtZTtcclxuICAgICAgICAgICAgZGF0YVRhYmxlQ29uZmlnW2NvbmZpZy5kYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA9IGZpbHRlclByZXNldHM7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ2RhdGFUYWJsZUNvbmZpZycsIGRhdGFUYWJsZUNvbmZpZyk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXNldENoYW5nZXMubmV4dChmaWx0ZXJQcmVzZXRzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -11,10 +11,10 @@ export class RenameFilterPresetDialogComponent {
|
|
|
11
11
|
this.resolveWith(this.name);
|
|
12
12
|
}
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: RenameFilterPresetDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: RenameFilterPresetDialogComponent, selector: "vdr-rename-filter-preset-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\n {{ 'common.rename-filter-preset' | translate }}\n</ng-template>\n <vdr-form-field>\n <input type=\"text\" [(ngModel)]=\"name\">\n </vdr-form-field>\n<ng-template vdrDialogButtons>\n <button type=\"submit\" (click)=\"rename()\" [disabled]=\"!name\" class=\"button primary\">\n {{ 'common.update' | translate }}\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i3.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i4.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i5.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: RenameFilterPresetDialogComponent, selector: "vdr-rename-filter-preset-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n</ng-template>\r\n <vdr-form-field>\r\n <input type=\"text\" [(ngModel)]=\"name\">\r\n </vdr-form-field>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"submit\" (click)=\"rename()\" [disabled]=\"!name\" class=\"button primary\">\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i3.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i4.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i5.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: RenameFilterPresetDialogComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
|
-
args: [{ selector: 'vdr-rename-filter-preset-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n {{ 'common.rename-filter-preset' | translate }}\n</ng-template>\n <vdr-form-field>\n <input type=\"text\" [(ngModel)]=\"name\">\n </vdr-form-field>\n<ng-template vdrDialogButtons>\n <button type=\"submit\" (click)=\"rename()\" [disabled]=\"!name\" class=\"button primary\">\n {{ 'common.update' | translate }}\n </button>\n</ng-template>\n" }]
|
|
18
|
+
args: [{ selector: 'vdr-rename-filter-preset-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n</ng-template>\r\n <vdr-form-field>\r\n <input type=\"text\" [(ngModel)]=\"name\">\r\n </vdr-form-field>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"submit\" (click)=\"rename()\" [disabled]=\"!name\" class=\"button primary\">\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n" }]
|
|
19
19
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuYW1lLWZpbHRlci1wcmVzZXQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy9yZW5hbWUtZmlsdGVyLXByZXNldC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL3JlbmFtZS1maWx0ZXItcHJlc2V0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVNuRSxNQUFNLE9BQU8saUNBQWlDO0lBSTFDLE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQU5RLGlDQUFpQztrR0FBakMsaUNBQWlDLHVFQ1Q5QyxzYUFXQTs7MkZERmEsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNJLGlDQUFpQyxtQkFHMUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcmVuYW1lLWZpbHRlci1wcmVzZXQtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZW5hbWUtZmlsdGVyLXByZXNldC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVuYW1lLWZpbHRlci1wcmVzZXQtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVuYW1lRmlsdGVyUHJlc2V0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgRGlhbG9nPHN0cmluZz4ge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBzdHJpbmcpID0+IHZvaWQ7XHJcblxyXG4gICAgcmVuYW1lKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5uYW1lKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICB7eyAnY29tbW9uLnJlbmFtZS1maWx0ZXItcHJlc2V0JyB8IHRyYW5zbGF0ZSB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4gICAgPHZkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwibmFtZVwiPlxyXG4gICAgPC92ZHItZm9ybS1maWVsZD5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwicmVuYW1lKClcIiBbZGlzYWJsZWRdPVwiIW5hbWVcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCI+XHJcbiAgICAgICB7eyAnY29tbW9uLnVwZGF0ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -26,7 +26,9 @@ export class DataTableFiltersComponent {
|
|
|
26
26
|
}
|
|
27
27
|
onFKeyPress(event) {
|
|
28
28
|
if (event.target instanceof HTMLElement) {
|
|
29
|
-
if (event.target.tagName === 'INPUT' ||
|
|
29
|
+
if (event.target.tagName === 'INPUT' ||
|
|
30
|
+
event.target.tagName === 'TEXTAREA' ||
|
|
31
|
+
event.target.classList.contains('vdr-prosemirror')) {
|
|
30
32
|
return;
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -194,11 +196,11 @@ export class DataTableFiltersComponent {
|
|
|
194
196
|
}
|
|
195
197
|
}
|
|
196
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableFiltersComponent, deps: [{ token: i1.I18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
197
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableFiltersComponent, selector: "vdr-data-table-filters", inputs: { filters: "filters", filterWithValue: "filterWithValue" }, host: { listeners: { "window:keydown.f": "onFKeyPress($event)" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "customComponentHost", first: true, predicate: ["customComponentHost"], descendants: true, read: CustomFilterComponentDirective }], ngImport: i0, template: "<vdr-dropdown [manualToggle]=\"true\" #dropdown>\n <div class=\"filter-button\" [ngClass]=\"state\">\n <clr-icon shape=\"plus\" size=\"12\" *ngIf=\"state === 'new'\"></clr-icon>\n <button *ngIf=\"state === 'active'\" class=\"remove\" (click)=\"deactivate()\">\n <clr-icon shape=\"times\" size=\"12\"></clr-icon>\n </button>\n <button vdrDropdownTrigger class=\"\">\n <span *ngIf=\"state === 'new'\"\n >{{ 'common.add-filter' | translate }} <span class=\"filter-hotkey\">f</span></span\n >\n <span *ngIf=\"state === 'active'\">\n <vdr-data-table-filter-label\n [filterWithValue]=\"filterWithValue\"\n ></vdr-data-table-filter-label>\n </span>\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n </button>\n </div>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <div *ngIf=\"!selectedFilter\">\n <div class=\"filter-heading\">Filter by:</div>\n <div *ngFor=\"let filter of filters.getFilters()\">\n <button vdrDropdownItem (click)=\"selectFilter(filter)\">\n <vdr-localized-text [text]=\"filter?.label\" />\n </button>\n </div>\n </div>\n\n <div class=\"filter-heading\" *ngIf=\"selectedFilter\">\n Filter by <vdr-localized-text [text]=\"selectedFilter.label\" />:\n </div>\n <div class=\"mx-2 mt-1\">\n <div vdrCustomFilterComponentHost #customComponentHost></div>\n </div>\n <form *ngIf=\"selectedFilter\" class=\"\" [cdkTrapFocus]=\"true\" [cdkTrapFocusAutoCapture]=\"true\">\n <ng-container *ngIf=\"selectedFilter.type.kind !== 'custom'\">\n <div class=\"mx-2 mt-1\" [ngSwitch]=\"selectedFilter.type.kind\">\n <div *ngSwitchCase=\"'select'\" [formGroup]=\"formControl\">\n <label *ngFor=\"let option of $any(selectedFilter.type).options; index as i\">\n <input type=\"checkbox\" [formControlName]=\"i\" />\n <span>{{ option.label | translate }}</span>\n </label>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <label\n ><input type=\"checkbox\" [formControl]=\"formControl\" clrToggle />\n <span *ngIf=\"formControl.value\">{{ 'common.boolean-true' | translate }}</span>\n <span *ngIf=\"!formControl.value\">{{ 'common.boolean-false' | translate }}</span>\n </label>\n </div>\n <div *ngSwitchCase=\"'text'\">\n <div [formGroup]=\"formControl\">\n <div>\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\n <option value=\"contains\">\n {{ 'common.operator-contains' | translate }}\n </option>\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\n <option value=\"notContains\">\n {{ 'common.operator-not-contains' | translate }}\n </option>\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\n <option value=\"regex\">{{ 'common.operator-regex' | translate }}</option>\n </select>\n </div>\n <input type=\"text\" formControlName=\"term\" />\n </div>\n </div>\n <div *ngSwitchCase=\"'id'\">\n <div [formGroup]=\"formControl\">\n <div>\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\n </select>\n </div>\n <input type=\"text\" formControlName=\"term\" />\n </div>\n </div>\n <div *ngSwitchCase=\"'number'\">\n <div [formGroup]=\"formControl\">\n <div>\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\n <option value=\"gt\">{{ 'common.operator-gt' | translate }}</option>\n <option value=\"lt\">{{ 'common.operator-lt' | translate }}</option>\n </select>\n </div>\n <input\n *ngIf=\"$any(selectedFilter.type).inputType !== 'currency'\"\n type=\"text\"\n formControlName=\"amount\"\n />\n <vdr-currency-input\n *ngIf=\"$any(selectedFilter.type).inputType === 'currency'\"\n formControlName=\"amount\"\n />\n </div>\n </div>\n <div *ngSwitchCase=\"'dateRange'\">\n <div [formGroup]=\"formControl\">\n <vdr-form-field [label]=\"'common.data-table-filter-date-mode' | translate\">\n <select name=\"mode\" formControlName=\"mode\" class=\"mb-1\">\n <option value=\"relative\">\n {{ 'common.data-table-filter-date-relative' | translate }}\n </option>\n <option value=\"range\">\n {{ 'common.data-table-filter-date-range' | translate }}\n </option>\n </select>\n </vdr-form-field>\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'relative'\">\n <div class=\"flex mt-2\">\n <vdr-form-field class=\"mr-1\">\n <input type=\"number\" min=\"1\" formControlName=\"relativeValue\" />\n </vdr-form-field>\n <vdr-form-field>\n <select name=\"mode\" formControlName=\"relativeUnit\">\n <option value=\"day\">{{ 'datetime.day' | translate }}</option>\n <option value=\"month\">{{ 'datetime.month' | translate }}</option>\n <option value=\"year\">{{ 'datetime.year' | translate }}</option>\n </select>\n </vdr-form-field>\n </div>\n </ng-container>\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'range'\">\n <label>\n <div>{{ 'common.start-date' | translate }}</div>\n </label>\n <vdr-datetime-picker formControlName=\"start\"></vdr-datetime-picker>\n <label>\n <div>{{ 'common.end-date' | translate }}</div>\n </label>\n <vdr-datetime-picker formControlName=\"end\"></vdr-datetime-picker>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n <div class=\"apply-wrapper mt-2\">\n <button class=\"button\" (click)=\"activate()\" [disabled]=\"!formControl?.valid\">\n <span>{{ 'common.apply' | translate }}</span>\n <clr-icon shape=\"check\"></clr-icon>\n </button>\n </div>\n </form>\n </vdr-dropdown-menu>\n</vdr-dropdown>\n", styles: [":host{display:block}.filter-button{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;padding:0 var(--space-unit);height:calc(var(--space-unit) * 3);font-size:var(--font-size-xs);border-radius:var(--border-radius-lg);background-color:var(--color-button-small-bg);color:var(--color-button-small-text)}.filter-button>button{border:none;gap:12px;cursor:pointer;background-color:transparent;display:flex;align-items:center;height:calc(var(--space-unit) * 2);border-radius:var(--border-radius-lg);color:var(--color-button-small-text)}.filter-button.active{background-color:var(--color-primary-700);color:var(--color-primary-100)}.filter-button.active>button{color:var(--color-primary-100)}label{display:flex;align-items:center;gap:var(--space-unit);margin-bottom:calc(var(--space-unit) * .5)}.filter-heading{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-weight-600);margin:0 calc(var(--space-unit) * 2)}.apply-wrapper{display:flex;justify-content:flex-end;padding-inline-end:calc(var(--space-unit) * 2)}.filter-hotkey{font-size:var(--font-size-xs);color:var(--color-weight-500);border:1px solid var(--color-weight-200);background-color:var(--color-weight-100);border-radius:var(--border-radius);padding:0 3px;text-transform:uppercase;margin-inline-start:3px}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i7.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i8.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i9.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i10.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i11.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i12.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i13.DatetimePickerComponent, selector: "vdr-datetime-picker", inputs: ["yearRange", "weekStartDay", "timeGranularityInterval", "min", "max", "readonly"] }, { kind: "component", type: i14.DataTableFilterLabelComponent, selector: "vdr-data-table-filter-label", inputs: ["filterWithValue"] }, { kind: "directive", type: i15.CustomFilterComponentDirective, selector: "[vdrCustomFilterComponentHost]" }, { kind: "component", type: i16.LocalizedTextComponent, selector: "vdr-localized-text", inputs: ["text"] }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableFiltersComponent, selector: "vdr-data-table-filters", inputs: { filters: "filters", filterWithValue: "filterWithValue" }, host: { listeners: { "window:keydown.f": "onFKeyPress($event)" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "customComponentHost", first: true, predicate: ["customComponentHost"], descendants: true, read: CustomFilterComponentDirective }], ngImport: i0, template: "<vdr-dropdown [manualToggle]=\"true\" #dropdown>\r\n <div class=\"filter-button\" [ngClass]=\"state\">\r\n <clr-icon shape=\"plus\" size=\"12\" *ngIf=\"state === 'new'\"></clr-icon>\r\n <button *ngIf=\"state === 'active'\" class=\"remove\" (click)=\"deactivate()\">\r\n <clr-icon shape=\"times\" size=\"12\"></clr-icon>\r\n </button>\r\n <button vdrDropdownTrigger class=\"\">\r\n <span *ngIf=\"state === 'new'\"\r\n >{{ 'common.add-filter' | translate }} <span class=\"filter-hotkey\">f</span></span\r\n >\r\n <span *ngIf=\"state === 'active'\">\r\n <vdr-data-table-filter-label\r\n [filterWithValue]=\"filterWithValue\"\r\n ></vdr-data-table-filter-label>\r\n </span>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\r\n </button>\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <div *ngIf=\"!selectedFilter\">\r\n <div class=\"filter-heading\">Filter by:</div>\r\n <div *ngFor=\"let filter of filters.getFilters()\">\r\n <button vdrDropdownItem (click)=\"selectFilter(filter)\">\r\n <vdr-localized-text [text]=\"filter?.label\" />\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"filter-heading\" *ngIf=\"selectedFilter\">\r\n Filter by <vdr-localized-text [text]=\"selectedFilter.label\" />:\r\n </div>\r\n <div class=\"mx-2 mt-1\">\r\n <div vdrCustomFilterComponentHost #customComponentHost></div>\r\n </div>\r\n <form *ngIf=\"selectedFilter\" class=\"\" [cdkTrapFocus]=\"true\" [cdkTrapFocusAutoCapture]=\"true\">\r\n <ng-container *ngIf=\"selectedFilter.type.kind !== 'custom'\">\r\n <div class=\"mx-2 mt-1\" [ngSwitch]=\"selectedFilter.type.kind\">\r\n <div *ngSwitchCase=\"'select'\" [formGroup]=\"formControl\">\r\n <label *ngFor=\"let option of $any(selectedFilter.type).options; index as i\">\r\n <input type=\"checkbox\" [formControlName]=\"i\" />\r\n <span>{{ option.label | translate }}</span>\r\n </label>\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n <label\r\n ><input type=\"checkbox\" [formControl]=\"formControl\" clrToggle />\r\n <span *ngIf=\"formControl.value\">{{ 'common.boolean-true' | translate }}</span>\r\n <span *ngIf=\"!formControl.value\">{{ 'common.boolean-false' | translate }}</span>\r\n </label>\r\n </div>\r\n <div *ngSwitchCase=\"'text'\">\r\n <div [formGroup]=\"formControl\">\r\n <div>\r\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\r\n <option value=\"contains\">\r\n {{ 'common.operator-contains' | translate }}\r\n </option>\r\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\r\n <option value=\"notContains\">\r\n {{ 'common.operator-not-contains' | translate }}\r\n </option>\r\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\r\n <option value=\"regex\">{{ 'common.operator-regex' | translate }}</option>\r\n </select>\r\n </div>\r\n <input type=\"text\" formControlName=\"term\" />\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'id'\">\r\n <div [formGroup]=\"formControl\">\r\n <div>\r\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\r\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\r\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\r\n </select>\r\n </div>\r\n <input type=\"text\" formControlName=\"term\" />\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'number'\">\r\n <div [formGroup]=\"formControl\">\r\n <div>\r\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\r\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\r\n <option value=\"gt\">{{ 'common.operator-gt' | translate }}</option>\r\n <option value=\"lt\">{{ 'common.operator-lt' | translate }}</option>\r\n </select>\r\n </div>\r\n <input\r\n *ngIf=\"$any(selectedFilter.type).inputType !== 'currency'\"\r\n type=\"text\"\r\n formControlName=\"amount\"\r\n />\r\n <vdr-currency-input\r\n *ngIf=\"$any(selectedFilter.type).inputType === 'currency'\"\r\n formControlName=\"amount\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'dateRange'\">\r\n <div [formGroup]=\"formControl\">\r\n <vdr-form-field [label]=\"'common.data-table-filter-date-mode' | translate\">\r\n <select name=\"mode\" formControlName=\"mode\" class=\"mb-1\">\r\n <option value=\"relative\">\r\n {{ 'common.data-table-filter-date-relative' | translate }}\r\n </option>\r\n <option value=\"range\">\r\n {{ 'common.data-table-filter-date-range' | translate }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'relative'\">\r\n <div class=\"flex mt-2\">\r\n <vdr-form-field class=\"mr-1\">\r\n <input type=\"number\" min=\"1\" formControlName=\"relativeValue\" />\r\n </vdr-form-field>\r\n <vdr-form-field>\r\n <select name=\"mode\" formControlName=\"relativeUnit\">\r\n <option value=\"day\">{{ 'datetime.day' | translate }}</option>\r\n <option value=\"month\">{{ 'datetime.month' | translate }}</option>\r\n <option value=\"year\">{{ 'datetime.year' | translate }}</option>\r\n </select>\r\n </vdr-form-field>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'range'\">\r\n <label>\r\n <div>{{ 'common.start-date' | translate }}</div>\r\n </label>\r\n <vdr-datetime-picker formControlName=\"start\"></vdr-datetime-picker>\r\n <label>\r\n <div>{{ 'common.end-date' | translate }}</div>\r\n </label>\r\n <vdr-datetime-picker formControlName=\"end\"></vdr-datetime-picker>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"apply-wrapper mt-2\">\r\n <button class=\"button\" (click)=\"activate()\" [disabled]=\"!formControl?.valid\">\r\n <span>{{ 'common.apply' | translate }}</span>\r\n <clr-icon shape=\"check\"></clr-icon>\r\n </button>\r\n </div>\r\n </form>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [":host{display:block}.filter-button{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;padding:0 var(--space-unit);height:calc(var(--space-unit) * 3);font-size:var(--font-size-xs);border-radius:var(--border-radius-lg);background-color:var(--color-button-small-bg);color:var(--color-button-small-text)}.filter-button>button{border:none;gap:12px;cursor:pointer;background-color:transparent;display:flex;align-items:center;height:calc(var(--space-unit) * 2);border-radius:var(--border-radius-lg);color:var(--color-button-small-text)}.filter-button.active{background-color:var(--color-primary-700);color:var(--color-primary-100)}.filter-button.active>button{color:var(--color-primary-100)}label{display:flex;align-items:center;gap:var(--space-unit);margin-bottom:calc(var(--space-unit) * .5)}.filter-heading{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-weight-600);margin:0 calc(var(--space-unit) * 2)}.apply-wrapper{display:flex;justify-content:flex-end;padding-inline-end:calc(var(--space-unit) * 2)}.filter-hotkey{font-size:var(--font-size-xs);color:var(--color-weight-500);border:1px solid var(--color-weight-200);background-color:var(--color-weight-100);border-radius:var(--border-radius);padding:0 3px;text-transform:uppercase;margin-inline-start:3px}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i7.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i8.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i9.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i10.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i11.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i12.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i13.DatetimePickerComponent, selector: "vdr-datetime-picker", inputs: ["yearRange", "weekStartDay", "timeGranularityInterval", "min", "max", "readonly"] }, { kind: "component", type: i14.DataTableFilterLabelComponent, selector: "vdr-data-table-filter-label", inputs: ["filterWithValue"] }, { kind: "directive", type: i15.CustomFilterComponentDirective, selector: "[vdrCustomFilterComponentHost]" }, { kind: "component", type: i16.LocalizedTextComponent, selector: "vdr-localized-text", inputs: ["text"] }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
198
200
|
}
|
|
199
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableFiltersComponent, decorators: [{
|
|
200
202
|
type: Component,
|
|
201
|
-
args: [{ selector: 'vdr-data-table-filters', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-dropdown [manualToggle]=\"true\" #dropdown>\n <div class=\"filter-button\" [ngClass]=\"state\">\n <clr-icon shape=\"plus\" size=\"12\" *ngIf=\"state === 'new'\"></clr-icon>\n <button *ngIf=\"state === 'active'\" class=\"remove\" (click)=\"deactivate()\">\n <clr-icon shape=\"times\" size=\"12\"></clr-icon>\n </button>\n <button vdrDropdownTrigger class=\"\">\n <span *ngIf=\"state === 'new'\"\n >{{ 'common.add-filter' | translate }} <span class=\"filter-hotkey\">f</span></span\n >\n <span *ngIf=\"state === 'active'\">\n <vdr-data-table-filter-label\n [filterWithValue]=\"filterWithValue\"\n ></vdr-data-table-filter-label>\n </span>\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n </button>\n </div>\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\n <div *ngIf=\"!selectedFilter\">\n <div class=\"filter-heading\">Filter by:</div>\n <div *ngFor=\"let filter of filters.getFilters()\">\n <button vdrDropdownItem (click)=\"selectFilter(filter)\">\n <vdr-localized-text [text]=\"filter?.label\" />\n </button>\n </div>\n </div>\n\n <div class=\"filter-heading\" *ngIf=\"selectedFilter\">\n Filter by <vdr-localized-text [text]=\"selectedFilter.label\" />:\n </div>\n <div class=\"mx-2 mt-1\">\n <div vdrCustomFilterComponentHost #customComponentHost></div>\n </div>\n <form *ngIf=\"selectedFilter\" class=\"\" [cdkTrapFocus]=\"true\" [cdkTrapFocusAutoCapture]=\"true\">\n <ng-container *ngIf=\"selectedFilter.type.kind !== 'custom'\">\n <div class=\"mx-2 mt-1\" [ngSwitch]=\"selectedFilter.type.kind\">\n <div *ngSwitchCase=\"'select'\" [formGroup]=\"formControl\">\n <label *ngFor=\"let option of $any(selectedFilter.type).options; index as i\">\n <input type=\"checkbox\" [formControlName]=\"i\" />\n <span>{{ option.label | translate }}</span>\n </label>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <label\n ><input type=\"checkbox\" [formControl]=\"formControl\" clrToggle />\n <span *ngIf=\"formControl.value\">{{ 'common.boolean-true' | translate }}</span>\n <span *ngIf=\"!formControl.value\">{{ 'common.boolean-false' | translate }}</span>\n </label>\n </div>\n <div *ngSwitchCase=\"'text'\">\n <div [formGroup]=\"formControl\">\n <div>\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\n <option value=\"contains\">\n {{ 'common.operator-contains' | translate }}\n </option>\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\n <option value=\"notContains\">\n {{ 'common.operator-not-contains' | translate }}\n </option>\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\n <option value=\"regex\">{{ 'common.operator-regex' | translate }}</option>\n </select>\n </div>\n <input type=\"text\" formControlName=\"term\" />\n </div>\n </div>\n <div *ngSwitchCase=\"'id'\">\n <div [formGroup]=\"formControl\">\n <div>\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\n </select>\n </div>\n <input type=\"text\" formControlName=\"term\" />\n </div>\n </div>\n <div *ngSwitchCase=\"'number'\">\n <div [formGroup]=\"formControl\">\n <div>\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\n <option value=\"gt\">{{ 'common.operator-gt' | translate }}</option>\n <option value=\"lt\">{{ 'common.operator-lt' | translate }}</option>\n </select>\n </div>\n <input\n *ngIf=\"$any(selectedFilter.type).inputType !== 'currency'\"\n type=\"text\"\n formControlName=\"amount\"\n />\n <vdr-currency-input\n *ngIf=\"$any(selectedFilter.type).inputType === 'currency'\"\n formControlName=\"amount\"\n />\n </div>\n </div>\n <div *ngSwitchCase=\"'dateRange'\">\n <div [formGroup]=\"formControl\">\n <vdr-form-field [label]=\"'common.data-table-filter-date-mode' | translate\">\n <select name=\"mode\" formControlName=\"mode\" class=\"mb-1\">\n <option value=\"relative\">\n {{ 'common.data-table-filter-date-relative' | translate }}\n </option>\n <option value=\"range\">\n {{ 'common.data-table-filter-date-range' | translate }}\n </option>\n </select>\n </vdr-form-field>\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'relative'\">\n <div class=\"flex mt-2\">\n <vdr-form-field class=\"mr-1\">\n <input type=\"number\" min=\"1\" formControlName=\"relativeValue\" />\n </vdr-form-field>\n <vdr-form-field>\n <select name=\"mode\" formControlName=\"relativeUnit\">\n <option value=\"day\">{{ 'datetime.day' | translate }}</option>\n <option value=\"month\">{{ 'datetime.month' | translate }}</option>\n <option value=\"year\">{{ 'datetime.year' | translate }}</option>\n </select>\n </vdr-form-field>\n </div>\n </ng-container>\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'range'\">\n <label>\n <div>{{ 'common.start-date' | translate }}</div>\n </label>\n <vdr-datetime-picker formControlName=\"start\"></vdr-datetime-picker>\n <label>\n <div>{{ 'common.end-date' | translate }}</div>\n </label>\n <vdr-datetime-picker formControlName=\"end\"></vdr-datetime-picker>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n <div class=\"apply-wrapper mt-2\">\n <button class=\"button\" (click)=\"activate()\" [disabled]=\"!formControl?.valid\">\n <span>{{ 'common.apply' | translate }}</span>\n <clr-icon shape=\"check\"></clr-icon>\n </button>\n </div>\n </form>\n </vdr-dropdown-menu>\n</vdr-dropdown>\n", styles: [":host{display:block}.filter-button{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;padding:0 var(--space-unit);height:calc(var(--space-unit) * 3);font-size:var(--font-size-xs);border-radius:var(--border-radius-lg);background-color:var(--color-button-small-bg);color:var(--color-button-small-text)}.filter-button>button{border:none;gap:12px;cursor:pointer;background-color:transparent;display:flex;align-items:center;height:calc(var(--space-unit) * 2);border-radius:var(--border-radius-lg);color:var(--color-button-small-text)}.filter-button.active{background-color:var(--color-primary-700);color:var(--color-primary-100)}.filter-button.active>button{color:var(--color-primary-100)}label{display:flex;align-items:center;gap:var(--space-unit);margin-bottom:calc(var(--space-unit) * .5)}.filter-heading{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-weight-600);margin:0 calc(var(--space-unit) * 2)}.apply-wrapper{display:flex;justify-content:flex-end;padding-inline-end:calc(var(--space-unit) * 2)}.filter-hotkey{font-size:var(--font-size-xs);color:var(--color-weight-500);border:1px solid var(--color-weight-200);background-color:var(--color-weight-100);border-radius:var(--border-radius);padding:0 3px;text-transform:uppercase;margin-inline-start:3px}\n"] }]
|
|
203
|
+
args: [{ selector: 'vdr-data-table-filters', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-dropdown [manualToggle]=\"true\" #dropdown>\r\n <div class=\"filter-button\" [ngClass]=\"state\">\r\n <clr-icon shape=\"plus\" size=\"12\" *ngIf=\"state === 'new'\"></clr-icon>\r\n <button *ngIf=\"state === 'active'\" class=\"remove\" (click)=\"deactivate()\">\r\n <clr-icon shape=\"times\" size=\"12\"></clr-icon>\r\n </button>\r\n <button vdrDropdownTrigger class=\"\">\r\n <span *ngIf=\"state === 'new'\"\r\n >{{ 'common.add-filter' | translate }} <span class=\"filter-hotkey\">f</span></span\r\n >\r\n <span *ngIf=\"state === 'active'\">\r\n <vdr-data-table-filter-label\r\n [filterWithValue]=\"filterWithValue\"\r\n ></vdr-data-table-filter-label>\r\n </span>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\r\n </button>\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <div *ngIf=\"!selectedFilter\">\r\n <div class=\"filter-heading\">Filter by:</div>\r\n <div *ngFor=\"let filter of filters.getFilters()\">\r\n <button vdrDropdownItem (click)=\"selectFilter(filter)\">\r\n <vdr-localized-text [text]=\"filter?.label\" />\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"filter-heading\" *ngIf=\"selectedFilter\">\r\n Filter by <vdr-localized-text [text]=\"selectedFilter.label\" />:\r\n </div>\r\n <div class=\"mx-2 mt-1\">\r\n <div vdrCustomFilterComponentHost #customComponentHost></div>\r\n </div>\r\n <form *ngIf=\"selectedFilter\" class=\"\" [cdkTrapFocus]=\"true\" [cdkTrapFocusAutoCapture]=\"true\">\r\n <ng-container *ngIf=\"selectedFilter.type.kind !== 'custom'\">\r\n <div class=\"mx-2 mt-1\" [ngSwitch]=\"selectedFilter.type.kind\">\r\n <div *ngSwitchCase=\"'select'\" [formGroup]=\"formControl\">\r\n <label *ngFor=\"let option of $any(selectedFilter.type).options; index as i\">\r\n <input type=\"checkbox\" [formControlName]=\"i\" />\r\n <span>{{ option.label | translate }}</span>\r\n </label>\r\n </div>\r\n <div *ngSwitchCase=\"'boolean'\">\r\n <label\r\n ><input type=\"checkbox\" [formControl]=\"formControl\" clrToggle />\r\n <span *ngIf=\"formControl.value\">{{ 'common.boolean-true' | translate }}</span>\r\n <span *ngIf=\"!formControl.value\">{{ 'common.boolean-false' | translate }}</span>\r\n </label>\r\n </div>\r\n <div *ngSwitchCase=\"'text'\">\r\n <div [formGroup]=\"formControl\">\r\n <div>\r\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\r\n <option value=\"contains\">\r\n {{ 'common.operator-contains' | translate }}\r\n </option>\r\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\r\n <option value=\"notContains\">\r\n {{ 'common.operator-not-contains' | translate }}\r\n </option>\r\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\r\n <option value=\"regex\">{{ 'common.operator-regex' | translate }}</option>\r\n </select>\r\n </div>\r\n <input type=\"text\" formControlName=\"term\" />\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'id'\">\r\n <div [formGroup]=\"formControl\">\r\n <div>\r\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\r\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\r\n <option value=\"notEq\">{{ 'common.operator-not-eq' | translate }}</option>\r\n </select>\r\n </div>\r\n <input type=\"text\" formControlName=\"term\" />\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'number'\">\r\n <div [formGroup]=\"formControl\">\r\n <div>\r\n <select name=\"options\" formControlName=\"operator\" class=\"mb-1\">\r\n <option value=\"eq\">{{ 'common.operator-eq' | translate }}</option>\r\n <option value=\"gt\">{{ 'common.operator-gt' | translate }}</option>\r\n <option value=\"lt\">{{ 'common.operator-lt' | translate }}</option>\r\n </select>\r\n </div>\r\n <input\r\n *ngIf=\"$any(selectedFilter.type).inputType !== 'currency'\"\r\n type=\"text\"\r\n formControlName=\"amount\"\r\n />\r\n <vdr-currency-input\r\n *ngIf=\"$any(selectedFilter.type).inputType === 'currency'\"\r\n formControlName=\"amount\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'dateRange'\">\r\n <div [formGroup]=\"formControl\">\r\n <vdr-form-field [label]=\"'common.data-table-filter-date-mode' | translate\">\r\n <select name=\"mode\" formControlName=\"mode\" class=\"mb-1\">\r\n <option value=\"relative\">\r\n {{ 'common.data-table-filter-date-relative' | translate }}\r\n </option>\r\n <option value=\"range\">\r\n {{ 'common.data-table-filter-date-range' | translate }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'relative'\">\r\n <div class=\"flex mt-2\">\r\n <vdr-form-field class=\"mr-1\">\r\n <input type=\"number\" min=\"1\" formControlName=\"relativeValue\" />\r\n </vdr-form-field>\r\n <vdr-form-field>\r\n <select name=\"mode\" formControlName=\"relativeUnit\">\r\n <option value=\"day\">{{ 'datetime.day' | translate }}</option>\r\n <option value=\"month\">{{ 'datetime.month' | translate }}</option>\r\n <option value=\"year\">{{ 'datetime.year' | translate }}</option>\r\n </select>\r\n </vdr-form-field>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"formControl.get('mode')?.value === 'range'\">\r\n <label>\r\n <div>{{ 'common.start-date' | translate }}</div>\r\n </label>\r\n <vdr-datetime-picker formControlName=\"start\"></vdr-datetime-picker>\r\n <label>\r\n <div>{{ 'common.end-date' | translate }}</div>\r\n </label>\r\n <vdr-datetime-picker formControlName=\"end\"></vdr-datetime-picker>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"apply-wrapper mt-2\">\r\n <button class=\"button\" (click)=\"activate()\" [disabled]=\"!formControl?.valid\">\r\n <span>{{ 'common.apply' | translate }}</span>\r\n <clr-icon shape=\"check\"></clr-icon>\r\n </button>\r\n </div>\r\n </form>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [":host{display:block}.filter-button{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;padding:0 var(--space-unit);height:calc(var(--space-unit) * 3);font-size:var(--font-size-xs);border-radius:var(--border-radius-lg);background-color:var(--color-button-small-bg);color:var(--color-button-small-text)}.filter-button>button{border:none;gap:12px;cursor:pointer;background-color:transparent;display:flex;align-items:center;height:calc(var(--space-unit) * 2);border-radius:var(--border-radius-lg);color:var(--color-button-small-text)}.filter-button.active{background-color:var(--color-primary-700);color:var(--color-primary-100)}.filter-button.active>button{color:var(--color-primary-100)}label{display:flex;align-items:center;gap:var(--space-unit);margin-bottom:calc(var(--space-unit) * .5)}.filter-heading{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-weight-600);margin:0 calc(var(--space-unit) * 2)}.apply-wrapper{display:flex;justify-content:flex-end;padding-inline-end:calc(var(--space-unit) * 2)}.filter-hotkey{font-size:var(--font-size-xs);color:var(--color-weight-500);border:1px solid var(--color-weight-200);background-color:var(--color-weight-100);border-radius:var(--border-radius);padding:0 3px;text-transform:uppercase;margin-inline-start:3px}\n"] }]
|
|
202
204
|
}], ctorParameters: function () { return [{ type: i1.I18nService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filters: [{
|
|
203
205
|
type: Input
|
|
204
206
|
}], filterWithValue: [{
|
|
@@ -213,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
213
215
|
type: HostListener,
|
|
214
216
|
args: ['window:keydown.f', ['$event']]
|
|
215
217
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXJzL2RhdGEtdGFibGUtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVycy9kYXRhLXRhYmxlLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVUvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFyRixNQUFNLE9BQU8seUJBQXlCO0lBSWxDLElBQ0ksbUJBQW1CLENBQUMsT0FBdUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztJQUN4QyxDQUFDO0lBUUQsV0FBVyxDQUFDLEtBQW9CO1FBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sWUFBWSxXQUFXLEVBQUU7WUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUN6RSxPQUFPO2FBQ1Y7U0FDSjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENB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QVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0gsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7OEdBck1RLHlCQUF5QjtrR0FBekIseUJBQXlCLGtaQUl1Qiw4QkFBOEIsNkJDakMzRiw0dFJBb0pBOzsyRkR2SGEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTtrSUFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ21DLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFbkMsbUJBQW1CO3NCQUR0QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsOEJBQThCLEVBQUU7Z0JBV3pGLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb21wb25lbnQtcmVnaXN0cnktdHlwZXMnO1xuaW1wb3J0IHsgRGF0ZU9wZXJhdG9ycyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVRhYmxlRmlsdGVyLCBLaW5kVmFsdWVNYXAgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlcic7XG5pbXBvcnQge1xuICAgIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb24sXG4gICAgRmlsdGVyV2l0aFZhbHVlLFxufSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci1jb2xsZWN0aW9uJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZSB9IGZyb20gJy4vY3VzdG9tLWZpbHRlci1jb21wb25lbnQuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItZGF0YS10YWJsZS1maWx0ZXJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLWZpbHRlcnMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGZpbHRlcnM6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb247XG4gICAgQElucHV0KCkgZmlsdGVyV2l0aFZhbHVlPzogRmlsdGVyV2l0aFZhbHVlO1xuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2N1c3RvbUNvbXBvbmVudEhvc3QnLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZSB9KVxuICAgIHNldCBjdXN0b21Db21wb25lbnRIb3N0KGNvbnRlbnQ6IEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLl9jdXN0b21Db21wb25lbnRIb3N0ID0gY29udGVudDtcbiAgICB9XG4gICAgX2N1c3RvbUNvbXBvbmVudEhvc3Q6IEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZTtcbiAgICBwcm90ZWN0ZWQgc3RhdGU6ICduZXcnIHwgJ2FjdGl2ZScgPSAnbmV3JztcbiAgICBwcm90ZWN0ZWQgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRGaWx0ZXI6IERhdGFUYWJsZUZpbHRlciB8IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgY3VzdG9tQ29tcG9uZW50PzogQ29tcG9uZW50UmVmPEZvcm1JbnB1dENvbXBvbmVudD47XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5mJywgWyckZXZlbnQnXSlcbiAgICBvbkZLZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQudGFnTmFtZSA9PT0gJ0lOUFVUJyB8fCBldmVudC50YXJnZXQudGFnTmFtZSA9PT0gJ1RFWFRBUkVBJykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd24uaXNPcGVuICYmIHRoaXMuc3RhdGUgPT09ICduZXcnKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZU9wZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5vbk9wZW5DaGFuZ2UoaXNPcGVuID0+IHtcbiAgICAgICAgICAgIGlmICghaXNPcGVuICYmIHRoaXMuc3RhdGUgPT09ICduZXcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlcldpdGhWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXIsIHZhbHVlIH0gPSB0aGlzLmZpbHRlcldpdGhWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RmlsdGVyKGZpbHRlciwgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdhY3RpdmUnO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0RmlsdGVyKGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyLCB2YWx1ZT86IGFueSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyID0gZmlsdGVyO1xuICAgICAgICBpZiAoZmlsdGVyLmlzSWQoKSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtR3JvdXAoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKHZhbHVlPy5vcGVyYXRvciA/PyAnZXEnKSxcbiAgICAgICAgICAgICAgICAgICAgdGVybTogbmV3IEZvcm1Db250cm9sKHZhbHVlPy50ZXJtID8/ICcnKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbnRyb2wgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2wudmFsdWUudGVybSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbm9TZWxlY3Rpb246IHRydWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyLmlzVGV4dCgpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/Lm9wZXJhdG9yID8/ICdjb250YWlucycpLFxuICAgICAgICAgICAgICAgICAgICB0ZXJtOiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LnRlcm0gPz8gJycpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29udHJvbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udHJvbC52YWx1ZS50ZXJtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBub1NlbGVjdGlvbjogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXIuaXNOdW1iZXIoKSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtR3JvdXAoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKHZhbHVlPy5vcGVyYXRvciA/PyAnZ3QnKSxcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LmFtb3VudCA/PyAnJyksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb250cm9sID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUuYW1vdW50ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IG5vU2VsZWN0aW9uOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLmlzU2VsZWN0KCkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUFycmF5KFxuICAgICAgICAgICAgICAgIGZpbHRlci50eXBlLm9wdGlvbnMubWFwKG8gPT4gbmV3IEZvcm1Db250cm9sKHZhbHVlPy5pbmNsdWRlcyhvLnZhbHVlKSA/PyBmYWxzZSkpLFxuICAgICAgICAgICAgICAgIGNvbnRyb2wgPT4gKGNvbnRyb2wudmFsdWUuc29tZShCb29sZWFuKSA/IG51bGwgOiB7IG5vU2VsZWN0aW9uOiB0cnVlIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIuaXNCb29sZWFuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUgPz8gZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci5pc0RhdGVSYW5nZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGU6IG5ldyBGb3JtQ29udHJvbCgncmVsYXRpdmUnKSxcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZTogbmV3IEZvcm1Db250cm9sKHZhbHVlPy5yZWxhdGl2ZVZhbHVlID8/IDMwKSxcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVVbml0OiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LnJlbGF0aXZlVW5pdCA/PyAnZGF5JyksXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LnN0YXJ0ID8/IG51bGwpLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8uZW5kID8/IG51bGwpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29udHJvbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB2YWwubW9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdyYW5nZScgJiYgdmFsLnN0YXJ0ICYmIHZhbC5lbmQgJiYgdmFsLnN0YXJ0ID4gdmFsLmVuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZFJhbmdlOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdyYW5nZScgJiYgIXZhbC5zdGFydCAmJiAhdmFsLmVuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbm9TZWxlY3Rpb246IHRydWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIuaXNDdXN0b20oKSAmJiB0aGlzLl9jdXN0b21Db21wb25lbnRIb3N0KSB7XG4gICAgICAgICAgICAvLyB0aGlzLiNjdXN0b21Db21wb25lbnRIb3N0LnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29tcG9uZW50ID0gdGhpcy5fY3VzdG9tQ29tcG9uZW50SG9zdC52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICBmaWx0ZXIudHlwZS5jb21wb25lbnQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxhbnk+KHZhbHVlID8/IFtdKTtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29tcG9uZW50Lmluc3RhbmNlLmNvbmZpZyA9IHt9O1xuICAgICAgICAgICAgdGhpcy5jdXN0b21Db21wb25lbnQuaW5zdGFuY2UuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8YW55Pih2YWx1ZSA/PyBbXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhY3RpdmF0ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnNlbGVjdGVkRmlsdGVyPy50eXBlO1xuICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkge1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAhIXRoaXMuZm9ybUNvbnRyb2wudmFsdWUgYXMgS2luZFZhbHVlTWFwW3R5cGVvZiB0eXBlLmtpbmRdWydyYXcnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVSYW5nZSc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZS5tb2RlID8/ICdyZWxhdGl2ZSc7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUucmVsYXRpdmVWYWx1ZSA/PyAzMDtcbiAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVVuaXQgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlLnJlbGF0aXZlVW5pdCA/PyAnZGF5JztcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUuc3RhcnQgPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUuZW5kID8/IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVVbml0LFxuICAgICAgICAgICAgICAgICAgICBzdGFydCxcbiAgICAgICAgICAgICAgICAgICAgZW5kLFxuICAgICAgICAgICAgICAgIH0gYXMgS2luZFZhbHVlTWFwW3R5cGVvZiB0eXBlLmtpbmRdWydyYXcnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFtb3VudDogTnVtYmVyKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUuYW1vdW50KSxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgfSBhcyBLaW5kVmFsdWVNYXBbdHlwZW9mIHR5cGUua2luZF1bJ3JhdyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHYsIGkpID0+ICh2ID8gdHlwZS5vcHRpb25zW2ldLnZhbHVlIDogdW5kZWZpbmVkKSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcih2ID0+ICEhdik7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBvcHRpb25zIGFzIEtpbmRWYWx1ZU1hcFt0eXBlb2YgdHlwZS5raW5kXVsncmF3J107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgIHRlcm06IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUudGVybSxcbiAgICAgICAgICAgICAgICB9IGFzIEtpbmRWYWx1ZU1hcFt0eXBlb2YgdHlwZS5raW5kXVsncmF3J107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpZCc6XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLmZvcm1Db250cm9sLnZhbHVlLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICB0ZXJtOiB0aGlzLmZvcm1Db250cm9sLnZhbHVlLnRlcm0sXG4gICAgICAgICAgICAgICAgfSBhcyBLaW5kVmFsdWVNYXBbdHlwZW9mIHR5cGUua2luZF1bJ3JhdyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuY3VzdG9tQ29tcG9uZW50Py5pbnN0YW5jZS5mb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ25ldycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tQ29tcG9uZW50SG9zdC52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBhc3NlcnROZXZlcih0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ25ldycpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXIuYWN0aXZhdGUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJXaXRoVmFsdWU/LnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZU9wZW4oKTtcbiAgICB9XG5cbiAgICBkZWFjdGl2YXRlKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJXaXRoVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWx0ZXJzLmFjdGl2ZUZpbHRlcnMuaW5kZXhPZih0aGlzLmZpbHRlcldpdGhWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnMucmVtb3ZlQWN0aXZlRmlsdGVyQXRJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dmRyLWRyb3Bkb3duIFttYW51YWxUb2dnbGVdPVwidHJ1ZVwiICNkcm9wZG93bj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJ1dHRvblwiIFtuZ0NsYXNzXT1cInN0YXRlXCI+XG4gICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInBsdXNcIiBzaXplPVwiMTJcIiAqbmdJZj1cInN0YXRlID09PSAnbmV3J1wiPjwvY2xyLWljb24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzdGF0ZSA9PT0gJ2FjdGl2ZSdcIiBjbGFzcz1cInJlbW92ZVwiIChjbGljayk9XCJkZWFjdGl2YXRlKClcIj5cbiAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRpbWVzXCIgc2l6ZT1cIjEyXCI+PC9jbHItaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25UcmlnZ2VyIGNsYXNzPVwiXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInN0YXRlID09PSAnbmV3J1wiXG4gICAgICAgICAgICAgICAgPnt7ICdjb21tb24uYWRkLWZpbHRlcicgfCB0cmFuc2xhdGUgfX0gPHNwYW4gY2xhc3M9XCJmaWx0ZXItaG90a2V5XCI+Zjwvc3Bhbj48L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic3RhdGUgPT09ICdhY3RpdmUnXCI+XG4gICAgICAgICAgICAgICAgPHZkci1kYXRhLXRhYmxlLWZpbHRlci1sYWJlbFxuICAgICAgICAgICAgICAgICAgICBbZmlsdGVyV2l0aFZhbHVlXT1cImZpbHRlcldpdGhWYWx1ZVwiXG4gICAgICAgICAgICAgICAgPjwvdmRyLWRhdGEtdGFibGUtZmlsdGVyLWxhYmVsPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWxsaXBzaXMtdmVydGljYWxcIiBzaXplPVwiMTJcIj48L2Nsci1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tbGVmdFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNlbGVjdGVkRmlsdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRpbmdcIj5GaWx0ZXIgYnk6PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVycy5nZXRGaWx0ZXJzKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHZkckRyb3Bkb3duSXRlbSAoY2xpY2spPVwic2VsZWN0RmlsdGVyKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPHZkci1sb2NhbGl6ZWQtdGV4dCBbdGV4dF09XCJmaWx0ZXI/LmxhYmVsXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRpbmdcIiAqbmdJZj1cInNlbGVjdGVkRmlsdGVyXCI+XG4gICAgICAgICAgICBGaWx0ZXIgYnkgPHZkci1sb2NhbGl6ZWQtdGV4dCBbdGV4dF09XCJzZWxlY3RlZEZpbHRlci5sYWJlbFwiIC8+OlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgbXQtMVwiPlxuICAgICAgICAgICAgPGRpdiB2ZHJDdXN0b21GaWx0ZXJDb21wb25lbnRIb3N0ICNjdXN0b21Db21wb25lbnRIb3N0PjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvcm0gKm5nSWY9XCJzZWxlY3RlZEZpbHRlclwiIGNsYXNzPVwiXCIgW2Nka1RyYXBGb2N1c109XCJ0cnVlXCIgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpbHRlci50eXBlLmtpbmQgIT09ICdjdXN0b20nXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgbXQtMVwiIFtuZ1N3aXRjaF09XCJzZWxlY3RlZEZpbHRlci50eXBlLmtpbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIiBbZm9ybUdyb3VwXT1cImZvcm1Db250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiAkYW55KHNlbGVjdGVkRmlsdGVyLnR5cGUpLm9wdGlvbnM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sTmFtZV09XCJpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIGNsclRvZ2dsZSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybUNvbnRyb2wudmFsdWVcIj57eyAnY29tbW9uLmJvb2xlYW4tdHJ1ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZm9ybUNvbnRyb2wudmFsdWVcIj57eyAnY29tbW9uLmJvb2xlYW4tZmFsc2UnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Db250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPVwib3B0aW9uc1wiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgY2xhc3M9XCJtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY29udGFpbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLm9wZXJhdG9yLWNvbnRhaW5zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZXFcIj57eyAnY29tbW9uLm9wZXJhdG9yLWVxJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm5vdENvbnRhaW5zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5vcGVyYXRvci1ub3QtY29udGFpbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub3RFcVwiPnt7ICdjb21tb24ub3BlcmF0b3Itbm90LWVxJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJlZ2V4XCI+e3sgJ2NvbW1vbi5vcGVyYXRvci1yZWdleCcgfCB0cmFuc2xhdGUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGVybVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidpZCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtQ29udHJvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRvclwiIGNsYXNzPVwibWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVxXCI+e3sgJ2NvbW1vbi5vcGVyYXRvci1lcScgfCB0cmFuc2xhdGUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub3RFcVwiPnt7ICdjb21tb24ub3BlcmF0b3Itbm90LWVxJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXJtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtQ29udHJvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRvclwiIGNsYXNzPVwibWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVxXCI+e3sgJ2NvbW1vbi5vcGVyYXRvci1lcScgfCB0cmFuc2xhdGUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJndFwiPnt7ICdjb21tb24ub3BlcmF0b3ItZ3QnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibHRcIj57eyAnY29tbW9uLm9wZXJhdG9yLWx0JyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIkYW55KHNlbGVjdGVkRmlsdGVyLnR5cGUpLmlucHV0VHlwZSAhPT0gJ2N1cnJlbmN5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYW1vdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIkYW55KHNlbGVjdGVkRmlsdGVyLnR5cGUpLmlucHV0VHlwZSA9PT0gJ2N1cnJlbmN5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFtb3VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVSYW5nZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtQ29udHJvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NvbW1vbi5kYXRhLXRhYmxlLWZpbHRlci1kYXRlLW1vZGUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm1vZGVcIiBmb3JtQ29udHJvbE5hbWU9XCJtb2RlXCIgY2xhc3M9XCJtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmRhdGEtdGFibGUtZmlsdGVyLWRhdGUtcmVsYXRpdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyYW5nZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24uZGF0YS10YWJsZS1maWx0ZXItZGF0ZS1yYW5nZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtQ29udHJvbC5nZXQoJ21vZGUnKT8udmFsdWUgPT09ICdyZWxhdGl2ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIGNsYXNzPVwibXItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMVwiIGZvcm1Db250cm9sTmFtZT1cInJlbGF0aXZlVmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJtb2RlXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVsYXRpdmVVbml0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJkYXlcIj57eyAnZGF0ZXRpbWUuZGF5JyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9udGhcIj57eyAnZGF0ZXRpbWUubW9udGgnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZWFyXCI+e3sgJ2RhdGV0aW1lLnllYXInIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUNvbnRyb2wuZ2V0KCdtb2RlJyk/LnZhbHVlID09PSAncmFuZ2UnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgJ2NvbW1vbi5zdGFydC1kYXRlJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRhdGV0aW1lLXBpY2tlciBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiPjwvdmRyLWRhdGV0aW1lLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyAnY29tbW9uLmVuZC1kYXRlJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRhdGV0aW1lLXBpY2tlciBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIj48L3Zkci1kYXRldGltZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHBseS13cmFwcGVyIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFjdGl2YXRlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm1Db250cm9sPy52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnY29tbW9uLmFwcGx5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiY2hlY2tcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxuPC92ZHItZHJvcGRvd24+XG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvZGF0YS10YWJsZS1maWx0ZXJzL2RhdGEtdGFibGUtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVycy9kYXRhLXRhYmxlLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVUvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFyRixNQUFNLE9BQU8seUJBQXlCO0lBSWxDLElBQ0ksbUJBQW1CLENBQUMsT0FBdUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztJQUN4QyxDQUFDO0lBUUQsV0FBVyxDQUFDLEtBQW9CO1FBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sWUFBWSxXQUFXLEVBQUU7WUFDckMsSUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPO2dCQUNoQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVO2dCQUNuQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFDcEQ7Z0JBQ0UsT0FBTzth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QUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakQ7SUFDTCxDQUFDOzhHQXpNUSx5QkFBeUI7a0dBQXpCLHlCQUF5QixrWkFJdUIsOEJBQThCLDZCQ2pDM0Ysb2dTQW9KQTs7MkZEdkhhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07a0lBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNtQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRW5DLG1CQUFtQjtzQkFEdEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixFQUFFO2dCQVd6RixXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb21wb25lbnRSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgRGF0ZU9wZXJhdG9ycyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVGaWx0ZXIsIEtpbmRWYWx1ZU1hcCB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyJztcclxuaW1wb3J0IHtcclxuICAgIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb24sXHJcbiAgICBGaWx0ZXJXaXRoVmFsdWUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbic7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2kxOG4vaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWx0ZXJDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuL2N1c3RvbS1maWx0ZXItY29tcG9uZW50LmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWRhdGEtdGFibGUtZmlsdGVycycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUtZmlsdGVycy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBASW5wdXQoKSBmaWx0ZXJzOiBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uO1xyXG4gICAgQElucHV0KCkgZmlsdGVyV2l0aFZhbHVlPzogRmlsdGVyV2l0aFZhbHVlO1xyXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdjdXN0b21Db21wb25lbnRIb3N0JywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBDdXN0b21GaWx0ZXJDb21wb25lbnREaXJlY3RpdmUgfSlcclxuICAgIHNldCBjdXN0b21Db21wb25lbnRIb3N0KGNvbnRlbnQ6IEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZSkge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUNvbXBvbmVudEhvc3QgPSBjb250ZW50O1xyXG4gICAgfVxyXG4gICAgX2N1c3RvbUNvbXBvbmVudEhvc3Q6IEN1c3RvbUZpbHRlckNvbXBvbmVudERpcmVjdGl2ZTtcclxuICAgIHByb3RlY3RlZCBzdGF0ZTogJ25ldycgfCAnYWN0aXZlJyA9ICduZXcnO1xyXG4gICAgcHJvdGVjdGVkIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRGaWx0ZXI6IERhdGFUYWJsZUZpbHRlciB8IHVuZGVmaW5lZDtcclxuICAgIHByb3RlY3RlZCBjdXN0b21Db21wb25lbnQ/OiBDb21wb25lbnRSZWY8Rm9ybUlucHV0Q29tcG9uZW50PjtcclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5mJywgWyckZXZlbnQnXSlcclxuICAgIG9uRktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnIHx8XHJcbiAgICAgICAgICAgICAgICBldmVudC50YXJnZXQudGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fFxyXG4gICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygndmRyLXByb3NlbWlycm9yJylcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duLmlzT3BlbiAmJiB0aGlzLnN0YXRlID09PSAnbmV3Jykge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZU9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duLm9uT3BlbkNoYW5nZShpc09wZW4gPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWlzT3BlbiAmJiB0aGlzLnN0YXRlID09PSAnbmV3Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlciA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlcldpdGhWYWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGZpbHRlciwgdmFsdWUgfSA9IHRoaXMuZmlsdGVyV2l0aFZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEZpbHRlcihmaWx0ZXIsIHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdhY3RpdmUnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEZpbHRlcihmaWx0ZXI6IERhdGFUYWJsZUZpbHRlciwgdmFsdWU/OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyID0gZmlsdGVyO1xyXG4gICAgICAgIGlmIChmaWx0ZXIuaXNJZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUdyb3VwKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/Lm9wZXJhdG9yID8/ICdlcScpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRlcm06IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8udGVybSA/PyAnJyksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY29udHJvbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250cm9sLnZhbHVlLnRlcm0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbm9TZWxlY3Rpb246IHRydWUgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmlsdGVyLmlzVGV4dCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUdyb3VwKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/Lm9wZXJhdG9yID8/ICdjb250YWlucycpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRlcm06IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8udGVybSA/PyAnJyksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY29udHJvbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250cm9sLnZhbHVlLnRlcm0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbm9TZWxlY3Rpb246IHRydWUgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmlsdGVyLmlzTnVtYmVyKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtR3JvdXAoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8ub3BlcmF0b3IgPz8gJ2d0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LmFtb3VudCA/PyAnJyksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY29udHJvbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUuYW1vdW50ID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbm9TZWxlY3Rpb246IHRydWUgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLmlzU2VsZWN0KCkpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQXJyYXkoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIudHlwZS5vcHRpb25zLm1hcChvID0+IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8uaW5jbHVkZXMoby52YWx1ZSkgPz8gZmFsc2UpKSxcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wgPT4gKGNvbnRyb2wudmFsdWUuc29tZShCb29sZWFuKSA/IG51bGwgOiB7IG5vU2VsZWN0aW9uOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLmlzQm9vbGVhbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUgPz8gZmFsc2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLmlzRGF0ZVJhbmdlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtR3JvdXAoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogbmV3IEZvcm1Db250cm9sKCdyZWxhdGl2ZScpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVmFsdWU6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8ucmVsYXRpdmVWYWx1ZSA/PyAzMCksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVVbml0OiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LnJlbGF0aXZlVW5pdCA/PyAnZGF5JyksXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZT8uc3RhcnQgPz8gbnVsbCksXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBuZXcgRm9ybUNvbnRyb2wodmFsdWU/LmVuZCA/PyBudWxsKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb250cm9sID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB2YWwubW9kZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3JhbmdlJyAmJiB2YWwuc3RhcnQgJiYgdmFsLmVuZCAmJiB2YWwuc3RhcnQgPiB2YWwuZW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGludmFsaWRSYW5nZTogdHJ1ZSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3JhbmdlJyAmJiAhdmFsLnN0YXJ0ICYmICF2YWwuZW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IG5vU2VsZWN0aW9uOiB0cnVlIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci5pc0N1c3RvbSgpICYmIHRoaXMuX2N1c3RvbUNvbXBvbmVudEhvc3QpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy4jY3VzdG9tQ29tcG9uZW50SG9zdC52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29tcG9uZW50ID0gdGhpcy5fY3VzdG9tQ29tcG9uZW50SG9zdC52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcclxuICAgICAgICAgICAgICAgIGZpbHRlci50eXBlLmNvbXBvbmVudCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxhbnk+KHZhbHVlID8/IFtdKTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db21wb25lbnQuaW5zdGFuY2UuY29uZmlnID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29tcG9uZW50Lmluc3RhbmNlLmZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPGFueT4odmFsdWUgPz8gW10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3RpdmF0ZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWx0ZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgICBjb25zdCB0eXBlID0gdGhpcy5zZWxlY3RlZEZpbHRlcj8udHlwZTtcclxuICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkge1xyXG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gISF0aGlzLmZvcm1Db250cm9sLnZhbHVlIGFzIEtpbmRWYWx1ZU1hcFt0eXBlb2YgdHlwZS5raW5kXVsncmF3J107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUubW9kZSA/PyAncmVsYXRpdmUnO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUucmVsYXRpdmVWYWx1ZSA/PyAzMDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlVW5pdCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUucmVsYXRpdmVVbml0ID8/ICdkYXknO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlLnN0YXJ0ID8/IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUuZW5kID8/IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVVuaXQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQsXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kLFxyXG4gICAgICAgICAgICAgICAgfSBhcyBLaW5kVmFsdWVNYXBbdHlwZW9mIHR5cGUua2luZF1bJ3JhdyddO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgIHZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGFtb3VudDogTnVtYmVyKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUuYW1vdW50KSxcclxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5mb3JtQ29udHJvbC52YWx1ZS5vcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIH0gYXMgS2luZFZhbHVlTWFwW3R5cGVvZiB0eXBlLmtpbmRdWydyYXcnXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSAnc2VsZWN0JzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgodiwgaSkgPT4gKHYgPyB0eXBlLm9wdGlvbnNbaV0udmFsdWUgOiB1bmRlZmluZWQpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIodiA9PiAhIXYpO1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBvcHRpb25zIGFzIEtpbmRWYWx1ZU1hcFt0eXBlb2YgdHlwZS5raW5kXVsncmF3J107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5mb3JtQ29udHJvbC52YWx1ZS5vcGVyYXRvcixcclxuICAgICAgICAgICAgICAgICAgICB0ZXJtOiB0aGlzLmZvcm1Db250cm9sLnZhbHVlLnRlcm0sXHJcbiAgICAgICAgICAgICAgICB9IGFzIEtpbmRWYWx1ZU1hcFt0eXBlb2YgdHlwZS5raW5kXVsncmF3J107XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnaWQnOlxyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUub3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICAgICAgdGVybTogdGhpcy5mb3JtQ29udHJvbC52YWx1ZS50ZXJtLFxyXG4gICAgICAgICAgICAgICAgfSBhcyBLaW5kVmFsdWVNYXBbdHlwZW9mIHR5cGUua2luZF1bJ3JhdyddO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbSc6XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuY3VzdG9tQ29tcG9uZW50Py5pbnN0YW5jZS5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09ICduZXcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tQ29tcG9uZW50SG9zdC52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ25ldycpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlci5hY3RpdmF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJXaXRoVmFsdWU/LnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bi50b2dnbGVPcGVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVhY3RpdmF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJXaXRoVmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlcnMuYWN0aXZlRmlsdGVycy5pbmRleE9mKHRoaXMuZmlsdGVyV2l0aFZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJzLnJlbW92ZUFjdGl2ZUZpbHRlckF0SW5kZXgoaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8dmRyLWRyb3Bkb3duIFttYW51YWxUb2dnbGVdPVwidHJ1ZVwiICNkcm9wZG93bj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItYnV0dG9uXCIgW25nQ2xhc3NdPVwic3RhdGVcIj5cclxuICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCIgc2l6ZT1cIjEyXCIgKm5nSWY9XCJzdGF0ZSA9PT0gJ25ldydcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzdGF0ZSA9PT0gJ2FjdGl2ZSdcIiBjbGFzcz1cInJlbW92ZVwiIChjbGljayk9XCJkZWFjdGl2YXRlKClcIj5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidGltZXNcIiBzaXplPVwiMTJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25UcmlnZ2VyIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic3RhdGUgPT09ICduZXcnXCJcclxuICAgICAgICAgICAgICAgID57eyAnY29tbW9uLmFkZC1maWx0ZXInIHwgdHJhbnNsYXRlIH19IDxzcGFuIGNsYXNzPVwiZmlsdGVyLWhvdGtleVwiPmY8L3NwYW4+PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0ZSA9PT0gJ2FjdGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZGF0YS10YWJsZS1maWx0ZXItbGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBbZmlsdGVyV2l0aFZhbHVlXT1cImZpbHRlcldpdGhWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItZGF0YS10YWJsZS1maWx0ZXItbGFiZWw+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWxsaXBzaXMtdmVydGljYWxcIiBzaXplPVwiMTJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tbGVmdFwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhc2VsZWN0ZWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1oZWFkaW5nXCI+RmlsdGVyIGJ5OjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVycy5nZXRGaWx0ZXJzKClcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJzZWxlY3RGaWx0ZXIoZmlsdGVyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItbG9jYWxpemVkLXRleHQgW3RleHRdPVwiZmlsdGVyPy5sYWJlbFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaGVhZGluZ1wiICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgRmlsdGVyIGJ5IDx2ZHItbG9jYWxpemVkLXRleHQgW3RleHRdPVwic2VsZWN0ZWRGaWx0ZXIubGFiZWxcIiAvPjpcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiBtdC0xXCI+XHJcbiAgICAgICAgICAgIDxkaXYgdmRyQ3VzdG9tRmlsdGVyQ29tcG9uZW50SG9zdCAjY3VzdG9tQ29tcG9uZW50SG9zdD48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Zm9ybSAqbmdJZj1cInNlbGVjdGVkRmlsdGVyXCIgY2xhc3M9XCJcIiBbY2RrVHJhcEZvY3VzXT1cInRydWVcIiBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXIudHlwZS5raW5kICE9PSAnY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgbXQtMVwiIFtuZ1N3aXRjaF09XCJzZWxlY3RlZEZpbHRlci50eXBlLmtpbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtmb3JtR3JvdXBdPVwiZm9ybUNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgJGFueShzZWxlY3RlZEZpbHRlci50eXBlKS5vcHRpb25zOyBpbmRleCBhcyBpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sTmFtZV09XCJpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIGNsclRvZ2dsZSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQ29udHJvbC52YWx1ZVwiPnt7ICdjb21tb24uYm9vbGVhbi10cnVlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWZvcm1Db250cm9sLnZhbHVlXCI+e3sgJ2NvbW1vbi5ib29sZWFuLWZhbHNlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Db250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRvclwiIGNsYXNzPVwibWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY29udGFpbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ub3BlcmF0b3ItY29udGFpbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZXFcIj57eyAnY29tbW9uLm9wZXJhdG9yLWVxJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibm90Q29udGFpbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ub3BlcmF0b3Itbm90LWNvbnRhaW5zJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm5vdEVxXCI+e3sgJ2NvbW1vbi5vcGVyYXRvci1ub3QtZXEnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyZWdleFwiPnt7ICdjb21tb24ub3BlcmF0b3ItcmVnZXgnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInRlcm1cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInaWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtQ29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJvcHRpb25zXCIgZm9ybUNvbnRyb2xOYW1lPVwib3BlcmF0b3JcIiBjbGFzcz1cIm1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVxXCI+e3sgJ2NvbW1vbi5vcGVyYXRvci1lcScgfCB0cmFuc2xhdGUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm5vdEVxXCI+e3sgJ2NvbW1vbi5vcGVyYXRvci1ub3QtZXEnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInRlcm1cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPVwib3B0aW9uc1wiIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdG9yXCIgY2xhc3M9XCJtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJlcVwiPnt7ICdjb21tb24ub3BlcmF0b3ItZXEnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJndFwiPnt7ICdjb21tb24ub3BlcmF0b3ItZ3QnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJsdFwiPnt7ICdjb21tb24ub3BlcmF0b3ItbHQnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiJGFueShzZWxlY3RlZEZpbHRlci50eXBlKS5pbnB1dFR5cGUgIT09ICdjdXJyZW5jeSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiRhbnkoc2VsZWN0ZWRGaWx0ZXIudHlwZSkuaW5wdXRUeXBlID09PSAnY3VycmVuY3knXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVSYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Db250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjb21tb24uZGF0YS10YWJsZS1maWx0ZXItZGF0ZS1tb2RlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm1vZGVcIiBmb3JtQ29udHJvbE5hbWU9XCJtb2RlXCIgY2xhc3M9XCJtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5kYXRhLXRhYmxlLWZpbHRlci1kYXRlLXJlbGF0aXZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJhbmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmRhdGEtdGFibGUtZmlsdGVyLWRhdGUtcmFuZ2UnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtQ29udHJvbC5nZXQoJ21vZGUnKT8udmFsdWUgPT09ICdyZWxhdGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBjbGFzcz1cIm1yLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMVwiIGZvcm1Db250cm9sTmFtZT1cInJlbGF0aXZlVmFsdWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJtb2RlXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVsYXRpdmVVbml0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRheVwiPnt7ICdkYXRldGltZS5kYXknIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbnRoXCI+e3sgJ2RhdGV0aW1lLm1vbnRoJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZWFyXCI+e3sgJ2RhdGV0aW1lLnllYXInIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1Db250cm9sLmdldCgnbW9kZScpPy52YWx1ZSA9PT0gJ3JhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyAnY29tbW9uLnN0YXJ0LWRhdGUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRhdGV0aW1lLXBpY2tlciBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiPjwvdmRyLWRhdGV0aW1lLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgJ2NvbW1vbi5lbmQtZGF0ZScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZGF0ZXRpbWUtcGlja2VyIGZvcm1Db250cm9sTmFtZT1cImVuZFwiPjwvdmRyLWRhdGV0aW1lLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcGx5LXdyYXBwZXIgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJhY3RpdmF0ZSgpXCIgW2Rpc2FibGVkXT1cIiFmb3JtQ29udHJvbD8udmFsaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnY29tbW9uLmFwcGx5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJjaGVja1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuPC92ZHItZHJvcGRvd24+XHJcbiJdfQ==
|
|
@@ -9,11 +9,11 @@ export class FacetValueChipComponent {
|
|
|
9
9
|
this.remove = new EventEmitter();
|
|
10
10
|
}
|
|
11
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: FacetValueChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: FacetValueChipComponent, selector: "vdr-facet-value-chip", inputs: { facetValue: "facetValue", removable: "removable", displayFacetName: "displayFacetName" }, outputs: { remove: "remove" }, ngImport: i0, template: "<vdr-chip\r\n [icon]=\"removable ? 'times' : undefined\"\r\n [colorFrom]=\"facetValue.facet.name\"\r\n (iconClick)=\"remove.emit()\"\r\n [title]=\"facetValue.facet.name + ' - ' + facetValue.name\"\r\n>\r\n <span *ngIf=\"displayFacetName\" class=\"facet-name\">{{ facetValue.facet.name }}</span>\r\n <span>{{ facetValue.name }}</span>\r\n</vdr-chip>\r\n", styles: [":host{display:inline-block}.facet-name{color:var(--color-grey-100);text-transform:uppercase;font-size:10px;margin-inline-end:3px
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: FacetValueChipComponent, selector: "vdr-facet-value-chip", inputs: { facetValue: "facetValue", removable: "removable", displayFacetName: "displayFacetName" }, outputs: { remove: "remove" }, ngImport: i0, template: "<vdr-chip\r\n [icon]=\"removable ? 'times' : undefined\"\r\n [colorFrom]=\"facetValue.facet.name\"\r\n (iconClick)=\"remove.emit()\"\r\n [title]=\"facetValue.facet.name + ' - ' + facetValue.name\"\r\n>\r\n <span *ngIf=\"displayFacetName\" class=\"facet-name\">{{ facetValue.facet.name }}</span>\r\n <span>{{ facetValue.name }}</span>\r\n</vdr-chip>\r\n", styles: [":host{display:inline-block}.facet-name{color:var(--color-grey-100);text-transform:uppercase;font-size:10px;margin-inline-end:3px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13
13
|
}
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: FacetValueChipComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
|
-
args: [{ selector: 'vdr-facet-value-chip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-chip\r\n [icon]=\"removable ? 'times' : undefined\"\r\n [colorFrom]=\"facetValue.facet.name\"\r\n (iconClick)=\"remove.emit()\"\r\n [title]=\"facetValue.facet.name + ' - ' + facetValue.name\"\r\n>\r\n <span *ngIf=\"displayFacetName\" class=\"facet-name\">{{ facetValue.facet.name }}</span>\r\n <span>{{ facetValue.name }}</span>\r\n</vdr-chip>\r\n", styles: [":host{display:inline-block}.facet-name{color:var(--color-grey-100);text-transform:uppercase;font-size:10px;margin-inline-end:3px
|
|
16
|
+
args: [{ selector: 'vdr-facet-value-chip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-chip\r\n [icon]=\"removable ? 'times' : undefined\"\r\n [colorFrom]=\"facetValue.facet.name\"\r\n (iconClick)=\"remove.emit()\"\r\n [title]=\"facetValue.facet.name + ' - ' + facetValue.name\"\r\n>\r\n <span *ngIf=\"displayFacetName\" class=\"facet-name\">{{ facetValue.facet.name }}</span>\r\n <span>{{ facetValue.name }}</span>\r\n</vdr-chip>\r\n", styles: [":host{display:inline-block}.facet-name{color:var(--color-grey-100);text-transform:uppercase;font-size:10px;margin-inline-end:3px}\n"] }]
|
|
17
17
|
}], propDecorators: { facetValue: [{
|
|
18
18
|
type: Input
|
|
19
19
|
}], removable: [{
|