@vendure/admin-ui 3.0.3 → 3.0.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-data-table/collection-data-table.component.d.ts +3 -5
- package/catalog/components/collection-list/collection-list.component.d.ts +1 -0
- package/catalog/components/facet-list/facet-list.component.d.ts +1 -0
- package/catalog/components/product-list/product-list.component.d.ts +3 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/core/common/base-list.component.d.ts +13 -0
- package/core/common/version.d.ts +1 -1
- package/core/data/providers/base-data.service.d.ts +19 -2
- package/core/data/providers/collection-data.service.d.ts +2 -2
- package/core/data/providers/data.service.d.ts +3 -3
- package/core/data/query-result.d.ts +60 -4
- package/core/data/utils/add-custom-fields.d.ts +1 -1
- package/core/providers/alerts/alerts.service.d.ts +3 -0
- package/core/providers/auth/auth.service.d.ts +3 -1
- package/core/providers/data-table/data-table-config.service.d.ts +12 -0
- package/core/public_api.d.ts +1 -0
- package/core/shared/components/data-table-2/data-table2.component.d.ts +5 -5
- package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +3 -4
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +2 -0
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/esm2022/catalog/catalog.module.mjs +5 -5
- package/esm2022/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +4 -4
- package/esm2022/catalog/components/asset-list/asset-list.component.mjs +4 -4
- package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +4 -4
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +11 -13
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +4 -4
- package/esm2022/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +4 -4
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +6 -5
- package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +4 -4
- package/esm2022/catalog/components/collection-tree/collection-tree.component.mjs +4 -4
- package/esm2022/catalog/components/collection-tree/collection-tree.service.mjs +4 -4
- package/esm2022/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +4 -4
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +6 -5
- package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +4 -4
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +4 -4
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +4 -4
- package/esm2022/catalog/components/product-list/product-list.component.mjs +7 -5
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +4 -4
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +4 -4
- package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +4 -4
- package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +4 -4
- package/esm2022/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.mjs +4 -4
- package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +4 -4
- package/esm2022/catalog/providers/routing/product-variants-resolver.mjs +4 -4
- package/esm2022/core/app.component.mjs +4 -4
- package/esm2022/core/app.component.module.mjs +5 -5
- package/esm2022/core/common/base-list.component.mjs +26 -10
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/alerts/alerts.component.mjs +4 -4
- package/esm2022/core/components/app-shell/app-shell.component.mjs +5 -5
- package/esm2022/core/components/base-nav/base-nav.component.mjs +4 -4
- package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +4 -4
- package/esm2022/core/components/main-nav/main-nav.component.mjs +4 -4
- package/esm2022/core/components/notification/notification.component.mjs +4 -4
- package/esm2022/core/components/overlay-host/overlay-host.component.mjs +4 -4
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +4 -4
- package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +4 -4
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +4 -4
- package/esm2022/core/components/user-menu/user-menu.component.mjs +4 -4
- package/esm2022/core/core.module.mjs +5 -5
- package/esm2022/core/data/data.module.mjs +7 -7
- package/esm2022/core/data/providers/base-data.service.mjs +10 -11
- package/esm2022/core/data/providers/collection-data.service.mjs +3 -3
- package/esm2022/core/data/providers/data.service.mjs +8 -8
- package/esm2022/core/data/providers/fetch-adapter.mjs +4 -4
- package/esm2022/core/data/providers/interceptor.mjs +4 -4
- package/esm2022/core/data/providers/product-data.service.mjs +4 -2
- package/esm2022/core/data/query-result.mjs +96 -10
- package/esm2022/core/data/server-config.mjs +4 -4
- package/esm2022/core/data/utils/add-custom-fields.mjs +48 -30
- package/esm2022/core/extension/components/angular-route.component.mjs +7 -7
- package/esm2022/core/extension/components/route.component.mjs +4 -4
- package/esm2022/core/extension/providers/page-metadata.service.mjs +4 -4
- package/esm2022/core/providers/alerts/alerts.service.mjs +16 -6
- package/esm2022/core/providers/auth/auth.service.mjs +13 -9
- package/esm2022/core/providers/breadcrumb/breadcrumb.service.mjs +4 -4
- package/esm2022/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +4 -4
- package/esm2022/core/providers/channel/channel.service.mjs +4 -4
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +4 -4
- package/esm2022/core/providers/currency/currency.service.mjs +4 -4
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +4 -4
- package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +4 -4
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +4 -4
- package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +4 -4
- package/esm2022/core/providers/data-table/data-table-config.service.mjs +43 -0
- package/esm2022/core/providers/guard/auth.guard.mjs +4 -4
- package/esm2022/core/providers/health-check/health-check.service.mjs +4 -4
- package/esm2022/core/providers/i18n/custom-message-format-compiler.mjs +4 -4
- package/esm2022/core/providers/i18n/i18n.service.mjs +4 -4
- package/esm2022/core/providers/job-queue/job-queue.service.mjs +4 -4
- package/esm2022/core/providers/local-storage/local-storage.service.mjs +4 -4
- package/esm2022/core/providers/localization/localization.service.mjs +4 -4
- package/esm2022/core/providers/modal/modal.service.mjs +4 -4
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +4 -4
- package/esm2022/core/providers/notification/notification.service.mjs +4 -4
- package/esm2022/core/providers/overlay-host/overlay-host.service.mjs +4 -4
- package/esm2022/core/providers/page/page.service.mjs +4 -4
- package/esm2022/core/providers/permissions/permissions.service.mjs +4 -4
- package/esm2022/core/public_api.mjs +2 -1
- package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +10 -10
- package/esm2022/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-base.component.mjs +4 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +4 -4
- package/esm2022/core/shared/components/address-form/address-form.component.mjs +4 -4
- package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +4 -4
- package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +4 -4
- package/esm2022/core/shared/components/assets/assets.component.mjs +4 -4
- package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/card/card.component.mjs +7 -7
- package/esm2022/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +4 -4
- package/esm2022/core/shared/components/channel-badge/channel-badge.component.mjs +4 -4
- package/esm2022/core/shared/components/chart/chart.component.mjs +4 -4
- package/esm2022/core/shared/components/chip/chip.component.mjs +4 -4
- package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +4 -4
- package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +4 -4
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +4 -4
- package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +4 -4
- package/esm2022/core/shared/components/customer-label/customer-label.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table/data-table-column.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table/data-table.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +5 -5
- package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +45 -53
- package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +25 -37
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +4 -4
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +4 -4
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-item.directive.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +4 -4
- package/esm2022/core/shared/components/entity-info/entity-info.component.mjs +4 -4
- package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +4 -4
- package/esm2022/core/shared/components/extension-host/extension-host.service.mjs +4 -4
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +4 -4
- package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/focal-point-control/focal-point-control.component.mjs +4 -4
- package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +4 -4
- package/esm2022/core/shared/components/form-field/form-field.component.mjs +4 -4
- package/esm2022/core/shared/components/form-item/form-item.component.mjs +4 -4
- package/esm2022/core/shared/components/formatted-address/formatted-address.component.mjs +4 -4
- package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +4 -4
- package/esm2022/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +4 -4
- package/esm2022/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +4 -4
- package/esm2022/core/shared/components/labeled-data/labeled-data.component.mjs +4 -4
- package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/language-selector/language-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/localized-text/localized-text.component.mjs +4 -4
- package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-title.directive.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/object-tree/object-tree.component.mjs +4 -4
- package/esm2022/core/shared/components/order-state-label/order-state-label.component.mjs +4 -4
- package/esm2022/core/shared/components/page/page.component.mjs +4 -4
- package/esm2022/core/shared/components/page-block/page-block.component.mjs +4 -4
- package/esm2022/core/shared/components/page-body/page-body.component.mjs +4 -4
- package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +4 -4
- package/esm2022/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +4 -4
- package/esm2022/core/shared/components/page-entity-info/page-entity-info.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header/page-header.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header-description/page-header-description.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +4 -4
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +4 -4
- package/esm2022/core/shared/components/pagination-controls/pagination-controls.component.mjs +4 -4
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/product-search-input/product-search-input.component.mjs +4 -4
- package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +4 -4
- package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +4 -4
- package/esm2022/core/shared/components/simple-dialog/simple-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/split-view/split-view.component.mjs +4 -4
- package/esm2022/core/shared/components/split-view/split-view.directive.mjs +7 -7
- package/esm2022/core/shared/components/status-badge/status-badge.component.mjs +4 -4
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +4 -4
- package/esm2022/core/shared/components/table-row-action/table-row-action.component.mjs +4 -4
- package/esm2022/core/shared/components/tag-selector/tag-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +4 -4
- package/esm2022/core/shared/components/title-input/title-input.component.mjs +4 -4
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +4 -4
- package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +4 -4
- package/esm2022/core/shared/directives/disabled.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-default-channel-active.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-directive-base.mjs +4 -4
- package/esm2022/core/shared/directives/if-multichannel.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-permissions.directive.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +10 -10
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +4 -4
- package/esm2022/core/shared/pipes/asset-preview.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/channel-label.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/custom-field-description.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/custom-field-label.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/duration.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/file-size.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/has-permission.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-base.pipe.mjs +6 -6
- package/esm2022/core/shared/pipes/locale-currency-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-date.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-language-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-region-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/sentence-case.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/sort.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/string-to-color.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/time-ago.pipe.mjs +4 -4
- package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +4 -4
- package/esm2022/core/shared/shared.module.mjs +5 -5
- package/esm2022/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +4 -4
- package/esm2022/customer/components/address-card/address-card.component.mjs +4 -4
- package/esm2022/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +4 -4
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +7 -5
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +4 -4
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +4 -4
- package/esm2022/customer/components/customer-history/customer-history.component.mjs +4 -4
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +6 -5
- package/esm2022/customer/components/customer-status-label/customer-status-label.component.mjs +4 -4
- package/esm2022/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +4 -4
- package/esm2022/customer/customer.module.mjs +5 -5
- package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +4 -4
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -4
- package/esm2022/dashboard/dashboard.module.mjs +5 -5
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +4 -4
- package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +8 -8
- package/esm2022/login/components/login/login.component.mjs +4 -4
- package/esm2022/login/login.module.mjs +5 -5
- package/esm2022/login/providers/login.guard.mjs +4 -4
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +4 -4
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +6 -5
- package/esm2022/marketing/marketing.module.mjs +5 -5
- package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +4 -4
- package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +4 -4
- package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +4 -4
- package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +4 -4
- package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-card/fulfillment-card.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-detail/fulfillment-detail.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +4 -4
- package/esm2022/order/components/line-fulfillment/line-fulfillment.component.mjs +4 -4
- package/esm2022/order/components/line-refunds/line-refunds.component.mjs +4 -4
- package/esm2022/order/components/modification-detail/modification-detail.component.mjs +4 -4
- package/esm2022/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +4 -4
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +4 -17
- package/esm2022/order/components/order-data-table/order-total-column.component.mjs +4 -4
- package/esm2022/order/components/order-detail/order-detail.component.mjs +4 -4
- package/esm2022/order/components/order-editor/order-editor.component.mjs +4 -4
- package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +4 -4
- package/esm2022/order/components/order-history/order-history.component.mjs +4 -4
- package/esm2022/order/components/order-list/order-list.component.mjs +6 -5
- package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +4 -4
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-edge.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-graph.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-node.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-table/order-table.component.mjs +4 -4
- package/esm2022/order/components/payment-detail/payment-detail.component.mjs +4 -4
- package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +4 -4
- package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +4 -4
- package/esm2022/order/components/refund-detail/refund-detail.component.mjs +4 -4
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +4 -4
- package/esm2022/order/components/select-address-dialog/select-address-dialog.component.mjs +4 -4
- package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +4 -4
- package/esm2022/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +4 -4
- package/esm2022/order/components/seller-orders-card/seller-orders-card.component.mjs +4 -4
- package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +4 -4
- package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +4 -4
- package/esm2022/order/order.module.mjs +5 -5
- package/esm2022/order/providers/order-transition.service.mjs +4 -4
- package/esm2022/order/providers/routing/order.guard.mjs +4 -4
- package/esm2022/react/components/react-custom-column.component.mjs +4 -4
- package/esm2022/react/components/react-custom-detail.component.mjs +4 -4
- package/esm2022/react/components/react-form-input.component.mjs +4 -4
- package/esm2022/react/components/react-route.component.mjs +4 -4
- package/esm2022/react/directives/react-component-host.directive.mjs +4 -4
- package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +4 -4
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +4 -4
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +6 -5
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +4 -4
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +6 -5
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +4 -4
- package/esm2022/settings/components/country-list/country-list.component.mjs +6 -5
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +4 -4
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +4 -4
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +6 -5
- package/esm2022/settings/components/permission-grid/permission-grid.component.mjs +4 -4
- package/esm2022/settings/components/profile/profile.component.mjs +4 -4
- package/esm2022/settings/components/role-detail/role-detail.component.mjs +4 -4
- package/esm2022/settings/components/role-list/role-list.component.mjs +6 -5
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +4 -4
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +6 -5
- package/esm2022/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +4 -4
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +4 -4
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +6 -5
- package/esm2022/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +4 -4
- package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +4 -4
- package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +6 -5
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +4 -4
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +6 -5
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +4 -4
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +6 -5
- package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +4 -4
- package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +4 -4
- package/esm2022/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +4 -4
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +4 -4
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +6 -5
- package/esm2022/settings/components/zone-member-list/zone-member-controls.directive.mjs +4 -4
- package/esm2022/settings/components/zone-member-list/zone-member-list-header.directive.mjs +4 -4
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +4 -4
- package/esm2022/settings/providers/routing/profile-resolver.mjs +4 -4
- package/esm2022/settings/settings.module.mjs +5 -5
- package/esm2022/system/components/health-check/health-check.component.mjs +4 -4
- package/esm2022/system/components/job-list/job-list.component.mjs +4 -4
- package/esm2022/system/components/job-state-label/job-state-label.component.mjs +4 -4
- package/esm2022/system/system.module.mjs +5 -5
- package/fesm2022/vendure-admin-ui-catalog.mjs +120 -118
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +1027 -876
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +48 -45
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +41 -41
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-login.mjs +10 -10
- package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +12 -11
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +135 -147
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +15 -15
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +131 -120
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +13 -13
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -0
- package/order/components/order-data-table/order-data-table.component.d.ts +2 -3
- package/order/components/order-list/order-list.component.d.ts +1 -0
- package/package.json +14 -14
- package/settings/components/administrator-list/administrator-list.component.d.ts +1 -0
- package/settings/components/channel-list/channel-list.component.d.ts +1 -0
- package/settings/components/country-list/country-list.component.d.ts +1 -0
- package/settings/components/payment-method-list/payment-method-list.component.d.ts +1 -0
- package/settings/components/role-list/role-list.component.d.ts +1 -0
- package/settings/components/seller-list/seller-list.component.d.ts +1 -0
- package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +1 -0
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -0
- package/settings/components/tax-category-list/tax-category-list.component.d.ts +1 -0
- package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +1 -0
- package/settings/components/zone-list/zone-list.component.d.ts +1 -0
- package/static/theme.min.css +1 -1
|
@@ -73,11 +73,11 @@ export class BulkAddFacetValuesDialogComponent {
|
|
|
73
73
|
this.resolveWith(this.selectedValues);
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkAddFacetValuesDialogComponent, deps: [{ token: i1.DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BulkAddFacetValuesDialogComponent, selector: "vdr-bulk-add-facet-values-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.edit-facet-values' | translate }}\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <div class=\"flex center\">\r\n <div class=\"mr2\">\r\n {{ 'catalog.add-facet-value' | translate }}\r\n </div>\r\n <vdr-facet-value-selector\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n ></vdr-facet-value-selector>\r\n </div>\r\n</div>\r\n\r\n<table class=\"table\" *ngIf=\"state !== 'loading'; else placeholder\">\r\n <tbody>\r\n <tr *ngFor=\"let item of items\">\r\n <td class=\"left align-middle\">\r\n <div>{{ item.name }}</div>\r\n <div *ngIf=\"item.sku\" class=\"sku\">{{ item.sku }}</div>\r\n </td>\r\n <td class=\"left\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of item.facetValues\"\r\n [facetValue]=\"facetValue\"\r\n (remove)=\"removeFacetValue(item, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-template #placeholder>\r\n <div class=\"loading\">\r\n <clr-spinner></clr-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"addFacetValues()\"\r\n [disabled]=\"selectedValues.length === 0 && facetValuesRemoved === false\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [".loading{min-height:25vh;display:flex;justify-content:center;align-items:center}.sku{color:var(--color-text-300)}\n"], dependencies: [{ kind: "component", type: i2.ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.FacetValueSelectorComponent, selector: "vdr-facet-value-selector", inputs: ["readonly", "transformControlValueAccessorValue"], outputs: ["selectedValuesChange"] }, { kind: "component", type: i1.FacetValueChipComponent, selector: "vdr-facet-value-chip", inputs: ["facetValue", "removable", "displayFacetName"], outputs: ["remove"] }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BulkAddFacetValuesDialogComponent, decorators: [{
|
|
80
80
|
type: Component,
|
|
81
81
|
args: [{ selector: 'vdr-bulk-add-facet-values-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.edit-facet-values' | translate }}\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <div class=\"flex center\">\r\n <div class=\"mr2\">\r\n {{ 'catalog.add-facet-value' | translate }}\r\n </div>\r\n <vdr-facet-value-selector\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n ></vdr-facet-value-selector>\r\n </div>\r\n</div>\r\n\r\n<table class=\"table\" *ngIf=\"state !== 'loading'; else placeholder\">\r\n <tbody>\r\n <tr *ngFor=\"let item of items\">\r\n <td class=\"left align-middle\">\r\n <div>{{ item.name }}</div>\r\n <div *ngIf=\"item.sku\" class=\"sku\">{{ item.sku }}</div>\r\n </td>\r\n <td class=\"left\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of item.facetValues\"\r\n [facetValue]=\"facetValue\"\r\n (remove)=\"removeFacetValue(item, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-template #placeholder>\r\n <div class=\"loading\">\r\n <clr-spinner></clr-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"addFacetValues()\"\r\n [disabled]=\"selectedValues.length === 0 && facetValuesRemoved === false\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [".loading{min-height:25vh;display:flex;justify-content:center;align-items:center}.sku{color:var(--color-text-300)}\n"] }]
|
|
82
82
|
}], ctorParameters: () => [{ type: i1.DataService }, { type: i0.ChangeDetectorRef }] });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBYXpHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlwRCxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxvQkFBb0IsRUFDcEIsb0JBQW9CLEdBQ3ZCLE1BQU0sd0NBQXdDLENBQUM7Ozs7OztBQXdCaEQsTUFBTSxPQUFPLGlDQUFpQztJQWExQyxZQUFvQixXQUF3QixFQUFVLGlCQUFvQztRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUMUYsc0NBQXNDO1FBQ3RDLFNBQUksR0FBMEIsU0FBUyxDQUFDO1FBRXhDLFVBQUssR0FBbUMsU0FBUyxDQUFDO1FBRWxELG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUMvQyxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFFa0UsQ0FBQztJQUU5RixRQUFRO1FBQ0osTUFBTSxVQUFVLEdBQ1osSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FB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LEVBQUUsTUFBTSxDQUFDO3dCQUNsQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsR0FBRyxxQkFBcUI7cUJBQzNCLENBQUM7aUJBQ0wsQ0FBQyxDQUFDO2FBQ04sQ0FDSixDQUFDO1FBQ1osT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1RlEsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsd0VDOUM5Qyxnc0RBa0RBOzsyRkRKYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0ksa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIERpYWxvZyxcclxuICAgIEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50LFxyXG4gICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5VmFyaWFibGVzLFxyXG4gICAgR2V0VmFyaWFudHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgVXBkYXRlUHJvZHVjdHNCdWxrTXV0YXRpb24sXHJcbiAgICBVcGRhdGVQcm9kdWN0c0J1bGtNdXRhdGlvblZhcmlhYmxlcyxcclxuICAgIFVwZGF0ZVZhcmlhbnRzQnVsa011dGF0aW9uLFxyXG4gICAgVXBkYXRlVmFyaWFudHNCdWxrTXV0YXRpb25WYXJpYWJsZXMsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvdW5pcXVlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgR0VUX1BST0RVQ1RTX1dJVEhfRkFDRVRfVkFMVUVTX0JZX0lEUyxcclxuICAgIEdFVF9WQVJJQU5UU19XSVRIX0ZBQ0VUX1ZBTFVFU19CWV9JRFMsXHJcbiAgICBVUERBVEVfUFJPRFVDVFNfQlVMSyxcclxuICAgIFVQREFURV9WQVJJQU5UU19CVUxLLFxyXG59IGZyb20gJy4vYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5ncmFwaHFsJztcclxuXHJcbmludGVyZmFjZSBQcm9kdWN0T3JWYXJpYW50IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBza3U/OiBzdHJpbmc7XHJcbiAgICBmYWNldFZhbHVlczogQXJyYXk8e1xyXG4gICAgICAgIGlkOiBzdHJpbmc7XHJcbiAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICBmYWNldDogQXJyYXk8e1xyXG4gICAgICAgICAgICBpZDogc3RyaW5nO1xyXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICB9PjtcclxuICAgIH0+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWJ1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERpYWxvZzxGYWNldFdpdGhWYWx1ZXNGcmFnbWVudFtdPlxyXG57XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50W10pID0+IHZvaWQ7XHJcbiAgICAvKiBwcm92aWRlZCBieSBjYWxsIHRvIE1vZGFsU2VydmljZSAqL1xyXG4gICAgbW9kZTogJ3Byb2R1Y3QnIHwgJ3ZhcmlhbnQnID0gJ3Byb2R1Y3QnO1xyXG4gICAgaWRzPzogc3RyaW5nW107XHJcbiAgICBzdGF0ZTogJ2xvYWRpbmcnIHwgJ3JlYWR5JyB8ICdzYXZpbmcnID0gJ2xvYWRpbmcnO1xyXG5cclxuICAgIHNlbGVjdGVkVmFsdWVzOiBGYWNldFdpdGhWYWx1ZXNGcmFnbWVudFtdID0gW107XHJcbiAgICBpdGVtczogUHJvZHVjdE9yVmFyaWFudFtdID0gW107XHJcbiAgICBmYWNldFZhbHVlc1JlbW92ZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID1cclxuICAgICAgICAgICAgdGhpcy5tb2RlID09PSAncHJvZHVjdCdcclxuICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5PFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEdldFByb2R1Y3RzV2l0aEZhY2V0VmFsdWVzQnlJZHNRdWVyeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRQcm9kdWN0c1dpdGhGYWNldFZhbHVlc0J5SWRzUXVlcnlWYXJpYWJsZXNcclxuICAgICAgICAgICAgICAgICAgICAgID4oR0VUX1BST0RVQ1RTX1dJVEhfRkFDRVRfVkFMVUVTX0JZX0lEUywge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkczogdGhpcy5pZHMgPz8gW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwcm9kdWN0cyB9KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzLml0ZW1zLm1hcChwID0+ICh7IC4uLnAsIGZhY2V0VmFsdWVzOiBbLi4ucC5mYWNldFZhbHVlc10gfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAucXVlcnk8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0VmFyaWFudHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEdldFByb2R1Y3RzV2l0aEZhY2V0VmFsdWVzQnlJZHNRdWVyeVZhcmlhYmxlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgPihHRVRfVkFSSUFOVFNfV0lUSF9GQUNFVF9WQUxVRVNfQllfSURTLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzOiB0aGlzLmlkcyA/PyBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHByb2R1Y3RWYXJpYW50cyB9KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50cy5pdGVtcy5tYXAocCA9PiAoeyAuLi5wLCBmYWNldFZhbHVlczogWy4uLnAuZmFjZXRWYWx1ZXNdIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBmZXRjaERhdGEkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IGl0ZW1zID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAncmVhZHknO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZhY2V0VmFsdWUoaXRlbTogUHJvZHVjdE9yVmFyaWFudCwgZmFjZXRWYWx1ZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICBpdGVtLmZhY2V0VmFsdWVzID0gaXRlbS5mYWNldFZhbHVlcy5maWx0ZXIoZnYgPT4gZnYuaWQgIT09IGZhY2V0VmFsdWVJZCk7XHJcbiAgICAgICAgdGhpcy5mYWNldFZhbHVlc1JlbW92ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZhY2V0VmFsdWVzKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmFjZXRWYWx1ZUlkcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubWFwKHN2ID0+IHN2LmlkKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0gJ3NhdmluZyc7XHJcbiAgICAgICAgY29uc3Qgc2F2ZSQ6IE9ic2VydmFibGU8YW55PiA9XHJcbiAgICAgICAgICAgIHRoaXMubW9kZSA9PT0gJ3Byb2R1Y3QnXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVByb2R1Y3RzQnVsa011dGF0aW9uLCBVcGRhdGVQcm9kdWN0c0J1bGtNdXRhdGlvblZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgICAgICAgICAgICBVUERBVEVfUFJPRFVDVFNfQlVMSyxcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogdGhpcy5pdGVtcz8ubWFwKHByb2R1Y3QgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVJZHM6IHVuaXF1ZShbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9kdWN0LmZhY2V0VmFsdWVzLm1hcChmdiA9PiBmdi5pZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5zZWxlY3RlZEZhY2V0VmFsdWVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIDogdGhpcy5kYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlVmFyaWFudHNCdWxrTXV0YXRpb24sIFVwZGF0ZVZhcmlhbnRzQnVsa011dGF0aW9uVmFyaWFibGVzPihcclxuICAgICAgICAgICAgICAgICAgICAgIFVQREFURV9WQVJJQU5UU19CVUxLLFxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0OiB0aGlzLml0ZW1zPy5tYXAocHJvZHVjdCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcHJvZHVjdC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogdW5pcXVlKFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb2R1Y3QuZmFjZXRWYWx1ZXMubWFwKGZ2ID0+IGZ2LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnNlbGVjdGVkRmFjZXRWYWx1ZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gc2F2ZSQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5zZWxlY3RlZFZhbHVlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPlxyXG4gICAge3sgJ2NhdGFsb2cuZWRpdC1mYWNldC12YWx1ZXMnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yMlwiPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5hZGQtZmFjZXQtdmFsdWUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHZkci1mYWNldC12YWx1ZS1zZWxlY3RvclxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRWYWx1ZXNDaGFuZ2UpPVwic2VsZWN0ZWRWYWx1ZXMgPSAkZXZlbnRcIlxyXG4gICAgICAgID48L3Zkci1mYWNldC12YWx1ZS1zZWxlY3Rvcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlXCIgKm5nSWY9XCJzdGF0ZSAhPT0gJ2xvYWRpbmcnOyBlbHNlIHBsYWNlaG9sZGVyXCI+XHJcbiAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnQgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uc2t1XCIgY2xhc3M9XCJza3VcIj57eyBpdGVtLnNrdSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZhY2V0LXZhbHVlLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmFjZXRWYWx1ZSBvZiBpdGVtLmZhY2V0VmFsdWVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmFjZXRWYWx1ZV09XCJmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUZhY2V0VmFsdWUoaXRlbSwgZmFjZXRWYWx1ZS5pZClcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmRyLWZhY2V0LXZhbHVlLWNoaXA+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIj5cclxuICAgIDxjbHItc3Bpbm5lcj48L2Nsci1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFkZEZhY2V0VmFsdWVzKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDAgJiYgZmFjZXRWYWx1ZXNSZW1vdmVkID09PSBmYWxzZVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgPlxyXG4gICAgICAgIHt7ICdjb21tb24udXBkYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBYXpHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlwRCxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxvQkFBb0IsRUFDcEIsb0JBQW9CLEdBQ3ZCLE1BQU0sd0NBQXdDLENBQUM7Ozs7OztBQXdCaEQsTUFBTSxPQUFPLGlDQUFpQztJQWExQyxZQUFvQixXQUF3QixFQUFVLGlCQUFvQztRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUMUYsc0NBQXNDO1FBQ3RDLFNBQUksR0FBMEIsU0FBUyxDQUFDO1FBRXhDLFVBQUssR0FBbUMsU0FBUyxDQUFDO1FBRWxELG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUMvQyxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFFa0UsQ0FBQztJQUU5RixRQUFRO1FBQ0osTUFBTSxVQUFVLEdBQ1osSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FB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LEVBQUUsTUFBTSxDQUFDO3dCQUNsQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsR0FBRyxxQkFBcUI7cUJBQzNCLENBQUM7aUJBQ0wsQ0FBQyxDQUFDO2FBQ04sQ0FDSixDQUFDO1FBQ1osT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E1RlEsaUNBQWlDO21HQUFqQyxpQ0FBaUMsd0VDOUM5Qyxnc0RBa0RBOzs0RkRKYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0ksa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIERpYWxvZyxcclxuICAgIEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50LFxyXG4gICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5VmFyaWFibGVzLFxyXG4gICAgR2V0VmFyaWFudHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgVXBkYXRlUHJvZHVjdHNCdWxrTXV0YXRpb24sXHJcbiAgICBVcGRhdGVQcm9kdWN0c0J1bGtNdXRhdGlvblZhcmlhYmxlcyxcclxuICAgIFVwZGF0ZVZhcmlhbnRzQnVsa011dGF0aW9uLFxyXG4gICAgVXBkYXRlVmFyaWFudHNCdWxrTXV0YXRpb25WYXJpYWJsZXMsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvdW5pcXVlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgR0VUX1BST0RVQ1RTX1dJVEhfRkFDRVRfVkFMVUVTX0JZX0lEUyxcclxuICAgIEdFVF9WQVJJQU5UU19XSVRIX0ZBQ0VUX1ZBTFVFU19CWV9JRFMsXHJcbiAgICBVUERBVEVfUFJPRFVDVFNfQlVMSyxcclxuICAgIFVQREFURV9WQVJJQU5UU19CVUxLLFxyXG59IGZyb20gJy4vYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5ncmFwaHFsJztcclxuXHJcbmludGVyZmFjZSBQcm9kdWN0T3JWYXJpYW50IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBza3U/OiBzdHJpbmc7XHJcbiAgICBmYWNldFZhbHVlczogQXJyYXk8e1xyXG4gICAgICAgIGlkOiBzdHJpbmc7XHJcbiAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICBmYWNldDogQXJyYXk8e1xyXG4gICAgICAgICAgICBpZDogc3RyaW5nO1xyXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICB9PjtcclxuICAgIH0+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWJ1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERpYWxvZzxGYWNldFdpdGhWYWx1ZXNGcmFnbWVudFtdPlxyXG57XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50W10pID0+IHZvaWQ7XHJcbiAgICAvKiBwcm92aWRlZCBieSBjYWxsIHRvIE1vZGFsU2VydmljZSAqL1xyXG4gICAgbW9kZTogJ3Byb2R1Y3QnIHwgJ3ZhcmlhbnQnID0gJ3Byb2R1Y3QnO1xyXG4gICAgaWRzPzogc3RyaW5nW107XHJcbiAgICBzdGF0ZTogJ2xvYWRpbmcnIHwgJ3JlYWR5JyB8ICdzYXZpbmcnID0gJ2xvYWRpbmcnO1xyXG5cclxuICAgIHNlbGVjdGVkVmFsdWVzOiBGYWNldFdpdGhWYWx1ZXNGcmFnbWVudFtdID0gW107XHJcbiAgICBpdGVtczogUHJvZHVjdE9yVmFyaWFudFtdID0gW107XHJcbiAgICBmYWNldFZhbHVlc1JlbW92ZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID1cclxuICAgICAgICAgICAgdGhpcy5tb2RlID09PSAncHJvZHVjdCdcclxuICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5PFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEdldFByb2R1Y3RzV2l0aEZhY2V0VmFsdWVzQnlJZHNRdWVyeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRQcm9kdWN0c1dpdGhGYWNldFZhbHVlc0J5SWRzUXVlcnlWYXJpYWJsZXNcclxuICAgICAgICAgICAgICAgICAgICAgID4oR0VUX1BST0RVQ1RTX1dJVEhfRkFDRVRfVkFMVUVTX0JZX0lEUywge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkczogdGhpcy5pZHMgPz8gW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwcm9kdWN0cyB9KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzLml0ZW1zLm1hcChwID0+ICh7IC4uLnAsIGZhY2V0VmFsdWVzOiBbLi4ucC5mYWNldFZhbHVlc10gfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAucXVlcnk8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0VmFyaWFudHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEdldFByb2R1Y3RzV2l0aEZhY2V0VmFsdWVzQnlJZHNRdWVyeVZhcmlhYmxlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgPihHRVRfVkFSSUFOVFNfV0lUSF9GQUNFVF9WQUxVRVNfQllfSURTLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzOiB0aGlzLmlkcyA/PyBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHByb2R1Y3RWYXJpYW50cyB9KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50cy5pdGVtcy5tYXAocCA9PiAoeyAuLi5wLCBmYWNldFZhbHVlczogWy4uLnAuZmFjZXRWYWx1ZXNdIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBmZXRjaERhdGEkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IGl0ZW1zID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAncmVhZHknO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZhY2V0VmFsdWUoaXRlbTogUHJvZHVjdE9yVmFyaWFudCwgZmFjZXRWYWx1ZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICBpdGVtLmZhY2V0VmFsdWVzID0gaXRlbS5mYWNldFZhbHVlcy5maWx0ZXIoZnYgPT4gZnYuaWQgIT09IGZhY2V0VmFsdWVJZCk7XHJcbiAgICAgICAgdGhpcy5mYWNldFZhbHVlc1JlbW92ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZhY2V0VmFsdWVzKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmFjZXRWYWx1ZUlkcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubWFwKHN2ID0+IHN2LmlkKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0gJ3NhdmluZyc7XHJcbiAgICAgICAgY29uc3Qgc2F2ZSQ6IE9ic2VydmFibGU8YW55PiA9XHJcbiAgICAgICAgICAgIHRoaXMubW9kZSA9PT0gJ3Byb2R1Y3QnXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVByb2R1Y3RzQnVsa011dGF0aW9uLCBVcGRhdGVQcm9kdWN0c0J1bGtNdXRhdGlvblZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgICAgICAgICAgICBVUERBVEVfUFJPRFVDVFNfQlVMSyxcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogdGhpcy5pdGVtcz8ubWFwKHByb2R1Y3QgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVJZHM6IHVuaXF1ZShbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9kdWN0LmZhY2V0VmFsdWVzLm1hcChmdiA9PiBmdi5pZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5zZWxlY3RlZEZhY2V0VmFsdWVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIDogdGhpcy5kYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlVmFyaWFudHNCdWxrTXV0YXRpb24sIFVwZGF0ZVZhcmlhbnRzQnVsa011dGF0aW9uVmFyaWFibGVzPihcclxuICAgICAgICAgICAgICAgICAgICAgIFVQREFURV9WQVJJQU5UU19CVUxLLFxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0OiB0aGlzLml0ZW1zPy5tYXAocHJvZHVjdCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcHJvZHVjdC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogdW5pcXVlKFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb2R1Y3QuZmFjZXRWYWx1ZXMubWFwKGZ2ID0+IGZ2LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnNlbGVjdGVkRmFjZXRWYWx1ZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gc2F2ZSQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5zZWxlY3RlZFZhbHVlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPlxyXG4gICAge3sgJ2NhdGFsb2cuZWRpdC1mYWNldC12YWx1ZXMnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yMlwiPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5hZGQtZmFjZXQtdmFsdWUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHZkci1mYWNldC12YWx1ZS1zZWxlY3RvclxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRWYWx1ZXNDaGFuZ2UpPVwic2VsZWN0ZWRWYWx1ZXMgPSAkZXZlbnRcIlxyXG4gICAgICAgID48L3Zkci1mYWNldC12YWx1ZS1zZWxlY3Rvcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlXCIgKm5nSWY9XCJzdGF0ZSAhPT0gJ2xvYWRpbmcnOyBlbHNlIHBsYWNlaG9sZGVyXCI+XHJcbiAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxlZnQgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uc2t1XCIgY2xhc3M9XCJza3VcIj57eyBpdGVtLnNrdSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZhY2V0LXZhbHVlLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmFjZXRWYWx1ZSBvZiBpdGVtLmZhY2V0VmFsdWVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmFjZXRWYWx1ZV09XCJmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUZhY2V0VmFsdWUoaXRlbSwgZmFjZXRWYWx1ZS5pZClcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmRyLWZhY2V0LXZhbHVlLWNoaXA+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIj5cclxuICAgIDxjbHItc3Bpbm5lcj48L2Nsci1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFkZEZhY2V0VmFsdWVzKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDAgJiYgZmFjZXRWYWx1ZXNSZW1vdmVkID09PSBmYWxzZVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgPlxyXG4gICAgICAgIHt7ICdjb21tb24udXBkYXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -101,10 +101,10 @@ export class CollectionContentsComponent {
|
|
|
101
101
|
replaceUrl: true,
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CollectionContentsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CollectionContentsComponent, selector: "vdr-collection-contents", inputs: { collectionId: "collectionId", parentId: "parentId", inheritFilters: "inheritFilters", updatedFilters: "updatedFilters", previewUpdatedFilters: "previewUpdatedFilters" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"table-wrapper\">\r\n <div class=\"progress loop\" [class.visible]=\"isLoading\"></div>\r\n <div class=\"header-title-row\">\r\n <ng-container\r\n *ngTemplateOutlet=\"headerTemplate; context: { $implicit: contentsTotalItems$ | async }\"\r\n ></ng-container>\r\n </div>\r\n <vdr-data-table-2\r\n id=\"collection-contents\"\r\n [class.loading]=\"isLoading\"\r\n [items]=\"contents$ | async\"\r\n [itemsPerPage]=\"contentsItemsPerPage$ | async\"\r\n [totalItems]=\"contentsTotalItems$ | async\"\r\n [currentPage]=\"contentsCurrentPage$ | async\"\r\n (pageChange)=\"setContentsPageNumber($event)\"\r\n (itemsPerPageChange)=\"setContentsItemsPerPage($event)\"\r\n >\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\">\r\n <ng-template let-variant=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/catalog/products', variant.productId]\"\r\n ><span>{{ variant.name }}</span\r\n ><clr-icon shape=\"arrow right\"\r\n /></a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.sku' | translate\" id=\"sku\" [optional]=\"false\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n</div>\r\n", styles: [":host{display:block}:host ::ng-deep table{margin-top:-1px}vdr-data-table{opacity:1;transition:opacity .3s}vdr-data-table.loading{opacity:.5}.table-wrapper{position:relative}.progress{position:absolute;top:0;left:0;overflow:hidden;height:6px;opacity:0;transition:opacity .1s}.progress.visible{opacity:1}.sku{color:var(--color-text-200)}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i2.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i2.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i2.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i2.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
106
106
|
}
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CollectionContentsComponent, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
109
|
args: [{ selector: 'vdr-collection-contents', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-wrapper\">\r\n <div class=\"progress loop\" [class.visible]=\"isLoading\"></div>\r\n <div class=\"header-title-row\">\r\n <ng-container\r\n *ngTemplateOutlet=\"headerTemplate; context: { $implicit: contentsTotalItems$ | async }\"\r\n ></ng-container>\r\n </div>\r\n <vdr-data-table-2\r\n id=\"collection-contents\"\r\n [class.loading]=\"isLoading\"\r\n [items]=\"contents$ | async\"\r\n [itemsPerPage]=\"contentsItemsPerPage$ | async\"\r\n [totalItems]=\"contentsTotalItems$ | async\"\r\n [currentPage]=\"contentsCurrentPage$ | async\"\r\n (pageChange)=\"setContentsPageNumber($event)\"\r\n (itemsPerPageChange)=\"setContentsItemsPerPage($event)\"\r\n >\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\">\r\n <ng-template let-variant=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/catalog/products', variant.productId]\"\r\n ><span>{{ variant.name }}</span\r\n ><clr-icon shape=\"arrow right\"\r\n /></a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.sku' | translate\" id=\"sku\" [optional]=\"false\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n</div>\r\n", styles: [":host{display:block}:host ::ng-deep table{margin-top:-1px}vdr-data-table{opacity:1;transition:opacity .3s}vdr-data-table.loading{opacity:.5}.table-wrapper{position:relative}.progress{position:absolute;top:0;left:0;overflow:hidden;height:6px;opacity:0;transition:opacity .1s}.progress.visible{opacity:1}.sku{color:var(--color-text-200)}\n"] }]
|
|
110
110
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.DataService }], propDecorators: { collectionId: [{
|
|
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
121
121
|
type: ContentChild,
|
|
122
122
|
args: [TemplateRef, { static: true }]
|
|
123
123
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1jb250ZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFLTCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQ0gsVUFBVSxFQUNWLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNOLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFReEIsTUFBTSxPQUFPLDJCQUEyQjtJQXFCcEMsWUFBb0IsS0FBcUIsRUFBVSxNQUFjLEVBQVUsV0FBd0I7UUFBL0UsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFoQjFGLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQU92QyxzQkFBaUIsR0FBRyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFD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QTJCLCtSQU10QixXQUFXLG1GQzdDN0IseTlFQW1EQTs7MkZEWmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTtrSUFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ3VDLGNBQWM7c0JBQTFELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQ29sbGVjdGlvbkZpbHRlclBhcmFtZXRlcixcclxuICAgIENvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0LFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBHZXRDb2xsZWN0aW9uQ29udGVudHNRdWVyeSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gICAgY2F0Y2hFcnJvcixcclxuICAgIGRlYm91bmNlVGltZSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gICAgZmlsdGVyLFxyXG4gICAgZmluYWxpemUsXHJcbiAgICBtYXAsXHJcbiAgICBzdGFydFdpdGgsXHJcbiAgICBzd2l0Y2hNYXAsXHJcbiAgICB0YWtlVW50aWwsXHJcbiAgICB0YXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jb2xsZWN0aW9uLWNvbnRlbnRzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBjb2xsZWN0aW9uSWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHBhcmVudElkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpbmhlcml0RmlsdGVyczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHVwZGF0ZWRGaWx0ZXJzOiBDb25maWd1cmFibGVPcGVyYXRpb25JbnB1dFtdIHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgcHJldmlld1VwZGF0ZWRGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBjb250ZW50cyQ6IE9ic2VydmFibGU8Tm9uTnVsbGFibGU8R2V0Q29sbGVjdGlvbkNvbnRlbnRzUXVlcnlbJ2NvbGxlY3Rpb24nXT5bJ3Byb2R1Y3RWYXJpYW50cyddWydpdGVtcyddPjtcclxuICAgIGNvbnRlbnRzVG90YWxJdGVtcyQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIGNvbnRlbnRzSXRlbXNQZXJQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gICAgY29udGVudHNDdXJyZW50UGFnZSQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIGZpbHRlclRlcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XHJcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgY29sbGVjdGlvbklkQ2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgICBwcml2YXRlIHBhcmVudElkQ2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgICBwcml2YXRlIGZpbHRlckNoYW5nZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWd1cmFibGVPcGVyYXRpb25JbnB1dFtdPihbXSk7XHJcbiAgICBwcml2YXRlIGluaGVyaXRGaWx0ZXJzQ2hhbmdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHJpdmF0ZSByZWZyZXNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250ZW50c0N1cnJlbnRQYWdlJCA9IHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ2NvbnRlbnRzUGFnZScpKSxcclxuICAgICAgICAgICAgbWFwKHBhZ2UgPT4gKCFwYWdlID8gMSA6ICtwYWdlKSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgxKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNvbnRlbnRzSXRlbXNQZXJQYWdlJCA9IHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ2NvbnRlbnRzUGVyUGFnZScpKSxcclxuICAgICAgICAgICAgbWFwKHBlclBhZ2UgPT4gKCFwZXJQYWdlID8gMTAgOiArcGVyUGFnZSkpLFxyXG4gICAgICAgICAgICBzdGFydFdpdGgoMTApLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlclRlcm0kID0gdGhpcy5maWx0ZXJUZXJtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnNldENvbnRlbnRzUGFnZU51bWJlcigxKSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgnJyksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyQ2hhbmdlcyQgPSB0aGlzLmZpbHRlckNoYW5nZXMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnByZXZpZXdVcGRhdGVkRmlsdGVycyksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnNldENvbnRlbnRzUGFnZU51bWJlcigxKSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aChbXSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW5oZXJpdEZpbHRlcnNDaGFuZ2VzJCA9IHRoaXMuaW5oZXJpdEZpbHRlcnNDaGFuZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pbmhlcml0RmlsdGVycyAhPSBudWxsKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuc2V0Q29udGVudHNQYWdlTnVtYmVyKDEpKSxcclxuICAgICAgICAgICAgc3RhcnRXaXRoKHRydWUpLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZldGNoVXBkYXRlJCA9IGNvbWJpbmVMYXRlc3QoXHJcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbklkQ2hhbmdlJCxcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRJZENoYW5nZSQsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudHNDdXJyZW50UGFnZSQsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudHNJdGVtc1BlclBhZ2UkLFxyXG4gICAgICAgICAgICBmaWx0ZXJUZXJtJCxcclxuICAgICAgICAgICAgZmlsdGVyQ2hhbmdlcyQsXHJcbiAgICAgICAgICAgIGluaGVyaXRGaWx0ZXJzQ2hhbmdlcyQsXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCQsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiQgPSBmZXRjaFVwZGF0ZSQucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFtpZCwgcGFyZW50SWQsIGN1cnJlbnRQYWdlLCBpdGVtc1BlclBhZ2UsIGZpbHRlclRlcm0sIGZpbHRlcnMsIGluaGVyaXRGaWx0ZXJzXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFrZSA9IGl0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNraXAgPSAoY3VycmVudFBhZ2UgLSAxKSAqIGl0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzLmxlbmd0aCAmJiB0aGlzLnByZXZpZXdVcGRhdGVkRmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckNsYXVzZSA9IGZpbHRlclRlcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoeyBuYW1lOiB7IGNvbnRhaW5zOiBmaWx0ZXJUZXJtIH0gfSBhcyBDb2xsZWN0aW9uRmlsdGVyUGFyYW1ldGVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jb2xsZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmV2aWV3Q29sbGVjdGlvblZhcmlhbnRzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdEZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGZpbHRlckNsYXVzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEucHJldmlld0NvbGxlY3Rpb25WYXJpYW50cylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih7IGl0ZW1zOiBbXSwgdG90YWxJdGVtczogMCB9KSkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNvbGxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldENvbGxlY3Rpb25Db250ZW50cyhpZCwgdGFrZSwgc2tpcCwgZmlsdGVyVGVybSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuY29sbGVjdGlvbj8ucHJvZHVjdFZhcmlhbnRzKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb250ZW50cyQgPSBjb2xsZWN0aW9uJC5waXBlKG1hcChyZXN1bHQgPT4gKHJlc3VsdCA/IHJlc3VsdC5pdGVtcyA6IFtdKSkpO1xyXG4gICAgICAgIHRoaXMuY29udGVudHNUb3RhbEl0ZW1zJCA9IGNvbGxlY3Rpb24kLnBpcGUobWFwKHJlc3VsdCA9PiAocmVzdWx0ID8gcmVzdWx0LnRvdGFsSXRlbXMgOiAwKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2NvbGxlY3Rpb25JZCcgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25JZENoYW5nZSQubmV4dChjaGFuZ2VzLmNvbGxlY3Rpb25JZC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoJ3BhcmVudElkJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50SWRDaGFuZ2UkLm5leHQoY2hhbmdlcy5wYXJlbnRJZC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoJ2luaGVyaXRGaWx0ZXJzJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5oZXJpdEZpbHRlcnNDaGFuZ2VzJC5uZXh0KGNoYW5nZXMuaW5oZXJpdEZpbHRlcnMuY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCd1cGRhdGVkRmlsdGVycycgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy51cGRhdGVkRmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2VzJC5uZXh0KHRoaXMudXBkYXRlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDb250ZW50c1BhZ2VOdW1iZXIocGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJhbSgnY29udGVudHNQYWdlJywgcGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29udGVudHNJdGVtc1BlclBhZ2UocGVyUGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJhbSgnY29udGVudHNQZXJQYWdlJywgcGVyUGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaCgpIHtcclxuICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi8nXSwge1xyXG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgW2tleV06IHZhbHVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICAgICAgICByZXBsYWNlVXJsOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MgbG9vcFwiIFtjbGFzcy52aXNpYmxlXT1cImlzTG9hZGluZ1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS1yb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb250ZW50c1RvdGFsSXRlbXMkIHwgYXN5bmMgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dmRyLWRhdGEtdGFibGUtMlxyXG4gICAgICAgIGlkPVwiY29sbGVjdGlvbi1jb250ZW50c1wiXHJcbiAgICAgICAgW2NsYXNzLmxvYWRpbmddPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICBbaXRlbXNdPVwiY29udGVudHMkIHwgYXN5bmNcIlxyXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiY29udGVudHNJdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgIFt0b3RhbEl0ZW1zXT1cImNvbnRlbnRzVG90YWxJdGVtcyQgfCBhc3luY1wiXHJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImNvbnRlbnRzQ3VycmVudFBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cInNldENvbnRlbnRzUGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgICAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cInNldENvbnRlbnRzSXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICAgIDx2ZHItZHQyLXNlYXJjaFxyXG4gICAgICAgICAgICBbc2VhcmNoVGVybUNvbnRyb2xdPVwiZmlsdGVyVGVybUNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidjYXRhbG9nLmZpbHRlci1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pZCcgfCB0cmFuc2xhdGVcIiBpZD1cImlkXCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQuaWQgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmNyZWF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJjcmVhdGVkLWF0XCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLnVwZGF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJ1cGRhdGVkLWF0XCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQudXBkYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycvY2F0YWxvZy9wcm9kdWN0cycsIHZhcmlhbnQucHJvZHVjdElkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjxzcGFuPnt7IHZhcmlhbnQubmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID48Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiXHJcbiAgICAgICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJza3VcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgdmFyaWFudC5za3UgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPC92ZHItZGF0YS10YWJsZS0yPlxyXG48L2Rpdj5cclxuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1jb250ZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFLTCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQ0gsVUFBVSxFQUNWLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNOLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFReEIsTUFBTSxPQUFPLDJCQUEyQjtJQXFCcEMsWUFBb0IsS0FBcUIsRUFBVSxNQUFjLEVBQVUsV0FBd0I7UUFBL0UsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFoQjFGLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQU92QyxzQkFBaUIsR0FBRyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFD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QTJCLCtSQU10QixXQUFXLG1GQzdDN0IseTlFQW1EQTs7NEZEWmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTtrSUFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ3VDLGNBQWM7c0JBQTFELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQ29sbGVjdGlvbkZpbHRlclBhcmFtZXRlcixcclxuICAgIENvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0LFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBHZXRDb2xsZWN0aW9uQ29udGVudHNRdWVyeSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gICAgY2F0Y2hFcnJvcixcclxuICAgIGRlYm91bmNlVGltZSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gICAgZmlsdGVyLFxyXG4gICAgZmluYWxpemUsXHJcbiAgICBtYXAsXHJcbiAgICBzdGFydFdpdGgsXHJcbiAgICBzd2l0Y2hNYXAsXHJcbiAgICB0YWtlVW50aWwsXHJcbiAgICB0YXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jb2xsZWN0aW9uLWNvbnRlbnRzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBjb2xsZWN0aW9uSWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHBhcmVudElkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpbmhlcml0RmlsdGVyczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHVwZGF0ZWRGaWx0ZXJzOiBDb25maWd1cmFibGVPcGVyYXRpb25JbnB1dFtdIHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgcHJldmlld1VwZGF0ZWRGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBjb250ZW50cyQ6IE9ic2VydmFibGU8Tm9uTnVsbGFibGU8R2V0Q29sbGVjdGlvbkNvbnRlbnRzUXVlcnlbJ2NvbGxlY3Rpb24nXT5bJ3Byb2R1Y3RWYXJpYW50cyddWydpdGVtcyddPjtcclxuICAgIGNvbnRlbnRzVG90YWxJdGVtcyQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIGNvbnRlbnRzSXRlbXNQZXJQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gICAgY29udGVudHNDdXJyZW50UGFnZSQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIGZpbHRlclRlcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XHJcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgY29sbGVjdGlvbklkQ2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgICBwcml2YXRlIHBhcmVudElkQ2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgICBwcml2YXRlIGZpbHRlckNoYW5nZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWd1cmFibGVPcGVyYXRpb25JbnB1dFtdPihbXSk7XHJcbiAgICBwcml2YXRlIGluaGVyaXRGaWx0ZXJzQ2hhbmdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHJpdmF0ZSByZWZyZXNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250ZW50c0N1cnJlbnRQYWdlJCA9IHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ2NvbnRlbnRzUGFnZScpKSxcclxuICAgICAgICAgICAgbWFwKHBhZ2UgPT4gKCFwYWdlID8gMSA6ICtwYWdlKSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgxKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNvbnRlbnRzSXRlbXNQZXJQYWdlJCA9IHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ2NvbnRlbnRzUGVyUGFnZScpKSxcclxuICAgICAgICAgICAgbWFwKHBlclBhZ2UgPT4gKCFwZXJQYWdlID8gMTAgOiArcGVyUGFnZSkpLFxyXG4gICAgICAgICAgICBzdGFydFdpdGgoMTApLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlclRlcm0kID0gdGhpcy5maWx0ZXJUZXJtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnNldENvbnRlbnRzUGFnZU51bWJlcigxKSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgnJyksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyQ2hhbmdlcyQgPSB0aGlzLmZpbHRlckNoYW5nZXMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnByZXZpZXdVcGRhdGVkRmlsdGVycyksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnNldENvbnRlbnRzUGFnZU51bWJlcigxKSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aChbXSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW5oZXJpdEZpbHRlcnNDaGFuZ2VzJCA9IHRoaXMuaW5oZXJpdEZpbHRlcnNDaGFuZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pbmhlcml0RmlsdGVycyAhPSBudWxsKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuc2V0Q29udGVudHNQYWdlTnVtYmVyKDEpKSxcclxuICAgICAgICAgICAgc3RhcnRXaXRoKHRydWUpLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZldGNoVXBkYXRlJCA9IGNvbWJpbmVMYXRlc3QoXHJcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbklkQ2hhbmdlJCxcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRJZENoYW5nZSQsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudHNDdXJyZW50UGFnZSQsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudHNJdGVtc1BlclBhZ2UkLFxyXG4gICAgICAgICAgICBmaWx0ZXJUZXJtJCxcclxuICAgICAgICAgICAgZmlsdGVyQ2hhbmdlcyQsXHJcbiAgICAgICAgICAgIGluaGVyaXRGaWx0ZXJzQ2hhbmdlcyQsXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCQsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiQgPSBmZXRjaFVwZGF0ZSQucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFtpZCwgcGFyZW50SWQsIGN1cnJlbnRQYWdlLCBpdGVtc1BlclBhZ2UsIGZpbHRlclRlcm0sIGZpbHRlcnMsIGluaGVyaXRGaWx0ZXJzXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFrZSA9IGl0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNraXAgPSAoY3VycmVudFBhZ2UgLSAxKSAqIGl0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzLmxlbmd0aCAmJiB0aGlzLnByZXZpZXdVcGRhdGVkRmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckNsYXVzZSA9IGZpbHRlclRlcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoeyBuYW1lOiB7IGNvbnRhaW5zOiBmaWx0ZXJUZXJtIH0gfSBhcyBDb2xsZWN0aW9uRmlsdGVyUGFyYW1ldGVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jb2xsZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmV2aWV3Q29sbGVjdGlvblZhcmlhbnRzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdEZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGZpbHRlckNsYXVzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEucHJldmlld0NvbGxlY3Rpb25WYXJpYW50cylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih7IGl0ZW1zOiBbXSwgdG90YWxJdGVtczogMCB9KSkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNvbGxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldENvbGxlY3Rpb25Db250ZW50cyhpZCwgdGFrZSwgc2tpcCwgZmlsdGVyVGVybSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuY29sbGVjdGlvbj8ucHJvZHVjdFZhcmlhbnRzKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb250ZW50cyQgPSBjb2xsZWN0aW9uJC5waXBlKG1hcChyZXN1bHQgPT4gKHJlc3VsdCA/IHJlc3VsdC5pdGVtcyA6IFtdKSkpO1xyXG4gICAgICAgIHRoaXMuY29udGVudHNUb3RhbEl0ZW1zJCA9IGNvbGxlY3Rpb24kLnBpcGUobWFwKHJlc3VsdCA9PiAocmVzdWx0ID8gcmVzdWx0LnRvdGFsSXRlbXMgOiAwKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2NvbGxlY3Rpb25JZCcgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25JZENoYW5nZSQubmV4dChjaGFuZ2VzLmNvbGxlY3Rpb25JZC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoJ3BhcmVudElkJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50SWRDaGFuZ2UkLm5leHQoY2hhbmdlcy5wYXJlbnRJZC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoJ2luaGVyaXRGaWx0ZXJzJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5oZXJpdEZpbHRlcnNDaGFuZ2VzJC5uZXh0KGNoYW5nZXMuaW5oZXJpdEZpbHRlcnMuY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCd1cGRhdGVkRmlsdGVycycgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy51cGRhdGVkRmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2VzJC5uZXh0KHRoaXMudXBkYXRlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDb250ZW50c1BhZ2VOdW1iZXIocGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJhbSgnY29udGVudHNQYWdlJywgcGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29udGVudHNJdGVtc1BlclBhZ2UocGVyUGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJhbSgnY29udGVudHNQZXJQYWdlJywgcGVyUGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaCgpIHtcclxuICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi8nXSwge1xyXG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgW2tleV06IHZhbHVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICAgICAgICByZXBsYWNlVXJsOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MgbG9vcFwiIFtjbGFzcy52aXNpYmxlXT1cImlzTG9hZGluZ1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS1yb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb250ZW50c1RvdGFsSXRlbXMkIHwgYXN5bmMgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dmRyLWRhdGEtdGFibGUtMlxyXG4gICAgICAgIGlkPVwiY29sbGVjdGlvbi1jb250ZW50c1wiXHJcbiAgICAgICAgW2NsYXNzLmxvYWRpbmddPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICBbaXRlbXNdPVwiY29udGVudHMkIHwgYXN5bmNcIlxyXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiY29udGVudHNJdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgIFt0b3RhbEl0ZW1zXT1cImNvbnRlbnRzVG90YWxJdGVtcyQgfCBhc3luY1wiXHJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImNvbnRlbnRzQ3VycmVudFBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cInNldENvbnRlbnRzUGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgICAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cInNldENvbnRlbnRzSXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICAgIDx2ZHItZHQyLXNlYXJjaFxyXG4gICAgICAgICAgICBbc2VhcmNoVGVybUNvbnRyb2xdPVwiZmlsdGVyVGVybUNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidjYXRhbG9nLmZpbHRlci1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pZCcgfCB0cmFuc2xhdGVcIiBpZD1cImlkXCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQuaWQgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmNyZWF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJjcmVhdGVkLWF0XCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLnVwZGF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJ1cGRhdGVkLWF0XCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQudXBkYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycvY2F0YWxvZy9wcm9kdWN0cycsIHZhcmlhbnQucHJvZHVjdElkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjxzcGFuPnt7IHZhcmlhbnQubmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID48Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiXHJcbiAgICAgICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJza3VcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgdmFyaWFudC5za3UgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPC92ZHItZGF0YS10YWJsZS0yPlxyXG48L2Rpdj5cclxuIl19
|
package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren, } from '@angular/core';
|
|
3
|
-
import { DataTable2Component
|
|
3
|
+
import { DataTable2Component } from '@vendure/admin-ui/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@vendure/admin-ui/core";
|
|
6
|
-
import * as i2 from "@angular
|
|
7
|
-
import * as i3 from "@
|
|
8
|
-
import * as i4 from "@angular/
|
|
6
|
+
import * as i2 from "@clr/angular";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/cdk/drag-drop";
|
|
9
9
|
import * as i5 from "ngx-pagination";
|
|
10
10
|
import * as i6 from "@ngx-translate/core";
|
|
11
11
|
export class CollectionDataTableComponent extends DataTable2Component {
|
|
12
|
-
constructor(changeDetectorRef,
|
|
13
|
-
super(changeDetectorRef,
|
|
12
|
+
constructor(changeDetectorRef, dataService) {
|
|
13
|
+
super(changeDetectorRef, dataService);
|
|
14
14
|
this.changeDetectorRef = changeDetectorRef;
|
|
15
|
-
this.localStorageService = localStorageService;
|
|
16
15
|
this.dataService = dataService;
|
|
17
|
-
this.dragDrop = dragDrop;
|
|
18
16
|
this.changeOrder = new EventEmitter();
|
|
19
17
|
this.dragRefs = [];
|
|
20
18
|
this.absoluteIndex = {};
|
|
@@ -75,13 +73,13 @@ export class CollectionDataTableComponent extends DataTable2Component {
|
|
|
75
73
|
}
|
|
76
74
|
this.changeDetectorRef.markForCheck();
|
|
77
75
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CollectionDataTableComponent, selector: "vdr-collection-data-table", inputs: { subCollections: "subCollections" }, outputs: { changeOrder: "changeOrder" }, viewQueries: [{ propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, static: true }, { propertyName: "collectionRowList", predicate: ["collectionRow"], descendants: true, read: CdkDrag }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<vdr-data-table-filter-presets\r\n *ngIf=\"filters\"\r\n [filters]=\"filters\"\r\n [dataTableId]=\"id\"\r\n></vdr-data-table-filter-presets>\r\n<div class=\"table-wrapper\">\r\n <div class=\"bulk-actions\">\r\n <ng-content select=\"vdr-bulk-action-menu\"></ng-content>\r\n </div>\r\n <table class=\"\" [class.no-select]=\"disableSelect\">\r\n <thead [class.items-selected]=\"selectionManager?.selection.length\">\r\n <tr class=\"heading-row\">\r\n <th *ngIf=\"selectionManager\" class=\"selection-col\">\r\n <div class=\"flex\">\r\n <div class=\"drag-handle-spacer\"></div>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [checked]=\"selectionManager?.areAllCurrentItemsSelected()\"\r\n (change)=\"onToggleAllClick()\"\r\n />\r\n </div>\r\n </th>\r\n <th\r\n *ngFor=\"let column of visibleSortedColumns; last as isLast\"\r\n [class.expand]=\"column.expand\"\r\n >\r\n <div class=\"cell-content\" [ngClass]=\"column.align\">\r\n <vdr-ui-extension-point\r\n [locationId]=\"id\"\r\n [metadata]=\"column.id\"\r\n api=\"dataTable\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"-24\"\r\n display=\"block\"\r\n >\r\n <span>{{ column.heading }}</span>\r\n </vdr-ui-extension-point>\r\n <div *ngIf=\"column.sort as sort\" class=\"sort-toggle\">\r\n <button (click)=\"sort.toggleSortOrder()\" [class.active]=\"sort.sortOrder\">\r\n <clr-icon *ngIf=\"!sort.sortOrder\" shape=\"two-way-arrows left\"></clr-icon>\r\n <clr-icon *ngIf=\"sort.sortOrder === 'ASC'\" shape=\"arrow up\"></clr-icon>\r\n <clr-icon *ngIf=\"sort.sortOrder === 'DESC'\" shape=\"arrow down\"></clr-icon>\r\n </button>\r\n <div class=\"sort-label\" *ngIf=\"sort.sortOrder\">{{ sort.sortOrder }}</div>\r\n </div>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"column-picker\">\r\n <vdr-data-table-colum-picker\r\n [uiLanguage]=\"uiLanguage$ | async\"\r\n [columns]=\"sortedColumns\"\r\n (reorder)=\"onColumnReorder($event)\"\r\n (resetColumns)=\"onColumnsReset()\"\r\n ></vdr-data-table-colum-picker>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngIf=\"searchComponent || customSearchTemplate || filters?.length\">\r\n <th\r\n [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\"\r\n class=\"filter-row\"\r\n [class.active]=\"showSearchFilterRow\"\r\n >\r\n <button\r\n class=\"button-ghost toggle-search-filter-row\"\r\n [class.active]=\"showSearchFilterRow\"\r\n (click)=\"toggleSearchFilterRow()\"\r\n [title]=\"'common.search-and-filter-list' | translate\"\r\n >\r\n <clr-icon shape=\"search\"></clr-icon>\r\n </button>\r\n <div class=\"filter-row-wrapper\" [class.hidden]=\"!showSearchFilterRow\">\r\n <ng-container *ngTemplateOutlet=\"searchComponent?.template\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customSearchTemplate\"></ng-container>\r\n <ng-container *ngIf=\"filters\">\r\n <div class=\"filters\">\r\n <vdr-data-table-filters\r\n *ngFor=\"let activeFilter of filters.activeFilters\"\r\n [filterWithValue]=\"activeFilter\"\r\n [filters]=\"filters\"\r\n class=\"mt-1\"\r\n ></vdr-data-table-filters>\r\n <vdr-data-table-filters\r\n *ngIf=\"filters.length\"\r\n [filters]=\"filters\"\r\n class=\"mt-1\"\r\n ></vdr-data-table-filters>\r\n <vdr-add-filter-preset-button\r\n [filters]=\"filters\"\r\n [dataTableId]=\"id\"\r\n ></vdr-add-filter-preset-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody\r\n cdkDropList\r\n cdkDropListLockAxis=\"y\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortPredicate]=\"sortPredicate\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let item of items\r\n | paginate\r\n : {\r\n itemsPerPage: itemsPerPage,\r\n currentPage: currentPage,\r\n totalItems: totalItems,\r\n id: id,\r\n };\r\n index as i;\r\n trackBy: trackByFn\r\n \"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"collectionRowTmp\"\r\n [ngTemplateOutletContext]=\"{ item: item, i: i, depth: 0 }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container>\r\n <tr *ngIf=\"!items?.length\">\r\n <td [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\">\r\n <vdr-empty-placeholder [emptyStateLabel]=\"emptyStateLabel\"></vdr-empty-placeholder>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n</div>\r\n<div class=\"table-footer\">\r\n <vdr-items-per-page-controls\r\n *ngIf=\"totalItems\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange.emit($event)\"\r\n ></vdr-items-per-page-controls>\r\n <div *ngIf=\"totalItems\" class=\"p5 total-items-count\">\r\n {{ 'common.total-items' | translate : { currentStart, currentEnd, totalItems } }}\r\n </div>\r\n\r\n <vdr-pagination-controls\r\n *ngIf=\"totalItems\"\r\n [id]=\"id\"\r\n [currentPage]=\"currentPage\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n [totalItems]=\"totalItems\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template #collectionRowTmp let-item=\"item\" let-depth=\"depth\">\r\n <tr #collectionRow cdkDrag [cdkDragData]=\"{ depth: depth, collection: item }\" cdkDragBoundary=\"tbody\">\r\n <td\r\n *ngIf=\"selectionManager\"\r\n [class.active]=\"activeIndex === absoluteIndex[item.id]\"\r\n class=\"selection-col\"\r\n >\r\n <div class=\"flex\">\r\n <div class=\"drag-handle\" cdkDragHandle [title]=\"'catalog.reorder-collection' | translate\">\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [checked]=\"selectionManager?.isSelected(item)\"\r\n (click)=\"onRowClick(item, $event)\"\r\n />\r\n </div>\r\n </td>\r\n <td\r\n *ngFor=\"let column of visibleSortedColumns\"\r\n [class.active]=\"activeIndex === absoluteIndex[item.id]\"\r\n >\r\n <div class=\"cell-content\" [ngClass]=\"column.align\">\r\n <ng-container\r\n *ngIf=\"customComponents.get(column.id) as componentConfig; else defaultComponent\"\r\n >\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n componentConfig.config.component;\r\n inputs: { rowItem: item };\r\n injector: componentConfig.injector\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultComponent>\r\n <ng-container\r\n *ngTemplateOutlet=\"column.template; context: { item: item, depth: depth }\"\r\n ></ng-container>\r\n </ng-template>\r\n </div>\r\n </td>\r\n <td [class.active]=\"activeIndex === absoluteIndex[item.id]\"><!-- column select --></td>\r\n </tr>\r\n <ng-container *ngFor=\"let subCollection of getSubcollections(item)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"collectionRowTmp; context: { item: subCollection, depth: depth + 1 }\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [":host{display:block;max-width:100%;position:relative;margin-bottom:calc(var(--space-unit) * 4);container-type:inline-size}th{border-bottom:1px solid var(--color-table-header-border);color:var(--color-weight-700);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;position:relative;white-space:nowrap;background-color:transparent}th,td{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1);color:var(--color-text-100)}tr td:first-of-type,tr th:first-of-type{text-align:center}@media screen and (min-width: 992px){tr td:first-of-type,tr th:first-of-type{padding-inline-start:var(--surface-margin-left);text-align:start}}th:last-of-type,td:last-of-type{border-inline-end:1px solid var(--color-table-header-border)}tr:first-of-type th:last-of-type{border-image:linear-gradient(0deg,var(--color-table-header-border),transparent) 1}tr:last-of-type td:last-of-type{border-image:linear-gradient(180deg,var(--color-table-header-border),transparent) 1}tbody td{border-bottom:1px solid var(--color-table-row-separator)}tbody tr:hover{background-color:var(--color-table-row-hover-bg)}.bulk-actions{margin-inline-start:calc(var(--space-unit) * 5);background-color:var(--color-surface-bg);z-index:10;display:flex;position:absolute;top:5px;height:40px}@media screen and (min-width: 992px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 8.5)}}@media screen and (min-width: 1280px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 10.5)}}.table-wrapper{display:block;overflow-y:hidden;overflow-x:auto;position:relative;width:100%;max-width:var(--surface-width)}table{width:100%}table.no-select{-webkit-user-select:none;user-select:none}.column-picker{width:24px}.sort-toggle{display:flex;align-items:center;margin-inline-start:calc(var(--space-unit) * .5)}.sort-toggle button{border:0;border-radius:var(--border-radius-lg);color:var(--color-weight-500);padding:0 2px;cursor:pointer;background-color:transparent}.sort-toggle button.active{color:var(--color-primary-700)}.sort-toggle .sort-label{margin-inline-start:calc(var(--space-unit) * .5);font-size:10px;color:var(--color-primary-600);font-weight:400}.toggle-search-filter-row{position:absolute;top:-12px;left:4px}@media screen and (min-width: 1280px){.toggle-search-filter-row{left:8px}}.toggle-search-filter-row.active{background-color:var(--color-primary-700);color:var(--color-primary-100);border-color:var(--color-primary-700)}th.filter-row{position:relative;font-size:var(--font-size-base);font-weight:400;background-color:var(--color-weight-100);box-shadow:var(--data-table-filter-box-shadow);border-left-width:0;border-right-width:0;text-align:initial;padding:0}th.filter-row input{width:100%}th.filter-row.active{border-bottom:1px solid var(--color-table-header-border)}th.filter-row .filters{margin-top:calc(var(--space-unit) * 1);display:flex;flex-wrap:wrap;gap:calc(var(--space-unit) * .5)}.filter-row-wrapper{padding:calc(var(--space-unit) * 4);padding-inline-start:0;max-height:150px;transition:max-height .2s,padding .2s,opacity .2s}.filter-row-wrapper.hidden{max-height:0px;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0}.cell-link{display:block;width:100%;height:100%}td.active{background-color:var(--color-table-row-active-bg)}.cell-content{display:flex;align-items:center;line-height:var(--font-size-sm);color:var(--color-weight-700)}.cell-content.left{justify-content:flex-start}.cell-content.center{justify-content:center}.cell-content.right{justify-content:flex-end}.selection-col{width:calc(var(--space-unit) * 8)}vdr-empty-placeholder{width:100%}.table-footer{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--space-unit);margin-inline-start:var(--surface-margin-left);margin-inline-end:var(--space-unit)}.total-items-count{font-size:var(--font-size-xs)}@container (max-width: 500px){.total-items-count{display:none}}\n", ".bulk-actions{margin-inline-start:calc(var(--space-unit) * 6);background-color:var(--color-surface-bg)}@media screen and (min-width: 992px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 9.5)}}@media screen and (min-width: 1280px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 11.5)}}.drag-handle{cursor:grab}.drag-handle-spacer{width:16px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{opacity:0}.cdk-drag-placeholder{background-color:var(--color-primary-100)!important}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.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: i2.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: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i1.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i1.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.EmptyPlaceholderComponent, selector: "vdr-empty-placeholder", inputs: ["emptyStateLabel"] }, { kind: "component", type: i1.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "metadata", "topPx", "leftPx", "display", "api"] }, { kind: "component", type: i1.DataTableFiltersComponent, selector: "vdr-data-table-filters", inputs: ["filters", "filterWithValue"] }, { kind: "component", type: i1.DataTableColumnPickerComponent, selector: "vdr-data-table-colum-picker", inputs: ["columns", "uiLanguage"], outputs: ["reorder", "resetColumns"] }, { kind: "component", type: i1.DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: ["dataTableId", "filters"] }, { kind: "component", type: i1.AddFilterPresetButtonComponent, selector: "vdr-add-filter-preset-button", inputs: ["dataTableId", "filters"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CollectionDataTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CollectionDataTableComponent, selector: "vdr-collection-data-table", inputs: { subCollections: "subCollections" }, outputs: { changeOrder: "changeOrder" }, viewQueries: [{ propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, static: true }, { propertyName: "collectionRowList", predicate: ["collectionRow"], descendants: true, read: CdkDrag }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<vdr-data-table-filter-presets\r\n *ngIf=\"filters\"\r\n [filters]=\"filters\"\r\n [dataTableId]=\"id\"\r\n></vdr-data-table-filter-presets>\r\n<div class=\"table-wrapper\">\r\n <div class=\"bulk-actions\">\r\n <ng-content select=\"vdr-bulk-action-menu\"></ng-content>\r\n </div>\r\n <table class=\"\" [class.no-select]=\"disableSelect\">\r\n <thead [class.items-selected]=\"selectionManager?.selection.length\">\r\n <tr class=\"heading-row\">\r\n <th *ngIf=\"selectionManager\" class=\"selection-col\">\r\n <div class=\"flex\">\r\n <div class=\"drag-handle-spacer\"></div>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [checked]=\"selectionManager?.areAllCurrentItemsSelected()\"\r\n (change)=\"onToggleAllClick()\"\r\n />\r\n </div>\r\n </th>\r\n <th\r\n *ngFor=\"let column of visibleSortedColumns; last as isLast\"\r\n [class.expand]=\"column.expand\"\r\n >\r\n <div class=\"cell-content\" [ngClass]=\"column.align\">\r\n <vdr-ui-extension-point\r\n [locationId]=\"id\"\r\n [metadata]=\"column.id\"\r\n api=\"dataTable\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"-24\"\r\n display=\"block\"\r\n >\r\n <span>{{ column.heading }}</span>\r\n </vdr-ui-extension-point>\r\n <div *ngIf=\"column.sort as sort\" class=\"sort-toggle\">\r\n <button (click)=\"sort.toggleSortOrder()\" [class.active]=\"sort.sortOrder\">\r\n <clr-icon *ngIf=\"!sort.sortOrder\" shape=\"two-way-arrows left\"></clr-icon>\r\n <clr-icon *ngIf=\"sort.sortOrder === 'ASC'\" shape=\"arrow up\"></clr-icon>\r\n <clr-icon *ngIf=\"sort.sortOrder === 'DESC'\" shape=\"arrow down\"></clr-icon>\r\n </button>\r\n <div class=\"sort-label\" *ngIf=\"sort.sortOrder\">{{ sort.sortOrder }}</div>\r\n </div>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"column-picker\">\r\n <vdr-data-table-colum-picker\r\n [uiLanguage]=\"uiLanguage$ | async\"\r\n [columns]=\"sortedColumns\"\r\n (reorder)=\"onColumnReorder($event)\"\r\n (resetColumns)=\"onColumnsReset()\"\r\n ></vdr-data-table-colum-picker>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngIf=\"searchComponent || customSearchTemplate || filters?.length\">\r\n <th\r\n [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\"\r\n class=\"filter-row\"\r\n [class.active]=\"showSearchFilterRow\"\r\n >\r\n <button\r\n class=\"button-ghost toggle-search-filter-row\"\r\n [class.active]=\"showSearchFilterRow\"\r\n (click)=\"toggleSearchFilterRow()\"\r\n [title]=\"'common.search-and-filter-list' | translate\"\r\n >\r\n <clr-icon shape=\"search\"></clr-icon>\r\n </button>\r\n <div class=\"filter-row-wrapper\" [class.hidden]=\"!showSearchFilterRow\">\r\n <ng-container *ngTemplateOutlet=\"searchComponent?.template\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customSearchTemplate\"></ng-container>\r\n <ng-container *ngIf=\"filters\">\r\n <div class=\"filters\">\r\n <vdr-data-table-filters\r\n *ngFor=\"let activeFilter of filters.activeFilters\"\r\n [filterWithValue]=\"activeFilter\"\r\n [filters]=\"filters\"\r\n class=\"mt-1\"\r\n ></vdr-data-table-filters>\r\n <vdr-data-table-filters\r\n *ngIf=\"filters.length\"\r\n [filters]=\"filters\"\r\n class=\"mt-1\"\r\n ></vdr-data-table-filters>\r\n <vdr-add-filter-preset-button\r\n [filters]=\"filters\"\r\n [dataTableId]=\"id\"\r\n ></vdr-add-filter-preset-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody\r\n cdkDropList\r\n cdkDropListLockAxis=\"y\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortPredicate]=\"sortPredicate\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let item of items\r\n | paginate\r\n : {\r\n itemsPerPage: itemsPerPage,\r\n currentPage: currentPage,\r\n totalItems: totalItems,\r\n id: id,\r\n };\r\n index as i;\r\n trackBy: trackByFn\r\n \"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"collectionRowTmp\"\r\n [ngTemplateOutletContext]=\"{ item: item, i: i, depth: 0 }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container>\r\n <tr *ngIf=\"!items?.length\">\r\n <td [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\">\r\n <vdr-empty-placeholder [emptyStateLabel]=\"emptyStateLabel\"></vdr-empty-placeholder>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n</div>\r\n<div class=\"table-footer\">\r\n <vdr-items-per-page-controls\r\n *ngIf=\"totalItems\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange.emit($event)\"\r\n ></vdr-items-per-page-controls>\r\n <div *ngIf=\"totalItems\" class=\"p5 total-items-count\">\r\n {{ 'common.total-items' | translate : { currentStart, currentEnd, totalItems } }}\r\n </div>\r\n\r\n <vdr-pagination-controls\r\n *ngIf=\"totalItems\"\r\n [id]=\"id\"\r\n [currentPage]=\"currentPage\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n [totalItems]=\"totalItems\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template #collectionRowTmp let-item=\"item\" let-depth=\"depth\">\r\n <tr #collectionRow cdkDrag [cdkDragData]=\"{ depth: depth, collection: item }\" cdkDragBoundary=\"tbody\">\r\n <td\r\n *ngIf=\"selectionManager\"\r\n [class.active]=\"activeIndex === absoluteIndex[item.id]\"\r\n class=\"selection-col\"\r\n >\r\n <div class=\"flex\">\r\n <div class=\"drag-handle\" cdkDragHandle [title]=\"'catalog.reorder-collection' | translate\">\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [checked]=\"selectionManager?.isSelected(item)\"\r\n (click)=\"onRowClick(item, $event)\"\r\n />\r\n </div>\r\n </td>\r\n <td\r\n *ngFor=\"let column of visibleSortedColumns\"\r\n [class.active]=\"activeIndex === absoluteIndex[item.id]\"\r\n >\r\n <div class=\"cell-content\" [ngClass]=\"column.align\">\r\n <ng-container\r\n *ngIf=\"customComponents.get(column.id) as componentConfig; else defaultComponent\"\r\n >\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n componentConfig.config.component;\r\n inputs: { rowItem: item };\r\n injector: componentConfig.injector\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultComponent>\r\n <ng-container\r\n *ngTemplateOutlet=\"column.template; context: { item: item, depth: depth }\"\r\n ></ng-container>\r\n </ng-template>\r\n </div>\r\n </td>\r\n <td [class.active]=\"activeIndex === absoluteIndex[item.id]\"><!-- column select --></td>\r\n </tr>\r\n <ng-container *ngFor=\"let subCollection of getSubcollections(item)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"collectionRowTmp; context: { item: subCollection, depth: depth + 1 }\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [":host{display:block;max-width:100%;position:relative;margin-bottom:calc(var(--space-unit) * 4);container-type:inline-size}th{border-bottom:1px solid var(--color-table-header-border);color:var(--color-weight-700);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;position:relative;white-space:nowrap;background-color:transparent}th,td{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1);color:var(--color-text-100)}tr td:first-of-type,tr th:first-of-type{text-align:center}@media screen and (min-width: 992px){tr td:first-of-type,tr th:first-of-type{padding-inline-start:var(--surface-margin-left);text-align:start}}th:last-of-type,td:last-of-type{border-inline-end:1px solid var(--color-table-header-border)}tr:first-of-type th:last-of-type{border-image:linear-gradient(0deg,var(--color-table-header-border),transparent) 1}tr:last-of-type td:last-of-type{border-image:linear-gradient(180deg,var(--color-table-header-border),transparent) 1}tbody td{border-bottom:1px solid var(--color-table-row-separator)}tbody tr:hover{background-color:var(--color-table-row-hover-bg)}.bulk-actions{margin-inline-start:calc(var(--space-unit) * 5);background-color:var(--color-surface-bg);z-index:10;display:flex;position:absolute;top:5px;height:40px}@media screen and (min-width: 992px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 8.5)}}@media screen and (min-width: 1280px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 10.5)}}.table-wrapper{display:block;overflow-y:hidden;overflow-x:auto;position:relative;width:100%;max-width:var(--surface-width)}table{width:100%}table.no-select{-webkit-user-select:none;user-select:none}.column-picker{width:24px}.sort-toggle{display:flex;align-items:center;margin-inline-start:calc(var(--space-unit) * .5)}.sort-toggle button{border:0;border-radius:var(--border-radius-lg);color:var(--color-weight-500);padding:0 2px;cursor:pointer;background-color:transparent}.sort-toggle button.active{color:var(--color-primary-700)}.sort-toggle .sort-label{margin-inline-start:calc(var(--space-unit) * .5);font-size:10px;color:var(--color-primary-600);font-weight:400}.toggle-search-filter-row{position:absolute;top:-12px;left:4px}@media screen and (min-width: 1280px){.toggle-search-filter-row{left:8px}}.toggle-search-filter-row.active{background-color:var(--color-primary-700);color:var(--color-primary-100);border-color:var(--color-primary-700)}th.filter-row{position:relative;font-size:var(--font-size-base);font-weight:400;background-color:var(--color-weight-100);box-shadow:var(--data-table-filter-box-shadow);border-left-width:0;border-right-width:0;text-align:initial;padding:0}th.filter-row input{width:100%}th.filter-row.active{border-bottom:1px solid var(--color-table-header-border)}th.filter-row .filters{margin-top:calc(var(--space-unit) * 1);display:flex;flex-wrap:wrap;gap:calc(var(--space-unit) * .5)}.filter-row-wrapper{padding:calc(var(--space-unit) * 4);padding-inline-start:0;max-height:150px;transition:max-height .2s,padding .2s,opacity .2s}.filter-row-wrapper.hidden{max-height:0px;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0}.cell-link{display:block;width:100%;height:100%}td.active{background-color:var(--color-table-row-active-bg)}.cell-content{display:flex;align-items:center;line-height:var(--font-size-sm);color:var(--color-weight-700)}.cell-content.left{justify-content:flex-start}.cell-content.center{justify-content:center}.cell-content.right{justify-content:flex-end}.selection-col{width:calc(var(--space-unit) * 8)}vdr-empty-placeholder{width:100%}.table-footer{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--space-unit);margin-inline-start:var(--surface-margin-left);margin-inline-end:var(--space-unit)}.total-items-count{font-size:var(--font-size-xs)}@container (max-width: 500px){.total-items-count{display:none}}\n", ".bulk-actions{margin-inline-start:calc(var(--space-unit) * 6);background-color:var(--color-surface-bg)}@media screen and (min-width: 992px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 9.5)}}@media screen and (min-width: 1280px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 11.5)}}.drag-handle{cursor:grab}.drag-handle-spacer{width:16px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{opacity:0}.cdk-drag-placeholder{background-color:var(--color-primary-100)!important}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.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: i4.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: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i1.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i1.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.EmptyPlaceholderComponent, selector: "vdr-empty-placeholder", inputs: ["emptyStateLabel"] }, { kind: "component", type: i1.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "metadata", "topPx", "leftPx", "display", "api"] }, { kind: "component", type: i1.DataTableFiltersComponent, selector: "vdr-data-table-filters", inputs: ["filters", "filterWithValue"] }, { kind: "component", type: i1.DataTableColumnPickerComponent, selector: "vdr-data-table-colum-picker", inputs: ["columns", "uiLanguage"], outputs: ["reorder", "resetColumns"] }, { kind: "component", type: i1.DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: ["dataTableId", "filters"] }, { kind: "component", type: i1.AddFilterPresetButtonComponent, selector: "vdr-add-filter-preset-button", inputs: ["dataTableId", "filters"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
78
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CollectionDataTableComponent, decorators: [{
|
|
82
80
|
type: Component,
|
|
83
81
|
args: [{ selector: 'vdr-collection-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-data-table-filter-presets\r\n *ngIf=\"filters\"\r\n [filters]=\"filters\"\r\n [dataTableId]=\"id\"\r\n></vdr-data-table-filter-presets>\r\n<div class=\"table-wrapper\">\r\n <div class=\"bulk-actions\">\r\n <ng-content select=\"vdr-bulk-action-menu\"></ng-content>\r\n </div>\r\n <table class=\"\" [class.no-select]=\"disableSelect\">\r\n <thead [class.items-selected]=\"selectionManager?.selection.length\">\r\n <tr class=\"heading-row\">\r\n <th *ngIf=\"selectionManager\" class=\"selection-col\">\r\n <div class=\"flex\">\r\n <div class=\"drag-handle-spacer\"></div>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [checked]=\"selectionManager?.areAllCurrentItemsSelected()\"\r\n (change)=\"onToggleAllClick()\"\r\n />\r\n </div>\r\n </th>\r\n <th\r\n *ngFor=\"let column of visibleSortedColumns; last as isLast\"\r\n [class.expand]=\"column.expand\"\r\n >\r\n <div class=\"cell-content\" [ngClass]=\"column.align\">\r\n <vdr-ui-extension-point\r\n [locationId]=\"id\"\r\n [metadata]=\"column.id\"\r\n api=\"dataTable\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"-24\"\r\n display=\"block\"\r\n >\r\n <span>{{ column.heading }}</span>\r\n </vdr-ui-extension-point>\r\n <div *ngIf=\"column.sort as sort\" class=\"sort-toggle\">\r\n <button (click)=\"sort.toggleSortOrder()\" [class.active]=\"sort.sortOrder\">\r\n <clr-icon *ngIf=\"!sort.sortOrder\" shape=\"two-way-arrows left\"></clr-icon>\r\n <clr-icon *ngIf=\"sort.sortOrder === 'ASC'\" shape=\"arrow up\"></clr-icon>\r\n <clr-icon *ngIf=\"sort.sortOrder === 'DESC'\" shape=\"arrow down\"></clr-icon>\r\n </button>\r\n <div class=\"sort-label\" *ngIf=\"sort.sortOrder\">{{ sort.sortOrder }}</div>\r\n </div>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"column-picker\">\r\n <vdr-data-table-colum-picker\r\n [uiLanguage]=\"uiLanguage$ | async\"\r\n [columns]=\"sortedColumns\"\r\n (reorder)=\"onColumnReorder($event)\"\r\n (resetColumns)=\"onColumnsReset()\"\r\n ></vdr-data-table-colum-picker>\r\n </div>\r\n </th>\r\n </tr>\r\n <tr *ngIf=\"searchComponent || customSearchTemplate || filters?.length\">\r\n <th\r\n [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\"\r\n class=\"filter-row\"\r\n [class.active]=\"showSearchFilterRow\"\r\n >\r\n <button\r\n class=\"button-ghost toggle-search-filter-row\"\r\n [class.active]=\"showSearchFilterRow\"\r\n (click)=\"toggleSearchFilterRow()\"\r\n [title]=\"'common.search-and-filter-list' | translate\"\r\n >\r\n <clr-icon shape=\"search\"></clr-icon>\r\n </button>\r\n <div class=\"filter-row-wrapper\" [class.hidden]=\"!showSearchFilterRow\">\r\n <ng-container *ngTemplateOutlet=\"searchComponent?.template\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customSearchTemplate\"></ng-container>\r\n <ng-container *ngIf=\"filters\">\r\n <div class=\"filters\">\r\n <vdr-data-table-filters\r\n *ngFor=\"let activeFilter of filters.activeFilters\"\r\n [filterWithValue]=\"activeFilter\"\r\n [filters]=\"filters\"\r\n class=\"mt-1\"\r\n ></vdr-data-table-filters>\r\n <vdr-data-table-filters\r\n *ngIf=\"filters.length\"\r\n [filters]=\"filters\"\r\n class=\"mt-1\"\r\n ></vdr-data-table-filters>\r\n <vdr-add-filter-preset-button\r\n [filters]=\"filters\"\r\n [dataTableId]=\"id\"\r\n ></vdr-add-filter-preset-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody\r\n cdkDropList\r\n cdkDropListLockAxis=\"y\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n [cdkDropListSortPredicate]=\"sortPredicate\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let item of items\r\n | paginate\r\n : {\r\n itemsPerPage: itemsPerPage,\r\n currentPage: currentPage,\r\n totalItems: totalItems,\r\n id: id,\r\n };\r\n index as i;\r\n trackBy: trackByFn\r\n \"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"collectionRowTmp\"\r\n [ngTemplateOutletContext]=\"{ item: item, i: i, depth: 0 }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container>\r\n <tr *ngIf=\"!items?.length\">\r\n <td [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\">\r\n <vdr-empty-placeholder [emptyStateLabel]=\"emptyStateLabel\"></vdr-empty-placeholder>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n</div>\r\n<div class=\"table-footer\">\r\n <vdr-items-per-page-controls\r\n *ngIf=\"totalItems\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange.emit($event)\"\r\n ></vdr-items-per-page-controls>\r\n <div *ngIf=\"totalItems\" class=\"p5 total-items-count\">\r\n {{ 'common.total-items' | translate : { currentStart, currentEnd, totalItems } }}\r\n </div>\r\n\r\n <vdr-pagination-controls\r\n *ngIf=\"totalItems\"\r\n [id]=\"id\"\r\n [currentPage]=\"currentPage\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n [totalItems]=\"totalItems\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template #collectionRowTmp let-item=\"item\" let-depth=\"depth\">\r\n <tr #collectionRow cdkDrag [cdkDragData]=\"{ depth: depth, collection: item }\" cdkDragBoundary=\"tbody\">\r\n <td\r\n *ngIf=\"selectionManager\"\r\n [class.active]=\"activeIndex === absoluteIndex[item.id]\"\r\n class=\"selection-col\"\r\n >\r\n <div class=\"flex\">\r\n <div class=\"drag-handle\" cdkDragHandle [title]=\"'catalog.reorder-collection' | translate\">\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [checked]=\"selectionManager?.isSelected(item)\"\r\n (click)=\"onRowClick(item, $event)\"\r\n />\r\n </div>\r\n </td>\r\n <td\r\n *ngFor=\"let column of visibleSortedColumns\"\r\n [class.active]=\"activeIndex === absoluteIndex[item.id]\"\r\n >\r\n <div class=\"cell-content\" [ngClass]=\"column.align\">\r\n <ng-container\r\n *ngIf=\"customComponents.get(column.id) as componentConfig; else defaultComponent\"\r\n >\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n componentConfig.config.component;\r\n inputs: { rowItem: item };\r\n injector: componentConfig.injector\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultComponent>\r\n <ng-container\r\n *ngTemplateOutlet=\"column.template; context: { item: item, depth: depth }\"\r\n ></ng-container>\r\n </ng-template>\r\n </div>\r\n </td>\r\n <td [class.active]=\"activeIndex === absoluteIndex[item.id]\"><!-- column select --></td>\r\n </tr>\r\n <ng-container *ngFor=\"let subCollection of getSubcollections(item)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"collectionRowTmp; context: { item: subCollection, depth: depth + 1 }\"\r\n ></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [":host{display:block;max-width:100%;position:relative;margin-bottom:calc(var(--space-unit) * 4);container-type:inline-size}th{border-bottom:1px solid var(--color-table-header-border);color:var(--color-weight-700);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;position:relative;white-space:nowrap;background-color:transparent}th,td{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1);color:var(--color-text-100)}tr td:first-of-type,tr th:first-of-type{text-align:center}@media screen and (min-width: 992px){tr td:first-of-type,tr th:first-of-type{padding-inline-start:var(--surface-margin-left);text-align:start}}th:last-of-type,td:last-of-type{border-inline-end:1px solid var(--color-table-header-border)}tr:first-of-type th:last-of-type{border-image:linear-gradient(0deg,var(--color-table-header-border),transparent) 1}tr:last-of-type td:last-of-type{border-image:linear-gradient(180deg,var(--color-table-header-border),transparent) 1}tbody td{border-bottom:1px solid var(--color-table-row-separator)}tbody tr:hover{background-color:var(--color-table-row-hover-bg)}.bulk-actions{margin-inline-start:calc(var(--space-unit) * 5);background-color:var(--color-surface-bg);z-index:10;display:flex;position:absolute;top:5px;height:40px}@media screen and (min-width: 992px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 8.5)}}@media screen and (min-width: 1280px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 10.5)}}.table-wrapper{display:block;overflow-y:hidden;overflow-x:auto;position:relative;width:100%;max-width:var(--surface-width)}table{width:100%}table.no-select{-webkit-user-select:none;user-select:none}.column-picker{width:24px}.sort-toggle{display:flex;align-items:center;margin-inline-start:calc(var(--space-unit) * .5)}.sort-toggle button{border:0;border-radius:var(--border-radius-lg);color:var(--color-weight-500);padding:0 2px;cursor:pointer;background-color:transparent}.sort-toggle button.active{color:var(--color-primary-700)}.sort-toggle .sort-label{margin-inline-start:calc(var(--space-unit) * .5);font-size:10px;color:var(--color-primary-600);font-weight:400}.toggle-search-filter-row{position:absolute;top:-12px;left:4px}@media screen and (min-width: 1280px){.toggle-search-filter-row{left:8px}}.toggle-search-filter-row.active{background-color:var(--color-primary-700);color:var(--color-primary-100);border-color:var(--color-primary-700)}th.filter-row{position:relative;font-size:var(--font-size-base);font-weight:400;background-color:var(--color-weight-100);box-shadow:var(--data-table-filter-box-shadow);border-left-width:0;border-right-width:0;text-align:initial;padding:0}th.filter-row input{width:100%}th.filter-row.active{border-bottom:1px solid var(--color-table-header-border)}th.filter-row .filters{margin-top:calc(var(--space-unit) * 1);display:flex;flex-wrap:wrap;gap:calc(var(--space-unit) * .5)}.filter-row-wrapper{padding:calc(var(--space-unit) * 4);padding-inline-start:0;max-height:150px;transition:max-height .2s,padding .2s,opacity .2s}.filter-row-wrapper.hidden{max-height:0px;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0}.cell-link{display:block;width:100%;height:100%}td.active{background-color:var(--color-table-row-active-bg)}.cell-content{display:flex;align-items:center;line-height:var(--font-size-sm);color:var(--color-weight-700)}.cell-content.left{justify-content:flex-start}.cell-content.center{justify-content:center}.cell-content.right{justify-content:flex-end}.selection-col{width:calc(var(--space-unit) * 8)}vdr-empty-placeholder{width:100%}.table-footer{display:flex;align-items:baseline;justify-content:space-between;margin-top:var(--space-unit);margin-inline-start:var(--surface-margin-left);margin-inline-end:var(--space-unit)}.total-items-count{font-size:var(--font-size-xs)}@container (max-width: 500px){.total-items-count{display:none}}\n", ".bulk-actions{margin-inline-start:calc(var(--space-unit) * 6);background-color:var(--color-surface-bg)}@media screen and (min-width: 992px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 9.5)}}@media screen and (min-width: 1280px){.bulk-actions{margin-inline-start:calc(var(--space-unit) * 11.5)}}.drag-handle{cursor:grab}.drag-handle-spacer{width:16px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{opacity:0}.cdk-drag-placeholder{background-color:var(--color-primary-100)!important}\n"] }]
|
|
84
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.
|
|
82
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.DataService }], propDecorators: { subCollections: [{
|
|
85
83
|
type: Input
|
|
86
84
|
}], changeOrder: [{
|
|
87
85
|
type: Output
|
|
@@ -92,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
92
90
|
type: ViewChildren,
|
|
93
91
|
args: ['collectionRow', { read: CdkDrag }]
|
|
94
92
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWUsV0FBVyxFQUFxQixNQUFNLHdCQUF3QixDQUFDO0FBQzlGLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILG1CQUFtQixHQUl0QixNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQWlCaEMsTUFBTSxPQUFPLDRCQUNULFNBQVEsbUJBQXdDO0lBWWhELFlBQ2MsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxXQUF3QixFQUMxQixRQUFrQjtRQUUxQixLQUFLLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMakQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFacEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQU1qRSxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQTZCLEVBQUUsQ0FBQztRQXNDN0Msa0JBQWEsR0FB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WSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RSxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzhHQXRGUSw0QkFBNEI7a0dBQTVCLDRCQUE0QixrTUFNMUIsV0FBVyxpSUFJaUIsT0FBTyx5RUNqRGxELG91VEE0TUE7OzJGRHJLYSw0QkFBNEI7a0JBVHhDLFNBQVM7K0JBQ0ksMkJBQTJCLG1CQU1wQix1QkFBdUIsQ0FBQyxNQUFNO3lLQU10QyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ21DLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJVSxpQkFBaUI7c0JBQWxFLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgRHJhZ0Ryb3AsIERyYWdSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBEYXRhVGFibGUyQ29tcG9uZW50LFxyXG4gICAgR2V0Q29sbGVjdGlvbkxpc3RRdWVyeSxcclxuICAgIEl0ZW1PZixcclxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uVGFibGVJdGVtID0gSXRlbU9mPEdldENvbGxlY3Rpb25MaXN0UXVlcnksICdjb2xsZWN0aW9ucyc+O1xyXG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uT3JkZXJFdmVudCA9IHtcclxuICAgIGNvbGxlY3Rpb25JZDogc3RyaW5nO1xyXG4gICAgcGFyZW50SWQ6IHN0cmluZztcclxuICAgIGluZGV4OiBudW1iZXI7XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItY29sbGVjdGlvbi1kYXRhLXRhYmxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9uLWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbXHJcbiAgICAgICAgJy4uLy4uLy4uLy4uL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtMi9kYXRhLXRhYmxlMi5jb21wb25lbnQuc2NzcycsXHJcbiAgICAgICAgJy4vY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJyxcclxuICAgIF0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25EYXRhVGFibGVDb21wb25lbnRcclxuICAgIGV4dGVuZHMgRGF0YVRhYmxlMkNvbXBvbmVudDxDb2xsZWN0aW9uVGFibGVJdGVtPlxyXG4gICAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXRcclxue1xyXG4gICAgQElucHV0KCkgc3ViQ29sbGVjdGlvbnM6IENvbGxlY3Rpb25UYWJsZUl0ZW1bXTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2VPcmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sbGVjdGlvbk9yZGVyRXZlbnQ+KCk7XHJcbiAgICBAVmlld0NoaWxkKENka0Ryb3BMaXN0LCB7IHN0YXRpYzogdHJ1ZSB9KSBkcm9wTGlzdDogQ2RrRHJvcExpc3Q8e1xyXG4gICAgICAgIGRlcHRoOiBudW1iZXI7XHJcbiAgICAgICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblRhYmxlSXRlbTtcclxuICAgIH0+O1xyXG4gICAgQFZpZXdDaGlsZHJlbignY29sbGVjdGlvblJvdycsIHsgcmVhZDogQ2RrRHJhZyB9KSBjb2xsZWN0aW9uUm93TGlzdDogUXVlcnlMaXN0PENka0RyYWc+O1xyXG4gICAgZHJhZ1JlZnM6IERyYWdSZWZbXSA9IFtdO1xyXG4gICAgYWJzb2x1dGVJbmRleDogeyBbaWQ6IHN0cmluZ106IG51bWJlciB9ID0ge307XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBkcmFnRHJvcDogRHJhZ0Ryb3AsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZiwgbG9jYWxTdG9yYWdlU2VydmljZSwgZGF0YVNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBpZiAoY2hhbmdlcy5zdWJDb2xsZWN0aW9ucyB8fCBjaGFuZ2VzLml0ZW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbENvbGxlY3Rpb25zOiBDb2xsZWN0aW9uVGFibGVJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIHRoaXMuaXRlbXMgPz8gW10pIHtcclxuICAgICAgICAgICAgICAgIGFsbENvbGxlY3Rpb25zLnB1c2goY29sbGVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJDb2xsZWN0aW9uTWF0Y2hlcyA9IHRoaXMuZ2V0U3ViY29sbGVjdGlvbnMoY29sbGVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICBhbGxDb2xsZWN0aW9ucy5wdXNoKC4uLnN1YkNvbGxlY3Rpb25NYXRjaGVzLmZsYXQoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYWxsQ29sbGVjdGlvbnMuZm9yRWFjaCgoY29sbGVjdGlvbiwgaW5kZXgpID0+ICh0aGlzLmFic29sdXRlSW5kZXhbY29sbGVjdGlvbi5pZF0gPSBpbmRleCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uUm93TGlzdC5jaGFuZ2VzLnN1YnNjcmliZSgodmFsOiBRdWVyeUxpc3Q8Q2RrRHJhZz4pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wTGlzdC5nZXRTb3J0ZWRJdGVtcygpLmZvckVhY2goaXRlbSA9PiB0aGlzLmRyb3BMaXN0LnJlbW92ZUl0ZW0oaXRlbSkpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlZiBvZiB2YWwudG9BcnJheSgpKSB7XHJcbiAgICAgICAgICAgICAgICByZWYuZHJvcENvbnRhaW5lciA9IHRoaXMuZHJvcExpc3Q7XHJcbiAgICAgICAgICAgICAgICByZWYuX2RyYWdSZWYuX3dpdGhEcm9wQ29udGFpbmVyKHRoaXMuZHJvcExpc3QuX2Ryb3BMaXN0UmVmKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZHJvcExpc3QuYWRkSXRlbShyZWYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3ViY29sbGVjdGlvbnMoaXRlbTogQ29sbGVjdGlvblRhYmxlSXRlbSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN1YkNvbGxlY3Rpb25zPy5maWx0ZXIoYyA9PiBjLnBhcmVudElkID09PSBpdGVtLmlkKSA/PyBbXTtcclxuICAgIH1cclxuXHJcbiAgICBzb3J0UHJlZGljYXRlID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IENka0RyYWc8eyBkZXB0aDogbnVtYmVyOyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uVGFibGVJdGVtIH0+KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUF0SW5kZXggPSB0aGlzLmRyb3BMaXN0LmdldFNvcnRlZEl0ZW1zKClbaW5kZXhdO1xyXG4gICAgICAgIHJldHVybiBpdGVtQXRJbmRleD8uZGF0YS5jb2xsZWN0aW9uLnBhcmVudElkID09PSBpdGVtLmRhdGEuY29sbGVjdGlvbi5wYXJlbnRJZDtcclxuICAgIH07XHJcblxyXG4gICAgb25Ecm9wKFxyXG4gICAgICAgIGV2ZW50OiBDZGtEcmFnRHJvcDx7XHJcbiAgICAgICAgICAgIGRlcHRoOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25UYWJsZUl0ZW07XHJcbiAgICAgICAgfT4sXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBpc1RvcExldmVsID0gZXZlbnQuaXRlbS5kYXRhLmNvbGxlY3Rpb24uYnJlYWRjcnVtYnMubGVuZ3RoID09PSAyO1xyXG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleE9mZnNldCA9IGlzVG9wTGV2ZWwgPyAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgOiAwO1xyXG4gICAgICAgIGNvbnN0IHBhcmVudElkID0gZXZlbnQuaXRlbS5kYXRhLmNvbGxlY3Rpb24ucGFyZW50SWQ7XHJcbiAgICAgICAgY29uc3QgcGFyZW50SW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleChpID0+IGkuaWQgPT09IHBhcmVudElkKTtcclxuICAgICAgICBjb25zdCBhZGp1c3RlZEluZGV4ID0gcGFnZUluZGV4T2Zmc2V0ICsgZXZlbnQuY3VycmVudEluZGV4IC0gcGFyZW50SW5kZXggLSAxO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlT3JkZXIuZW1pdCh7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb25JZDogZXZlbnQuaXRlbS5kYXRhLmNvbGxlY3Rpb24uaWQsXHJcbiAgICAgICAgICAgIGluZGV4OiBhZGp1c3RlZEluZGV4LFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogZXZlbnQuaXRlbS5kYXRhLmNvbGxlY3Rpb24ucGFyZW50SWQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChpc1RvcExldmVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtc107XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGV2ZW50LnByZXZpb3VzSW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShldmVudC5jdXJyZW50SW5kZXgsIDAsIGV2ZW50Lml0ZW0uZGF0YS5jb2xsZWN0aW9uKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLml0ZW1zLmZpbmQoaSA9PiBpLmlkID09PSBwYXJlbnRJZCk7XHJcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1YkNvbGxlY3Rpb25zID0gdGhpcy5nZXRTdWJjb2xsZWN0aW9ucyhwYXJlbnQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWRQcmV2aW91c0luZGV4ID0gcGFnZUluZGV4T2Zmc2V0ICsgZXZlbnQucHJldmlvdXNJbmRleCAtIHBhcmVudEluZGV4IC0gMTtcclxuICAgICAgICAgICAgICAgIHN1YkNvbGxlY3Rpb25zLnNwbGljZShhZGp1c3RlZFByZXZpb3VzSW5kZXgsIDEpO1xyXG4gICAgICAgICAgICAgICAgc3ViQ29sbGVjdGlvbnMuc3BsaWNlKGV2ZW50LmN1cnJlbnRJbmRleCwgMCwgZXZlbnQuaXRlbS5kYXRhLmNvbGxlY3Rpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzXHJcbiAgICAqbmdJZj1cImZpbHRlcnNcIlxyXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICBbZGF0YVRhYmxlSWRdPVwiaWRcIlxyXG4+PC92ZHItZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cz5cclxuPGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLWFjdGlvbnNcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ2ZHItYnVsay1hY3Rpb24tbWVudVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPHRhYmxlIGNsYXNzPVwiXCIgW2NsYXNzLm5vLXNlbGVjdF09XCJkaXNhYmxlU2VsZWN0XCI+XHJcbiAgICAgICAgPHRoZWFkIFtjbGFzcy5pdGVtcy1zZWxlY3RlZF09XCJzZWxlY3Rpb25NYW5hZ2VyPy5zZWxlY3Rpb24ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImhlYWRpbmctcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJzZWxlY3Rpb25NYW5hZ2VyXCIgY2xhc3M9XCJzZWxlY3Rpb24tY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctaGFuZGxlLXNwYWNlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uTWFuYWdlcj8uYXJlQWxsQ3VycmVudEl0ZW1zU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVG9nZ2xlQWxsQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB2aXNpYmxlU29ydGVkQ29sdW1uczsgbGFzdCBhcyBpc0xhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5leHBhbmRdPVwiY29sdW1uLmV4cGFuZFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtY29udGVudFwiIFtuZ0NsYXNzXT1cImNvbHVtbi5hbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLXVpLWV4dGVuc2lvbi1wb2ludFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2F0aW9uSWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21ldGFkYXRhXT1cImNvbHVtbi5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGk9XCJkYXRhVGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RvcFB4XT1cIi02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZWZ0UHhdPVwiLTI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk9XCJibG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbHVtbi5oZWFkaW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci11aS1leHRlbnNpb24tcG9pbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uc29ydCBhcyBzb3J0XCIgY2xhc3M9XCJzb3J0LXRvZ2dsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic29ydC50b2dnbGVTb3J0T3JkZXIoKVwiIFtjbGFzcy5hY3RpdmVdPVwic29ydC5zb3J0T3JkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gKm5nSWY9XCIhc29ydC5zb3J0T3JkZXJcIiBzaGFwZT1cInR3by13YXktYXJyb3dzIGxlZnRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiAqbmdJZj1cInNvcnQuc29ydE9yZGVyID09PSAnQVNDJ1wiIHNoYXBlPVwiYXJyb3cgdXBcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiAqbmdJZj1cInNvcnQuc29ydE9yZGVyID09PSAnREVTQydcIiBzaGFwZT1cImFycm93IGRvd25cIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic29ydC1sYWJlbFwiICpuZ0lmPVwic29ydC5zb3J0T3JkZXJcIj57eyBzb3J0LnNvcnRPcmRlciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1waWNrZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kYXRhLXRhYmxlLWNvbHVtLXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VpTGFuZ3VhZ2VdPVwidWlMYW5ndWFnZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJzb3J0ZWRDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW9yZGVyKT1cIm9uQ29sdW1uUmVvcmRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNldENvbHVtbnMpPVwib25Db2x1bW5zUmVzZXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1kYXRhLXRhYmxlLWNvbHVtLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdJZj1cInNlYXJjaENvbXBvbmVudCB8fCBjdXN0b21TZWFyY2hUZW1wbGF0ZSB8fCBmaWx0ZXJzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwidmlzaWJsZVNvcnRlZENvbHVtbnMubGVuZ3RoICsgKHNlbGVjdGlvbk1hbmFnZXIgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzaG93U2VhcmNoRmlsdGVyUm93XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWdob3N0IHRvZ2dsZS1zZWFyY2gtZmlsdGVyLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2hvd1NlYXJjaEZpbHRlclJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWFyY2hGaWx0ZXJSb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInY29tbW9uLnNlYXJjaC1hbmQtZmlsdGVyLWxpc3QnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInNlYXJjaFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1yb3ctd3JhcHBlclwiIFtjbGFzcy5oaWRkZW5dPVwiIXNob3dTZWFyY2hGaWx0ZXJSb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaENvbXBvbmVudD8udGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNlYXJjaFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZGF0YS10YWJsZS1maWx0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3RpdmVGaWx0ZXIgb2YgZmlsdGVycy5hY3RpdmVGaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcldpdGhWYWx1ZV09XCJhY3RpdmVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZGF0YS10YWJsZS1maWx0ZXJzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZGF0YS10YWJsZS1maWx0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVycy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZGF0YS10YWJsZS1maWx0ZXJzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItYWRkLWZpbHRlci1wcmVzZXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YVRhYmxlSWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1hZGQtZmlsdGVyLXByZXNldC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgPHRib2R5XHJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0TG9ja0F4aXM9XCJ5XCJcclxuICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRQcmVkaWNhdGVdPVwic29ydFByZWRpY2F0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGl0ZW1zXHJcbiAgICAgICAgICAgICAgICAgICAgfCBwYWdpbmF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNQZXJQYWdlOiBpdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiBjdXJyZW50UGFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxJdGVtczogdG90YWxJdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBpbmRleCBhcyBpO1xyXG4gICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUZuXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2xsZWN0aW9uUm93VG1wXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtLCBpOiBpLCBkZXB0aDogMCB9XCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCIhaXRlbXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cInZpc2libGVTb3J0ZWRDb2x1bW5zLmxlbmd0aCArIChzZWxlY3Rpb25NYW5hZ2VyID8gMiA6IDEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZW1wdHktcGxhY2Vob2xkZXIgW2VtcHR5U3RhdGVMYWJlbF09XCJlbXB0eVN0YXRlTGFiZWxcIj48L3Zkci1lbXB0eS1wbGFjZWhvbGRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XHJcbiAgICA8dmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzXHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJpdGVtc1BlclBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L3Zkci1pdGVtcy1wZXItcGFnZS1jb250cm9scz5cclxuICAgIDxkaXYgKm5nSWY9XCJ0b3RhbEl0ZW1zXCIgY2xhc3M9XCJwNSB0b3RhbC1pdGVtcy1jb3VudFwiPlxyXG4gICAgICAgIHt7ICdjb21tb24udG90YWwtaXRlbXMnIHwgdHJhbnNsYXRlIDogeyBjdXJyZW50U3RhcnQsIGN1cnJlbnRFbmQsIHRvdGFsSXRlbXMgfSB9fVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHZkci1wYWdpbmF0aW9uLWNvbnRyb2xzXHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXHJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2VcIlxyXG4gICAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L3Zkci1wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29sbGVjdGlvblJvd1RtcCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtZGVwdGg9XCJkZXB0aFwiPlxyXG4gICAgPHRyICNjb2xsZWN0aW9uUm93IGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cInsgZGVwdGg6IGRlcHRoLCBjb2xsZWN0aW9uOiBpdGVtIH1cIiBjZGtEcmFnQm91bmRhcnk9XCJ0Ym9keVwiPlxyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXJcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUluZGV4ID09PSBhYnNvbHV0ZUluZGV4W2l0ZW0uaWRdXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3Rpb24tY29sXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGVcIiBjZGtEcmFnSGFuZGxlIFt0aXRsZV09XCInY2F0YWxvZy5yZW9yZGVyLWNvbGxlY3Rpb24nIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZHJhZy1oYW5kbGVcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uTWFuYWdlcj8uaXNTZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHZpc2libGVTb3J0ZWRDb2x1bW5zXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVJbmRleCA9PT0gYWJzb2x1dGVJbmRleFtpdGVtLmlkXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC1jb250ZW50XCIgW25nQ2xhc3NdPVwiY29sdW1uLmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21Db21wb25lbnRzLmdldChjb2x1bW4uaWQpIGFzIGNvbXBvbmVudENvbmZpZzsgZWxzZSBkZWZhdWx0Q29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50Q29uZmlnLmNvbmZpZy5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IHsgcm93SXRlbTogaXRlbSB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0b3I6IGNvbXBvbmVudENvbmZpZy5pbmplY3RvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29tcG9uZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4udGVtcGxhdGU7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgZGVwdGg6IGRlcHRoIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlSW5kZXggPT09IGFic29sdXRlSW5kZXhbaXRlbS5pZF1cIj48IS0tIGNvbHVtbiBzZWxlY3QgLS0+PC90ZD5cclxuICAgIDwvdHI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJDb2xsZWN0aW9uIG9mIGdldFN1YmNvbGxlY3Rpb25zKGl0ZW0pXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbGxlY3Rpb25Sb3dUbXA7IGNvbnRleHQ6IHsgaXRlbTogc3ViQ29sbGVjdGlvbiwgZGVwdGg6IGRlcHRoICsgMSB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWUsV0FBVyxFQUFXLE1BQU0sd0JBQXdCLENBQUM7QUFDcEYsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsbUJBQW1CLEVBQWtDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBaUIxRyxNQUFNLE9BQU8sNEJBQ1QsU0FBUSxtQkFBd0M7SUFZaEQsWUFDYyxpQkFBb0MsRUFDcEMsV0FBd0I7UUFFbEMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSDVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFWNUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQU1qRSxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQTZCLEVBQUUsQ0FBQztRQW9DN0Msa0JBQWEsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFpRSxFQUFFLEVBQUU7WUFDakcsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENB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QyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDOytHQXBGUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixrTUFNMUIsV0FBVyxpSUFJaUIsT0FBTyx5RUMxQ2xELG91VEE0TUE7OzRGRDVLYSw0QkFBNEI7a0JBVHhDLFNBQVM7K0JBQ0ksMkJBQTJCLG1CQU1wQix1QkFBdUIsQ0FBQyxNQUFNO2dIQU10QyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ21DLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJVSxpQkFBaUI7c0JBQWxFLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgRHJhZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlLCBEYXRhVGFibGUyQ29tcG9uZW50LCBHZXRDb2xsZWN0aW9uTGlzdFF1ZXJ5LCBJdGVtT2YgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25UYWJsZUl0ZW0gPSBJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz47XHJcbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25PcmRlckV2ZW50ID0ge1xyXG4gICAgY29sbGVjdGlvbklkOiBzdHJpbmc7XHJcbiAgICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gICAgaW5kZXg6IG51bWJlcjtcclxufTtcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jb2xsZWN0aW9uLWRhdGEtdGFibGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbGxlY3Rpb24tZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFtcclxuICAgICAgICAnLi4vLi4vLi4vLi4vY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvZGF0YS10YWJsZS0yL2RhdGEtdGFibGUyLmNvbXBvbmVudC5zY3NzJyxcclxuICAgICAgICAnLi9jb2xsZWN0aW9uLWRhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBEYXRhVGFibGUyQ29tcG9uZW50PENvbGxlY3Rpb25UYWJsZUl0ZW0+XHJcbiAgICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgICBASW5wdXQoKSBzdWJDb2xsZWN0aW9uczogQ29sbGVjdGlvblRhYmxlSXRlbVtdO1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZU9yZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xsZWN0aW9uT3JkZXJFdmVudD4oKTtcclxuICAgIEBWaWV3Q2hpbGQoQ2RrRHJvcExpc3QsIHsgc3RhdGljOiB0cnVlIH0pIGRyb3BMaXN0OiBDZGtEcm9wTGlzdDx7XHJcbiAgICAgICAgZGVwdGg6IG51bWJlcjtcclxuICAgICAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uVGFibGVJdGVtO1xyXG4gICAgfT47XHJcbiAgICBAVmlld0NoaWxkcmVuKCdjb2xsZWN0aW9uUm93JywgeyByZWFkOiBDZGtEcmFnIH0pIGNvbGxlY3Rpb25Sb3dMaXN0OiBRdWVyeUxpc3Q8Q2RrRHJhZz47XHJcbiAgICBkcmFnUmVmczogRHJhZ1JlZltdID0gW107XHJcbiAgICBhYnNvbHV0ZUluZGV4OiB7IFtpZDogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGNoYW5nZURldGVjdG9yUmVmLCBkYXRhU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLnN1YkNvbGxlY3Rpb25zIHx8IGNoYW5nZXMuaXRlbXMpIHtcclxuICAgICAgICAgICAgY29uc3QgYWxsQ29sbGVjdGlvbnM6IENvbGxlY3Rpb25UYWJsZUl0ZW1bXSA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgdGhpcy5pdGVtcyA/PyBbXSkge1xyXG4gICAgICAgICAgICAgICAgYWxsQ29sbGVjdGlvbnMucHVzaChjb2xsZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1YkNvbGxlY3Rpb25NYXRjaGVzID0gdGhpcy5nZXRTdWJjb2xsZWN0aW9ucyhjb2xsZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIGFsbENvbGxlY3Rpb25zLnB1c2goLi4uc3ViQ29sbGVjdGlvbk1hdGNoZXMuZmxhdCgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhbGxDb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uLCBpbmRleCkgPT4gKHRoaXMuYWJzb2x1dGVJbmRleFtjb2xsZWN0aW9uLmlkXSA9IGluZGV4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25Sb3dMaXN0LmNoYW5nZXMuc3Vic2NyaWJlKCh2YWw6IFF1ZXJ5TGlzdDxDZGtEcmFnPikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3BMaXN0LmdldFNvcnRlZEl0ZW1zKCkuZm9yRWFjaChpdGVtID0+IHRoaXMuZHJvcExpc3QucmVtb3ZlSXRlbShpdGVtKSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVmIG9mIHZhbC50b0FycmF5KCkpIHtcclxuICAgICAgICAgICAgICAgIHJlZi5kcm9wQ29udGFpbmVyID0gdGhpcy5kcm9wTGlzdDtcclxuICAgICAgICAgICAgICAgIHJlZi5fZHJhZ1JlZi5fd2l0aERyb3BDb250YWluZXIodGhpcy5kcm9wTGlzdC5fZHJvcExpc3RSZWYpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wTGlzdC5hZGRJdGVtKHJlZik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdWJjb2xsZWN0aW9ucyhpdGVtOiBDb2xsZWN0aW9uVGFibGVJdGVtKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViQ29sbGVjdGlvbnM/LmZpbHRlcihjID0+IGMucGFyZW50SWQgPT09IGl0ZW0uaWQpID8/IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHNvcnRQcmVkaWNhdGUgPSAoaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzx7IGRlcHRoOiBudW1iZXI7IGNvbGxlY3Rpb246IENvbGxlY3Rpb25UYWJsZUl0ZW0gfT4pID0+IHtcclxuICAgICAgICBjb25zdCBpdGVtQXRJbmRleCA9IHRoaXMuZHJvcExpc3QuZ2V0U29ydGVkSXRlbXMoKVtpbmRleF07XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1BdEluZGV4Py5kYXRhLmNvbGxlY3Rpb24ucGFyZW50SWQgPT09IGl0ZW0uZGF0YS5jb2xsZWN0aW9uLnBhcmVudElkO1xyXG4gICAgfTtcclxuXHJcbiAgICBvbkRyb3AoXHJcbiAgICAgICAgZXZlbnQ6IENka0RyYWdEcm9wPHtcclxuICAgICAgICAgICAgZGVwdGg6IG51bWJlcjtcclxuICAgICAgICAgICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblRhYmxlSXRlbTtcclxuICAgICAgICB9PixcclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IGlzVG9wTGV2ZWwgPSBldmVudC5pdGVtLmRhdGEuY29sbGVjdGlvbi5icmVhZGNydW1icy5sZW5ndGggPT09IDI7XHJcbiAgICAgICAgY29uc3QgcGFnZUluZGV4T2Zmc2V0ID0gaXNUb3BMZXZlbCA/ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSA6IDA7XHJcbiAgICAgICAgY29uc3QgcGFyZW50SWQgPSBldmVudC5pdGVtLmRhdGEuY29sbGVjdGlvbi5wYXJlbnRJZDtcclxuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGkgPT4gaS5pZCA9PT0gcGFyZW50SWQpO1xyXG4gICAgICAgIGNvbnN0IGFkanVzdGVkSW5kZXggPSBwYWdlSW5kZXhPZmZzZXQgKyBldmVudC5jdXJyZW50SW5kZXggLSBwYXJlbnRJbmRleCAtIDE7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VPcmRlci5lbWl0KHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbklkOiBldmVudC5pdGVtLmRhdGEuY29sbGVjdGlvbi5pZCxcclxuICAgICAgICAgICAgaW5kZXg6IGFkanVzdGVkSW5kZXgsXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBldmVudC5pdGVtLmRhdGEuY29sbGVjdGlvbi5wYXJlbnRJZCxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGlzVG9wTGV2ZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLml0ZW1zXTtcclxuICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoZXZlbnQucHJldmlvdXNJbmRleCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGV2ZW50LmN1cnJlbnRJbmRleCwgMCwgZXZlbnQuaXRlbS5kYXRhLmNvbGxlY3Rpb24pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuaXRlbXMuZmluZChpID0+IGkuaWQgPT09IHBhcmVudElkKTtcclxuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViQ29sbGVjdGlvbnMgPSB0aGlzLmdldFN1YmNvbGxlY3Rpb25zKHBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhZGp1c3RlZFByZXZpb3VzSW5kZXggPSBwYWdlSW5kZXhPZmZzZXQgKyBldmVudC5wcmV2aW91c0luZGV4IC0gcGFyZW50SW5kZXggLSAxO1xyXG4gICAgICAgICAgICAgICAgc3ViQ29sbGVjdGlvbnMuc3BsaWNlKGFkanVzdGVkUHJldmlvdXNJbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICBzdWJDb2xsZWN0aW9ucy5zcGxpY2UoZXZlbnQuY3VycmVudEluZGV4LCAwLCBldmVudC5pdGVtLmRhdGEuY29sbGVjdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxufVxyXG4iLCI8dmRyLWRhdGEtdGFibGUtZmlsdGVyLXByZXNldHNcclxuICAgICpuZ0lmPVwiZmlsdGVyc1wiXHJcbiAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgIFtkYXRhVGFibGVJZF09XCJpZFwiXHJcbj48L3Zkci1kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzPlxyXG48ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstYWN0aW9uc1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInZkci1idWxrLWFjdGlvbi1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJcIiBbY2xhc3Mubm8tc2VsZWN0XT1cImRpc2FibGVTZWxlY3RcIj5cclxuICAgICAgICA8dGhlYWQgW2NsYXNzLml0ZW1zLXNlbGVjdGVkXT1cInNlbGVjdGlvbk1hbmFnZXI/LnNlbGVjdGlvbi5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiaGVhZGluZy1yb3dcIj5cclxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXJcIiBjbGFzcz1cInNlbGVjdGlvbi1jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGUtc3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25NYW5hZ2VyPy5hcmVBbGxDdXJyZW50SXRlbXNTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGVBbGxDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHZpc2libGVTb3J0ZWRDb2x1bW5zOyBsYXN0IGFzIGlzTGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV4cGFuZF09XCJjb2x1bW4uZXhwYW5kXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC1jb250ZW50XCIgW25nQ2xhc3NdPVwiY29sdW1uLmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItdWktZXh0ZW5zaW9uLXBvaW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYXRpb25JZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWV0YWRhdGFdPVwiY29sdW1uLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaT1cImRhdGFUYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9wUHhdPVwiLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xlZnRQeF09XCItMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheT1cImJsb2NrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29sdW1uLmhlYWRpbmcgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLXVpLWV4dGVuc2lvbi1wb2ludD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5zb3J0IGFzIHNvcnRcIiBjbGFzcz1cInNvcnQtdG9nZ2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzb3J0LnRvZ2dsZVNvcnRPcmRlcigpXCIgW2NsYXNzLmFjdGl2ZV09XCJzb3J0LnNvcnRPcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiAqbmdJZj1cIiFzb3J0LnNvcnRPcmRlclwiIHNoYXBlPVwidHdvLXdheS1hcnJvd3MgbGVmdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uICpuZ0lmPVwic29ydC5zb3J0T3JkZXIgPT09ICdBU0MnXCIgc2hhcGU9XCJhcnJvdyB1cFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uICpuZ0lmPVwic29ydC5zb3J0T3JkZXIgPT09ICdERVNDJ1wiIHNoYXBlPVwiYXJyb3cgZG93blwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LWxhYmVsXCIgKm5nSWY9XCJzb3J0LnNvcnRPcmRlclwiPnt7IHNvcnQuc29ydE9yZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXBpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRhdGEtdGFibGUtY29sdW0tcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdWlMYW5ndWFnZV09XCJ1aUxhbmd1YWdlJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cInNvcnRlZENvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlb3JkZXIpPVwib25Db2x1bW5SZW9yZGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc2V0Q29sdW1ucyk9XCJvbkNvbHVtbnNSZXNldCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWRhdGEtdGFibGUtY29sdW0tcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPHRyICpuZ0lmPVwic2VhcmNoQ29tcG9uZW50IHx8IGN1c3RvbVNlYXJjaFRlbXBsYXRlIHx8IGZpbHRlcnM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJ2aXNpYmxlU29ydGVkQ29sdW1ucy5sZW5ndGggKyAoc2VsZWN0aW9uTWFuYWdlciA/IDIgOiAxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNob3dTZWFyY2hGaWx0ZXJSb3dcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3QgdG9nZ2xlLXNlYXJjaC1maWx0ZXItcm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzaG93U2VhcmNoRmlsdGVyUm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlYXJjaEZpbHRlclJvdygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidjb21tb24uc2VhcmNoLWFuZC1maWx0ZXItbGlzdCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwic2VhcmNoXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXJvdy13cmFwcGVyXCIgW2NsYXNzLmhpZGRlbl09XCIhc2hvd1NlYXJjaEZpbHRlclJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNoQ29tcG9uZW50Py50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tU2VhcmNoVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kYXRhLXRhYmxlLWZpbHRlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGl2ZUZpbHRlciBvZiBmaWx0ZXJzLmFjdGl2ZUZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyV2l0aFZhbHVlXT1cImFjdGl2ZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1kYXRhLXRhYmxlLWZpbHRlcnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kYXRhLXRhYmxlLWZpbHRlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXJzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1kYXRhLXRhYmxlLWZpbHRlcnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1hZGQtZmlsdGVyLXByZXNldC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhVGFibGVJZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWFkZC1maWx0ZXItcHJlc2V0LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90aGVhZD5cclxuICAgICAgICA8dGJvZHlcclxuICAgICAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICAgICAgY2RrRHJvcExpc3RMb2NrQXhpcz1cInlcIlxyXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydFByZWRpY2F0ZV09XCJzb3J0UHJlZGljYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgaXRlbXNcclxuICAgICAgICAgICAgICAgICAgICB8IHBhZ2luYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1BlclBhZ2U6IGl0ZW1zUGVyUGFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zOiB0b3RhbEl0ZW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGluZGV4IGFzIGk7XHJcbiAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Rm5cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbGxlY3Rpb25Sb3dUbXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW06IGl0ZW0sIGk6IGksIGRlcHRoOiAwIH1cIlxyXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIiFpdGVtcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwidmlzaWJsZVNvcnRlZENvbHVtbnMubGVuZ3RoICsgKHNlbGVjdGlvbk1hbmFnZXIgPyAyIDogMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1lbXB0eS1wbGFjZWhvbGRlciBbZW1wdHlTdGF0ZUxhYmVsXT1cImVtcHR5U3RhdGVMYWJlbFwiPjwvdmRyLWVtcHR5LXBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuICAgIDx2ZHItaXRlbXMtcGVyLXBhZ2UtY29udHJvbHNcclxuICAgICAgICAqbmdJZj1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCJcclxuICAgICAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cIml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvdmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzPlxyXG4gICAgPGRpdiAqbmdJZj1cInRvdGFsSXRlbXNcIiBjbGFzcz1cInA1IHRvdGFsLWl0ZW1zLWNvdW50XCI+XHJcbiAgICAgICAge3sgJ2NvbW1vbi50b3RhbC1pdGVtcycgfCB0cmFuc2xhdGUgOiB7IGN1cnJlbnRTdGFydCwgY3VycmVudEVuZCwgdG90YWxJdGVtcyB9IH19XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8dmRyLXBhZ2luYXRpb24tY29udHJvbHNcclxuICAgICAgICAqbmdJZj1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvdmRyLXBhZ2luYXRpb24tY29udHJvbHM+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2xsZWN0aW9uUm93VG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1kZXB0aD1cImRlcHRoXCI+XHJcbiAgICA8dHIgI2NvbGxlY3Rpb25Sb3cgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwieyBkZXB0aDogZGVwdGgsIGNvbGxlY3Rpb246IGl0ZW0gfVwiIGNka0RyYWdCb3VuZGFyeT1cInRib2R5XCI+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uTWFuYWdlclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlSW5kZXggPT09IGFic29sdXRlSW5kZXhbaXRlbS5pZF1cIlxyXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdGlvbi1jb2xcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIGNka0RyYWdIYW5kbGUgW3RpdGxlXT1cIidjYXRhbG9nLnJlb3JkZXItY29sbGVjdGlvbicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJkcmFnLWhhbmRsZVwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25NYW5hZ2VyPy5pc1NlbGVjdGVkKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhpdGVtLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdmlzaWJsZVNvcnRlZENvbHVtbnNcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUluZGV4ID09PSBhYnNvbHV0ZUluZGV4W2l0ZW0uaWRdXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLWNvbnRlbnRcIiBbbmdDbGFzc109XCJjb2x1bW4uYWxpZ25cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbUNvbXBvbmVudHMuZ2V0KGNvbHVtbi5pZCkgYXMgY29tcG9uZW50Q29uZmlnOyBlbHNlIGRlZmF1bHRDb21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRDb25maWcuY29uZmlnLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyByb3dJdGVtOiBpdGVtIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmplY3RvcjogY29tcG9uZW50Q29uZmlnLmluamVjdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb21wb25lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi50ZW1wbGF0ZTsgY29udGV4dDogeyBpdGVtOiBpdGVtLCBkZXB0aDogZGVwdGggfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVJbmRleCA9PT0gYWJzb2x1dGVJbmRleFtpdGVtLmlkXVwiPjwhLS0gY29sdW1uIHNlbGVjdCAtLT48L3RkPlxyXG4gICAgPC90cj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YkNvbGxlY3Rpb24gb2YgZ2V0U3ViY29sbGVjdGlvbnMoaXRlbSlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sbGVjdGlvblJvd1RtcDsgY29udGV4dDogeyBpdGVtOiBzdWJDb2xsZWN0aW9uLCBkZXB0aDogZGVwdGggKyAxIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|