@vendure/admin-ui 3.0.2 → 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 +2 -0
- 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/extension/register-route-component.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/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
- 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 +5 -5
- 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 +136 -148
- 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 +13 -13
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendure-admin-ui-settings.mjs","sources":["../../src/lib/settings/src/components/zone-member-list/zone-member-controls.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list-header.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.html","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.ts","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.html","../../src/lib/settings/src/components/permission-grid/permission-grid.component.ts","../../src/lib/settings/src/components/permission-grid/permission-grid.component.html","../../src/lib/settings/src/components/admin-detail/admin-detail.component.ts","../../src/lib/settings/src/components/admin-detail/admin-detail.component.html","../../src/lib/settings/src/components/administrator-list/administrator-list-bulk-actions.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.html","../../src/lib/settings/src/components/channel-detail/channel-detail.component.ts","../../src/lib/settings/src/components/channel-detail/channel-detail.component.html","../../src/lib/settings/src/components/channel-list/channel-list-bulk-actions.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.html","../../src/lib/settings/src/components/country-detail/country-detail.component.ts","../../src/lib/settings/src/components/country-detail/country-detail.component.html","../../src/lib/settings/src/components/country-list/country-list-bulk-actions.ts","../../src/lib/settings/src/components/country-list/country-list.component.ts","../../src/lib/settings/src/components/country-list/country-list.component.html","../../src/lib/settings/src/components/global-settings/global-settings.component.ts","../../src/lib/settings/src/components/global-settings/global-settings.component.html","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.ts","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.html","../../src/lib/settings/src/components/payment-method-list/payment-method-list-bulk-actions.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.html","../../src/lib/settings/src/components/profile/profile.component.ts","../../src/lib/settings/src/components/profile/profile.component.html","../../src/lib/settings/src/components/role-detail/role-detail.component.ts","../../src/lib/settings/src/components/role-detail/role-detail.component.html","../../src/lib/settings/src/components/role-list/role-list-bulk-actions.ts","../../src/lib/settings/src/components/role-list/role-list.component.ts","../../src/lib/settings/src/components/role-list/role-list.component.html","../../src/lib/settings/src/components/seller-detail/seller-detail.component.ts","../../src/lib/settings/src/components/seller-detail/seller-detail.component.html","../../src/lib/settings/src/components/seller-list/seller-list-bulk-actions.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.html","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.ts","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.html","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.ts","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.html","../../src/lib/settings/src/components/test-address-form/test-address-form.component.ts","../../src/lib/settings/src/components/test-address-form/test-address-form.component.html","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.ts","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.html","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.ts","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.html","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list-bulk-actions.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.html","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.ts","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.html","../../src/lib/settings/src/components/stock-location-list/stock-location-list-bulk-actions.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.html","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.ts","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.html","../../src/lib/settings/src/components/tax-category-list/tax-category-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.html","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.ts","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.html","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.html","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.ts","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.html","../../src/lib/settings/src/components/zone-detail/zone-detail.component.ts","../../src/lib/settings/src/components/zone-detail/zone-detail.component.html","../../src/lib/settings/src/components/zone-list/zone-list-bulk-actions.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.html","../../src/lib/settings/src/components/zone-member-list/zone-member-list-bulk-actions.ts","../../src/lib/settings/src/providers/routing/profile-resolver.ts","../../src/lib/settings/src/settings.routes.ts","../../src/lib/settings/src/settings.module.ts","../../src/lib/settings/src/public_api.ts","../../src/lib/settings/src/vendure-admin-ui-settings.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[vdrZoneMemberControls]',\r\n})\r\nexport class ZoneMemberControlsDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[vdrZoneMemberListHeader]',\r\n})\r\nexport class ZoneMemberListHeaderDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n BulkActionLocationId,\r\n DataService,\r\n GetZoneListQuery,\r\n GetZoneMembersDocument,\r\n GetZoneMembersQuery,\r\n ItemOf,\r\n SelectionManager,\r\n} from '@vendure/admin-ui/core';\r\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject, switchMap } from 'rxjs';\r\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport { ZoneMemberControlsDirective } from './zone-member-controls.directive';\r\nimport { ZoneMemberListHeaderDirective } from './zone-member-list-header.directive';\r\n\r\nexport type ZoneMember = { id: string; name: string; code: string };\r\n\r\n@Component({\r\n selector: 'vdr-zone-member-list',\r\n templateUrl: './zone-member-list.component.html',\r\n styleUrls: ['./zone-member-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneMemberListComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() locationId: BulkActionLocationId;\r\n @Input() members?: ZoneMember[];\r\n @Input() selectedMemberIds: string[] = [];\r\n @Input() activeZone: ItemOf<GetZoneListQuery, 'zones'>;\r\n @Output() selectionChange = new EventEmitter<string[]>();\r\n @ContentChild(ZoneMemberListHeaderDirective) headerTemplate: ZoneMemberListHeaderDirective;\r\n @ContentChild(ZoneMemberControlsDirective) controlsTemplate: ZoneMemberControlsDirective;\r\n members$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members'] | ZoneMember[]>;\r\n filterTermControl = new FormControl('');\r\n filteredMembers$: Observable<ZoneMember[]>;\r\n totalItems$: Observable<number>;\r\n currentPage = 1;\r\n itemsPerPage = 10;\r\n selectionManager = new SelectionManager<ZoneMember>({\r\n multiSelect: true,\r\n itemsAreEqual: (a, b) => a.id === b.id,\r\n additiveMode: true,\r\n });\r\n private membersInput$ = new Subject<ZoneMember[]>();\r\n private activeZoneInput$ = new BehaviorSubject<ItemOf<GetZoneListQuery, 'zones'> | undefined>(undefined);\r\n private destroy$ = new Subject<void>();\r\n private refresh$ = new Subject<void>();\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n const activeZoneMembers$ = merge(this.activeZoneInput$, this.refresh$).pipe(\r\n switchMap(activeZone =>\r\n this.activeZone\r\n ? this.dataService\r\n .query(GetZoneMembersDocument, { zoneId: this.activeZone.id })\r\n .mapSingle(({ zone }) => zone?.members ?? [])\r\n : of([]),\r\n ),\r\n );\r\n this.members$ = merge(activeZoneMembers$, this.membersInput$);\r\n\r\n this.members$.pipe(take(1)).subscribe(members => {\r\n this.selectionManager.setCurrentItems(\r\n members?.filter(m => this.selectedMemberIds.includes(m.id)) ?? [],\r\n );\r\n });\r\n this.selectionManager.selectionChanges$.pipe(takeUntil(this.destroy$)).subscribe(selection => {\r\n this.selectionChange.emit(selection.map(s => s.id));\r\n });\r\n this.filteredMembers$ = combineLatest(\r\n this.members$,\r\n this.filterTermControl.valueChanges.pipe(startWith('')),\r\n ).pipe(\r\n map(([members, filterTerm]) => {\r\n if (filterTerm) {\r\n const term = filterTerm?.toLocaleLowerCase() ?? '';\r\n return members.filter(\r\n m =>\r\n m.name.toLocaleLowerCase().includes(term) ||\r\n m.code.toLocaleLowerCase().includes(term),\r\n );\r\n } else {\r\n return members;\r\n }\r\n }),\r\n );\r\n this.totalItems$ = this.filteredMembers$.pipe(map(members => members.length));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('members' in changes) {\r\n this.membersInput$.next(this.members ?? []);\r\n }\r\n if ('activeZone' in changes) {\r\n this.activeZoneInput$.next(this.activeZone);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n refresh() {\r\n this.refresh$.next();\r\n }\r\n}\r\n","<vdr-data-table-2\r\n [id]=\"locationId\"\r\n [items]=\"filteredMembers$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\"\r\n (itemsPerPageChange)=\"itemsPerPage = $event\"\r\n (pageChange)=\"currentPage = $event\"\r\n>\r\n <vdr-bulk-action-menu\r\n [locationId]=\"locationId\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-member=\"item\">\r\n {{ member.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-member=\"item\">\r\n {{ member.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-member=\"item\">\r\n {{ member.createdAt | 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-member=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/settings/countries', member.id]\"\r\n ><span> {{ member.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\r\n <ng-template let-member=\"item\">\r\n {{ member.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-member=\"item\">\r\n <vdr-chip *ngIf=\"member.enabled\" colorType=\"success\">{{ 'common.enabled' | translate }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!member.enabled\" colorType=\"warning\">{{ 'common.disabled' | translate }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport {\r\n DataService,\r\n Dialog,\r\n GetCountryListDocument,\r\n GetCountryListQuery,\r\n GetZoneListQuery,\r\n GetZoneMembersDocument,\r\n GetZoneMembersQuery,\r\n ItemOf,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { map, withLatestFrom } from 'rxjs/operators';\r\n\r\nexport const GET_ZONE_MEMBERS = gql`\r\n query GetZoneMembers($zoneId: ID!) {\r\n zone(id: $zoneId) {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n members {\r\n createdAt\r\n updatedAt\r\n id\r\n name\r\n code\r\n enabled\r\n }\r\n }\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-add-country-to-zone-dialog',\r\n templateUrl: './add-country-to-zone-dialog.component.html',\r\n styleUrls: ['./add-country-to-zone-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddCountryToZoneDialogComponent implements Dialog<string[]>, OnInit {\r\n resolveWith: (result?: string[]) => void;\r\n zoneName: string;\r\n zoneId: string;\r\n currentMembers$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members']>;\r\n availableCountries$: Observable<Array<ItemOf<GetCountryListQuery, 'countries'>>>;\r\n selectedMemberIds: string[] = [];\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.currentMembers$ = this.dataService\r\n .query(GetZoneMembersDocument, { zoneId: this.zoneId })\r\n .mapSingle(({ zone }) => zone?.members ?? []);\r\n this.availableCountries$ = this.dataService\r\n .query(GetCountryListDocument, {\r\n options: { take: 999 },\r\n })\r\n .mapStream(data => data.countries.items)\r\n .pipe(\r\n withLatestFrom(this.currentMembers$),\r\n map(([countries, currentMembers]) =>\r\n countries.filter(c => !currentMembers.find(cm => cm.id === c.id)),\r\n ),\r\n );\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n add() {\r\n this.resolveWith(this.selectedMemberIds);\r\n }\r\n}\r\n","<ng-template vdrDialogTitle>{{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}</ng-template>\r\n\r\n<vdr-zone-member-list\r\n [members]=\"availableCountries$ | async\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n>\r\n</vdr-zone-member-list>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedMemberIds.length\" class=\"btn btn-primary\">\r\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}\r\n </button>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { PermissionDefinition } from '@vendure/admin-ui/core';\r\n\r\nexport interface PermissionGridRow {\r\n label: string;\r\n description: string;\r\n permissions: PermissionDefinition[];\r\n}\r\n\r\n/**\r\n * A table showing and allowing the setting of all possible CRUD permissions.\r\n */\r\n@Component({\r\n selector: 'vdr-permission-grid',\r\n templateUrl: './permission-grid.component.html',\r\n styleUrls: ['./permission-grid.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PermissionGridComponent implements OnInit {\r\n @Input() permissionDefinitions: PermissionDefinition[];\r\n @Input() activePermissions: string[];\r\n @Input() readonly = false;\r\n @Output() permissionChange = new EventEmitter<{ permission: string; value: boolean }>();\r\n gridData: PermissionGridRow[];\r\n\r\n ngOnInit() {\r\n this.buildGrid();\r\n }\r\n\r\n setPermission(permission: string, value: boolean) {\r\n if (!this.readonly) {\r\n this.permissionChange.emit({ permission, value });\r\n }\r\n }\r\n\r\n toggleAll(defs: PermissionDefinition[]) {\r\n const value = defs.some(d => !this.activePermissions.includes(d.name));\r\n for (const def of defs) {\r\n this.permissionChange.emit({ permission: def.name, value });\r\n }\r\n }\r\n\r\n private buildGrid() {\r\n const crudGroups = new Map<string, PermissionDefinition[]>();\r\n const nonCrud: PermissionDefinition[] = [];\r\n const crudRe = /^(Create|Read|Update|Delete)([a-zA-Z]+)$/;\r\n for (const def of this.permissionDefinitions) {\r\n const isCrud = crudRe.test(def.name);\r\n if (isCrud) {\r\n const groupName = def.name.match(crudRe)?.[2];\r\n if (groupName) {\r\n const existing = crudGroups.get(groupName);\r\n if (existing) {\r\n existing.push(def);\r\n } else {\r\n crudGroups.set(groupName, [def]);\r\n }\r\n }\r\n } else if (def.assignable) {\r\n nonCrud.push(def);\r\n }\r\n }\r\n this.gridData = [\r\n ...nonCrud.map(d => ({\r\n label: d.name,\r\n description: d.description,\r\n permissions: [d],\r\n })),\r\n ...Array.from(crudGroups.entries()).map(([label, defs]) => ({\r\n label,\r\n description: this.extractCrudDescription(defs[0]),\r\n permissions: defs,\r\n })),\r\n ];\r\n }\r\n\r\n private extractCrudDescription(def: PermissionDefinition): string {\r\n return def.description.replace(/Grants permission to [\\w]+/, 'Grants permissions on');\r\n }\r\n}\r\n","<table class=\"table\">\r\n <tbody>\r\n <tr *ngFor=\"let section of gridData\">\r\n <td class=\"permission-group left\">\r\n <div><strong>{{ section.label | translate }}</strong></div>\r\n <small>{{ section.description | translate }}</small><br>\r\n <button *ngIf=\"1 < section.permissions.length && !readonly\" class=\"button-small\" (click)=\"toggleAll(section.permissions)\">\r\n {{ 'common.toggle-all' | translate }}\r\n </button>\r\n </td>\r\n <td *ngFor=\"let permission of section.permissions\" [attr.colspan]=\"section.permissions.length === 1 ? 4 : 1\">\r\n <vdr-select-toggle\r\n size=\"small\"\r\n [title]=\"permission.description\"\r\n [label]=\"permission.name\"\r\n [disabled]=\"readonly\"\r\n [selected]=\"activePermissions?.includes(permission.name)\"\r\n (selectedChange)=\"setPermission(permission.name, $event)\"\r\n ></vdr-select-toggle>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { ResultOf } from '@graphql-typed-document-node/core';\r\nimport {\r\n ADMINISTRATOR_FRAGMENT,\r\n CreateAdministratorInput,\r\n DataService,\r\n GetAdministratorDetailDocument,\r\n getCustomFieldsDefaults,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n PermissionDefinition,\r\n RoleFragment,\r\n TypedBaseDetailComponent,\r\n UpdateAdministratorInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { CUSTOMER_ROLE_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport interface PermissionsByChannel {\r\n channelId: string;\r\n channelCode: string;\r\n permissions: { [K in Permission]: boolean };\r\n}\r\n\r\nexport const GET_ADMINISTRATOR_DETAIL = gql`\r\n query GetAdministratorDetail($id: ID!) {\r\n administrator(id: $id) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-admin-detail',\r\n templateUrl: './admin-detail.component.html',\r\n styleUrls: ['./admin-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AdminDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetAdministratorDetailDocument, 'administrator'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Administrator');\r\n detailForm = this.formBuilder.group({\r\n emailAddress: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n password: [''],\r\n roles: [\r\n [] as NonNullable<\r\n ResultOf<typeof GetAdministratorDetailDocument>['administrator']\r\n >['user']['roles'],\r\n ],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n permissionDefinitions: PermissionDefinition[];\r\n allRoles$: Observable<RoleFragment[]>;\r\n selectedRoles: RoleFragment[] = [];\r\n selectedRolePermissions: { [channelId: string]: PermissionsByChannel } = {} as any;\r\n selectedChannelId: string | null = null;\r\n\r\n getAvailableChannels(): PermissionsByChannel[] {\r\n return Object.values(this.selectedRolePermissions);\r\n }\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.allRoles$ = this.dataService.administrator\r\n .getRoles(999)\r\n .mapStream(item => item.roles.items.filter(i => i.code !== CUSTOMER_ROLE_CODE));\r\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\r\n if (\r\n !userStatus.permissions.includes(Permission.CreateAdministrator) &&\r\n !userStatus.permissions.includes(Permission.UpdateAdministrator)\r\n ) {\r\n const rolesSelect = this.detailForm.get('roles');\r\n if (rolesSelect) {\r\n rolesSelect.disable();\r\n }\r\n }\r\n });\r\n this.permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n rolesChanged(roles: RoleFragment[]) {\r\n this.buildPermissionsMap();\r\n }\r\n\r\n getPermissionsForSelectedChannel(): string[] {\r\n function getActivePermissions(input: PermissionsByChannel['permissions']): string[] {\r\n return Object.entries(input)\r\n .filter(([permission, active]) => active)\r\n .map(([permission, active]) => permission);\r\n }\r\n if (this.selectedChannelId) {\r\n const selectedChannel = this.selectedRolePermissions[this.selectedChannelId];\r\n if (selectedChannel) {\r\n const permissionMap = this.selectedRolePermissions[this.selectedChannelId].permissions;\r\n return getActivePermissions(permissionMap);\r\n }\r\n }\r\n const channels = Object.values(this.selectedRolePermissions);\r\n if (0 < channels.length) {\r\n this.selectedChannelId = channels[0].channelId;\r\n return getActivePermissions(channels[0].permissions);\r\n }\r\n return [];\r\n }\r\n\r\n create() {\r\n const { emailAddress, firstName, lastName, password, customFields, roles } = this.detailForm.value;\r\n if (!emailAddress || !firstName || !lastName || !password) {\r\n return;\r\n }\r\n const administrator: CreateAdministratorInput = {\r\n emailAddress,\r\n firstName,\r\n lastName,\r\n password,\r\n customFields,\r\n roleIds: roles?.map(role => role.id).filter(notNullOrUndefined) ?? [],\r\n };\r\n this.dataService.administrator.createAdministrator(administrator).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Administrator',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createAdministrator.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Administrator',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(({ id }) => {\r\n const formValue = this.detailForm.value;\r\n const administrator: UpdateAdministratorInput = {\r\n id,\r\n emailAddress: formValue.emailAddress,\r\n firstName: formValue.firstName,\r\n lastName: formValue.lastName,\r\n password: formValue.password,\r\n customFields: formValue.customFields,\r\n roleIds: formValue.roles?.map(role => role.id),\r\n };\r\n return this.dataService.administrator.updateAdministrator(administrator);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Administrator',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Administrator',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(\r\n entity: NonNullable<ResultOf<typeof GetAdministratorDetailDocument>['administrator']>,\r\n languageCode: LanguageCode,\r\n ) {\r\n this.detailForm.patchValue({\r\n emailAddress: entity.emailAddress,\r\n firstName: entity.firstName,\r\n lastName: entity.lastName,\r\n roles: entity.user.roles,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\r\n }\r\n const passwordControl = this.detailForm.get('password');\r\n if (passwordControl) {\r\n if (!entity.id) {\r\n passwordControl.setValidators([Validators.required]);\r\n } else {\r\n passwordControl.setValidators([]);\r\n }\r\n }\r\n this.buildPermissionsMap();\r\n }\r\n\r\n private buildPermissionsMap() {\r\n const permissionsControl = this.detailForm.get('roles');\r\n if (permissionsControl) {\r\n const roles = permissionsControl.value;\r\n const channelIdPermissionsMap = new Map<string, Set<Permission>>();\r\n const channelIdCodeMap = new Map<string, string>();\r\n\r\n for (const role of roles ?? []) {\r\n for (const channel of role.channels) {\r\n const channelPermissions = channelIdPermissionsMap.get(channel.id);\r\n const permissionSet = channelPermissions || new Set<Permission>();\r\n\r\n role.permissions.forEach(p => permissionSet.add(p));\r\n channelIdPermissionsMap.set(channel.id, permissionSet);\r\n channelIdCodeMap.set(channel.id, channel.code);\r\n }\r\n }\r\n\r\n this.selectedRolePermissions = {} as any;\r\n for (const channelId of Array.from(channelIdPermissionsMap.keys())) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const permissionSet = channelIdPermissionsMap.get(channelId)!;\r\n const permissionsHash: { [K in Permission]: boolean } = {} as any;\r\n for (const def of this.serverConfigService.getPermissionDefinitions()) {\r\n permissionsHash[def.name] = permissionSet.has(def.name as Permission);\r\n }\r\n this.selectedRolePermissions[channelId] = {\r\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n channelId,\r\n channelCode: channelIdCodeMap.get(channelId)!,\r\n permissions: permissionsHash,\r\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\r\n };\r\n }\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"administrator-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'settings.email-address-or-identifier' | translate\"\r\n for=\"emailAddress\"\r\n class=\"form-grid-span\"\r\n >\r\n <input\r\n id=\"emailAddress\"\r\n type=\"text\"\r\n formControlName=\"emailAddress\"\r\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input\r\n id=\"firstName\"\r\n type=\"text\"\r\n formControlName=\"firstName\"\r\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input\r\n id=\"lastName\"\r\n type=\"text\"\r\n formControlName=\"lastName\"\r\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"isNew$ | async\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"\r\n !(isNew$ | async) &&\r\n (['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\r\n \"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"administrator-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n <vdr-page-block>\r\n <vdr-card [title]=\"'settings.roles' | translate\">\r\n <ng-select\r\n [items]=\"allRoles$ | async\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n formControlName=\"roles\"\r\n (change)=\"rolesChanged($event)\"\r\n bindLabel=\"description\"\r\n ></ng-select>\r\n\r\n <ul class=\"nav mt-2\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\r\n <button\r\n [id]=\"channel.channelId\"\r\n (click)=\"selectedChannelId = channel.channelId\"\r\n class=\"btn btn-link nav-link\"\r\n [class.active]=\"selectedChannelId === channel.channelId\"\r\n [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\r\n type=\"button\"\r\n >\r\n {{ channel.channelCode | channelCodeToLabel | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n <vdr-permission-grid\r\n [activePermissions]=\"getPermissionsForSelectedChannel()\"\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [readonly]=\"true\"\r\n ></vdr-permission-grid>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</form>\r\n","import {\r\n createBulkDeleteAction,\r\n GetAdministratorListQuery,\r\n ItemOf,\r\n Permission,\r\n} from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteAdministratorsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetAdministratorListQuery, 'administrators'>\r\n>({\r\n location: 'administrator-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\r\n getItemName: item => item.firstName + ' ' + item.lastName,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.administrator.deleteAdministrators(ids).pipe(map(res => res.deleteAdministrators)),\r\n});\r\n","import { Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n ADMINISTRATOR_FRAGMENT,\r\n GetAdministratorListDocument,\r\n LogicalOperator,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_ADMINISTRATOR_LIST = gql`\r\n query GetAdministratorList($options: AdministratorListOptions) {\r\n administrators(options: $options) {\r\n items {\r\n ...AdministratorListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment AdministratorListItem on Administrator {\r\n id\r\n createdAt\r\n updatedAt\r\n firstName\r\n lastName\r\n emailAddress\r\n user {\r\n id\r\n identifier\r\n lastLogin\r\n roles {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n description\r\n }\r\n }\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-administrator-list',\r\n templateUrl: './administrator-list.component.html',\r\n styleUrls: ['./administrator-list.component.scss'],\r\n})\r\nexport class AdministratorListComponent extends TypedBaseListComponent<\r\n typeof GetAdministratorListDocument,\r\n 'administrators'\r\n> {\r\n readonly customFields = this.getCustomFieldConfig('Administrator');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'firstName',\r\n type: { kind: 'text' },\r\n label: _('settings.first-name'),\r\n filterField: 'firstName',\r\n })\r\n .addFilter({\r\n name: 'lastName',\r\n type: { kind: 'text' },\r\n label: _('settings.last-name'),\r\n filterField: 'lastName',\r\n })\r\n .addFilter({\r\n name: 'emailAddress',\r\n type: { kind: 'text' },\r\n label: _('settings.email-address'),\r\n filterField: 'emailAddress',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'lastName' })\r\n .addSort({ name: 'emailAddress' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetAdministratorListDocument,\r\n getItems: data => data.administrators,\r\n setVariables: (skip, take) => this.createSearchQuery(skip, take, this.searchTermControl.value),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n createSearchQuery(skip: number, take: number, searchTerm: string | null) {\r\n let _filter = {};\r\n let filterOperator: LogicalOperator = LogicalOperator.AND;\r\n\r\n if (searchTerm) {\r\n _filter = {\r\n emailAddress: {\r\n contains: searchTerm,\r\n },\r\n firstName: {\r\n contains: searchTerm,\r\n },\r\n lastName: {\r\n contains: searchTerm,\r\n },\r\n };\r\n filterOperator = LogicalOperator.OR;\r\n }\r\n return {\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n ...(_filter ?? {}),\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n filterOperator,\r\n },\r\n };\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateAdministrator']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'admin.create-new-administrator' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"administrator-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"administrator-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"administrator-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-administrator=\"item\">\r\n {{ administrator.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.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\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-administrator=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', administrator.id]\"\r\n ><span>{{ administrator.firstName }} {{ administrator.lastName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.roles' | translate\" id=\"roles\">\r\n <ng-template let-administrator=\"item\">\r\n <vdr-chip *ngFor=\"let role of administrator.user.roles\">{{ role.description }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CHANNEL_FRAGMENT,\r\n ChannelFragment,\r\n CreateChannelInput,\r\n CurrencyCode,\r\n DataService,\r\n GetChannelDetailDocument,\r\n getCustomFieldsDefaults,\r\n GetSellersQuery,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n ServerConfigService,\r\n TypedBaseDetailComponent,\r\n UpdateChannelInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { map, mergeMap, take, takeUntil } from 'rxjs/operators';\r\n\r\nexport const GET_CHANNEL_DETAIL = gql`\r\n query GetChannelDetail($id: ID!) {\r\n channel(id: $id) {\r\n ...Channel\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-channel-detail',\r\n templateUrl: './channel-detail.component.html',\r\n styleUrls: ['./channel-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChannelDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetChannelDetailDocument, 'channel'>\r\n implements OnInit, OnDestroy\r\n{\r\n DEFAULT_CHANNEL_CODE = DEFAULT_CHANNEL_CODE;\r\n customFields = this.getCustomFieldConfig('Channel');\r\n // zones$: Observable<Array<ItemOf<GetZoneListQuery, 'zones'>>>;\r\n sellers$: Observable<GetSellersQuery['sellers']['items']>;\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n token: ['', Validators.required],\r\n pricesIncludeTax: [false],\r\n availableLanguageCodes: [[] as string[]],\r\n availableCurrencyCodes: [[] as string[]],\r\n defaultCurrencyCode: ['' as CurrencyCode, Validators.required],\r\n defaultShippingZoneId: ['', Validators.required],\r\n defaultLanguageCode: [undefined as LanguageCode | undefined, Validators.required],\r\n defaultTaxZoneId: ['', Validators.required],\r\n sellerId: ['', Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n\r\n availableLanguageCodes$: Observable<LanguageCode[]>;\r\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateChannel, Permission.CreateChannel];\r\n\r\n constructor(\r\n protected serverConfigService: ServerConfigService,\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n // TODO: make this lazy-loaded autocomplete\r\n this.sellers$ = this.dataService.settings.getSellerList().mapSingle(data => data.sellers.items);\r\n this.availableLanguageCodes$ = this.serverConfigService.getAvailableLanguages();\r\n this.detailForm.controls.availableCurrencyCodes.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(value => {\r\n if (value) {\r\n const defaultCurrencyCode = this.detailForm.controls.defaultCurrencyCode.value;\r\n if (defaultCurrencyCode && !value.includes(defaultCurrencyCode)) {\r\n this.detailForm.controls.defaultCurrencyCode.setValue(value[0] as CurrencyCode);\r\n }\r\n }\r\n });\r\n this.detailForm.controls.availableLanguageCodes.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(value => {\r\n if (value) {\r\n const defaultLanguageCode = this.detailForm.controls.defaultLanguageCode.value;\r\n if (defaultLanguageCode && !value.includes(defaultLanguageCode)) {\r\n this.detailForm.controls.defaultLanguageCode.setValue(value[0] as LanguageCode);\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const {\r\n code,\r\n token,\r\n defaultLanguageCode,\r\n pricesIncludeTax,\r\n defaultCurrencyCode,\r\n defaultShippingZoneId,\r\n defaultTaxZoneId,\r\n customFields,\r\n sellerId,\r\n } = this.detailForm.value;\r\n if (\r\n !code ||\r\n !token ||\r\n !defaultLanguageCode ||\r\n !defaultCurrencyCode ||\r\n !defaultShippingZoneId ||\r\n !defaultTaxZoneId\r\n ) {\r\n return;\r\n }\r\n const input: CreateChannelInput = {\r\n code,\r\n token,\r\n defaultLanguageCode,\r\n pricesIncludeTax: !!pricesIncludeTax,\r\n defaultCurrencyCode,\r\n defaultShippingZoneId,\r\n defaultTaxZoneId,\r\n customFields,\r\n sellerId,\r\n };\r\n this.dataService.settings\r\n .createChannel(input)\r\n .pipe(\r\n mergeMap(({ createChannel }) =>\r\n this.dataService.auth.currentUser().single$.pipe(\r\n map(({ me }) => ({\r\n me,\r\n createChannel,\r\n })),\r\n ),\r\n ),\r\n mergeMap(({ me, createChannel }) =>\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n this.dataService.client.updateUserChannels(me!.channels).pipe(map(() => createChannel)),\r\n ),\r\n )\r\n .subscribe(data => {\r\n switch (data.__typename) {\r\n case 'Channel':\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Channel',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.id], { relativeTo: this.route });\r\n break;\r\n case 'LanguageNotAvailableError':\r\n this.notificationService.error(data.message);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(channel => {\r\n const input = {\r\n id: channel.id,\r\n code: formValue.code,\r\n token: formValue.token,\r\n pricesIncludeTax: formValue.pricesIncludeTax,\r\n availableLanguageCodes: formValue.availableLanguageCodes,\r\n availableCurrencyCodes: formValue.availableCurrencyCodes,\r\n defaultCurrencyCode: formValue.defaultCurrencyCode,\r\n defaultShippingZoneId: formValue.defaultShippingZoneId,\r\n defaultLanguageCode: formValue.defaultLanguageCode,\r\n defaultTaxZoneId: formValue.defaultTaxZoneId,\r\n customFields: formValue.customFields,\r\n sellerId: formValue.sellerId,\r\n } as UpdateChannelInput;\r\n return this.dataService.settings.updateChannel(input);\r\n }),\r\n )\r\n .subscribe(({ updateChannel }) => {\r\n switch (updateChannel.__typename) {\r\n case 'Channel':\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Channel',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n break;\r\n case 'LanguageNotAvailableError':\r\n this.notificationService.error(updateChannel.message);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: ChannelFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n code: entity.code,\r\n token: entity.token || this.generateToken(),\r\n pricesIncludeTax: entity.pricesIncludeTax,\r\n availableLanguageCodes: entity.availableLanguageCodes,\r\n availableCurrencyCodes: entity.availableCurrencyCodes,\r\n defaultCurrencyCode: entity.defaultCurrencyCode,\r\n defaultShippingZoneId: entity.defaultShippingZone?.id ?? '',\r\n defaultLanguageCode: entity.defaultLanguageCode,\r\n defaultTaxZoneId: entity.defaultTaxZone?.id ?? '',\r\n sellerId: entity.seller?.id ?? '',\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\r\n }\r\n if (entity.code === DEFAULT_CHANNEL_CODE) {\r\n const codeControl = this.detailForm.get('code');\r\n if (codeControl) {\r\n codeControl.disable();\r\n }\r\n }\r\n }\r\n\r\n private generateToken(): string {\r\n return Array.from(crypto.getRandomValues(new Uint8Array(10)))\r\n .map(b => b.toString(16).padStart(2, '0'))\r\n .join('');\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"channel-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n class=\"form-grid-span\"\r\n *ngIf=\"entity?.code !== DEFAULT_CHANNEL_CODE\"\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"code\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-item\r\n class=\"form-grid-span\"\r\n *ngIf=\"entity?.code === DEFAULT_CHANNEL_CODE\"\r\n [label]=\"'common.code' | translate\"\r\n >\r\n {{ entity?.code | channelCodeToLabel | translate }}\r\n </vdr-form-item>\r\n <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\r\n <input\r\n id=\"token\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"token\"\r\n />\r\n </vdr-form-field>\r\n\r\n <vdr-form-field [label]=\"'common.seller' | translate\" for=\"sellerId\">\r\n <select\r\n name=\"sellerId\"\r\n formControlName=\"sellerId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option selected value style=\"display: none\"></option>\r\n <option *ngFor=\"let seller of sellers$ | async\" [value]=\"seller.id\">\r\n {{ seller.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.available-languages' | translate\"\r\n for=\"availableLanguageCodes\"\r\n >\r\n <vdr-language-code-selector\r\n formControlName=\"availableLanguageCodes\"\r\n [languageCodes]=\"availableLanguageCodes$ | async\"\r\n ></vdr-language-code-selector>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.available-currencies' | translate\"\r\n for=\"availableCurrencyCodes\"\r\n >\r\n <vdr-currency-code-selector\r\n formControlName=\"availableCurrencyCodes\"\r\n ></vdr-currency-code-selector>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.defaults' | translate\">\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\r\n <select\r\n name=\"defaultLanguageCode\"\r\n formControlName=\"defaultLanguageCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option\r\n *ngFor=\"let languageCode of detailForm.value.availableLanguageCodes\"\r\n [value]=\"languageCode\"\r\n >\r\n {{ languageCode | localeLanguageName }} ({{ languageCode | uppercase }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.default-currency' | translate\" for=\"defaultCurrency\">\r\n <select\r\n name=\"defaultCurrencyCode\"\r\n formControlName=\"defaultCurrencyCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option\r\n *ngFor=\"let code of detailForm.value.availableCurrencyCodes\"\r\n [value]=\"code\"\r\n >\r\n {{ code | localeCurrencyName }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <div>\r\n <vdr-form-field\r\n [label]=\"'settings.default-tax-zone' | translate\"\r\n for=\"defaultTaxZoneId\"\r\n >\r\n <vdr-zone-selector\r\n formControlName=\"defaultTaxZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-zone-selector>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\r\n clrAlertType=\"danger\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-tax-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n\r\n <div>\r\n <vdr-form-field\r\n [label]=\"'settings.default-shipping-zone' | translate\"\r\n for=\"defaultShippingZoneId\"\r\n >\r\n <vdr-zone-selector\r\n name=\"defaultShippingZoneId\"\r\n formControlName=\"defaultShippingZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-zone-selector>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\r\n clrAlertType=\"danger\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-shipping-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <vdr-form-field\r\n [label]=\"'settings.prices-include-tax' | translate\"\r\n for=\"pricesIncludeTax\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"pricesIncludeTax\"\r\n formControlName=\"pricesIncludeTax\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Channel\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"channel-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetChannelsQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\n\r\nexport const deleteChannelsBulkAction = createBulkDeleteAction<ItemOf<GetChannelsQuery, 'channels'>>({\r\n location: 'channel-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.SuperAdmin) || userPermissions.includes(Permission.DeleteChannel),\r\n getItemName: item => item.code,\r\n bulkDelete: (dataService, ids) => {\r\n return dataService.settings.deleteChannels(ids).pipe(\r\n mergeMap(({ deleteChannels }) =>\r\n dataService.auth.currentUser().single$.pipe(\r\n map(({ me }) => ({\r\n me,\r\n deleteChannels,\r\n })),\r\n ),\r\n ),\r\n mergeMap(({ me, deleteChannels }) =>\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n dataService.client.updateUserChannels(me!.channels).pipe(map(() => deleteChannels)),\r\n ),\r\n );\r\n },\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { CHANNEL_FRAGMENT, GetChannelListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_CHANNEL_LIST = gql`\r\n query GetChannelList($options: ChannelListOptions) {\r\n channels(options: $options) {\r\n items {\r\n ...Channel\r\n }\r\n totalItems\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-channel-list',\r\n templateUrl: './channel-list.component.html',\r\n styleUrls: ['./channel-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChannelListComponent\r\n extends TypedBaseListComponent<typeof GetChannelListDocument, 'channels'>\r\n implements OnInit\r\n{\r\n readonly customFields = this.getCustomFieldConfig('Channel');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'token',\r\n type: { kind: 'text' },\r\n label: _('settings.channel-token'),\r\n filterField: 'token',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'token' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetChannelListDocument,\r\n getItems: data => data.channels,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n code: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n isDefaultChannel(channelCode: string): boolean {\r\n return channelCode === DEFAULT_CHANNEL_CODE;\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-list\" />\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateChannel']\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-channel' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"channel-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"channel-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"channel-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-channel=\"item\">\r\n {{ channel.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-channel=\"item\">\r\n {{ channel.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-channel=\"item\">\r\n {{ channel.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-channel=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', channel.id]\"\r\n ><span>{{ channel.code | channelCodeToLabel | translate }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.channel-token' | translate\" id=\"channel-token\" [sort]=\"sorts.get('token')\">\r\n <ng-template let-channel=\"item\">\r\n {{ channel.token }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n COUNTRY_FRAGMENT,\r\n CountryFragment,\r\n createUpdatedTranslatable,\r\n DataService,\r\n findTranslation,\r\n GetCountryDetailDocument,\r\n getCustomFieldsDefaults,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TypedBaseDetailComponent,\r\n UpdateCountryInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_COUNTRY_DETAIL = gql`\r\n query GetCountryDetail($id: ID!) {\r\n country(id: $id) {\r\n ...Country\r\n }\r\n }\r\n ${COUNTRY_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-country-detail',\r\n templateUrl: './country-detail.component.html',\r\n styleUrls: ['./country-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CountryDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetCountryDetailDocument, 'country'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Region');\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n enabled: [true],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateCountry];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n\r\n const formValue = this.detailForm.value;\r\n const input = createUpdatedTranslatable({\r\n translatable: {\r\n id: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n code: '',\r\n name: '',\r\n enabled: false,\r\n translations: [],\r\n } as CountryFragment,\r\n updatedFields: formValue,\r\n languageCode: this.languageCode,\r\n customFieldConfig: this.customFields,\r\n defaultTranslation: {\r\n name: formValue.name ?? '',\r\n languageCode: this.languageCode,\r\n },\r\n });\r\n this.dataService.settings.createCountry(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Country',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createCountry.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Country',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n combineLatest(this.entity$, this.languageCode$)\r\n .pipe(\r\n take(1),\r\n mergeMap(([country, languageCode]) => {\r\n const formValue = this.detailForm.value;\r\n const input: UpdateCountryInput = createUpdatedTranslatable({\r\n translatable: country,\r\n updatedFields: formValue,\r\n customFieldConfig: this.customFields,\r\n languageCode,\r\n defaultTranslation: {\r\n name: formValue.name ?? '',\r\n languageCode,\r\n },\r\n });\r\n return this.dataService.settings.updateCountry(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Country',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Country',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(country: CountryFragment, languageCode: LanguageCode): void {\r\n const currentTranslation = findTranslation(country, languageCode);\r\n\r\n this.detailForm.patchValue({\r\n code: country.code,\r\n name: currentTranslation ? currentTranslation.name : '',\r\n enabled: country.enabled,\r\n });\r\n\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get(['customFields']),\r\n country,\r\n currentTranslation,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block\r\n ><vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"country-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Region\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"country-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetCountryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteCountriesBulkAction = createBulkDeleteAction<ItemOf<GetCountryListQuery, 'countries'>>({\r\n location: 'country-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteCountry),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteCountries(ids).pipe(map(res => res.deleteCountries)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetCountryListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_COUNTRY_LIST = gql`\r\n query GetCountryList($options: CountryListOptions) {\r\n countries(options: $options) {\r\n items {\r\n ...CountryListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment CountryListItem on Country {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n name\r\n type\r\n enabled\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-country-list',\r\n templateUrl: './country-list.component.html',\r\n styleUrls: ['./country-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CountryListComponent extends TypedBaseListComponent<typeof GetCountryListDocument, 'countries'> {\r\n readonly customFields = this.getCustomFieldConfig('Region');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'enabled',\r\n type: { kind: 'boolean' },\r\n label: _('common.enabled'),\r\n filterField: 'enabled',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('name', 'ASC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'code' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetCountryListDocument,\r\n getItems: data => data.countries,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-country' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"country-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"country-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"country-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-country=\"item\">\r\n {{ country.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-country=\"item\">\r\n {{ country.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-country=\"item\">\r\n {{ country.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\"\r\n id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-country=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', country.id]\"\r\n ><span>{{ country.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-country=\"item\">\r\n {{ country.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-country=\"item\">\r\n <vdr-chip *ngIf=\"country.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!country.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetGlobalSettingsDetailDocument,\r\n GlobalSettings,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TypedBaseDetailComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nexport const GET_GLOBAL_SETTINGS_DETAIL = gql`\r\n query GetGlobalSettingsDetail {\r\n globalSettings {\r\n ...GlobalSettingsDetail\r\n }\r\n }\r\n fragment GlobalSettingsDetail on GlobalSettings {\r\n id\r\n createdAt\r\n updatedAt\r\n availableLanguages\r\n trackInventory\r\n outOfStockThreshold\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-global-settings',\r\n templateUrl: './global-settings.component.html',\r\n styleUrls: ['./global-settings.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GlobalSettingsComponent\r\n extends TypedBaseDetailComponent<typeof GetGlobalSettingsDetailDocument, 'globalSettings'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('GlobalSettings');\r\n detailForm = this.formBuilder.group({\r\n availableLanguages: [[] as LanguageCode[]],\r\n trackInventory: false,\r\n outOfStockThreshold: [0, Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n languageCodes = Object.values(LanguageCode);\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateGlobalSettings];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\r\n if (!userStatus.permissions.includes(Permission.UpdateSettings)) {\r\n const languagesSelect = this.detailForm.get('availableLanguages');\r\n if (languagesSelect) {\r\n languagesSelect.disable();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n\r\n this.dataService.settings\r\n .updateGlobalSettings(this.detailForm.value)\r\n .pipe(\r\n tap(({ updateGlobalSettings }) => {\r\n switch (updateGlobalSettings.__typename) {\r\n case 'GlobalSettings':\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Settings',\r\n });\r\n break;\r\n case 'ChannelDefaultLanguageError':\r\n this.notificationService.error(updateGlobalSettings.message);\r\n }\r\n }),\r\n switchMap(() => this.serverConfigService.refreshGlobalSettings()),\r\n withLatestFrom(this.dataService.client.uiState().single$),\r\n )\r\n .subscribe(([{ globalSettings }, { uiState }]) => {\r\n const availableLangs = globalSettings.availableLanguages;\r\n if (availableLangs.length && !availableLangs.includes(uiState.contentLanguage)) {\r\n this.dataService.client.setContentLanguage(availableLangs[0]).subscribe();\r\n }\r\n });\r\n }\r\n\r\n protected setFormValues(entity: GlobalSettings, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n availableLanguages: entity.availableLanguages,\r\n trackInventory: entity.trackInventory,\r\n outOfStockThreshold: entity.outOfStockThreshold,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"global-setting-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n <vdr-action-bar-dropdown-menu locationId=\"global-setting-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'common.available-languages' | translate\"\r\n for=\"availableLanguages\"\r\n [tooltip]=\"'settings.global-available-languages-tooltip' | translate\"\r\n >\r\n <vdr-language-code-selector\r\n formControlName=\"availableLanguages\"\r\n [languageCodes]=\"languageCodes\"\r\n ></vdr-language-code-selector>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\r\n for=\"outOfStockThreshold\"\r\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\r\n >\r\n <input\r\n id=\"outOfStockThreshold\"\r\n type=\"number\"\r\n formControlName=\"outOfStockThreshold\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.track-inventory-default' | translate\"\r\n for=\"enabled\"\r\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"enabled\"\r\n formControlName=\"trackInventory\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"GlobalSettings\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"global-settings-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n</form>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n configurableDefinitionToInstance,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n CreatePaymentMethodInput,\r\n createUpdatedTranslatable,\r\n DataService,\r\n findTranslation,\r\n getConfigArgValue,\r\n getCustomFieldsDefaults,\r\n GetPaymentMethodDetailDocument,\r\n GetPaymentMethodDetailQuery,\r\n LanguageCode,\r\n NotificationService,\r\n PAYMENT_METHOD_FRAGMENT,\r\n PaymentMethodFragment,\r\n Permission,\r\n toConfigurableOperationInput,\r\n TypedBaseDetailComponent,\r\n UpdatePaymentMethodInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_PAYMENT_METHOD_DETAIL = gql`\r\n query GetPaymentMethodDetail($id: ID!) {\r\n paymentMethod(id: $id) {\r\n ...PaymentMethod\r\n }\r\n }\r\n ${PAYMENT_METHOD_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-payment-method-detail',\r\n templateUrl: './payment-method-detail.component.html',\r\n styleUrls: ['./payment-method-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentMethodDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetPaymentMethodDetailDocument, 'paymentMethod'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('PaymentMethod');\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n description: '',\r\n enabled: [true, Validators.required],\r\n checker: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['checker'],\r\n handler: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['handler'],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n checkers: ConfigurableOperationDefinition[] = [];\r\n handlers: ConfigurableOperationDefinition[] = [];\r\n selectedChecker?: ConfigurableOperation | null;\r\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\r\n selectedHandler?: ConfigurableOperation | null;\r\n selectedHandlerDefinition?: ConfigurableOperationDefinition;\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdatePaymentMethod];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.dataService.settings.getPaymentMethodOperations().single$.subscribe(data => {\r\n this.checkers = data.paymentMethodEligibilityCheckers;\r\n this.handlers = data.paymentMethodHandlers;\r\n this.changeDetector.markForCheck();\r\n this.selectedCheckerDefinition = data.paymentMethodEligibilityCheckers.find(\r\n c => c.code === this.entity?.checker?.code,\r\n );\r\n this.selectedHandlerDefinition = data.paymentMethodHandlers.find(\r\n c => c.code === this.entity?.handler?.code,\r\n );\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n updateCode(currentCode: string | undefined, nameValue: string) {\r\n if (!currentCode) {\r\n const codeControl = this.detailForm.get('code');\r\n if (codeControl && codeControl.pristine) {\r\n codeControl.setValue(normalizeString(nameValue, '-'));\r\n }\r\n }\r\n }\r\n\r\n selectChecker(checker: ConfigurableOperationDefinition) {\r\n this.selectedCheckerDefinition = checker;\r\n this.selectedChecker = configurableDefinitionToInstance(checker);\r\n const formControl = this.detailForm.get('checker');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedChecker);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n selectHandler(handler: ConfigurableOperationDefinition) {\r\n this.selectedHandlerDefinition = handler;\r\n this.selectedHandler = configurableDefinitionToInstance(handler);\r\n const formControl = this.detailForm.get('handler');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedHandler);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n removeChecker() {\r\n this.selectedChecker = null;\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n removeHandler() {\r\n this.selectedHandler = null;\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n create() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedHandler = this.selectedHandler;\r\n if (!selectedHandler) {\r\n return;\r\n }\r\n const input = this.getUpdatedPaymentMethod(\r\n {\r\n id: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n name: '',\r\n code: '',\r\n description: '',\r\n enabled: true,\r\n checker: undefined as any,\r\n handler: undefined as any,\r\n translations: [],\r\n },\r\n this.detailForm,\r\n this.languageCode,\r\n selectedHandler,\r\n selectedChecker,\r\n ) as CreatePaymentMethodInput;\r\n this.dataService.settings.createPaymentMethod(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'PaymentMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createPaymentMethod.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'PaymentMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedHandler = this.selectedHandler;\r\n if (!selectedHandler) {\r\n return;\r\n }\r\n combineLatest(this.entity$, this.languageCode$)\r\n .pipe(\r\n take(1),\r\n mergeMap(([paymentMethod, languageCode]) => {\r\n const input = this.getUpdatedPaymentMethod(\r\n paymentMethod,\r\n this.detailForm,\r\n languageCode,\r\n selectedHandler,\r\n selectedChecker,\r\n ) as UpdatePaymentMethodInput;\r\n return this.dataService.settings.updatePaymentMethod(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'PaymentMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'PaymentMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Given a PaymentMethod and the value of the detailForm, this method creates an updated copy of it which\r\n * can then be persisted to the API.\r\n */\r\n private getUpdatedPaymentMethod(\r\n paymentMethod: PaymentMethodFragment,\r\n formGroup: UntypedFormGroup,\r\n languageCode: LanguageCode,\r\n selectedHandler: ConfigurableOperation,\r\n selectedChecker?: ConfigurableOperation | null,\r\n ): UpdatePaymentMethodInput | CreatePaymentMethodInput {\r\n const input = createUpdatedTranslatable({\r\n translatable: paymentMethod,\r\n updatedFields: formGroup.value,\r\n customFieldConfig: this.customFields,\r\n languageCode,\r\n defaultTranslation: {\r\n languageCode,\r\n name: paymentMethod.name || '',\r\n description: paymentMethod.description || '',\r\n },\r\n });\r\n return {\r\n ...input,\r\n checker: selectedChecker\r\n ? toConfigurableOperationInput(selectedChecker, formGroup.value.checker)\r\n : null,\r\n handler: toConfigurableOperationInput(selectedHandler, formGroup.value.handler),\r\n };\r\n }\r\n\r\n protected setFormValues(\r\n paymentMethod: NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>,\r\n languageCode: LanguageCode,\r\n ): void {\r\n const currentTranslation = findTranslation(paymentMethod, languageCode);\r\n this.detailForm.patchValue({\r\n name: currentTranslation?.name,\r\n code: paymentMethod.code,\r\n description: currentTranslation?.description,\r\n enabled: paymentMethod.enabled,\r\n checker: paymentMethod.checker || ({} as any),\r\n handler: paymentMethod.handler || ({} as any),\r\n });\r\n if (!this.selectedChecker) {\r\n this.selectedChecker = paymentMethod.checker && {\r\n code: paymentMethod.checker.code,\r\n args: paymentMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (!this.selectedHandler) {\r\n this.selectedHandler = paymentMethod.handler && {\r\n code: paymentMethod.handler.code,\r\n args: paymentMethod.handler.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get('customFields'),\r\n paymentMethod,\r\n currentTranslation,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block\r\n ><vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n (click)=\"create()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"enabled\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(entity?.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n class=\"form-grid-span\"\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n </div>\r\n </vdr-card>\r\n\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"PaymentMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"payment-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-card [title]=\"'settings.payment-eligibility-checker' | translate\">\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeChecker()\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.payment-handler' | translate\">\r\n <vdr-configurable-input\r\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\r\n [operation]=\"selectedHandler\"\r\n [operationDefinition]=\"selectedHandlerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeHandler()\"\r\n formControlName=\"handler\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let handler of handlers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectHandler(handler)\"\r\n >\r\n {{ handler.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import {\r\n createBulkAssignToChannelAction,\r\n AssignPaymentMethodsToChannelDocument,\r\n RemovePaymentMethodsFromChannelDocument,\r\n createBulkDeleteAction,\r\n createBulkRemoveFromChannelAction,\r\n GetPaymentMethodListQuery,\r\n ItemOf,\r\n Permission,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deletePaymentMethodsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\r\n>({\r\n location: 'payment-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeletePaymentMethod) ||\r\n userPermissions.includes(Permission.DeleteSettings),\r\n getItemName: item => item.name,\r\n shouldRetryItem: (response, item) => !!response.message,\r\n bulkDelete: (dataService, ids, retrying) =>\r\n dataService.settings.deletePaymentMethods(ids, retrying).pipe(map(res => res.deletePaymentMethods)),\r\n});\r\n\r\nconst ASSIGN_PAYMENT_METHODS_TO_CHANNEL = gql`\r\n mutation AssignPaymentMethodsToChannel($input: AssignPaymentMethodsToChannelInput!) {\r\n assignPaymentMethodsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst REMOVE_PAYMENT_METHODS_FROM_CHANNEL = gql`\r\n mutation RemovePaymentMethodsFromChannel($input: RemovePaymentMethodsFromChannelInput!) {\r\n removePaymentMethodsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\nexport const assignPaymentMethodsToChannelBulkAction = createBulkAssignToChannelAction<\r\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\r\n>({\r\n location: 'payment-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.UpdatePaymentMethod) ||\r\n userPermissions.includes(Permission.UpdateSettings),\r\n getItemName: item => item.name,\r\n bulkAssignToChannel: (dataService, paymentMethodIds, channelIds) =>\r\n channelIds.map(channelId =>\r\n dataService\r\n .mutate(AssignPaymentMethodsToChannelDocument, {\r\n input: {\r\n channelId,\r\n paymentMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.assignPaymentMethodsToChannel)),\r\n ),\r\n});\r\n\r\nexport const removePaymentMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\r\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\r\n>({\r\n location: 'payment-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeletePaymentMethod) ||\r\n userPermissions.includes(Permission.DeleteSettings),\r\n getItemName: item => item.name,\r\n bulkRemoveFromChannel: (dataService, paymentMethodIds, channelId) =>\r\n dataService\r\n .mutate(RemovePaymentMethodsFromChannelDocument, {\r\n input: {\r\n channelId,\r\n paymentMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.removePaymentMethodsFromChannel)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetPaymentMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_PAYMENT_METHOD_LIST = gql`\r\n query GetPaymentMethodList($options: PaymentMethodListOptions!) {\r\n paymentMethods(options: $options) {\r\n items {\r\n ...PaymentMethodListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment PaymentMethodListItem on PaymentMethod {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n description\r\n code\r\n enabled\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-payment-method-list',\r\n templateUrl: './payment-method-list.component.html',\r\n styleUrls: ['./payment-method-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentMethodListComponent extends TypedBaseListComponent<\r\n typeof GetPaymentMethodListDocument,\r\n 'paymentMethods'\r\n> {\r\n readonly customFields = this.getCustomFieldConfig('PaymentMethod');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'enabled',\r\n type: { kind: 'boolean' },\r\n label: _('common.enabled'),\r\n filterField: 'enabled',\r\n })\r\n .addFilter({\r\n name: 'description',\r\n type: { kind: 'text' },\r\n label: _('common.description'),\r\n filterField: 'description',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'id' })\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'description' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetPaymentMethodListDocument,\r\n getItems: data => data.paymentMethods,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreatePaymentMethod']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-payment-method' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n id=\"payment-method-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"payment-method-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column\r\n [heading]=\"'common.id' | translate\"\r\n id=\"id\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('id')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\"\r\n id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', paymentMethod.id]\"\r\n ><span>{{ paymentMethod.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-paymentMethod=\"item\">\r\n <vdr-chip *ngIf=\"paymentMethod.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!paymentMethod.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n Administrator,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetProfileDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n TypedBaseDetailComponent,\r\n UpdateActiveAdministratorInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_PROFILE_DETAIL = gql`\r\n query GetProfileDetail {\r\n activeAdministrator {\r\n ...ProfileDetail\r\n }\r\n }\r\n fragment ProfileDetail on Administrator {\r\n id\r\n createdAt\r\n updatedAt\r\n firstName\r\n lastName\r\n emailAddress\r\n user {\r\n id\r\n lastLogin\r\n verified\r\n }\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProfileComponent\r\n extends TypedBaseDetailComponent<typeof GetProfileDetailDocument, 'activeAdministrator'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Administrator');\r\n detailForm = this.formBuilder.group({\r\n emailAddress: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n password: [''],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n save() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(({ id }) => {\r\n const formValue = this.detailForm.value;\r\n const administrator: UpdateActiveAdministratorInput = {\r\n emailAddress: formValue.emailAddress,\r\n firstName: formValue.firstName,\r\n lastName: formValue.lastName,\r\n password: formValue.password,\r\n customFields: formValue.customFields,\r\n };\r\n return this.dataService.administrator.updateActiveAdministrator(administrator);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Administrator',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Administrator',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(administrator: Administrator, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n emailAddress: administrator.emailAddress,\r\n firstName: administrator.firstName,\r\n lastName: administrator.lastName,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get('customFields'),\r\n administrator,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"profile\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"isNew$ | async\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"administrator-profile\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateRoleInput,\r\n DataService,\r\n GetRoleDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n Role,\r\n ROLE_FRAGMENT,\r\n TypedBaseDetailComponent,\r\n UpdateRoleInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\r\nimport { unique } from '@vendure/common/lib/unique';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_ROLE_DETAIL = gql`\r\n query GetRoleDetail($id: ID!) {\r\n role(id: $id) {\r\n ...Role\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-role-detail',\r\n templateUrl: './role-detail.component.html',\r\n styleUrls: ['./role-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RoleDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetRoleDetailDocument, 'role'>\r\n implements OnInit, OnDestroy\r\n{\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n description: ['', Validators.required],\r\n channelIds: [[] as string[]],\r\n permissions: [[] as Permission[]],\r\n });\r\n permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n updateCode(nameValue: string) {\r\n const codeControl = this.detailForm.get(['code']);\r\n if (codeControl && codeControl.pristine) {\r\n codeControl.setValue(normalizeString(nameValue, '-'));\r\n }\r\n }\r\n\r\n setPermission(change: { permission: string; value: boolean }) {\r\n const permissionsControl = this.detailForm.get('permissions');\r\n if (permissionsControl) {\r\n const currentPermissions = permissionsControl.value as string[];\r\n const newValue = (\r\n change.value === true\r\n ? unique([...currentPermissions, change.permission])\r\n : currentPermissions.filter(p => p !== change.permission)\r\n ) as Permission[];\r\n permissionsControl.setValue(newValue);\r\n permissionsControl.markAsDirty();\r\n }\r\n }\r\n\r\n create() {\r\n const { code, description, permissions, channelIds } = this.detailForm.value;\r\n if (!code || !description) {\r\n return;\r\n }\r\n const role: CreateRoleInput = {\r\n code,\r\n description,\r\n permissions: permissions ?? [],\r\n channelIds,\r\n };\r\n this.dataService.administrator.createRole(role).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), { entity: 'Role' });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createRole.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Role',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(({ id }) => {\r\n const formValue = this.detailForm.value;\r\n const role: UpdateRoleInput = { id, ...formValue };\r\n return this.dataService.administrator.updateRole(role);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), { entity: 'Role' });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Role',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(role: Role, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n description: role.description,\r\n code: role.code,\r\n channelIds: role.channels.map(c => c.id),\r\n permissions: role.permissions,\r\n });\r\n // This was required to get the channel selector component to\r\n // correctly display its contents. A while spent debugging the root\r\n // cause did not yield a solution, therefore this next line.\r\n this.changeDetector.detectChanges();\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"role-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"role-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\">\r\n <input\r\n id=\"description\"\r\n type=\"text\"\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n (input)=\"updateCode($event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"'UpdateAdministrator' | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n <vdr-page-block class=\"mt-2\">\r\n <vdr-card [title]=\"'settings.permissions' | translate\">\r\n <vdr-form-field [label]=\"'settings.channel' | translate\">\r\n <vdr-channel-assignment-control\r\n formControlName=\"channelIds\"\r\n [vdrDisabled]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-channel-assignment-control>\r\n </vdr-form-field>\r\n <vdr-permission-grid\r\n class=\"mt-2\"\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [activePermissions]=\"detailForm.get('permissions')?.value\"\r\n (permissionChange)=\"setPermission($event)\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-permission-grid>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</form>\r\n","import { createBulkDeleteAction, GetRolesQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteRolesBulkAction = createBulkDeleteAction<ItemOf<GetRolesQuery, 'roles'>>({\r\n location: 'role-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\r\n getItemName: item => item.description,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.administrator.deleteRoles(ids).pipe(map(res => res.deleteRoles)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n GetRoleListDocument,\r\n GetRolesQuery,\r\n ItemOf,\r\n Role,\r\n ROLE_FRAGMENT,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { CUSTOMER_ROLE_CODE, SUPER_ADMIN_ROLE_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_ROLE_LIST = gql`\r\n query GetRoleList($options: RoleListOptions) {\r\n roles(options: $options) {\r\n items {\r\n ...Role\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-role-list',\r\n templateUrl: './role-list.component.html',\r\n styleUrls: ['./role-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RoleListComponent\r\n extends TypedBaseListComponent<typeof GetRoleListDocument, 'roles'>\r\n implements OnInit\r\n{\r\n readonly initialLimit = 3;\r\n displayLimit: { [id: string]: number } = {};\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'description' })\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetRoleListDocument,\r\n getItems: data => data.roles,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n code: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n toggleDisplayLimit(role: ItemOf<GetRolesQuery, 'roles'>) {\r\n if (this.displayLimit[role.id] === role.permissions.length) {\r\n this.displayLimit[role.id] = this.initialLimit;\r\n } else {\r\n this.displayLimit[role.id] = role.permissions.length;\r\n }\r\n }\r\n\r\n isDefaultRole(role: Role): boolean {\r\n return role.code === SUPER_ADMIN_ROLE_CODE || role.code === CUSTOMER_ROLE_CODE;\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"role-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateAdministrator']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-role' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"role-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n id=\"role-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"role-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-role=\"item\">\r\n {{ role.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-role=\"item\">\r\n {{ role.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-role=\"item\">\r\n {{ role.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.description' | translate\" id=\"description\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('description')\"\r\n >\r\n <ng-template let-role=\"item\">\r\n <a\r\n *ngIf=\"!isDefaultRole(role); else defaultRole\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"['./', role.id]\"\r\n ><span>{{ role.description }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n <ng-template #defaultRole>\r\n {{ role.description }}\r\n </ng-template>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-role=\"item\">\r\n <span *ngIf=\"!isDefaultRole(role)\">{{ role.code }}</span>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.channel' | translate\" id=\"channel\">\r\n <ng-template let-role=\"item\">\r\n <ng-container *ngIf=\"!isDefaultRole(role)\">\r\n <vdr-chip *ngFor=\"let channel of role.channels\">\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n <div class=\"ml-1\">{{ channel.code | channelCodeToLabel | translate }}</div>\r\n </vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.permissions' | translate\" id=\"permissions\">\r\n <ng-template let-role=\"item\">\r\n <ng-container *ngIf=\"!isDefaultRole(role); else defaultRole\">\r\n <div class=\"permissions-list\">\r\n <vdr-chip\r\n *ngFor=\"let permission of role.permissions | slice : 0 : displayLimit[role.id] || 3\"\r\n >{{ permission }}</vdr-chip\r\n >\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"role.permissions.length > initialLimit\"\r\n (click)=\"toggleDisplayLimit(role)\"\r\n >\r\n <ng-container\r\n *ngIf=\"(displayLimit[role.id] || 0) < role.permissions.length; else collapse\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ role.permissions.length - initialLimit }}\r\n </ng-container>\r\n <ng-template #collapse>\r\n <clr-icon shape=\"minus\"></clr-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultRole>\r\n <span class=\"default-role-label\">{{ 'settings.default-role-label' | translate }}</span>\r\n </ng-template>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateSellerInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetSellerDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n SellerFragment,\r\n TypedBaseDetailComponent,\r\n UpdateSellerInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_SELLER_DETAIL = gql`\r\n query GetSellerDetail($id: ID!) {\r\n seller(id: $id) {\r\n ...SellerDetail\r\n }\r\n }\r\n fragment SellerDetail on Seller {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-seller-detail',\r\n templateUrl: './seller-detail.component.html',\r\n styleUrls: ['./seller-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellerDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetSellerDetailDocument, 'seller'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Seller');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateSeller, Permission.CreateSeller];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n if (!formValue.name) {\r\n return;\r\n }\r\n const input: CreateSellerInput = {\r\n name: formValue.name,\r\n customFields: formValue.customFields,\r\n };\r\n this.dataService.settings.createSeller(input).subscribe(data => {\r\n switch (data.createSeller.__typename) {\r\n case 'Seller':\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Seller',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createSeller.id], { relativeTo: this.route });\r\n break;\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(seller => {\r\n const input = {\r\n id: seller.id,\r\n name: formValue.name,\r\n customFields: formValue.customFields,\r\n } as UpdateSellerInput;\r\n return this.dataService.settings.updateSeller(input);\r\n }),\r\n )\r\n .subscribe(({ updateSeller }) => {\r\n switch (updateSeller.__typename) {\r\n case 'Seller':\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Seller',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n break;\r\n // case 'LanguageNotAvailableError':\r\n // this.notificationService.error(updateSeller.message);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: SellerFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"seller-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateSeller']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"seller-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"name\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Seller\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"seller-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetSellersQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteSellersBulkAction = createBulkDeleteAction<ItemOf<GetSellersQuery, 'sellers'>>({\r\n location: 'seller-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteSeller),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteSellers(ids).pipe(map(res => res.deleteSellers)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetSellerListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nconst GET_SELLER_LIST = gql`\r\n query GetSellerList($options: SellerListOptions) {\r\n sellers(options: $options) {\r\n items {\r\n ...SellerListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment SellerListItem on Seller {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-seller-list',\r\n templateUrl: './seller-list.component.html',\r\n styleUrls: ['./seller-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellerListComponent\r\n extends TypedBaseListComponent<typeof GetSellerListDocument, 'sellers'>\r\n implements OnInit\r\n{\r\n readonly customFields = this.getCustomFieldConfig('Seller');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetSellerListDocument,\r\n getItems: data => data.sellers,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"seller-list\" />\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateSeller']\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-seller' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"seller-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n id=\"seller-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"seller-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-seller=\"item\">{{ seller.id }}</ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-seller=\"item\">\r\n {{ seller.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-seller=\"item\">\r\n {{ seller.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-seller=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', seller.id]\"\r\n ><span>{{ seller.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { CurrencyCode, ShippingMethodQuote } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-shipping-eligibility-test-result',\r\n templateUrl: './shipping-eligibility-test-result.component.html',\r\n styleUrls: ['./shipping-eligibility-test-result.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingEligibilityTestResultComponent {\r\n @Input() testResult: ShippingMethodQuote[];\r\n @Input() okToRun = false;\r\n @Input() testDataUpdated = false;\r\n @Input() currencyCode: CurrencyCode;\r\n @Output() runTest = new EventEmitter<void>();\r\n}\r\n","<vdr-card class=\"test-result\" [title]=\"'settings.test-result' | translate\">\r\n <div class=\"card-span\" *ngFor=\"let quote of testResult\">\r\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\r\n {{ quote.name }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ quote.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\r\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\r\n </div>\r\n </div>\r\n <div class=\"card-span\" *ngIf=\"testResult?.length === 0\">\r\n <clr-icon shape=\"ban\" class=\"is-solid error\"></clr-icon>\r\n {{ 'settings.no-eligible-shipping-methods' | translate }}\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n {{ 'settings.test-shipping-methods' | translate }}\r\n </button>\r\n </div>\r\n</vdr-card>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport {\r\n CurrencyCode,\r\n DataService,\r\n LocalStorageService,\r\n ProductSelectorSearchQuery,\r\n} from '@vendure/admin-ui/core';\r\n\r\ntype SearchItem = ProductSelectorSearchQuery['search']['items'][number];\r\n\r\nexport interface TestOrderLine {\r\n id: string;\r\n name: string;\r\n preview: string;\r\n sku: string;\r\n unitPriceWithTax: number;\r\n quantity: number;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-test-order-builder',\r\n templateUrl: './test-order-builder.component.html',\r\n styleUrls: ['./test-order-builder.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TestOrderBuilderComponent implements OnInit {\r\n @Output() orderLinesChange = new EventEmitter<TestOrderLine[]>();\r\n lines: TestOrderLine[] = [];\r\n currencyCode: CurrencyCode;\r\n get subTotal(): number {\r\n return this.lines.reduce((sum, l) => sum + l.unitPriceWithTax * l.quantity, 0);\r\n }\r\n\r\n constructor(private dataService: DataService, private localStorageService: LocalStorageService) {}\r\n\r\n ngOnInit() {\r\n this.lines = this.loadFromLocalStorage();\r\n if (this.lines) {\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n this.dataService.settings.getActiveChannel('cache-first').single$.subscribe(result => {\r\n this.currencyCode = result.activeChannel.defaultCurrencyCode;\r\n });\r\n }\r\n\r\n selectResult(result: SearchItem) {\r\n if (result) {\r\n this.addToLines(result);\r\n }\r\n }\r\n\r\n private addToLines(result: SearchItem) {\r\n if (!this.lines.find(l => l.id === result.productVariantId)) {\r\n this.lines.push({\r\n id: result.productVariantId,\r\n name: result.productVariantName,\r\n preview: result.productAsset?.preview ?? '',\r\n quantity: 1,\r\n sku: result.sku,\r\n unitPriceWithTax:\r\n (result.priceWithTax.__typename === 'SinglePrice' && result.priceWithTax.value) || 0,\r\n });\r\n this.persistToLocalStorage();\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n }\r\n\r\n updateQuantity() {\r\n this.persistToLocalStorage();\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n\r\n removeLine(line: TestOrderLine) {\r\n this.lines = this.lines.filter(l => l.id !== line.id);\r\n this.persistToLocalStorage();\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n\r\n private persistToLocalStorage() {\r\n this.localStorageService.setForCurrentLocation('shippingTestOrder', this.lines);\r\n }\r\n\r\n private loadFromLocalStorage(): TestOrderLine[] {\r\n return this.localStorageService.getForCurrentLocation('shippingTestOrder') || [];\r\n }\r\n}\r\n","<table class=\"order-table table\" *ngIf=\"lines.length; else emptyPlaceholder\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.total' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.preview + '?preset=tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.sku }}</td>\r\n <td class=\"align-middle unit-price\">\r\n {{ line.unitPriceWithTax | localeCurrency : currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <input [(ngModel)]=\"line.quantity\" (change)=\"updateQuantity()\" type=\"number\" max=\"9999\" min=\"1\" />\r\n <button class=\"icon-button\" (click)=\"removeLine(line)\">\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </td>\r\n <td class=\"align-middle total\">\r\n {{ line.unitPriceWithTax * line.quantity | localeCurrency : currencyCode }}\r\n </td>\r\n </tr>\r\n <tr class=\"sub-total\">\r\n <td class=\"left\">{{ 'order.sub-total' | translate }}</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td>{{ subTotal | localeCurrency : currencyCode }}</td>\r\n </tr>\r\n</table>\r\n\r\n<ng-template #emptyPlaceholder>\r\n <div class=\"card-block empty-placeholder card-span\">\r\n <div class=\"empty-text\">{{ 'settings.add-products-to-test-order' | translate }}</div>\r\n <clr-icon shape=\"arrow\" dir=\"down\" size=\"96\"></clr-icon>\r\n </div>\r\n</ng-template>\r\n<div class=\"card-block\">\r\n <vdr-product-variant-selector (productSelected)=\"selectResult($event)\"> </vdr-product-variant-selector>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { DataService, GetAvailableCountriesQuery, ItemOf, LocalStorageService } from '@vendure/admin-ui/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\n\r\nexport interface TestAddress {\r\n city: string;\r\n province: string;\r\n postalCode: string;\r\n countryCode: string;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-test-address-form',\r\n templateUrl: './test-address-form.component.html',\r\n styleUrls: ['./test-address-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TestAddressFormComponent implements OnInit, OnDestroy {\r\n @Output() addressChange = new EventEmitter<TestAddress>();\r\n availableCountries$: Observable<Array<ItemOf<GetAvailableCountriesQuery, 'countries'>>>;\r\n form: UntypedFormGroup;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private dataService: DataService,\r\n private localStorageService: LocalStorageService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.availableCountries$ = this.dataService.settings\r\n .getAvailableCountries()\r\n .mapSingle(result => result.countries.items);\r\n const storedValue = this.localStorageService.getForCurrentLocation('shippingTestAddress');\r\n const initialValue: TestAddress = storedValue\r\n ? storedValue\r\n : {\r\n city: '',\r\n countryCode: '',\r\n postalCode: '',\r\n province: '',\r\n };\r\n this.addressChange.emit(initialValue);\r\n\r\n this.form = this.formBuilder.group(initialValue);\r\n this.subscription = this.form.valueChanges.subscribe(value => {\r\n this.localStorageService.setForCurrentLocation('shippingTestAddress', value);\r\n this.addressChange.emit(value);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header\">\r\n {{ 'settings.test-address' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <form [formGroup]=\"form\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"'customer.city' | translate\">\r\n <input formControlName=\"city\" type=\"text\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.province' | translate\">\r\n <input formControlName=\"province\" type=\"text\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.postal-code' | translate\">\r\n <input formControlName=\"postalCode\" type=\"text\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.country' | translate\">\r\n <select name=\"countryCode\" formControlName=\"countryCode\" >\r\n <option *ngFor=\"let country of availableCountries$ | async\" [value]=\"country.code\">\r\n {{ country.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n </form>\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { CurrencyCode, TestShippingMethodResult } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-shipping-method-test-result',\r\n templateUrl: './shipping-method-test-result.component.html',\r\n styleUrls: ['./shipping-method-test-result.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingMethodTestResultComponent {\r\n @Input() testResult: TestShippingMethodResult;\r\n @Input() okToRun = false;\r\n @Input() testDataUpdated = false;\r\n @Input() currencyCode: CurrencyCode;\r\n @Output() runTest = new EventEmitter<void>();\r\n}\r\n","<div\r\n class=\"test-result card\"\r\n [ngClass]=\"{\r\n success: testResult?.eligible === true,\r\n error: testResult?.eligible === false,\r\n unknown: !testResult\r\n }\"\r\n>\r\n <div class=\"card-header\">\r\n {{ 'settings.test-result' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n <vdr-labeled-data [label]=\"'settings.eligible' | translate\">\r\n <div class=\"eligible-icon\">\r\n <clr-icon\r\n shape=\"success-standard\"\r\n class=\"is-solid success\"\r\n *ngIf=\"testResult?.eligible\"\r\n ></clr-icon>\r\n <clr-icon\r\n shape=\"ban\"\r\n class=\"is-solid error\"\r\n *ngIf=\"testResult?.eligible === false\"\r\n ></clr-icon>\r\n <clr-icon shape=\"unknown-status\" *ngIf=\"!testResult\"></clr-icon>\r\n </div>\r\n {{ testResult?.eligible }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data\r\n [label]=\"'common.price' | translate\"\r\n *ngIf=\"testResult?.quote?.price != null\"\r\n >\r\n {{ testResult.quote?.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data\r\n [label]=\"'common.price-with-tax' | translate\"\r\n *ngIf=\"testResult?.quote?.priceWithTax != null\"\r\n >\r\n {{ testResult.quote?.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree\r\n *ngIf=\"testResult?.quote?.metadata\"\r\n [value]=\"testResult?.quote?.metadata\"\r\n ></vdr-object-tree>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n {{ 'settings.test-shipping-method' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n configurableDefinitionToInstance,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n CreateShippingMethodInput,\r\n createUpdatedTranslatable,\r\n DataService,\r\n findTranslation,\r\n GetActiveChannelQuery,\r\n getConfigArgValue,\r\n getCustomFieldsDefaults,\r\n GetShippingMethodDetailDocument,\r\n GetShippingMethodDetailQuery,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n SHIPPING_METHOD_FRAGMENT,\r\n ShippingMethodFragment,\r\n TestShippingMethodInput,\r\n TestShippingMethodResult,\r\n toConfigurableOperationInput,\r\n TypedBaseDetailComponent,\r\n UpdateShippingMethodInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest, merge, Observable, of, Subject } from 'rxjs';\r\nimport { mergeMap, switchMap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport { TestAddress } from '../test-address-form/test-address-form.component';\r\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\r\n\r\nexport const GET_SHIPPING_METHOD_DETAIL = gql`\r\n query GetShippingMethodDetail($id: ID!) {\r\n shippingMethod(id: $id) {\r\n ...ShippingMethod\r\n }\r\n }\r\n ${SHIPPING_METHOD_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-shipping-method-detail',\r\n templateUrl: './shipping-method-detail.component.html',\r\n styleUrls: ['./shipping-method-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingMethodDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetShippingMethodDetailDocument, 'shippingMethod'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('ShippingMethod');\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n description: '',\r\n fulfillmentHandler: ['', Validators.required],\r\n checker: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['checker'],\r\n calculator: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['calculator'],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n checkers: ConfigurableOperationDefinition[] = [];\r\n calculators: ConfigurableOperationDefinition[] = [];\r\n fulfillmentHandlers: ConfigurableOperationDefinition[] = [];\r\n selectedChecker?: ConfigurableOperation | null;\r\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\r\n selectedCalculator?: ConfigurableOperation | null;\r\n selectedCalculatorDefinition?: ConfigurableOperationDefinition;\r\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\r\n testAddress: TestAddress;\r\n testOrderLines: TestOrderLine[];\r\n testDataUpdated = false;\r\n testResult$: Observable<TestShippingMethodResult | undefined>;\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateShippingMethod];\r\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.dataService.shippingMethod.getShippingMethodOperations().single$.subscribe(data => {\r\n this.checkers = data.shippingEligibilityCheckers;\r\n this.calculators = data.shippingCalculators;\r\n this.fulfillmentHandlers = data.fulfillmentHandlers;\r\n this.changeDetector.markForCheck();\r\n this.selectedCheckerDefinition = data.shippingEligibilityCheckers.find(\r\n c => c.code === this.entity?.checker?.code,\r\n );\r\n this.selectedCalculatorDefinition = data.shippingCalculators.find(\r\n c => c.code === this.entity?.calculator?.code,\r\n );\r\n });\r\n\r\n this.activeChannel$ = this.dataService.settings\r\n .getActiveChannel()\r\n .mapStream(data => data.activeChannel);\r\n\r\n this.testResult$ = this.fetchTestResult$.pipe(\r\n switchMap(([address, lines]) => {\r\n const { checker, calculator } = this.detailForm.value;\r\n if (!this.selectedChecker || !this.selectedCalculator || !checker || !calculator) {\r\n return of(undefined);\r\n }\r\n const input: TestShippingMethodInput = {\r\n shippingAddress: { ...address, streetLine1: 'test' },\r\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\r\n checker: toConfigurableOperationInput(this.selectedChecker, checker),\r\n calculator: toConfigurableOperationInput(this.selectedCalculator, calculator),\r\n };\r\n return this.dataService.shippingMethod\r\n .testShippingMethod(input)\r\n .mapSingle(result => result.testShippingMethod);\r\n }),\r\n );\r\n\r\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n merge(\r\n this.detailForm.get(['checker'])!.valueChanges,\r\n this.detailForm.get(['calculator'])!.valueChanges,\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => (this.testDataUpdated = true));\r\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n updateCode(currentCode: string | undefined, nameValue: string) {\r\n if (!currentCode) {\r\n const codeControl = this.detailForm.get(['code']);\r\n if (codeControl && codeControl.pristine) {\r\n codeControl.setValue(normalizeString(nameValue, '-'));\r\n }\r\n }\r\n }\r\n\r\n selectChecker(checker: ConfigurableOperationDefinition) {\r\n this.selectedCheckerDefinition = checker;\r\n this.selectedChecker = configurableDefinitionToInstance(checker);\r\n const formControl = this.detailForm.get('checker');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedChecker);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n selectCalculator(calculator: ConfigurableOperationDefinition) {\r\n this.selectedCalculatorDefinition = calculator;\r\n this.selectedCalculator = configurableDefinitionToInstance(calculator);\r\n const formControl = this.detailForm.get('calculator');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedCalculator);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n create() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedCalculator = this.selectedCalculator;\r\n const { checker, calculator } = this.detailForm.value;\r\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n ...(this.getUpdatedShippingMethod(\r\n {\r\n createdAt: '',\r\n updatedAt: '',\r\n id: '',\r\n code: '',\r\n name: '',\r\n description: '',\r\n fulfillmentHandlerCode: '',\r\n checker: undefined as any,\r\n calculator: undefined as any,\r\n translations: [],\r\n },\r\n this.detailForm,\r\n this.languageCode,\r\n ) as CreateShippingMethodInput),\r\n checker: toConfigurableOperationInput(selectedChecker, checker),\r\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\r\n };\r\n this.dataService.shippingMethod.createShippingMethod(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'ShippingMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createShippingMethod.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'ShippingMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedCalculator = this.selectedCalculator;\r\n const { checker, calculator } = this.detailForm.value;\r\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\r\n return;\r\n }\r\n combineLatest([this.entity$, this.languageCode$])\r\n .pipe(\r\n take(1),\r\n mergeMap(([shippingMethod, languageCode]) => {\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n ...(this.getUpdatedShippingMethod(\r\n shippingMethod,\r\n this.detailForm,\r\n languageCode,\r\n ) as UpdateShippingMethodInput),\r\n checker: toConfigurableOperationInput(selectedChecker, checker),\r\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\r\n };\r\n return this.dataService.shippingMethod.updateShippingMethod(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'ShippingMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n // eslint-disable-next-line no-console\r\n console.error(err);\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'ShippingMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n setTestOrderLines(event: TestOrderLine[]) {\r\n this.testOrderLines = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n setTestAddress(event: TestAddress) {\r\n this.testAddress = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n allTestDataPresent(): boolean {\r\n return !!(\r\n this.testAddress &&\r\n this.testOrderLines &&\r\n this.testOrderLines.length &&\r\n this.selectedChecker &&\r\n this.selectedCalculator\r\n );\r\n }\r\n\r\n runTest() {\r\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\r\n this.testDataUpdated = false;\r\n }\r\n\r\n /**\r\n * Given a ShippingMethod and the value of the detailForm, this method creates an updated copy which\r\n * can then be persisted to the API.\r\n */\r\n private getUpdatedShippingMethod(\r\n shippingMethod: NonNullable<GetShippingMethodDetailQuery['shippingMethod']>,\r\n formGroup: typeof this.detailForm,\r\n languageCode: LanguageCode,\r\n ): Omit<CreateShippingMethodInput | UpdateShippingMethodInput, 'checker' | 'calculator'> {\r\n const formValue = formGroup.value;\r\n const input = createUpdatedTranslatable({\r\n translatable: shippingMethod,\r\n updatedFields: formValue,\r\n customFieldConfig: this.customFields,\r\n languageCode,\r\n defaultTranslation: {\r\n languageCode,\r\n name: shippingMethod.name || '',\r\n description: shippingMethod.description || '',\r\n },\r\n });\r\n return { ...input, fulfillmentHandler: formValue.fulfillmentHandler };\r\n }\r\n\r\n protected setFormValues(shippingMethod: ShippingMethodFragment, languageCode: LanguageCode): void {\r\n const currentTranslation = findTranslation(shippingMethod, languageCode);\r\n this.detailForm.patchValue({\r\n name: currentTranslation?.name ?? '',\r\n description: currentTranslation?.description ?? '',\r\n code: shippingMethod.code,\r\n fulfillmentHandler: shippingMethod.fulfillmentHandlerCode,\r\n checker: shippingMethod.checker || {},\r\n calculator: shippingMethod.calculator || {},\r\n });\r\n if (!this.selectedChecker) {\r\n this.selectedChecker = shippingMethod.checker && {\r\n code: shippingMethod.checker.code,\r\n args: shippingMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (!this.selectedCalculator) {\r\n this.selectedCalculator = shippingMethod.calculator && {\r\n code: shippingMethod.calculator?.code,\r\n args: shippingMethod.calculator?.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get(['customFields']),\r\n shippingMethod,\r\n currentTranslation,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(entity?.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n class=\"form-grid-span\"\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field\r\n [label]=\"'settings.fulfillment-handler' | translate\"\r\n for=\"fulfillmentHandler\"\r\n >\r\n <select\r\n name=\"fulfillmentHandler\"\r\n formControlName=\"fulfillmentHandler\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\r\n {{ handler.code }}: {{ handler.description }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"ShippingMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"shipping-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-card [title]=\"'settings.shipping-eligibility-checker' | translate\">\r\n <vdr-configurable-input\r\n class=\"card-span\"\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedChecker = null\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\" class=\"card-span\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.shipping-calculator' | translate\">\r\n <vdr-configurable-input\r\n class=\"card-span\"\r\n *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\r\n [operation]=\"selectedCalculator\"\r\n [operationDefinition]=\"selectedCalculatorDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedCalculator = null\"\r\n formControlName=\"calculator\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\" class=\"card-span\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let calculator of calculators\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectCalculator(calculator)\"\r\n >\r\n {{ calculator.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.test-shipping-method' | translate\">\r\n <vdr-test-order-builder\r\n class=\"card-span\"\r\n (orderLinesChange)=\"setTestOrderLines($event)\"\r\n ></vdr-test-order-builder>\r\n <vdr-test-address-form\r\n (addressChange)=\"setTestAddress($event)\"\r\n class=\"mt-2\"\r\n ></vdr-test-address-form>\r\n <vdr-shipping-method-test-result\r\n class=\"mt-2\"\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-method-test-result>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import {\r\n createBulkAssignToChannelAction,\r\n createBulkDeleteAction,\r\n createBulkRemoveFromChannelAction,\r\n GetShippingMethodListQuery,\r\n GetRolesQuery,\r\n ItemOf,\r\n Permission,\r\n AssignShippingMethodsToChannelDocument,\r\n RemoveShippingMethodsFromChannelDocument,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteShippingMethodsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\r\n>({\r\n location: 'shipping-method-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteShippingMethod),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.shippingMethod.deleteShippingMethods(ids).pipe(map(res => res.deleteShippingMethods)),\r\n});\r\n\r\nconst ASSIGN_SHIPPING_METHODS_TO_CHANNEL = gql`\r\n mutation AssignShippingMethodsToChannel($input: AssignShippingMethodsToChannelInput!) {\r\n assignShippingMethodsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst REMOVE_SHIPPING_METHODS_FROM_CHANNEL = gql`\r\n mutation RemoveShippingMethodsFromChannel($input: RemoveShippingMethodsFromChannelInput!) {\r\n removeShippingMethodsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\nexport const assignShippingMethodsToChannelBulkAction = createBulkAssignToChannelAction<\r\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\r\n>({\r\n location: 'shipping-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.UpdateShippingMethod) ||\r\n userPermissions.includes(Permission.UpdateSettings),\r\n getItemName: item => item.name,\r\n bulkAssignToChannel: (dataService, shippingMethodIds, channelIds) =>\r\n channelIds.map(channelId =>\r\n dataService\r\n .mutate(AssignShippingMethodsToChannelDocument, {\r\n input: {\r\n channelId,\r\n shippingMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.assignShippingMethodsToChannel)),\r\n ),\r\n});\r\n\r\nexport const removeShippingMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\r\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\r\n>({\r\n location: 'shipping-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteShippingMethod) ||\r\n userPermissions.includes(Permission.DeleteSettings),\r\n getItemName: item => item.name,\r\n bulkRemoveFromChannel: (dataService, shippingMethodIds, channelId) =>\r\n dataService\r\n .mutate(RemoveShippingMethodsFromChannelDocument, {\r\n input: {\r\n channelId,\r\n shippingMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.removeShippingMethodsFromChannel)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetShippingMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_SHIPPING_METHOD_LIST = gql`\r\n query GetShippingMethodList($options: ShippingMethodListOptions) {\r\n shippingMethods(options: $options) {\r\n items {\r\n ...ShippingMethodListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment ShippingMethodListItem on ShippingMethod {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n name\r\n description\r\n fulfillmentHandlerCode\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-shipping-method-list',\r\n templateUrl: './shipping-method-list.component.html',\r\n styleUrls: ['./shipping-method-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingMethodListComponent\r\n extends TypedBaseListComponent<typeof GetShippingMethodListDocument, 'shippingMethods'>\r\n implements OnInit\r\n{\r\n readonly customFields = this.getCustomFieldConfig('ShippingMethod');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'description',\r\n type: { kind: 'text' },\r\n label: _('common.description'),\r\n filterField: 'description',\r\n })\r\n .addFilter({\r\n name: 'fulfillmentHandler',\r\n type: { kind: 'text' },\r\n label: _('settings.fulfillment-handler'),\r\n filterField: 'fulfillmentHandlerCode',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'description' })\r\n .addSort({ name: 'fulfillmentHandlerCode' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetShippingMethodListDocument,\r\n getItems: data => data.shippingMethods,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateShippingMethod']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-shipping-method' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n id=\"shipping-method-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"shipping-method-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-shippingMethod=\"item\">\r\n {{ shippingMethod.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-shippingMethod=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', shippingMethod.id]\"\r\n ><span>{{ shippingMethod.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.description' | translate\" id=\"description\"\r\n [sort]=\"sorts.get('description')\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.description }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.fulfillment-handler' | translate\" id=\"fulfillment-handler\" [sort]=\"sorts.get('fulfillmentHandlerCode')\">\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.fulfillmentHandlerCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateStockLocationDocument,\r\n CreateStockLocationInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetStockLocationDetailDocument,\r\n NotificationService,\r\n StockLocationDetailFragment,\r\n TypedBaseDetailComponent,\r\n UpdateStockLocationDocument,\r\n UpdateStockLocationInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nconst STOCK_LOCATION_DETAIL_FRAGMENT = gql`\r\n fragment StockLocationDetail on StockLocation {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n description\r\n }\r\n`;\r\n\r\nexport const GET_STOCK_LOCATION_DETAIL = gql`\r\n query GetStockLocationDetail($id: ID!) {\r\n stockLocation(id: $id) {\r\n ...StockLocationDetail\r\n }\r\n }\r\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_STOCK_LOCATION = gql`\r\n mutation CreateStockLocation($input: CreateStockLocationInput!) {\r\n createStockLocation(input: $input) {\r\n ...StockLocationDetail\r\n }\r\n }\r\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_STOCK_LOCATION = gql`\r\n mutation UpdateStockLocation($input: UpdateStockLocationInput!) {\r\n updateStockLocation(input: $input) {\r\n ...StockLocationDetail\r\n }\r\n }\r\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-stock-location-detail',\r\n templateUrl: './stock-location-detail.component.html',\r\n styleUrls: ['./stock-location-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StockLocationDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetStockLocationDetailDocument, 'stockLocation'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('StockLocation');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n description: [''],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const { name, description, customFields } = this.detailForm.value;\r\n if (!name) {\r\n return;\r\n }\r\n const input = {\r\n name,\r\n description,\r\n customFields,\r\n } satisfies CreateStockLocationInput;\r\n this.dataService.mutate(CreateStockLocationDocument, { input }).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'StockLocation',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createStockLocation.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'StockLocation',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(taxRate => {\r\n const input = {\r\n id: taxRate.id,\r\n name: formValue.name,\r\n description: formValue.description,\r\n customFields: formValue.customFields,\r\n } satisfies UpdateStockLocationInput;\r\n return this.dataService.mutate(UpdateStockLocationDocument, { input });\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'StockLocation',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'StockLocation',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: StockLocationDetailFragment): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n description: entity.description,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"stock-location-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n *vdrIfPermissions=\"'UpdateStockLocation'\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n class=\"form-grid-span\"\r\n [label]=\"'common.description' | translate\"\r\n for=\"slug\"\r\n [errors]=\"{ pattern: 'catalog.slug-pattern-error' | translate }\"\r\n >\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\r\n ></vdr-rich-text-editor>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"StockLocation\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"stock-location-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import {\r\n AssignStockLocationsToChannelDocument,\r\n createBulkAssignToChannelAction,\r\n createBulkDeleteAction,\r\n createBulkRemoveFromChannelAction,\r\n DeleteStockLocationsDocument,\r\n DeletionResult,\r\n GetStockLocationListQuery,\r\n ItemOf,\r\n Permission,\r\n RemoveStockLocationsFromChannelDocument,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { map } from 'rxjs/operators';\r\n\r\nconst DELETE_STOCK_LOCATIONS = gql`\r\n mutation DeleteStockLocations($input: [DeleteStockLocationInput!]!) {\r\n deleteStockLocations(input: $input) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst ASSIGN_STOCK_LOCATIONS_TO_CHANNEL = gql`\r\n mutation AssignStockLocationsToChannel($input: AssignStockLocationsToChannelInput!) {\r\n assignStockLocationsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst REMOVE_STOCK_LOCATIONS_FROM_CHANNEL = gql`\r\n mutation RemoveStockLocationsFromChannel($input: RemoveStockLocationsFromChannelInput!) {\r\n removeStockLocationsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const deleteStockLocationsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\r\n>({\r\n location: 'stock-location-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteStockLocation) ||\r\n userPermissions.includes(Permission.DeleteCatalog),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService\r\n .mutate(DeleteStockLocationsDocument, {\r\n input: ids.map(id => ({ id })),\r\n })\r\n .pipe(map(res => res.deleteStockLocations)),\r\n shouldRetryItem: response => response.result === DeletionResult.NOT_DELETED,\r\n});\r\n\r\nexport const assignStockLocationsToChannelBulkAction = createBulkAssignToChannelAction<\r\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\r\n>({\r\n location: 'stock-location-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.UpdateCatalog) ||\r\n userPermissions.includes(Permission.UpdateStockLocation),\r\n getItemName: item => item.name,\r\n bulkAssignToChannel: (dataService, stockLocationIds, channelIds) =>\r\n channelIds.map(channelId =>\r\n dataService\r\n .mutate(AssignStockLocationsToChannelDocument, {\r\n input: {\r\n channelId,\r\n stockLocationIds,\r\n },\r\n })\r\n .pipe(map(res => res.assignStockLocationsToChannel)),\r\n ),\r\n});\r\n\r\nexport const removeStockLocationsFromChannelBulkAction = createBulkRemoveFromChannelAction<\r\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\r\n>({\r\n location: 'stock-location-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteCatalog) ||\r\n userPermissions.includes(Permission.DeleteStockLocation),\r\n getItemName: item => item.name,\r\n bulkRemoveFromChannel: (dataService, stockLocationIds, channelId) =>\r\n dataService\r\n .mutate(RemoveStockLocationsFromChannelDocument, {\r\n input: {\r\n channelId,\r\n stockLocationIds,\r\n },\r\n })\r\n .pipe(map(res => res.removeStockLocationsFromChannel)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetStockLocationListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_STOCK_LOCATION_LIST = gql`\r\n query GetStockLocationList($options: StockLocationListOptions) {\r\n stockLocations(options: $options) {\r\n items {\r\n ...StockLocationListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment StockLocationListItem on StockLocation {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n description\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-stock-location-list',\r\n templateUrl: './stock-location-list.component.html',\r\n styleUrls: ['./stock-location-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StockLocationListComponent\r\n extends TypedBaseListComponent<typeof GetStockLocationListDocument, 'stockLocations'>\r\n implements OnInit\r\n{\r\n readonly customFields = this.getCustomFieldConfig('StockLocation');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilters([\r\n {\r\n name: 'enabled',\r\n type: { kind: 'text' },\r\n label: _('common.enabled'),\r\n filterField: 'name',\r\n },\r\n {\r\n name: 'sku',\r\n type: { kind: 'text' },\r\n label: _('catalog.sku'),\r\n filterField: 'description',\r\n },\r\n ])\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .addSorts([\r\n { name: 'id' },\r\n { name: 'createdAt' },\r\n { name: 'updatedAt' },\r\n { name: 'name' },\r\n { name: 'description' },\r\n ])\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n this.configure({\r\n document: GetStockLocationListDocument,\r\n getItems: data => data.stockLocations,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"stock-location-list\" />\r\n <a\r\n class=\"button primary\"\r\n *vdrIfPermissions=\"['CreateStockLocation']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-stock-location' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"stock-location-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"stock-location-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-stockLocation=\"item\">\r\n {{ stockLocation.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-stockLocation=\"item\">\r\n {{ stockLocation.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-stockLocation=\"item\">\r\n {{ stockLocation.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-stockLocation=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', stockLocation.id]\"\r\n ><span>{{ stockLocation.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]=\"'common.description' | translate\" id=\"description\" [sort]=\"sorts.get('description')\">\r\n <ng-template let-stockLocation=\"item\">\r\n <div class=\"description\" [innerHTML]=\"stockLocation.description\"></div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let field of customFields\"\r\n [customField]=\"field\"\r\n [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateTaxCategoryInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetTaxCategoryDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TAX_CATEGORY_FRAGMENT,\r\n TaxCategoryFragment,\r\n TypedBaseDetailComponent,\r\n UpdateTaxCategoryInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_TAX_CATEGORY_DETAIL = gql`\r\n query GetTaxCategoryDetail($id: ID!) {\r\n taxCategory(id: $id) {\r\n ...TaxCategory\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-detail',\r\n templateUrl: './tax-category-detail.component.html',\r\n styleUrls: ['./tax-category-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxCategoryDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetTaxCategoryDetailDocument, 'taxCategory'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('TaxCategory');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n isDefault: false,\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxCategory];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n name: formValue.name,\r\n isDefault: formValue.isDefault,\r\n customFields: formValue.customFields,\r\n } as CreateTaxCategoryInput;\r\n this.dataService.settings.createTaxCategory(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'TaxCategory',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createTaxCategory.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'TaxCategory',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(taxCategory => {\r\n const input = {\r\n id: taxCategory.id,\r\n name: formValue.name,\r\n isDefault: formValue.isDefault,\r\n customFields: formValue.customFields,\r\n } as UpdateTaxCategoryInput;\r\n return this.dataService.settings.updateTaxCategory(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'TaxCategory',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'TaxCategory',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: TaxCategoryFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n isDefault: entity.isDefault,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"isDefault\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"isDefault\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxCategory\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-category-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetTaxCategoryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteTaxCategoriesBulkAction = createBulkDeleteAction<\r\n ItemOf<GetTaxCategoryListQuery, 'taxCategories'>\r\n>({\r\n location: 'tax-category-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteTaxCategory),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteTaxCategories(ids).pipe(map(res => res.deleteTaxCategories)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n GetTaxCategoryListDocument,\r\n TAX_CATEGORY_FRAGMENT,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_TAX_CATEGORY_LIST = gql`\r\n query GetTaxCategoryList($options: TaxCategoryListOptions) {\r\n taxCategories(options: $options) {\r\n items {\r\n ...TaxCategory\r\n }\r\n totalItems\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-list',\r\n templateUrl: './tax-category-list.component.html',\r\n styleUrls: ['./tax-category-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxCategoryListComponent extends TypedBaseListComponent<\r\n typeof GetTaxCategoryListDocument,\r\n 'taxCategories'\r\n> {\r\n readonly customFields = this.serverConfigService.getCustomFieldsFor('TaxCategory');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetTaxCategoryListDocument,\r\n getItems: data => data.taxCategories,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxCategory']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-tax-category' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n id=\"tax-category-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"tax-category-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-taxCategory=\"item\">\r\n {{ taxCategory.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-taxCategory=\"item\">\r\n {{ taxCategory.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-taxCategory=\"item\">\r\n {{ taxCategory.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-taxCategory=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', taxCategory.id]\"\r\n ><span>{{ taxCategory.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.default-tax-category' | translate\" id=\"default-tax-category\">\r\n <ng-template let-taxCategory=\"item\">\r\n <vdr-chip *ngIf=\"taxCategory.isDefault\">{{ 'common.default-tax-category' | translate }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateTaxRateInput,\r\n CustomerGroup,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetTaxRateDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TAX_RATE_FRAGMENT,\r\n TaxCategoryFragment,\r\n TaxRateFragment,\r\n TypedBaseDetailComponent,\r\n UpdateTaxRateInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_TAX_RATE_DETAIL = gql`\r\n query GetTaxRateDetail($id: ID!) {\r\n taxRate(id: $id) {\r\n ...TaxRate\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-rate-detail',\r\n templateUrl: './tax-rate-detail.component.html',\r\n styleUrls: ['./tax-rate-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxRateDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetTaxRateDetailDocument, 'taxRate'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('TaxRate');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n enabled: [true],\r\n value: [0, Validators.required],\r\n taxCategoryId: ['', Validators.required],\r\n zoneId: ['', Validators.required],\r\n customerGroupId: [''],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n taxCategories$: Observable<TaxCategoryFragment[]>;\r\n groups$: Observable<CustomerGroup[]>;\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxRate];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.taxCategories$ = this.dataService.settings\r\n .getTaxCategories({ take: 100 })\r\n .mapSingle(data => data.taxCategories.items);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const { name, enabled, value, taxCategoryId, zoneId, customerGroupId, customFields } =\r\n this.detailForm.value;\r\n if (!name || enabled == null || value == null || !taxCategoryId || !zoneId) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n name,\r\n enabled,\r\n value,\r\n categoryId: taxCategoryId,\r\n zoneId,\r\n customerGroupId: formValue.customerGroupId,\r\n customFields: formValue.customFields,\r\n } satisfies CreateTaxRateInput;\r\n this.dataService.settings.createTaxRate(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'TaxRate',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createTaxRate.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'TaxRate',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(taxRate => {\r\n const input = {\r\n id: taxRate.id,\r\n name: formValue.name,\r\n enabled: formValue.enabled,\r\n value: formValue.value,\r\n categoryId: formValue.taxCategoryId,\r\n zoneId: formValue.zoneId,\r\n customerGroupId: formValue.customerGroupId,\r\n customFields: formValue.customFields,\r\n } satisfies UpdateTaxRateInput;\r\n return this.dataService.settings.updateTaxRate(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'TaxRate',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'TaxRate',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: TaxRateFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n enabled: entity.enabled,\r\n value: entity.value,\r\n taxCategoryId: entity.category ? entity.category.id : '',\r\n zoneId: entity.zone ? entity.zone.id : '',\r\n customerGroupId: entity.customerGroup ? entity.customerGroup.id : '',\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\r\n <vdr-affixed-input suffix=\"%\">\r\n <input\r\n id=\"value\"\r\n type=\"number\"\r\n step=\"0.1\"\r\n formControlName=\"value\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\r\n <select\r\n name=\"taxCategoryId\"\r\n formControlName=\"taxCategoryId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option\r\n *ngFor=\"let taxCategory of taxCategories$ | async\"\r\n [value]=\"taxCategory.id\"\r\n >\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\r\n <vdr-zone-selector\r\n name=\"zoneId\"\r\n formControlName=\"zoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n </vdr-zone-selector>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxRate\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-rate-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetTaxRateListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteTaxRatesBulkAction = createBulkDeleteAction<ItemOf<GetTaxRateListQuery, 'taxRates'>>({\r\n location: 'tax-rate-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteTaxRate),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteTaxRates(ids).pipe(map(res => res.deleteTaxRates)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetTaxRateListDocument, TAX_RATE_FRAGMENT, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_TAX_RATE_LIST = gql`\r\n query GetTaxRateList($options: TaxRateListOptions) {\r\n taxRates(options: $options) {\r\n items {\r\n ...TaxRate\r\n }\r\n totalItems\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-rate-list',\r\n templateUrl: './tax-rate-list.component.html',\r\n styleUrls: ['./tax-rate-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxRateListComponent extends TypedBaseListComponent<typeof GetTaxRateListDocument, 'taxRates'> {\r\n readonly customFields = this.getCustomFieldConfig('TaxRate');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'enabled',\r\n type: { kind: 'boolean' },\r\n label: _('common.enabled'),\r\n filterField: 'enabled',\r\n })\r\n .addFilter({\r\n name: 'value',\r\n type: { kind: 'number' },\r\n label: _('common.value'),\r\n filterField: 'value',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'value' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetTaxRateListDocument,\r\n getItems: data => data.taxRates,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-tax-rate' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n id=\"tax-rate-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"tax-rate-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-taxRate=\"item\">\r\n {{ taxRate.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-taxRate=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', taxRate.id]\"\r\n ><span>{{ taxRate.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.tax-category' | translate\" id=\"tax-category\">\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.category.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.zone' | translate\" id=\"zone\">\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.zone.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.customer-group' | translate\" id=\"customer-group\" [hiddenByDefault]=\"true\">\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.customerGroup?.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.tax-rate' | translate\" id=\"tax-rate\" [sort]=\"sorts.get('value')\">\r\n <ng-template let-taxRate=\"item\"> {{ taxRate.value }}% </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-taxRate=\"item\">\r\n <vdr-chip *ngIf=\"taxRate.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!taxRate.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport {\r\n DataService,\r\n GetActiveChannelQuery,\r\n ShippingMethodQuote,\r\n TestEligibleShippingMethodsInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { TestAddress } from '../test-address-form/test-address-form.component';\r\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\r\n\r\n@Component({\r\n selector: 'vdr-test-shipping-methods',\r\n templateUrl: './test-shipping-methods.component.html',\r\n styleUrls: ['./test-shipping-methods.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TestShippingMethodsComponent implements OnInit {\r\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\r\n testAddress: TestAddress;\r\n testOrderLines: TestOrderLine[];\r\n testDataUpdated = false;\r\n testResult$: Observable<ShippingMethodQuote[] | undefined>;\r\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.activeChannel$ = this.dataService.settings\r\n .getActiveChannel()\r\n .mapStream(data => data.activeChannel);\r\n this.testResult$ = this.fetchTestResult$.pipe(\r\n switchMap(([address, lines]) => {\r\n const input: TestEligibleShippingMethodsInput = {\r\n shippingAddress: { ...address, streetLine1: 'test' },\r\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\r\n };\r\n return this.dataService.shippingMethod\r\n .testEligibleShippingMethods(input)\r\n .mapSingle(result => result.testEligibleShippingMethods);\r\n }),\r\n );\r\n }\r\n\r\n setTestOrderLines(event: TestOrderLine[]) {\r\n this.testOrderLines = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n setTestAddress(event: TestAddress) {\r\n this.testAddress = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n allTestDataPresent(): boolean {\r\n return !!(this.testAddress && this.testOrderLines && this.testOrderLines.length);\r\n }\r\n\r\n runTest() {\r\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\r\n this.testDataUpdated = false;\r\n }\r\n}\r\n","<vdr-page-block>\r\n <div class=\"test-wrapper\">\r\n <div class=\"\">\r\n <vdr-test-order-builder (orderLinesChange)=\"setTestOrderLines($event)\"></vdr-test-order-builder>\r\n </div>\r\n <div class=\"\">\r\n <vdr-test-address-form (addressChange)=\"setTestAddress($event)\"></vdr-test-address-form>\r\n <vdr-shipping-eligibility-test-result\r\n class=\"mt-1\"\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent()\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-eligibility-test-result>\r\n </div>\r\n </div>\r\n</vdr-page-block>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateZoneInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetZoneDetailDocument,\r\n GetZoneDetailQuery,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TypedBaseDetailComponent,\r\n UpdateTaxCategoryInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_ZONE_DETAIL = gql`\r\n query GetZoneDetail($id: ID!) {\r\n zone(id: $id) {\r\n ...ZoneDetail\r\n }\r\n }\r\n fragment ZoneDetail on Zone {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-zone-detail',\r\n templateUrl: './zone-detail.component.html',\r\n styleUrls: ['./zone-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetZoneDetailDocument, 'zone'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Zone');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateZone];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const { name, customFields } = this.detailForm.value;\r\n if (!name) {\r\n return;\r\n }\r\n const input = {\r\n name,\r\n customFields,\r\n } satisfies CreateZoneInput;\r\n this.dataService.settings.createZone(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Zone',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createZone.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Zone',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(zone => {\r\n const input = {\r\n id: zone.id,\r\n name: formValue.name,\r\n customFields: formValue.customFields,\r\n } satisfies UpdateTaxCategoryInput;\r\n return this.dataService.settings.updateZone(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Zone',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Zone',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(\r\n entity: NonNullable<GetZoneDetailQuery['zone']>,\r\n languageCode: LanguageCode,\r\n ): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"zone-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"zone-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Zone\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"zone-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetZoneListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteZonesBulkAction = createBulkDeleteAction<ItemOf<GetZoneListQuery, 'zones'>>({\r\n location: 'zone-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteZone),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) => dataService.settings.deleteZones(ids).pipe(map(res => res.deleteZones)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n DataService,\r\n GetZoneListDocument,\r\n GetZoneListQuery,\r\n ItemOf,\r\n LanguageCode,\r\n LogicalOperator,\r\n ModalService,\r\n NotificationService,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest, EMPTY, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, mapTo, switchMap, tap } from 'rxjs/operators';\r\n\r\nimport { AddCountryToZoneDialogComponent } from '../add-country-to-zone-dialog/add-country-to-zone-dialog.component';\r\nimport { ZoneMemberListComponent } from '../zone-member-list/zone-member-list.component';\r\n\r\nexport const GET_ZONE_LIST = gql`\r\n query GetZoneList($options: ZoneListOptions) {\r\n zones(options: $options) {\r\n items {\r\n ...ZoneListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment ZoneListItem on Zone {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-zone-list',\r\n templateUrl: './zone-list.component.html',\r\n styleUrls: ['./zone-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneListComponent\r\n extends TypedBaseListComponent<typeof GetZoneListDocument, 'zones'>\r\n implements OnInit\r\n{\r\n activeZone$: Observable<ItemOf<GetZoneListQuery, 'zones'> | undefined>;\r\n activeIndex$: Observable<number>;\r\n selectedMemberIds: string[] = [];\r\n @ViewChild(ZoneMemberListComponent) zoneMemberList: ZoneMemberListComponent;\r\n readonly customFields = this.serverConfigService.getCustomFieldsFor('Zone');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor(\r\n protected dataService: DataService,\r\n private notificationService: NotificationService,\r\n private modalService: ModalService,\r\n ) {\r\n super();\r\n super.configure({\r\n document: GetZoneListDocument,\r\n getItems: data => data.zones,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n filterOperator: this.searchTermControl.value ? LogicalOperator.OR : LogicalOperator.AND,\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n const activeZoneId$ = this.route.paramMap.pipe(\r\n map(pm => pm.get('contents')),\r\n distinctUntilChanged(),\r\n tap(() => (this.selectedMemberIds = [])),\r\n );\r\n this.activeZone$ = combineLatest(this.items$, activeZoneId$).pipe(\r\n map(([zones, activeZoneId]) => {\r\n if (activeZoneId) {\r\n return zones.find(z => z.id === activeZoneId);\r\n }\r\n }),\r\n );\r\n this.activeIndex$ = combineLatest(this.items$, activeZoneId$).pipe(\r\n map(([zones, activeZoneId]) => {\r\n if (activeZoneId) {\r\n return zones.findIndex(g => g.id === activeZoneId);\r\n } else {\r\n return -1;\r\n }\r\n }),\r\n );\r\n }\r\n\r\n setLanguage(code: LanguageCode) {\r\n this.dataService.client.setContentLanguage(code).subscribe();\r\n }\r\n\r\n closeMembers() {\r\n const params = { ...this.route.snapshot.params };\r\n delete params.contents;\r\n this.router.navigate(['./', params], { relativeTo: this.route, queryParamsHandling: 'preserve' });\r\n }\r\n\r\n addToZone(zone: ItemOf<GetZoneListQuery, 'zones'>) {\r\n this.modalService\r\n .fromComponent(AddCountryToZoneDialogComponent, {\r\n locals: {\r\n zoneName: zone.name,\r\n zoneId: zone.id,\r\n },\r\n size: 'md',\r\n })\r\n .pipe(\r\n switchMap(memberIds =>\r\n memberIds\r\n ? this.dataService.settings\r\n .addMembersToZone(zone.id, memberIds)\r\n .pipe(mapTo(memberIds))\r\n : EMPTY,\r\n ),\r\n )\r\n .subscribe({\r\n next: result => {\r\n this.notificationService.success(_(`settings.add-countries-to-zone-success`), {\r\n countryCount: result.length,\r\n zoneName: zone.name,\r\n });\r\n this.refreshMemberList();\r\n },\r\n error: err => {\r\n this.notificationService.error(err);\r\n },\r\n });\r\n }\r\n\r\n refreshMemberList() {\r\n this.zoneMemberList?.refresh();\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"zone-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-zone' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"zone-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-split-view [rightPanelOpen]=\"activeZone$ | async\" (closeClicked)=\"closeMembers()\">\r\n <ng-template vdrSplitViewLeft>\r\n <vdr-data-table-2\r\n id=\"zone-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n [activeIndex]=\"activeIndex$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n >\r\n <vdr-bulk-action-menu\r\n locationId=\"zone-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\" id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\r\n ><span>{{ customerGroup.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.view-contents' | translate\" id=\"view-contents\" [optional]=\"false\">\r\n <ng-template let-customerGroup=\"item\">\r\n <a\r\n class=\"button-small bg-weight-150\"\r\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <span>{{ 'settings.view-zone-members' | translate }}</span>\r\n <clr-icon shape=\"file-group\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sort]=\"sorts\"\r\n />\r\n </vdr-data-table-2>\r\n </ng-template>\r\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeZone$ | async)?.name\">\r\n <ng-container *ngIf=\"activeZone$ | async as activeZone\">\r\n <button class=\"button-ghost ml-4\" (click)=\"addToZone(activeZone)\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span>{{\r\n 'settings.add-countries-to-zone' | translate : { zoneName: activeZone.name }\r\n }}</span>\r\n </button>\r\n <vdr-zone-member-list\r\n *ngIf=\"activeZone$ | async as activeZone\"\r\n locationId=\"zone-members-list\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n [activeZone]=\"activeZone\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n />\r\n </ng-container>\r\n </ng-template>\r\n</vdr-split-view>\r\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { BulkAction, DataService, NotificationService, Permission } from '@vendure/admin-ui/core';\r\nimport { ZoneMember, ZoneMemberListComponent } from './zone-member-list.component';\r\n\r\nexport const removeZoneMembersBulkAction: BulkAction<ZoneMember, ZoneMemberListComponent> = {\r\n location: 'zone-members-list',\r\n label: _('settings.remove-from-zone'),\r\n icon: 'trash',\r\n iconClass: 'is-danger',\r\n requiresPermission: Permission.UpdateCustomerGroup,\r\n onClick: ({ injector, selection, hostComponent, clearSelection }) => {\r\n const dataService = injector.get(DataService);\r\n const notificationService = injector.get(NotificationService);\r\n\r\n const zone = hostComponent.activeZone;\r\n const memberIds = selection.map(s => s.id);\r\n\r\n dataService.settings.removeMembersFromZone(zone.id, memberIds).subscribe({\r\n complete: () => {\r\n notificationService.success(_(`settings.remove-countries-from-zone-success`), {\r\n countryCount: memberIds.length,\r\n zoneName: zone.name,\r\n });\r\n hostComponent.refresh();\r\n clearSelection();\r\n },\r\n });\r\n },\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AdministratorFragment, BaseEntityResolver, DataService } from '@vendure/admin-ui/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProfileResolver extends BaseEntityResolver<AdministratorFragment> {\r\n constructor(router: Router, dataService: DataService) {\r\n super(\r\n router,\r\n {\r\n __typename: 'Administrator' as const,\r\n id: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n emailAddress: '',\r\n firstName: '',\r\n lastName: '',\r\n user: { roles: [] } as any,\r\n },\r\n id =>\r\n dataService.administrator\r\n .getActiveAdministrator()\r\n .mapStream(data => data.activeAdministrator),\r\n );\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { Route } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n DataService,\r\n GetGlobalSettingsDetailDocument,\r\n GetProfileDetailDocument,\r\n PageComponent,\r\n PageService,\r\n} from '@vendure/admin-ui/core';\r\nimport { of } from 'rxjs';\r\n\r\nexport const createRoutes = (pageService: PageService): Route[] => [\r\n {\r\n path: 'profile',\r\n component: PageComponent,\r\n data: {\r\n breadcrumb: _('breadcrumb.profile'),\r\n },\r\n resolve: {\r\n detail: () =>\r\n inject(DataService)\r\n .query(GetProfileDetailDocument)\r\n .mapSingle(data => ({ entity: of(data.activeAdministrator) })),\r\n },\r\n children: pageService.getPageTabRoutes('profile'),\r\n },\r\n {\r\n path: 'administrators',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'administrator-list',\r\n breadcrumb: _('breadcrumb.administrators'),\r\n },\r\n children: pageService.getPageTabRoutes('administrator-list'),\r\n },\r\n {\r\n path: 'administrators/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'administrator-detail',\r\n breadcrumb: { label: _('breadcrumb.administrators'), link: ['../', 'administrators'] },\r\n },\r\n children: pageService.getPageTabRoutes('administrator-detail'),\r\n },\r\n {\r\n path: 'channels',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'channel-list',\r\n breadcrumb: _('breadcrumb.channels'),\r\n },\r\n children: pageService.getPageTabRoutes('channel-list'),\r\n },\r\n {\r\n path: 'channels/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'channel-detail',\r\n breadcrumb: { label: _('breadcrumb.channels'), link: ['../', 'channels'] },\r\n },\r\n children: pageService.getPageTabRoutes('channel-detail'),\r\n },\r\n {\r\n path: 'stock-locations',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'stock-location-list',\r\n breadcrumb: _('breadcrumb.stock-locations'),\r\n },\r\n children: pageService.getPageTabRoutes('stock-location-list'),\r\n },\r\n {\r\n path: 'stock-locations/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'stock-location-detail',\r\n breadcrumb: { label: _('breadcrumb.stock-locations'), link: ['../', 'stock-locations'] },\r\n },\r\n children: pageService.getPageTabRoutes('stock-location-detail'),\r\n },\r\n {\r\n path: 'sellers',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'seller-list',\r\n breadcrumb: _('breadcrumb.sellers'),\r\n },\r\n children: pageService.getPageTabRoutes('seller-list'),\r\n },\r\n {\r\n path: 'sellers/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'seller-detail',\r\n breadcrumb: { label: _('breadcrumb.sellers'), link: ['../', 'sellers'] },\r\n },\r\n children: pageService.getPageTabRoutes('seller-detail'),\r\n },\r\n {\r\n path: 'roles',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'role-list',\r\n breadcrumb: _('breadcrumb.roles'),\r\n },\r\n children: pageService.getPageTabRoutes('role-list'),\r\n },\r\n {\r\n path: 'roles/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'role-detail',\r\n breadcrumb: { label: _('breadcrumb.roles'), link: ['../', 'roles'] },\r\n },\r\n children: pageService.getPageTabRoutes('role-detail'),\r\n },\r\n {\r\n path: 'tax-categories',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-category-list',\r\n breadcrumb: _('breadcrumb.tax-categories'),\r\n },\r\n children: pageService.getPageTabRoutes('tax-category-list'),\r\n },\r\n {\r\n path: 'tax-categories/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-category-detail',\r\n breadcrumb: { label: _('breadcrumb.tax-categories'), link: ['../', 'tax-categories'] },\r\n },\r\n children: pageService.getPageTabRoutes('tax-category-detail'),\r\n },\r\n {\r\n path: 'tax-rates',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-rate-list',\r\n breadcrumb: _('breadcrumb.tax-rates'),\r\n },\r\n children: pageService.getPageTabRoutes('tax-rate-list'),\r\n },\r\n {\r\n path: 'tax-rates/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-rate-detail',\r\n breadcrumb: { label: _('breadcrumb.tax-rates'), link: ['../', 'tax-rates'] },\r\n },\r\n children: pageService.getPageTabRoutes('tax-rate-detail'),\r\n },\r\n {\r\n path: 'countries',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'country-list',\r\n breadcrumb: _('breadcrumb.countries'),\r\n },\r\n children: pageService.getPageTabRoutes('country-list'),\r\n },\r\n {\r\n path: 'countries/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'country-detail',\r\n breadcrumb: { label: _('breadcrumb.countries'), link: ['../', 'countries'] },\r\n },\r\n children: pageService.getPageTabRoutes('country-detail'),\r\n },\r\n {\r\n path: 'zones',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'zone-list',\r\n breadcrumb: _('breadcrumb.zones'),\r\n },\r\n children: pageService.getPageTabRoutes('zone-list'),\r\n },\r\n {\r\n path: 'zones/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'zone-detail',\r\n breadcrumb: { label: _('breadcrumb.zones'), link: ['../', 'zones'] },\r\n },\r\n children: pageService.getPageTabRoutes('zone-detail'),\r\n },\r\n {\r\n path: 'shipping-methods',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'shipping-method-list',\r\n breadcrumb: _('breadcrumb.shipping-methods'),\r\n },\r\n children: pageService.getPageTabRoutes('shipping-method-list'),\r\n },\r\n {\r\n path: 'shipping-methods/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'shipping-method-detail',\r\n breadcrumb: { label: _('breadcrumb.shipping-methods'), link: ['../', 'shipping-methods'] },\r\n },\r\n children: pageService.getPageTabRoutes('shipping-method-detail'),\r\n },\r\n {\r\n path: 'payment-methods',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'payment-method-list',\r\n breadcrumb: _('breadcrumb.payment-methods'),\r\n },\r\n children: pageService.getPageTabRoutes('payment-method-list'),\r\n },\r\n {\r\n path: 'payment-methods/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'payment-method-detail',\r\n breadcrumb: { label: _('breadcrumb.payment-methods'), link: ['../', 'payment-methods'] },\r\n },\r\n children: pageService.getPageTabRoutes('payment-method-detail'),\r\n },\r\n {\r\n path: 'global-settings',\r\n component: PageComponent,\r\n data: {\r\n breadcrumb: _('breadcrumb.global-settings'),\r\n locationId: 'global-setting-detail',\r\n },\r\n resolve: {\r\n detail: () =>\r\n inject(DataService)\r\n .query(GetGlobalSettingsDetailDocument)\r\n .mapSingle(data => ({ entity: of(data.globalSettings) })),\r\n },\r\n children: pageService.getPageTabRoutes('global-setting-detail'),\r\n },\r\n];\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BulkActionRegistryService,\r\n detailComponentWithResolver,\r\n GetAdministratorDetailDocument,\r\n GetChannelDetailDocument,\r\n GetCountryDetailDocument,\r\n GetPaymentMethodDetailDocument,\r\n GetRoleDetailDocument,\r\n GetSellerDetailDocument,\r\n GetShippingMethodDetailDocument,\r\n GetStockLocationDetailDocument,\r\n GetTaxCategoryDetailDocument,\r\n GetTaxRateDetailDocument,\r\n GetZoneDetailDocument,\r\n PageService,\r\n SharedModule,\r\n} from '@vendure/admin-ui/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\n\r\nimport { AddCountryToZoneDialogComponent } from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\r\nimport { AdminDetailComponent } from './components/admin-detail/admin-detail.component';\r\nimport { deleteAdministratorsBulkAction } from './components/administrator-list/administrator-list-bulk-actions';\r\nimport { AdministratorListComponent } from './components/administrator-list/administrator-list.component';\r\nimport { ChannelDetailComponent } from './components/channel-detail/channel-detail.component';\r\nimport { deleteChannelsBulkAction } from './components/channel-list/channel-list-bulk-actions';\r\nimport { ChannelListComponent } from './components/channel-list/channel-list.component';\r\nimport { CountryDetailComponent } from './components/country-detail/country-detail.component';\r\nimport { deleteCountriesBulkAction } from './components/country-list/country-list-bulk-actions';\r\nimport { CountryListComponent } from './components/country-list/country-list.component';\r\nimport { GlobalSettingsComponent } from './components/global-settings/global-settings.component';\r\nimport { PaymentMethodDetailComponent } from './components/payment-method-detail/payment-method-detail.component';\r\nimport {\r\n assignPaymentMethodsToChannelBulkAction,\r\n deletePaymentMethodsBulkAction,\r\n removePaymentMethodsFromChannelBulkAction,\r\n} from './components/payment-method-list/payment-method-list-bulk-actions';\r\nimport { PaymentMethodListComponent } from './components/payment-method-list/payment-method-list.component';\r\nimport { PermissionGridComponent } from './components/permission-grid/permission-grid.component';\r\nimport { ProfileComponent } from './components/profile/profile.component';\r\nimport { RoleDetailComponent } from './components/role-detail/role-detail.component';\r\nimport { deleteRolesBulkAction } from './components/role-list/role-list-bulk-actions';\r\nimport { RoleListComponent } from './components/role-list/role-list.component';\r\nimport { SellerDetailComponent } from './components/seller-detail/seller-detail.component';\r\nimport { deleteSellersBulkAction } from './components/seller-list/seller-list-bulk-actions';\r\nimport { SellerListComponent } from './components/seller-list/seller-list.component';\r\nimport { ShippingEligibilityTestResultComponent } from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\r\nimport { ShippingMethodDetailComponent } from './components/shipping-method-detail/shipping-method-detail.component';\r\nimport {\r\n assignShippingMethodsToChannelBulkAction,\r\n deleteShippingMethodsBulkAction,\r\n removeShippingMethodsFromChannelBulkAction,\r\n} from './components/shipping-method-list/shipping-method-list-bulk-actions';\r\nimport { ShippingMethodListComponent } from './components/shipping-method-list/shipping-method-list.component';\r\nimport { ShippingMethodTestResultComponent } from './components/shipping-method-test-result/shipping-method-test-result.component';\r\nimport { StockLocationDetailComponent } from './components/stock-location-detail/stock-location-detail.component';\r\nimport {\r\n assignStockLocationsToChannelBulkAction,\r\n deleteStockLocationsBulkAction,\r\n removeStockLocationsFromChannelBulkAction,\r\n} from './components/stock-location-list/stock-location-list-bulk-actions';\r\nimport { StockLocationListComponent } from './components/stock-location-list/stock-location-list.component';\r\nimport { TaxCategoryDetailComponent } from './components/tax-category-detail/tax-category-detail.component';\r\nimport { deleteTaxCategoriesBulkAction } from './components/tax-category-list/tax-category-list-bulk-actions';\r\nimport { TaxCategoryListComponent } from './components/tax-category-list/tax-category-list.component';\r\nimport { TaxRateDetailComponent } from './components/tax-rate-detail/tax-rate-detail.component';\r\nimport { deleteTaxRatesBulkAction } from './components/tax-rate-list/tax-rate-list-bulk-actions';\r\nimport { TaxRateListComponent } from './components/tax-rate-list/tax-rate-list.component';\r\nimport { TestAddressFormComponent } from './components/test-address-form/test-address-form.component';\r\nimport { TestOrderBuilderComponent } from './components/test-order-builder/test-order-builder.component';\r\nimport { TestShippingMethodsComponent } from './components/test-shipping-methods/test-shipping-methods.component';\r\nimport { ZoneDetailComponent } from './components/zone-detail/zone-detail.component';\r\nimport { deleteZonesBulkAction } from './components/zone-list/zone-list-bulk-actions';\r\nimport { ZoneListComponent } from './components/zone-list/zone-list.component';\r\nimport { ZoneMemberControlsDirective } from './components/zone-member-list/zone-member-controls.directive';\r\nimport { removeZoneMembersBulkAction } from './components/zone-member-list/zone-member-list-bulk-actions';\r\nimport { ZoneMemberListHeaderDirective } from './components/zone-member-list/zone-member-list-header.directive';\r\nimport { ZoneMemberListComponent } from './components/zone-member-list/zone-member-list.component';\r\nimport { createRoutes } from './settings.routes';\r\n\r\n@NgModule({\r\n imports: [SharedModule, RouterModule.forChild([])],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: (pageService: PageService) => createRoutes(pageService),\r\n multi: true,\r\n deps: [PageService],\r\n },\r\n ],\r\n declarations: [\r\n TaxCategoryListComponent,\r\n TaxCategoryDetailComponent,\r\n AdministratorListComponent,\r\n RoleListComponent,\r\n RoleDetailComponent,\r\n AdminDetailComponent,\r\n PermissionGridComponent,\r\n CountryListComponent,\r\n CountryDetailComponent,\r\n TaxRateListComponent,\r\n TaxRateDetailComponent,\r\n ChannelListComponent,\r\n ChannelDetailComponent,\r\n ShippingMethodListComponent,\r\n ShippingMethodDetailComponent,\r\n PaymentMethodListComponent,\r\n PaymentMethodDetailComponent,\r\n GlobalSettingsComponent,\r\n TestOrderBuilderComponent,\r\n TestAddressFormComponent,\r\n SellerDetailComponent,\r\n SellerListComponent,\r\n ShippingMethodTestResultComponent,\r\n ShippingEligibilityTestResultComponent,\r\n ZoneListComponent,\r\n AddCountryToZoneDialogComponent,\r\n ZoneMemberListComponent,\r\n ZoneMemberListHeaderDirective,\r\n ZoneMemberControlsDirective,\r\n ProfileComponent,\r\n TestShippingMethodsComponent,\r\n ZoneDetailComponent,\r\n StockLocationListComponent,\r\n StockLocationDetailComponent,\r\n ],\r\n})\r\nexport class SettingsModule {\r\n private static hasRegisteredTabsAndBulkActions = false;\r\n\r\n constructor(bulkActionRegistryService: BulkActionRegistryService, pageService: PageService) {\r\n if (SettingsModule.hasRegisteredTabsAndBulkActions) {\r\n return;\r\n }\r\n bulkActionRegistryService.registerBulkAction(deleteSellersBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteChannelsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteAdministratorsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteRolesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(assignShippingMethodsToChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(removeShippingMethodsFromChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(deleteShippingMethodsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(assignPaymentMethodsToChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(removePaymentMethodsFromChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(deletePaymentMethodsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteTaxCategoriesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteTaxRatesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteCountriesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteZonesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(removeZoneMembersBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(assignStockLocationsToChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(removeStockLocationsFromChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(deleteStockLocationsBulkAction);\r\n\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'seller-list',\r\n tab: _('breadcrumb.sellers'),\r\n route: '',\r\n component: SellerListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'seller-detail',\r\n tab: _('settings.seller'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: SellerDetailComponent,\r\n query: GetSellerDetailDocument,\r\n entityKey: 'seller',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-seller'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'channel-list',\r\n tab: _('breadcrumb.channels'),\r\n route: '',\r\n component: ChannelListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'channel-detail',\r\n tab: _('settings.channel'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: ChannelDetailComponent,\r\n query: GetChannelDetailDocument,\r\n entityKey: 'channel',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity\r\n ? entity.code === DEFAULT_CHANNEL_CODE\r\n ? 'common.default-channel'\r\n : entity.code\r\n : _('settings.create-new-channel'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'administrator-list',\r\n tab: _('breadcrumb.administrators'),\r\n route: '',\r\n component: AdministratorListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'administrator-detail',\r\n tab: _('settings.administrator'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: AdminDetailComponent,\r\n query: GetAdministratorDetailDocument,\r\n entityKey: 'administrator',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity\r\n ? `${entity.firstName} ${entity.lastName}`\r\n : _('admin.create-new-administrator'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'role-list',\r\n tab: _('breadcrumb.roles'),\r\n route: '',\r\n component: RoleListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'role-detail',\r\n tab: _('settings.role'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: RoleDetailComponent,\r\n query: GetRoleDetailDocument,\r\n entityKey: 'role',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.description : _('settings.create-new-role'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'shipping-method-list',\r\n tab: _('breadcrumb.shipping-methods'),\r\n route: '',\r\n component: ShippingMethodListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'shipping-method-detail',\r\n tab: _('settings.shipping-method'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: ShippingMethodDetailComponent,\r\n query: GetShippingMethodDetailDocument,\r\n entityKey: 'shippingMethod',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-shipping-method'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'shipping-method-list',\r\n tab: _('settings.test-shipping-methods'),\r\n route: 'test',\r\n component: TestShippingMethodsComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'payment-method-list',\r\n tab: _('breadcrumb.payment-methods'),\r\n route: '',\r\n component: PaymentMethodListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'payment-method-detail',\r\n tab: _('settings.payment-method'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: PaymentMethodDetailComponent,\r\n query: GetPaymentMethodDetailDocument,\r\n entityKey: 'paymentMethod',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-payment-method'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-category-list',\r\n tab: _('breadcrumb.tax-categories'),\r\n route: '',\r\n component: TaxCategoryListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-category-detail',\r\n tab: _('settings.tax-category'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: TaxCategoryDetailComponent,\r\n query: GetTaxCategoryDetailDocument,\r\n entityKey: 'taxCategory',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-tax-category'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-rate-list',\r\n tab: _('breadcrumb.tax-rates'),\r\n route: '',\r\n component: TaxRateListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-rate-detail',\r\n tab: _('settings.tax-rate'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: TaxRateDetailComponent,\r\n query: GetTaxRateDetailDocument,\r\n entityKey: 'taxRate',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-tax-rate'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'country-list',\r\n tab: _('breadcrumb.countries'),\r\n route: '',\r\n component: CountryListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'country-detail',\r\n tab: _('settings.country'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: CountryDetailComponent,\r\n query: GetCountryDetailDocument,\r\n entityKey: 'country',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-country'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'zone-list',\r\n tab: _('breadcrumb.zones'),\r\n route: '',\r\n component: ZoneListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'zone-detail',\r\n tab: _('settings.zone'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: ZoneDetailComponent,\r\n query: GetZoneDetailDocument,\r\n entityKey: 'zone',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-zone'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'global-setting-detail',\r\n tab: _('breadcrumb.global-settings'),\r\n route: '',\r\n component: GlobalSettingsComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'profile',\r\n tab: _('breadcrumb.profile'),\r\n route: '',\r\n component: ProfileComponent,\r\n });\r\n\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'stock-location-list',\r\n tab: _('catalog.stock-locations'),\r\n route: '',\r\n component: StockLocationListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'stock-location-detail',\r\n tab: _('catalog.stock-location'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: StockLocationDetailComponent,\r\n query: GetStockLocationDetailDocument,\r\n entityKey: 'stockLocation',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('catalog.create-new-stock-location'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n SettingsModule.hasRegisteredTabsAndBulkActions = true;\r\n }\r\n}\r\n","// This file was generated by the build-public-api.ts script\nexport * from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nexport * from './components/admin-detail/admin-detail.component';\nexport * from './components/administrator-list/administrator-list-bulk-actions';\nexport * from './components/administrator-list/administrator-list.component';\nexport * from './components/channel-detail/channel-detail.component';\nexport * from './components/channel-list/channel-list-bulk-actions';\nexport * from './components/channel-list/channel-list.component';\nexport * from './components/country-detail/country-detail.component';\nexport * from './components/country-list/country-list-bulk-actions';\nexport * from './components/country-list/country-list.component';\nexport * from './components/global-settings/global-settings.component';\nexport * from './components/payment-method-detail/payment-method-detail.component';\nexport * from './components/payment-method-list/payment-method-list-bulk-actions';\nexport * from './components/payment-method-list/payment-method-list.component';\nexport * from './components/permission-grid/permission-grid.component';\nexport * from './components/profile/profile.component';\nexport * from './components/role-detail/role-detail.component';\nexport * from './components/role-list/role-list-bulk-actions';\nexport * from './components/role-list/role-list.component';\nexport * from './components/seller-detail/seller-detail.component';\nexport * from './components/seller-list/seller-list-bulk-actions';\nexport * from './components/seller-list/seller-list.component';\nexport * from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\nexport * from './components/shipping-method-detail/shipping-method-detail.component';\nexport * from './components/shipping-method-list/shipping-method-list-bulk-actions';\nexport * from './components/shipping-method-list/shipping-method-list.component';\nexport * from './components/shipping-method-test-result/shipping-method-test-result.component';\nexport * from './components/stock-location-detail/stock-location-detail.component';\nexport * from './components/stock-location-list/stock-location-list-bulk-actions';\nexport * from './components/stock-location-list/stock-location-list.component';\nexport * from './components/tax-category-detail/tax-category-detail.component';\nexport * from './components/tax-category-list/tax-category-list-bulk-actions';\nexport * from './components/tax-category-list/tax-category-list.component';\nexport * from './components/tax-rate-detail/tax-rate-detail.component';\nexport * from './components/tax-rate-list/tax-rate-list-bulk-actions';\nexport * from './components/tax-rate-list/tax-rate-list.component';\nexport * from './components/test-address-form/test-address-form.component';\nexport * from './components/test-order-builder/test-order-builder.component';\nexport * from './components/test-shipping-methods/test-shipping-methods.component';\nexport * from './components/zone-detail/zone-detail.component';\nexport * from './components/zone-list/zone-list-bulk-actions';\nexport * from './components/zone-list/zone-list.component';\nexport * from './components/zone-member-list/zone-member-controls.directive';\nexport * from './components/zone-member-list/zone-member-list-bulk-actions';\nexport * from './components/zone-member-list/zone-member-list-header.directive';\nexport * from './components/zone-member-list/zone-member-list.component';\nexport * from './providers/routing/profile-resolver';\nexport * from './settings.module';\nexport * from './settings.routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i4","i2.ZoneMemberListComponent","i1","_","i5.PermissionGridComponent","i6","switchMap","i4.PermissionGridComponent","i5","i5.TestOrderBuilderComponent","i6.TestAddressFormComponent","i7.ShippingMethodTestResultComponent","i8","i2.TestOrderBuilderComponent","i3.TestAddressFormComponent","i4.ShippingEligibilityTestResultComponent","i5.ZoneMemberListComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAKa,2BAA2B,CAAA;AACpC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAAI;8GAD3C,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACtC,iBAAA,CAAA;;;MCCY,6BAA6B,CAAA;AACtC,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAAI;8GAD3C,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA7B,6BAA6B,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCgCY,uBAAuB,CAAA;AAwBhC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QArBnC,IAAiB,CAAA,iBAAA,GAAa,EAAE,CAAC;AAEhC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAY,CAAC;AAIzD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAGxC,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAG,IAAI,gBAAgB,CAAa;AAChD,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AACtC,YAAA,YAAY,EAAE,IAAI;AACrB,SAAA,CAAC,CAAC;AACK,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAgB,CAAC;AAC5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAgD,SAAS,CAAC,CAAC;AACjG,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAES;IAEhD,QAAQ,GAAA;QACJ,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvE,SAAS,CAAC,UAAU,IAChB,IAAI,CAAC,UAAU;cACT,IAAI,CAAC,WAAW;AACX,iBAAA,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;AAC7D,iBAAA,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;AACnD,cAAE,EAAE,CAAC,EAAE,CAAC,CACf,CACJ,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;YAC5C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACjC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACpE,CAAC;AACN,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAG;AACzF,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,aAAa,CACjC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAC1D,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,KAAI;YAC1B,IAAI,UAAU,EAAE;gBACZ,MAAM,IAAI,GAAG,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;AACnD,gBAAA,OAAO,OAAO,CAAC,MAAM,CACjB,CAAC,IACG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACzC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAChD,CAAC;aACL;iBAAM;AACH,gBAAA,OAAO,OAAO,CAAC;aAClB;SACJ,CAAC,CACL,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KACjF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,SAAS,IAAI,OAAO,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;SAC/C;AACD,QAAA,IAAI,YAAY,IAAI,OAAO,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC/C;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;8GAlFQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAMlB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,6BAA6B,EAC7B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,2BAA2B,qEC3C7C,u9EAqDA,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDjBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,u9EAAA,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA,CAAA;gFAGtC,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACsC,cAAc,EAAA,CAAA;sBAA1D,YAAY;uBAAC,6BAA6B,CAAA;gBACA,gBAAgB,EAAA,CAAA;sBAA1D,YAAY;uBAAC,2BAA2B,CAAA;;;AE5BtC,MAAM,gBAAgB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;EAiBjC;MAQW,+BAA+B,CAAA;AAQxC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAF5C,IAAiB,CAAA,iBAAA,GAAa,EAAE,CAAC;KAEe;IAEhD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW;aAClC,KAAK,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW;aACtC,KAAK,CAAC,sBAAsB,EAAE;AAC3B,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;SACzB,CAAC;aACD,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aACvC,IAAI,CACD,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACpC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,KAC5B,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACpE,CACJ,CAAC;KACT;IAED,MAAM,GAAA;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAED,GAAG,GAAA;AACC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC5C;8GAjCQ,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,sECxC5C,ktBAeA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDyBa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;+BACI,gCAAgC,EAAA,eAAA,EAGzB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ktBAAA,EAAA,CAAA;;;AE5BnD;;AAEG;MAOU,uBAAuB,CAAA;AANpC,IAAA,WAAA,GAAA;QASa,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAA0C,CAAC;AAyD3F,KAAA;IAtDG,QAAQ,GAAA;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,aAAa,CAAC,UAAkB,EAAE,KAAc,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;SACrD;KACJ;AAED,IAAA,SAAS,CAAC,IAA4B,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/D;KACJ;IAEO,SAAS,GAAA;AACb,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC7D,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,0CAA0C,CAAC;AAC1D,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,MAAM,EAAE;AACR,gBAAA,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,IAAI,SAAS,EAAE;oBACX,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC3C,IAAI,QAAQ,EAAE;AACV,wBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACtB;yBAAM;wBACH,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;qBACpC;iBACJ;aACJ;AAAM,iBAAA,IAAI,GAAG,CAAC,UAAU,EAAE;AACvB,gBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrB;SACJ;QACD,IAAI,CAAC,QAAQ,GAAG;YACZ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK;gBACjB,KAAK,EAAE,CAAC,CAAC,IAAI;gBACb,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,CAAC;AACnB,aAAA,CAAC,CAAC;YACH,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM;gBACpD,KAAK;gBACL,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,gBAAA,WAAW,EAAE,IAAI;AACpB,aAAA,CAAC,CAAC;SACV,CAAC;KACL;AAEO,IAAA,sBAAsB,CAAC,GAAyB,EAAA;QACpD,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,4BAA4B,EAAE,uBAAuB,CAAC,CAAC;KACzF;8GA5DQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,wOCnBpC,2qCAuBA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDJa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2qCAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,CAAA;8BAGtC,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;AEOJ,MAAM,wBAAwB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMrC,sBAAsB,CAAA;EAC1B;AAQI,MAAO,oBACT,SAAQ,wBAAgF,CAAA;IAsBxF,oBAAoB,GAAA;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACtD;AAED,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AA3BpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvC,YAAA,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;AACd,YAAA,KAAK,EAAE;gBACH,EAEkB;AACrB,aAAA;AACD,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QAGH,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;QACnC,IAAuB,CAAA,uBAAA,GAAkD,EAAS,CAAC;QACnF,IAAiB,CAAA,iBAAA,GAAkB,IAAI,CAAC;KAavC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;aAC1C,QAAQ,CAAC,GAAG,CAAC;aACb,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;YACtE,IACI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBAChE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAClE;gBACE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,WAAW,EAAE;oBACb,WAAW,CAAC,OAAO,EAAE,CAAC;iBACzB;aACJ;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;KACpF;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAED,IAAA,YAAY,CAAC,KAAqB,EAAA;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAED,gCAAgC,GAAA;QAC5B,SAAS,oBAAoB,CAAC,KAA0C,EAAA;AACpE,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBACvB,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AACxC,iBAAA,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC;SAClD;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7E,IAAI,eAAe,EAAE;AACjB,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;AACvF,gBAAA,OAAO,oBAAoB,CAAC,aAAa,CAAC,CAAC;aAC9C;SACJ;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;SACxD;AACD,QAAA,OAAO,EAAE,CAAC;KACb;IAED,MAAM,GAAA;AACF,QAAA,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACnG,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACvD,OAAO;SACV;AACD,QAAA,MAAM,aAAa,GAA6B;YAC5C,YAAY;YACZ,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,YAAY;AACZ,YAAA,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE;SACxE,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,SAAS,CACvE,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACI,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC1F,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,OAAO;AACP,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,YAAA,MAAM,aAAa,GAA6B;gBAC5C,EAAE;gBACF,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;AACpC,gBAAA,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;aACjD,CAAC;YACF,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC7E,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;IAES,aAAa,CACnB,MAAqF,EACrF,YAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,YAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC3B,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACnG;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,eAAe,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;gBACZ,eAAe,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;aACxD;iBAAM;AACH,gBAAA,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aACrC;SACJ;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAEO,mBAAmB,GAAA;QACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,kBAAkB,EAAE;AACpB,YAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACvC,YAAA,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAA2B,CAAC;AACnE,YAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE;AAC5B,gBAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACnE,oBAAA,MAAM,aAAa,GAAG,kBAAkB,IAAI,IAAI,GAAG,EAAc,CAAC;AAElE,oBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;oBACvD,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;iBAClD;aACJ;AAED,YAAA,IAAI,CAAC,uBAAuB,GAAG,EAAS,CAAC;AACzC,YAAA,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE;;gBAEhE,MAAM,aAAa,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBAC9D,MAAM,eAAe,GAAmC,EAAS,CAAC;gBAClE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,EAAE;AACnE,oBAAA,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAkB,CAAC,CAAC;iBACzE;AACD,gBAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG;;oBAEtC,SAAS;AACT,oBAAA,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAE;AAC7C,oBAAA,WAAW,EAAE,eAAe;;iBAE/B,CAAC;aACL;SACJ;KACJ;8GA/MQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,+EC7CjC,w2MA0IA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Fa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,w2MAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,CAAA;;;AEnC5C,MAAM,8BAA8B,GAAG,sBAAsB,CAElE;AACE,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC/F,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ;AACzD,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACrG,CAAA;;ACNM,MAAM,sBAAsB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BvC;AAOI,MAAO,0BAA2B,SAAQ,sBAG/C,CAAA;AAmCG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAnCH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEF,MAAC,CAAC,qBAAqB,CAAC;AAC/B,YAAA,WAAW,EAAE,WAAW;SAC3B,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC9B,YAAA,WAAW,EAAE,UAAU;SAC1B,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAClC,YAAA,WAAW,EAAE,cAAc;SAC9B,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC7B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AACjC,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc;YACrC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC9F,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAE,UAAyB,EAAA;QACnE,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,cAAc,GAAoB,eAAe,CAAC,GAAG,CAAC;QAE1D,IAAI,UAAU,EAAE;AACZ,YAAA,OAAO,GAAG;AACN,gBAAA,YAAY,EAAE;AACV,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;AACD,gBAAA,SAAS,EAAE;AACP,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;aACJ,CAAC;AACF,YAAA,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC;SACvC;QACD,OAAO;AACH,YAAA,OAAO,EAAE;gBACL,IAAI;gBACJ,IAAI;AACJ,gBAAA,MAAM,EAAE;AACJ,oBAAA,IAAI,OAAO,IAAI,EAAE;AACjB,oBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;gBAClC,cAAc;AACjB,aAAA;SACJ,CAAC;KACL;8GA9EQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,qFC9CvC,siHAoFA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDtCa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,siHAAA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,CAAA;;;AElB/B,MAAM,kBAAkB,GAAG,GAAG,CAAA,CAAA;;;;;;MAM/B,gBAAgB,CAAA;EACpB;AAQI,MAAO,sBACT,SAAQ,wBAAoE,CAAA;IAwB5E,WACc,CAAA,mBAAwC,EAC1C,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QANE,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QAC1C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QA1BpD,IAAoB,CAAA,oBAAA,GAAG,oBAAoB,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAGpD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAChC,gBAAgB,EAAE,CAAC,KAAK,CAAC;YACzB,sBAAsB,EAAE,CAAC,EAAc,CAAC;YACxC,sBAAsB,EAAE,CAAC,EAAc,CAAC;AACxC,YAAA,mBAAmB,EAAE,CAAC,EAAkB,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC9D,YAAA,qBAAqB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAChD,YAAA,mBAAmB,EAAE,CAAC,SAAqC,EAAE,UAAU,CAAC,QAAQ,CAAC;AACjF,YAAA,gBAAgB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC3C,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACnC,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;AAGM,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;KAUvG;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;;QAEZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;AAChF,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,YAAY;AACvD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,KAAK,IAAG;YACf,IAAI,KAAK,EAAE;gBACP,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAC/E,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAC7D,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC,CAAC;iBACnF;aACJ;AACL,SAAC,CAAC,CAAC;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,YAAY;AACvD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,KAAK,IAAG;YACf,IAAI,KAAK,EAAE;gBACP,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAC/E,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAC7D,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC,CAAC;iBACnF;aACJ;AACL,SAAC,CAAC,CAAC;KACV;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KACzD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;QACD,MAAM,EACF,IAAI,EACJ,KAAK,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,GACX,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC1B,QAAA,IACI,CAAC,IAAI;AACL,YAAA,CAAC,KAAK;AACN,YAAA,CAAC,mBAAmB;AACpB,YAAA,CAAC,mBAAmB;AACpB,YAAA,CAAC,qBAAqB;YACtB,CAAC,gBAAgB,EACnB;YACE,OAAO;SACV;AACD,QAAA,MAAM,KAAK,GAAuB;YAC9B,IAAI;YACJ,KAAK;YACL,mBAAmB;YACnB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,mBAAmB;YACnB,qBAAqB;YACrB,gBAAgB;YAChB,YAAY;YACZ,QAAQ;SACX,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ;aACpB,aAAa,CAAC,KAAK,CAAC;AACpB,aAAA,IAAI,CACD,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,KACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;YACb,EAAE;YACF,aAAa;AAChB,SAAA,CAAC,CAAC,CACN,CACJ,EACD,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE;;QAE3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,CAAC,CAC1F,CACJ;aACA,SAAS,CAAC,IAAI,IAAG;AACd,YAAA,QAAQ,IAAI,CAAC,UAAU;AACnB,gBAAA,KAAK,SAAS;oBACV,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,SAAS;AACpB,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnE,MAAM;AACV,gBAAA,KAAK,2BAA2B;oBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7C,MAAM;aACb;AACL,SAAC,CAAC,CAAC;KACV;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO;aACP,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,OAAO,IAAG;AACf,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;gBACxD,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;gBACxD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;gBAClD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,mBAAmB,EAAE,SAAS,CAAC,mBAAmB;gBAClD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ;aACT,CAAC;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAC,CAAC,CACL;AACA,aAAA,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,KAAI;AAC7B,YAAA,QAAQ,aAAa,CAAC,UAAU;AAC5B,gBAAA,KAAK,SAAS;oBACV,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,SAAS;AACpB,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBACnC,MAAM;AACV,gBAAA,KAAK,2BAA2B;oBAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aAC7D;AACL,SAAC,CAAC,CAAC;KACV;AAED;;AAEG;IACO,aAAa,CAAC,MAAuB,EAAE,YAA0B,EAAA;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAC/C,YAAA,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE;YAC3D,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAC/C,YAAA,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE;AACjD,YAAA,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE;AACpC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACnG;AACD,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,OAAO,EAAE,CAAC;aACzB;SACJ;KACJ;IAEO,aAAa,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,aAAA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;KACjB;8GAnNQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,iFCvCnC,2xUAkNA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Ka,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2xUAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,CAAA;;;AElC5C,MAAM,wBAAwB,GAAG,sBAAsB,CAAuC;AACjG,IAAA,QAAQ,EAAE,cAAc;IACxB,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACzG,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KAAI;AAC7B,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAChD,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,KACxB,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;YACb,EAAE;YACF,cAAc;AACjB,SAAA,CAAC,CAAC,CACN,CACJ,EACD,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE;;QAE5B,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC,CACtF,CACJ,CAAC;KACL;AACJ,CAAA;;AClBM,MAAM,gBAAgB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;MAS7B,gBAAgB,CAAA;EACpB;AAQI,MAAO,oBACT,SAAQ,sBAAiE,CAAA;AA+BzE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AA7BH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAClC,YAAA,WAAW,EAAE,OAAO;SACvB,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC1B,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;AAED,IAAA,gBAAgB,CAAC,WAAmB,EAAA;QAChC,OAAO,WAAW,KAAK,oBAAoB,CAAC;KAC/C;8GAxDQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,+ECxBjC,2iGAuEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD/Ca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2iGAAA,EAAA,CAAA;;;AED5C,MAAM,kBAAkB,GAAG,GAAG,CAAA,CAAA;;;;;;MAM/B,gBAAgB,CAAA;EACpB;AAQI,MAAO,sBACT,SAAQ,wBAAoE,CAAA;AAY5E,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAbpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QACM,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;KASjF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACxC,MAAM,KAAK,GAAG,yBAAyB,CAAC;AACpC,YAAA,YAAY,EAAE;AACV,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,YAAY,EAAE,EAAE;AACA,aAAA;AACpB,YAAA,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,IAAI,CAAC,YAAY;AACpC,YAAA,kBAAkB,EAAE;AAChB,gBAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY;AAClC,aAAA;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CACpD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACpF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;QACA,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AAC1C,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,KAAI;AACjC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACxC,MAAM,KAAK,GAAuB,yBAAyB,CAAC;AACxD,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,aAAa,EAAE,SAAS;gBACxB,iBAAiB,EAAE,IAAI,CAAC,YAAY;gBACpC,YAAY;AACZ,gBAAA,kBAAkB,EAAE;AAChB,oBAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;oBAC1B,YAAY;AACf,iBAAA;AACJ,aAAA,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;IAES,aAAa,CAAC,OAAwB,EAAE,YAA0B,EAAA;QACxE,MAAM,kBAAkB,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAElE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,GAAG,EAAE;YACvD,OAAO,EAAE,OAAO,CAAC,OAAO;AAC3B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EACrC,OAAO,EACP,kBAAkB,CACrB,CAAC;SACL;KACJ;8GA3HQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,iFCpCnC,0lIA+FA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Da,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0lIAAA,EAAA,CAAA;;;AE/B5C,MAAM,yBAAyB,GAAG,sBAAsB,CAA2C;AACtG,IAAA,QAAQ,EAAE,cAAc;AACxB,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACtD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AACtF,CAAA;;ACNM,MAAM,gBAAgB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;EAkBjC;AAQI,MAAO,oBAAqB,SAAQ,sBAAkE,CAAA;AAmCxG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAnCH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzB,YAAA,KAAK,EAAEA,MAAC,CAAC,gBAAgB,CAAC;AAC1B,YAAA,WAAW,EAAE,SAAS;SACzB,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;AAC1B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS;YAChC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GAvDQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,+EC/BjC,+6HAsGA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDvEa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+6HAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,CAAA;;;AEb5C,MAAM,0BAA0B,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;EAc3C;AAQI,MAAO,uBACT,SAAQ,wBAAkF,CAAA;AAa1F,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAdpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAChC,kBAAkB,EAAE,CAAC,EAAoB,CAAC;AAC1C,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,mBAAmB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC7C,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;AACH,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;KASxF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;AACtE,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClE,IAAI,eAAe,EAAE;oBACjB,eAAe,CAAC,OAAO,EAAE,CAAC;iBAC7B;aACJ;AACL,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,QAAQ;AACpB,aAAA,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aAC3C,IAAI,CACD,GAAG,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAI;AAC7B,YAAA,QAAQ,oBAAoB,CAAC,UAAU;AACnC,gBAAA,KAAK,gBAAgB;AACjB,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,UAAU;AACrB,qBAAA,CAAC,CAAC;oBACH,MAAM;AACV,gBAAA,KAAK,6BAA6B;oBAC9B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;aACpE;AACL,SAAC,CAAC,EACFG,WAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,EACjE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAC5D;AACA,aAAA,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAI;AAC7C,YAAA,MAAM,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC;AACzD,YAAA,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAC5E,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;aAC7E;AACL,SAAC,CAAC,CAAC;KACV;IAES,aAAa,CAAC,MAAsB,EAAE,YAA0B,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;AAClD,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;SACjG;KACJ;8GAhFQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,kFCtCpC,g+GAgFA,EAAA,MAAA,EAAA,CAAA,8LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD1Ca,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g+GAAA,EAAA,MAAA,EAAA,CAAA,8LAAA,CAAA,EAAA,CAAA;;;AEP5C,MAAM,yBAAyB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMtC,uBAAuB,CAAA;EAC3B;AAQI,MAAO,4BACT,SAAQ,wBAAgF,CAAA;AAqBxF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAtBpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,OAAO,EAAE,EAA0E;AACnF,YAAA,OAAO,EAAE,EAA0E;AACnF,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QACH,IAAQ,CAAA,QAAA,GAAsC,EAAE,CAAC;QACjD,IAAQ,CAAA,QAAA,GAAsC,EAAE,CAAC;QAKxC,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;KASvF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5E,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gCAAgC,CAAC;AACtD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAC3C,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,gCAAgC,CAAC,IAAI,CACvE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAC7C,CAAC;YACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC5D,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAC7C,CAAC;AACN,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,UAAU,CAAC,WAA+B,EAAE,SAAiB,EAAA;QACzD,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,YAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACrC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;aACzD;SACJ;KACJ;AAED,IAAA,aAAa,CAAC,OAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC;AACzC,QAAA,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KACjC;AAED,IAAA,aAAa,CAAC,OAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC;AACzC,QAAA,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KACjC;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KACjC;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KACjC;IAED,MAAM,GAAA;AACF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO;SACV;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CACtC;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,SAAgB;AACzB,YAAA,OAAO,EAAE,SAAgB;AACzB,YAAA,YAAY,EAAE,EAAE;AACnB,SAAA,EACD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,EACjB,eAAe,EACf,eAAe,CACU,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,CAC1D,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACK,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC1F,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO;SACV;QACD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AAC1C,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,KAAI;AACvC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CACtC,aAAa,EACb,IAAI,CAAC,UAAU,EACf,YAAY,EACZ,eAAe,EACf,eAAe,CACU,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAChE,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;AAED;;;AAGG;IACK,uBAAuB,CAC3B,aAAoC,EACpC,SAA2B,EAC3B,YAA0B,EAC1B,eAAsC,EACtC,eAA8C,EAAA;QAE9C,MAAM,KAAK,GAAG,yBAAyB,CAAC;AACpC,YAAA,YAAY,EAAE,aAAa;YAC3B,aAAa,EAAE,SAAS,CAAC,KAAK;YAC9B,iBAAiB,EAAE,IAAI,CAAC,YAAY;YACpC,YAAY;AACZ,YAAA,kBAAkB,EAAE;gBAChB,YAAY;AACZ,gBAAA,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE;AAC9B,gBAAA,WAAW,EAAE,aAAa,CAAC,WAAW,IAAI,EAAE;AAC/C,aAAA;AACJ,SAAA,CAAC,CAAC;QACH,OAAO;AACH,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,eAAe;kBAClB,4BAA4B,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AACxE,kBAAE,IAAI;YACV,OAAO,EAAE,4BAA4B,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;SAClF,CAAC;KACL;IAES,aAAa,CACnB,aAAwE,EACxE,YAA0B,EAAA;QAE1B,MAAM,kBAAkB,GAAG,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,kBAAkB,EAAE,IAAI;YAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,kBAAkB,EAAE,WAAW;YAC5C,OAAO,EAAE,aAAa,CAAC,OAAO;AAC9B,YAAA,OAAO,EAAE,aAAa,CAAC,OAAO,IAAK,EAAU;AAC7C,YAAA,OAAO,EAAE,aAAa,CAAC,OAAO,IAAK,EAAU;AAChD,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI;AAC5C,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI;AAChC,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC3F,CAAC;SACL;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI;AAC5C,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI;AAChC,gBAAA,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC3F,CAAC;SACL;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EACnC,aAAa,EACb,kBAAkB,CACrB,CAAC;SACL;KACJ;8GA1OQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,wFC5CzC,0zPAsKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD1Ha,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACI,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0zPAAA,EAAA,CAAA;;;AE7B5C,MAAM,8BAA8B,GAAG,sBAAsB,CAElE;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,eAAe,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO;AACvD,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,KACnC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC1G,CAAA,EAAE;AAEH,MAAM,iCAAiC,GAAG,GAAG,CAAA,CAAA;;;;;;;CAO5C,CAAC;AAEF,MAAM,mCAAmC,GAAG,GAAG,CAAA,CAAA;;;;;;;CAO9C,CAAC;AACK,MAAM,uCAAuC,GAAG,+BAA+B,CAEpF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,mBAAmB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,KAC3D,UAAU,CAAC,GAAG,CAAC,SAAS,IACpB,WAAW;SACN,MAAM,CAAC,qCAAqC,EAAE;AAC3C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ,CAAC;AACD,SAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAC3D;AACR,CAAA,EAAE;AAEI,MAAM,yCAAyC,GAAG,iCAAiC,CAExF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,qBAAqB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,KAC5D,WAAW;SACN,MAAM,CAAC,uCAAuC,EAAE;AAC7C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAA;;AC5EM,MAAM,uBAAuB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;EAkBxC;AAQI,MAAO,0BAA2B,SAAQ,sBAG/C,CAAA;AA2CG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AA3CH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzB,YAAA,KAAK,EAAEA,MAAC,CAAC,gBAAgB,CAAC;AAC1B,YAAA,WAAW,EAAE,SAAS;SACzB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC9B,YAAA,WAAW,EAAE,aAAa;SAC7B,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAChC,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc;YACrC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GAlEQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,sFC/BvC,2oIA0GA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Ea,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2oIAAA,EAAA,CAAA;;;AEb5C,MAAM,kBAAkB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;EAmBnC;AAQI,MAAO,gBACT,SAAQ,wBAAgF,CAAA;AAYxF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAbpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvC,YAAA,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;AACd,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;KASF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,OAAO;AACP,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,YAAA,MAAM,aAAa,GAAmC;gBAClD,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;aACvC,CAAC;YACF,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;AACnF,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;IAES,aAAa,CAAC,aAA4B,EAAE,YAA0B,EAAA;AAC5E,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACnC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EACnC,aAAa,CAChB,CAAC;SACL;KACJ;8GA3EQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,0EC3C7B,iwGAsEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD3Ba,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACI,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iwGAAA,EAAA,CAAA;;;AErB5C,MAAM,eAAe,GAAG,GAAG,CAAA,CAAA;;;;;;MAM5B,aAAa,CAAA;EACjB;AAQI,MAAO,mBACT,SAAQ,wBAA8D,CAAA;AAUtE,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAXpD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACtC,UAAU,EAAE,CAAC,EAAc,CAAC;YAC5B,WAAW,EAAE,CAAC,EAAkB,CAAC;AACpC,SAAA,CAAC,CAAC;AACH,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;KAQ3E;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAED,IAAA,UAAU,CAAC,SAAiB,EAAA;AACxB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;YACrC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;SACzD;KACJ;AAED,IAAA,aAAa,CAAC,MAA8C,EAAA;QACxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,kBAAkB,EAAE;AACpB,YAAA,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAiB,CAAC;AAChE,YAAA,MAAM,QAAQ,IACV,MAAM,CAAC,KAAK,KAAK,IAAI;kBACf,MAAM,CAAC,CAAC,GAAG,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AACpD,kBAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAChD,CAAC;AAClB,YAAA,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACpC;KACJ;IAED,MAAM,GAAA;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC7E,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;YACvB,OAAO;SACV;AACD,QAAA,MAAM,IAAI,GAAoB;YAC1B,IAAI;YACJ,WAAW;YACX,WAAW,EAAE,WAAW,IAAI,EAAE;YAC9B,UAAU;SACb,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CACrD,IAAI,IAAG;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,OAAO;AACP,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACxC,MAAM,IAAI,GAAoB,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;IAES,aAAa,CAAC,IAAU,EAAE,YAA0B,EAAA;AAC1D,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxC,WAAW,EAAE,IAAI,CAAC,WAAW;AAChC,SAAA,CAAC,CAAC;;;;AAIH,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACvC;8GA9GQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,8ECnChC,6lHAiFA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD9Ca,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6lHAAA,EAAA,CAAA;;;AE9B5C,MAAM,qBAAqB,GAAG,sBAAsB,CAAiC;AACxF,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC/F,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW;AACrC,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AACnF,CAAA;;ACIM,MAAM,aAAa,GAAG,GAAG,CAAA,CAAA;;;;;;;;;MAS1B,aAAa,CAAA;EACjB;AAQI,MAAO,iBACT,SAAQ,sBAA2D,CAAA;AAwBnE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QAtBH,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QAC1B,IAAY,CAAA,YAAA,GAA6B,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEI,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAChC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK;YAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;AAED,IAAA,kBAAkB,CAAC,IAAoC,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;SAClD;aAAM;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SACxD;KACJ;AAED,IAAA,aAAa,CAAC,IAAU,EAAA;QACpB,OAAO,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;KAClF;8GAzDQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,4EC/B9B,uyKA2HA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD5Fa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACI,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uyKAAA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,CAAA;;;AEX5C,MAAM,iBAAiB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;EAYlC;AAQI,MAAO,qBACT,SAAQ,wBAAkE,CAAA;AAU1E,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAXpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;AACM,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;KASrG;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KACzD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACjB,OAAO;SACV;AACD,QAAA,MAAM,KAAK,GAAsB;YAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,YAAY,EAAE,SAAS,CAAC,YAAY;SACvC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAC3D,YAAA,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU;AAChC,gBAAA,KAAK,QAAQ;oBACT,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,QAAQ;AACnB,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBAChF,MAAM;aACb;AACL,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO;aACP,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,MAAM,IAAG;AACd,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;aAClB,CAAC;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACzD,SAAC,CAAC,CACL;AACA,aAAA,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,KAAI;AAC5B,YAAA,QAAQ,YAAY,CAAC,UAAU;AAC3B,gBAAA,KAAK,QAAQ;oBACT,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,wBAAA,MAAM,EAAE,QAAQ;AACnB,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBACnC,MAAM;;;aAGb;AACL,SAAC,CAAC,CAAC;KACV;AAED;;AAEG;IACO,aAAa,CAAC,MAAsB,EAAE,YAA0B,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACnG;KACJ;8GApGQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gFCtClC,8uFAoEA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD9Ba,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACI,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8uFAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,CAAA;;;AEjC5C,MAAM,uBAAuB,GAAG,sBAAsB,CAAqC;AAC9F,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;AACxF,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;AAClF,CAAA;;ACJD,MAAM,eAAe,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;CAe1B,CAAC;AAQI,MAAO,mBACT,SAAQ,sBAA+D,CAAA;AAwBvE,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAtBH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO;YAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GA7CQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,8EC5BhC,usFA+DA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDnCa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,usFAAA,EAAA,CAAA;;;MEhBtC,sCAAsC,CAAA;AANnD,IAAA,WAAA,GAAA;QAQa,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AAChD,KAAA;8GANY,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,yOCVnD,w6CA2BA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDjBa,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBANlD,SAAS;+BACI,sCAAsC,EAAA,eAAA,EAG/B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,w6CAAA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA,CAAA;8BAGtC,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEUE,yBAAyB,CAAA;AAIlC,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KAClF;IAED,WAAoB,CAAA,WAAwB,EAAU,mBAAwC,EAAA;QAA1E,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAAU,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAPpF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;QACjE,IAAK,CAAA,KAAA,GAAoB,EAAE,CAAC;KAMsE;IAElG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAG;YACjF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC;AACjE,SAAC,CAAC,CAAC;KACN;AAED,IAAA,YAAY,CAAC,MAAkB,EAAA;QAC3B,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC3B;KACJ;AAEO,IAAA,UAAU,CAAC,MAAkB,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,MAAM,CAAC,gBAAgB;gBAC3B,IAAI,EAAE,MAAM,CAAC,kBAAkB;AAC/B,gBAAA,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE;AAC3C,gBAAA,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,MAAM,CAAC,GAAG;AACf,gBAAA,gBAAgB,EACZ,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,KAAK,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC;AAC3F,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;KACJ;IAED,cAAc,GAAA;QACV,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;AAED,IAAA,UAAU,CAAC,IAAmB,EAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;IAEO,qBAAqB,GAAA;QACzB,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACnF;IAEO,oBAAoB,GAAA;QACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KACpF;8GA3DQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,iHCzBtC,soEAiDA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDxBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACI,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,soEAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;kHAGrC,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MERE,wBAAwB,CAAA;AAMjC,IAAA,WAAA,CACY,WAA+B,EAC/B,WAAwB,EACxB,mBAAwC,EAAA;QAFxC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAR1C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAe,CAAC;KAStD;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC/C,aAAA,qBAAqB,EAAE;aACvB,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAgB,WAAW;AACzC,cAAE,WAAW;AACb,cAAE;AACI,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,QAAQ,EAAE,EAAE;aACf,CAAC;AACR,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;YACzD,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;KACJ;8GAtCQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,0GClBrC,gsCAyBA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDPa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gsCAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,CAAA;qJAGrC,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;METE,iCAAiC,CAAA;AAN9C,IAAA,WAAA,GAAA;QAQa,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AAChD,KAAA;8GANY,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,oOCV9C,20EAuDA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Ca,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;+BACI,iCAAiC,EAAA,eAAA,EAG1B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,20EAAA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA,CAAA;8BAGtC,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;AEoBJ,MAAM,0BAA0B,GAAG,GAAG,CAAA,CAAA;;;;;;MAMvC,wBAAwB,CAAA;EAC5B;AAQI,MAAO,6BACT,SAAQ,wBAAkF,CAAA;AA4B1F,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AA7BpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,kBAAkB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC7C,YAAA,OAAO,EAAE,EAA4E;AACrF,YAAA,UAAU,EAAE,EAA+E;AAC3F,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QACH,IAAQ,CAAA,QAAA,GAAsC,EAAE,CAAC;QACjD,IAAW,CAAA,WAAA,GAAsC,EAAE,CAAC;QACpD,IAAmB,CAAA,mBAAA,GAAsC,EAAE,CAAC;QAQ5D,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QAEf,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACjF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAkC,CAAC;KASxE;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;AACZ,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,2BAA2B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAG;AACnF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC;AACjD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC5C,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACpD,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAClE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAC7C,CAAC;YACF,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC7D,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAChD,CAAC;AACN,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC1C,aAAA,gBAAgB,EAAE;aAClB,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;AAE3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzCO,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;YAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;AAC9E,gBAAA,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;aACxB;AACD,YAAA,MAAM,KAAK,GAA4B;gBACnC,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;gBACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,OAAO,EAAE,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;gBACpE,UAAU,EAAE,4BAA4B,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;aAChF,CAAC;AACF,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;iBACjC,kBAAkB,CAAC,KAAK,CAAC;iBACzB,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;SACvD,CAAC,CACL,CAAC;;QAGF,KAAK,CACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAE,CAAC,YAAY,EAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAE,CAAC,YAAY,CACpD;AACI,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;;KAEvD;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,UAAU,CAAC,WAA+B,EAAE,SAAiB,EAAA;QACzD,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,YAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACrC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;aACzD;SACJ;KACJ;AAED,IAAA,aAAa,CAAC,OAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC;AACzC,QAAA,IAAI,CAAC,eAAe,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KACjC;AAED,IAAA,gBAAgB,CAAC,UAA2C,EAAA;AACxD,QAAA,IAAI,CAAC,4BAA4B,GAAG,UAAU,CAAC;AAC/C,QAAA,IAAI,CAAC,kBAAkB,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9B,WAAW,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,YAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACnD;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KACjC;IAED,MAAM,GAAA;AACF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;YACpE,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,MAAM,KAAK,GAAG;YACV,GAAI,IAAI,CAAC,wBAAwB,CAC7B;AACI,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,sBAAsB,EAAE,EAAE;AAC1B,gBAAA,OAAO,EAAE,SAAgB;AACzB,gBAAA,UAAU,EAAE,SAAgB;AAC5B,gBAAA,YAAY,EAAE,EAAE;AACnB,aAAA,EACD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CACU;AAC/B,YAAA,OAAO,EAAE,4BAA4B,CAAC,eAAe,EAAE,OAAO,CAAC;AAC/D,YAAA,UAAU,EAAE,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,CAAC;SAC3E,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,SAAS,CACjE,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACH,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC3F,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;YACpE,OAAO;SACV;QACD,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5C,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,KAAI;AACxC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,YAAA,MAAM,KAAK,GAAG;gBACV,GAAI,IAAI,CAAC,wBAAwB,CAC7B,cAAc,EACd,IAAI,CAAC,UAAU,EACf,YAAY,CACe;AAC/B,gBAAA,OAAO,EAAE,4BAA4B,CAAC,eAAe,EAAE,OAAO,CAAC;AAC/D,gBAAA,UAAU,EAAE,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,CAAC;aAC3E,CAAC;YACF,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACvE,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;;AAEF,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,gBAAgB;AAC3B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;AAED,IAAA,iBAAiB,CAAC,KAAsB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;AAED,IAAA,cAAc,CAAC,KAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,CAAC,EACJ,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM;AAC1B,YAAA,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,kBAAkB,CAC1B,CAAC;KACL;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAChC;AAED;;;AAGG;AACK,IAAA,wBAAwB,CAC5B,cAA2E,EAC3E,SAAiC,EACjC,YAA0B,EAAA;AAE1B,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;QAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC;AACpC,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,aAAa,EAAE,SAAS;YACxB,iBAAiB,EAAE,IAAI,CAAC,YAAY;YACpC,YAAY;AACZ,YAAA,kBAAkB,EAAE;gBAChB,YAAY;AACZ,gBAAA,IAAI,EAAE,cAAc,CAAC,IAAI,IAAI,EAAE;AAC/B,gBAAA,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE;AAChD,aAAA;AACJ,SAAA,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,EAAE,CAAC;KACzE;IAES,aAAa,CAAC,cAAsC,EAAE,YAA0B,EAAA;QACtF,MAAM,kBAAkB,GAAG,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACvB,YAAA,IAAI,EAAE,kBAAkB,EAAE,IAAI,IAAI,EAAE;AACpC,YAAA,WAAW,EAAE,kBAAkB,EAAE,WAAW,IAAI,EAAE;YAClD,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,kBAAkB,EAAE,cAAc,CAAC,sBAAsB;AACzD,YAAA,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,EAAE;AACrC,YAAA,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,EAAE;AAC9C,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,OAAO,IAAI;AAC7C,gBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI;AACjC,gBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5F,CAAC;SACL;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC,UAAU,IAAI;AACnD,gBAAA,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI;AACrC,gBAAA,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAChG,CAAC;SACL;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,wBAAwB,CACzB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,EACrC,cAAc,EACd,kBAAkB,CACrB,CAAC;SACL;KACJ;8GAhSQ,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,yFClD1C,gxSA+LA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Ia,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BACI,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gxSAAA,EAAA,CAAA;;;AElC5C,MAAM,+BAA+B,GAAG,sBAAsB,CAEnE;AACE,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,kBAAkB,EAAE,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAChG,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACxG,CAAA,EAAE;AAEH,MAAM,kCAAkC,GAAG,GAAG,CAAA,CAAA;;;;;;;CAO7C,CAAC;AAEF,MAAM,oCAAoC,GAAG,GAAG,CAAA,CAAA;;;;;;;CAO/C,CAAC;AACK,MAAM,wCAAwC,GAAG,+BAA+B,CAErF;AACE,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACzD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,mBAAmB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,KAC5D,UAAU,CAAC,GAAG,CAAC,SAAS,IACpB,WAAW;SACN,MAAM,CAAC,sCAAsC,EAAE;AAC5C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,iBAAiB;AACpB,SAAA;KACJ,CAAC;AACD,SAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAC5D;AACR,CAAA,EAAE;AAEI,MAAM,0CAA0C,GAAG,iCAAiC,CAEzF;AACE,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACzD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,qBAAqB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,KAC7D,WAAW;SACN,MAAM,CAAC,wCAAwC,EAAE;AAC9C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,iBAAiB;AACpB,SAAA;KACJ,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAClE,CAAA;;AC1EM,MAAM,wBAAwB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;EAkBzC;AAQI,MAAO,2BACT,SAAQ,sBAA+E,CAAA;AA6CvF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AA3CH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAET,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC9B,YAAA,WAAW,EAAE,aAAa;SAC7B,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEA,MAAC,CAAC,8BAA8B,CAAC;AACxC,YAAA,WAAW,EAAE,wBAAwB;SACxC,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;AAC3C,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,6BAA6B;AACvC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,eAAe;YACtC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GAlEQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,uFC/BxC,4nIAkGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDnEa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACI,0BAA0B,EAAA,eAAA,EAGnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4nIAAA,EAAA,CAAA;;;AEXnD,MAAM,8BAA8B,GAAG,GAAG,CAAA,CAAA;;;;;;;;CAQzC,CAAC;AAEK,MAAM,yBAAyB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMtC,8BAA8B,CAAA;EAClC;AAEK,MAAM,qBAAqB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMlC,8BAA8B,CAAA;EAClC;AAEK,MAAM,qBAAqB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMlC,8BAA8B,CAAA;EAClC;AAQI,MAAO,4BACT,SAAQ,wBAAgF,CAAA;AAUxF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAXpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,CAAC,EAAE,CAAC;AACjB,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;KASF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;AACD,QAAA,MAAM,KAAK,GAAG;YACV,IAAI;YACJ,WAAW;YACX,YAAY;SACoB,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CACrE,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC1F,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO;aACP,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,OAAO,IAAG;AACf,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,YAAY,EAAE,SAAS,CAAC,YAAY;aACJ,CAAC;AACrC,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,eAAe;AAC1B,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;AAED;;AAEG;AACO,IAAA,aAAa,CAAC,MAAmC,EAAA;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;AAClC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;SACjG;KACJ;8GAvGQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,wFC7DzC,w5GA+EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDlBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACI,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,w5GAAA,EAAA,CAAA;;;AE5CnD,MAAM,sBAAsB,GAAG,GAAG,CAAA,CAAA;;;;;;;CAOjC,CAAC;AAEF,MAAM,iCAAiC,GAAG,GAAG,CAAA,CAAA;;;;;;;CAO5C,CAAC;AAEF,MAAM,mCAAmC,GAAG,GAAG,CAAA,CAAA;;;;;;;CAO9C,CAAC;AAEK,MAAM,8BAA8B,GAAG,sBAAsB,CAElE;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACxD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACtD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW;SACN,MAAM,CAAC,4BAA4B,EAAE;AAClC,QAAA,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;KACjC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,eAAe,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC,WAAW;AAC9E,CAAA,EAAE;AAEI,MAAM,uCAAuC,GAAG,+BAA+B,CAEpF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AAClD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC5D,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,mBAAmB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,KAC3D,UAAU,CAAC,GAAG,CAAC,SAAS,IACpB,WAAW;SACN,MAAM,CAAC,qCAAqC,EAAE;AAC3C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ,CAAC;AACD,SAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAC3D;AACR,CAAA,EAAE;AAEI,MAAM,yCAAyC,GAAG,iCAAiC,CAExF;AACE,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AAClD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC5D,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;IAC9B,qBAAqB,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,KAC5D,WAAW;SACN,MAAM,CAAC,uCAAuC,EAAE;AAC7C,QAAA,KAAK,EAAE;YACH,SAAS;YACT,gBAAgB;AACnB,SAAA;KACJ,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAA;;AC5FM,MAAM,uBAAuB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;EAgBxC;AAQI,MAAO,0BACT,SAAQ,sBAA6E,CAAA;AAmCrF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAjCH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,UAAU,CAAC;AACR,YAAA;AACI,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,gBAAA,KAAK,EAAEG,MAAC,CAAC,gBAAgB,CAAC;AAC1B,gBAAA,WAAW,EAAE,MAAM;AACtB,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,gBAAA,KAAK,EAAEA,MAAC,CAAC,aAAa,CAAC;AACvB,gBAAA,WAAW,EAAE,aAAa;AAC7B,aAAA;SACJ,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,QAAQ,CAAC;YACN,EAAE,IAAI,EAAE,IAAI,EAAE;YACd,EAAE,IAAI,EAAE,WAAW,EAAE;YACrB,EAAE,IAAI,EAAE,WAAW,EAAE;YACrB,EAAE,IAAI,EAAE,MAAM,EAAE;YAChB,EAAE,IAAI,EAAE,aAAa,EAAE;SAC1B,CAAC;AACD,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,IAAI,CAAC,SAAS,CAAC;AACX,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc;YACrC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GAxDQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,sFC7BvC,swGA8EA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDjDa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,swGAAA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA,CAAA;;;AER5C,MAAM,uBAAuB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMpC,qBAAqB,CAAA;EACzB;AAQI,MAAO,0BACT,SAAQ,wBAA4E,CAAA;AAWpF,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAZpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QACM,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;KASrF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KACzD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,MAAM,KAAK,GAAG;YACV,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;SACb,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CACxD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACxF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO;aACP,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,WAAW,IAAG;AACnB,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;aACb,CAAC;YAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC9D,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;AAED;;AAEG;IACO,aAAa,CAAC,MAA2B,EAAE,YAA0B,EAAA;AAC3E,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;AAC9B,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;SACjG;KACJ;8GAzGQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,6EClCvC,q2GA8EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD5Ca,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACI,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,q2GAAA,EAAA,CAAA;;;AE7B5C,MAAM,6BAA6B,GAAG,sBAAsB,CAEjE;AACE,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;AAC1D,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC9F,CAAA;;ACJM,MAAM,qBAAqB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;MASlC,qBAAqB,CAAA;EACzB;AAQI,MAAO,wBAAyB,SAAQ,sBAG7C,CAAA;AAqBG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QArBH,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC1E,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,0BAA0B;AACpC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa;YACpC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GA5CQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,2EC3BrC,qsGA0EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD/Ca,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qsGAAA,EAAA,CAAA;;;AEH5C,MAAM,mBAAmB,GAAG,GAAG,CAAA,CAAA;;;;;;MAMhC,iBAAiB,CAAA;EACrB;AAQI,MAAO,sBACT,SAAQ,wBAAoE,CAAA;AAiB5E,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAlBpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,YAAA,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxC,YAAA,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACjC,eAAe,EAAE,CAAC,EAAE,CAAC;AACrB,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QAGM,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;KASjF;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;AACZ,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC1C,aAAA,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;aAC/B,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACpD;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KACzD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAChF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE;YACxE,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,MAAM,KAAK,GAAG;YACV,IAAI;YACJ,OAAO;YACP,KAAK;AACL,YAAA,UAAU,EAAE,aAAa;YACzB,MAAM;YACN,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,YAAY,EAAE,SAAS,CAAC,YAAY;SACV,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CACpD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACG,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACpF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO;aACP,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,OAAO,IAAG;AACf,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,UAAU,EAAE,SAAS,CAAC,aAAa;gBACnC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,YAAY,EAAE,SAAS,CAAC,YAAY;aACV,CAAC;YAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,SAAS;AACpB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;AAED;;AAEG;IACO,aAAa,CAAC,MAAuB,EAAE,YAA0B,EAAA;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,aAAa,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;AACxD,YAAA,MAAM,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;AACzC,YAAA,eAAe,EAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;AACvE,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;SACjG;KACJ;8GAnIQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,kFCrCnC,ynKAkHA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ynKAAA,EAAA,CAAA;;;AEhC5C,MAAM,wBAAwB,GAAG,sBAAsB,CAA0C;AACpG,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AACtD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KACzB,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AACpF,CAAA;;ACNM,MAAM,iBAAiB,GAAG,GAAG,CAAA,CAAA;;;;;;;;;MAS9B,iBAAiB,CAAA;EACrB;AAQI,MAAO,oBAAqB,SAAQ,sBAAiE,CAAA;AAmCvG,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAnCH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzB,YAAA,KAAK,EAAEA,MAAC,CAAC,gBAAgB,CAAC;AAC1B,YAAA,WAAW,EAAE,SAAS;SACzB,CAAC;AACD,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,YAAA,KAAK,EAAEA,MAAC,CAAC,cAAc,CAAC;AACxB,YAAA,WAAW,EAAE,OAAO;SACvB,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC1B,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAI5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;8GAvDQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,gFCvBjC,ytIAiGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD1Ea,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ytIAAA,EAAA,CAAA;;;MEHtC,4BAA4B,CAAA;AAQrC,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAJ5C,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAkC,CAAC;KAEzB;IAEhD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC1C,aAAA,gBAAgB,EAAE;aAClB,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzCM,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AAC3B,YAAA,MAAM,KAAK,GAAqC;gBAC5C,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;gBACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5E,CAAC;AACF,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;iBACjC,2BAA2B,CAAC,KAAK,CAAC;iBAClC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAC;SAChE,CAAC,CACL,CAAC;KACL;AAED,IAAA,iBAAiB,CAAC,KAAsB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;AAED,IAAA,cAAc,CAAC,KAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KACpF;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAChC;8GA5CQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,iEClBzC,m0BAkBA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDAa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACI,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m0BAAA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,CAAA;;;AEE5C,MAAM,eAAe,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;EAYhC;AAQI,MAAO,mBACT,SAAQ,wBAA8D,CAAA;AAUtE,IAAA,WAAA,CACY,cAAiC,EAC/B,WAAwB,EAC1B,WAAwB,EACxB,mBAAwC,EAAA;AAEhD,QAAA,KAAK,EAAE,CAAC;QALA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAXpD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,SAAA,CAAC,CAAC;QACM,IAAgB,CAAA,gBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;KAS9E;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KACzD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;QACD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;AACD,QAAA,MAAM,KAAK,GAAG;YACV,IAAI;YACJ,YAAY;SACW,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CACjD,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACL,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjF,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACL;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO;aACP,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,IAAI,IAAG;AACZ,YAAA,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;aACN,CAAC;YACnC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvD,SAAC,CAAC,CACL;aACA,SAAS,CACN,IAAI,IAAG;YACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,8BAA8B,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC,EACD,GAAG,IAAG;YACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,MAAC,CAAC,4BAA4B,CAAC,EAAE;AAC5D,gBAAA,MAAM,EAAE,MAAM;AACjB,aAAA,CAAC,CAAC;AACP,SAAC,CACJ,CAAC;KACT;AAED;;AAEG;IACO,aAAa,CACnB,MAA+C,EAC/C,YAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;SACjG;KACJ;8GA3GQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,8ECtChC,otFAmEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,otFAAA,EAAA,CAAA;;;AEjC5C,MAAM,qBAAqB,GAAG,sBAAsB,CAAoC;AAC3F,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,kBAAkB,EAAE,eAAe,IAC/B,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD,QAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AACnD,IAAA,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;AAC9B,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5G,CAAA;;ACUM,MAAM,aAAa,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;EAe9B;AAQI,MAAO,iBACT,SAAQ,sBAA2D,CAAA;AA4BnE,IAAA,WAAA,CACc,WAAwB,EAC1B,mBAAwC,EACxC,YAA0B,EAAA;AAElC,QAAA,KAAK,EAAE,CAAC;QAJE,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC1B,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QA1BtC,IAAiB,CAAA,iBAAA,GAAa,EAAE,CAAC;QAExB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC3C,aAAA,WAAW,EAAE;AACb,aAAA,cAAc,EAAE;AAChB,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACtB,YAAA,KAAK,EAAEG,MAAC,CAAC,aAAa,CAAC;AACvB,YAAA,WAAW,EAAE,MAAM;SACtB,CAAC;AACD,aAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACvC,aAAA,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC;AAChC,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,aAAA,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,aAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAQ5B,KAAK,CAAC,SAAS,CAAC;AACZ,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK;YAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM;AAC3B,gBAAA,OAAO,EAAE;oBACL,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE;AACF,4BAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACzC,yBAAA;AACD,wBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACtC,qBAAA;AACD,oBAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,GAAG,eAAe,CAAC,GAAG;AACvF,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACrC,iBAAA;aACJ,CAAC;AACF,YAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7E,SAAA,CAAC,CAAC;KACN;IAED,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAC1C,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAC7B,oBAAoB,EAAE,EACtB,GAAG,CAAC,OAAO,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAC7D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAI;YAC1B,IAAI,YAAY,EAAE;AACd,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;aACjD;SACJ,CAAC,CACL,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAC9D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAI;YAC1B,IAAI,YAAY,EAAE;AACd,gBAAA,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;aACtD;iBAAM;gBACH,OAAO,CAAC,CAAC,CAAC;aACb;SACJ,CAAC,CACL,CAAC;KACL;AAED,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KAChE;IAED,YAAY,GAAA;AACR,QAAA,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;KACrG;AAED,IAAA,SAAS,CAAC,IAAuC,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY;aACZ,aAAa,CAAC,+BAA+B,EAAE;AAC5C,YAAA,MAAM,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,IAAI,CAAC,EAAE;AAClB,aAAA;AACD,YAAA,IAAI,EAAE,IAAI;SACb,CAAC;AACD,aAAA,IAAI,CACDG,WAAS,CAAC,SAAS,IACf,SAAS;AACL,cAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACpB,iBAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC;AACpC,iBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;cAC3B,KAAK,CACd,CACJ;AACA,aAAA,SAAS,CAAC;YACP,IAAI,EAAE,MAAM,IAAG;gBACX,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACH,MAAC,CAAC,CAAwC,sCAAA,CAAA,CAAC,EAAE;oBAC1E,YAAY,EAAE,MAAM,CAAC,MAAM;oBAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI;AACtB,iBAAA,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;YACD,KAAK,EAAE,GAAG,IAAG;AACT,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvC;AACJ,SAAA,CAAC,CAAC;KACV;IAED,iBAAiB,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;KAClC;8GA7HQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOf,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClDtC,+6KAqHA,EAAA,MAAA,EAAA,CAAA,kpBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAjB,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FD1Ea,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACI,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+6KAAA,EAAA,MAAA,EAAA,CAAA,kpBAAA,CAAA,EAAA,CAAA;6IASX,cAAc,EAAA,CAAA;sBAAjD,SAAS;uBAAC,uBAAuB,CAAA;;;AE9CzB,MAAA,2BAA2B,GAAoD;AACxF,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,KAAK,EAAEF,MAAC,CAAC,2BAA2B,CAAC;AACrC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,SAAS,EAAE,WAAW;IACtB,kBAAkB,EAAE,UAAU,CAAC,mBAAmB;AAClD,IAAA,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,KAAI;QAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAE9D,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3C,QAAA,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;YACrE,QAAQ,EAAE,MAAK;AACX,gBAAA,mBAAmB,CAAC,OAAO,CAACA,MAAC,CAAC,CAAA,2CAAA,CAA6C,CAAC,EAAE;oBAC1E,YAAY,EAAE,SAAS,CAAC,MAAM;oBAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI;AACtB,iBAAA,CAAC,CAAC;gBACH,aAAa,CAAC,OAAO,EAAE,CAAC;AACxB,gBAAA,cAAc,EAAE,CAAC;aACpB;AACJ,SAAA,CAAC,CAAC;KACN;;;ACpBC,MAAO,eAAgB,SAAQ,kBAAyC,CAAA;IAC1E,WAAY,CAAA,MAAc,EAAE,WAAwB,EAAA;QAChD,KAAK,CACD,MAAM,EACN;AACI,YAAA,UAAU,EAAE,eAAwB;AACpC,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAS;AAC7B,SAAA,EACD,EAAE,IACE,WAAW,CAAC,aAAa;AACpB,aAAA,sBAAsB,EAAE;aACxB,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,CACvD,CAAC;KACL;8GAnBQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCMY,YAAY,GAAG,CAAC,WAAwB,KAAc;AAC/D,IAAA;AACI,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAEK,MAAC,CAAC,oBAAoB,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,MACJ,MAAM,CAAC,WAAW,CAAC;iBACd,KAAK,CAAC,wBAAwB,CAAC;AAC/B,iBAAA,SAAS,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AACzE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACpD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,oBAAoB;AAChC,YAAA,UAAU,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AAC7C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAC/D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,sBAAsB;AAClC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE;AACzF,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;AACjE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,UAAU,EAAEA,MAAC,CAAC,qBAAqB,CAAC;AACvC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACzD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AAC7E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAC3D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,UAAU,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AAC9C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAChE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE;AAC3F,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAClE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AACtC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACxD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC3E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC;AAC1D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,UAAU,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACtD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACvE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACxD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,mBAAmB;AAC/B,YAAA,UAAU,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AAC7C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,mBAAmB,CAAC;AAC9D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE;AACzF,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAChE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,UAAU,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC;AAC1D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AAC/E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;AAC5D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,UAAU,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AACxC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACzD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AAC/E,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAC3D,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,UAAU,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AACpC,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACtD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACvE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACxD,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,sBAAsB;AAClC,YAAA,UAAU,EAAEA,MAAC,CAAC,6BAA6B,CAAC;AAC/C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;AACjE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,wBAAwB;AACpC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE;AAC7F,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;AACnE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,UAAU,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AAC9C,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAChE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,UAAU,EAAE,EAAE,KAAK,EAAEA,MAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE;AAC3F,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAClE,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,IAAI,EAAE;AACF,YAAA,UAAU,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AAC3C,YAAA,UAAU,EAAE,uBAAuB;AACtC,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,MACJ,MAAM,CAAC,WAAW,CAAC;iBACd,KAAK,CAAC,+BAA+B,CAAC;AACtC,iBAAA,SAAS,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAClE,KAAA;;;MC9GQ,cAAc,CAAA;aACR,IAA+B,CAAA,+BAAA,GAAG,KAAH,CAAS,EAAA;IAEvD,WAAY,CAAA,yBAAoD,EAAE,WAAwB,EAAA;AACtF,QAAA,IAAI,cAAc,CAAC,+BAA+B,EAAE;YAChD,OAAO;SACV;AACD,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AAEtE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;AAEvE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;AAE7E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAEpE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,CAAC;AACvF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,0CAA0C,CAAC,CAAC;AACzF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,+BAA+B,CAAC,CAAC;AAE9E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;AACtF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;AACxF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;AAE7E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC;AAE5E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;AAEvE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;AAExE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAEpE,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,CAAC;AAE1E,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;AACtF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;AACxF,QAAA,yBAAyB,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;QAE7E,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC5B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,mBAAmB;AACjC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,GAAG,EAAEA,MAAC,CAAC,iBAAiB,CAAC;AACzB,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,qBAAqB;AAChC,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,4BAA4B,CAAC;AAC7D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,GAAG,EAAEA,MAAC,CAAC,qBAAqB,CAAC;AAC7B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,oBAAoB;AAClC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM;AACT,8BAAE,MAAM,CAAC,IAAI,KAAK,oBAAoB;AAClC,kCAAE,wBAAwB;kCACxB,MAAM,CAAC,IAAI;AACjB,8BAAEA,MAAC,CAAC,6BAA6B,CAAC;AACtC,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,GAAG,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AACnC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,0BAA0B;AACxC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,GAAG,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAChC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,oBAAoB;AAC/B,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM;8BACP,GAAG,MAAM,CAAC,SAAS,CAAI,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAE,CAAA;AAC1C,8BAAEA,MAAC,CAAC,gCAAgC,CAAC;AACzC,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,iBAAiB;AAC/B,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAEA,MAAC,CAAC,eAAe,CAAC;AACvB,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,GAAGA,MAAC,CAAC,0BAA0B,CAAC;AAClE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,GAAG,EAAEA,MAAC,CAAC,6BAA6B,CAAC;AACrC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,2BAA2B;AACzC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,wBAAwB;AAClC,YAAA,GAAG,EAAEA,MAAC,CAAC,0BAA0B,CAAC;AAClC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,KAAK,EAAE,+BAA+B;AACtC,gBAAA,SAAS,EAAE,gBAAgB;AAC3B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,qCAAqC,CAAC;AACtE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,GAAG,EAAEA,MAAC,CAAC,gCAAgC,CAAC;AACxC,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,4BAA4B;AAC1C,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,GAAG,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AACpC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,0BAA0B;AACxC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,uBAAuB;AACjC,YAAA,GAAG,EAAEA,MAAC,CAAC,yBAAyB,CAAC;AACjC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,4BAA4B;AACvC,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,oCAAoC,CAAC;AACrE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,GAAG,EAAEA,MAAC,CAAC,2BAA2B,CAAC;AACnC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,wBAAwB;AACtC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,GAAG,EAAEA,MAAC,CAAC,uBAAuB,CAAC;AAC/B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,0BAA0B;AACrC,gBAAA,KAAK,EAAE,4BAA4B;AACnC,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,kCAAkC,CAAC;AACnE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,GAAG,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AAC9B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,oBAAoB;AAClC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,GAAG,EAAEA,MAAC,CAAC,mBAAmB,CAAC;AAC3B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,8BAA8B,CAAC;AAC/D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,GAAG,EAAEA,MAAC,CAAC,sBAAsB,CAAC;AAC9B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,oBAAoB;AAClC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,6BAA6B,CAAC;AAC9D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,GAAG,EAAEA,MAAC,CAAC,kBAAkB,CAAC;AAC1B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,iBAAiB;AAC/B,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAEA,MAAC,CAAC,eAAe,CAAC;AACvB,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,0BAA0B,CAAC;AAC3D,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,uBAAuB;AACjC,YAAA,GAAG,EAAEA,MAAC,CAAC,4BAA4B,CAAC;AACpC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,uBAAuB;AACrC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,GAAG,EAAEA,MAAC,CAAC,oBAAoB,CAAC;AAC5B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,gBAAgB;AAC9B,SAAA,CAAC,CAAC;QAEH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,YAAA,GAAG,EAAEA,MAAC,CAAC,yBAAyB,CAAC;AACjC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,0BAA0B;AACxC,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,eAAe,CAAC;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,uBAAuB;AACjC,YAAA,GAAG,EAAEA,MAAC,CAAC,wBAAwB,CAAC;AAChC,YAAA,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,2BAA2B,CAAC;AACnC,gBAAA,SAAS,EAAE,4BAA4B;AACvC,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,cAAc,EAAE,MAAM,IAAI;AACtB,oBAAA;AACI,wBAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,MAAC,CAAC,mCAAmC,CAAC;AACpE,wBAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;aACJ,CAAC;AACL,SAAA,CAAC,CAAC;AACH,QAAA,cAAc,CAAC,+BAA+B,GAAG,IAAI,CAAC;KACzD;8GA1UQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBApCnB,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;YAC1B,iBAAiB;YACjB,mBAAmB;YACnB,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,2BAA2B;YAC3B,6BAA6B;YAC7B,0BAA0B;YAC1B,4BAA4B;YAC5B,uBAAuB;YACvB,yBAAyB;YACzB,wBAAwB;YACxB,qBAAqB;YACrB,mBAAmB;YACnB,iCAAiC;YACjC,sCAAsC;YACtC,iBAAiB;YACjB,+BAA+B;YAC/B,uBAAuB;YACvB,6BAA6B;YAC7B,2BAA2B;YAC3B,gBAAgB;YAChB,4BAA4B;YAC5B,mBAAmB;YACnB,0BAA0B;AAC1B,YAAA,4BAA4B,aA3CtB,YAAY,EAAAL,IAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AA8Cb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EA7CZ,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,CAAC,WAAwB,KAAK,YAAY,CAAC,WAAW,CAAC;AACnE,gBAAA,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,aAAA;AACJ,SAAA,EAAA,OAAA,EAAA,CARS,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA8CxC,cAAc,EAAA,UAAA,EAAA,CAAA;kBA/C1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,CAAC,WAAwB,KAAK,YAAY,CAAC,WAAW,CAAC;AACnE,4BAAA,KAAK,EAAE,IAAI;4BACX,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,yBAAA;AACJ,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,wBAAwB;wBACxB,0BAA0B;wBAC1B,0BAA0B;wBAC1B,iBAAiB;wBACjB,mBAAmB;wBACnB,oBAAoB;wBACpB,uBAAuB;wBACvB,oBAAoB;wBACpB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,2BAA2B;wBAC3B,6BAA6B;wBAC7B,0BAA0B;wBAC1B,4BAA4B;wBAC5B,uBAAuB;wBACvB,yBAAyB;wBACzB,wBAAwB;wBACxB,qBAAqB;wBACrB,mBAAmB;wBACnB,iCAAiC;wBACjC,sCAAsC;wBACtC,iBAAiB;wBACjB,+BAA+B;wBAC/B,uBAAuB;wBACvB,6BAA6B;wBAC7B,2BAA2B;wBAC3B,gBAAgB;wBAChB,4BAA4B;wBAC5B,mBAAmB;wBACnB,0BAA0B;wBAC1B,4BAA4B;AAC/B,qBAAA;AACJ,iBAAA,CAAA;;;AChID;;ACAA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"vendure-admin-ui-settings.mjs","sources":["../../src/lib/settings/src/components/zone-member-list/zone-member-controls.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list-header.directive.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.ts","../../src/lib/settings/src/components/zone-member-list/zone-member-list.component.html","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.ts","../../src/lib/settings/src/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.html","../../src/lib/settings/src/components/permission-grid/permission-grid.component.ts","../../src/lib/settings/src/components/permission-grid/permission-grid.component.html","../../src/lib/settings/src/components/admin-detail/admin-detail.component.ts","../../src/lib/settings/src/components/admin-detail/admin-detail.component.html","../../src/lib/settings/src/components/administrator-list/administrator-list-bulk-actions.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.ts","../../src/lib/settings/src/components/administrator-list/administrator-list.component.html","../../src/lib/settings/src/components/channel-detail/channel-detail.component.ts","../../src/lib/settings/src/components/channel-detail/channel-detail.component.html","../../src/lib/settings/src/components/channel-list/channel-list-bulk-actions.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.ts","../../src/lib/settings/src/components/channel-list/channel-list.component.html","../../src/lib/settings/src/components/country-detail/country-detail.component.ts","../../src/lib/settings/src/components/country-detail/country-detail.component.html","../../src/lib/settings/src/components/country-list/country-list-bulk-actions.ts","../../src/lib/settings/src/components/country-list/country-list.component.ts","../../src/lib/settings/src/components/country-list/country-list.component.html","../../src/lib/settings/src/components/global-settings/global-settings.component.ts","../../src/lib/settings/src/components/global-settings/global-settings.component.html","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.ts","../../src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.html","../../src/lib/settings/src/components/payment-method-list/payment-method-list-bulk-actions.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.ts","../../src/lib/settings/src/components/payment-method-list/payment-method-list.component.html","../../src/lib/settings/src/components/profile/profile.component.ts","../../src/lib/settings/src/components/profile/profile.component.html","../../src/lib/settings/src/components/role-detail/role-detail.component.ts","../../src/lib/settings/src/components/role-detail/role-detail.component.html","../../src/lib/settings/src/components/role-list/role-list-bulk-actions.ts","../../src/lib/settings/src/components/role-list/role-list.component.ts","../../src/lib/settings/src/components/role-list/role-list.component.html","../../src/lib/settings/src/components/seller-detail/seller-detail.component.ts","../../src/lib/settings/src/components/seller-detail/seller-detail.component.html","../../src/lib/settings/src/components/seller-list/seller-list-bulk-actions.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.ts","../../src/lib/settings/src/components/seller-list/seller-list.component.html","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.ts","../../src/lib/settings/src/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.html","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.ts","../../src/lib/settings/src/components/test-order-builder/test-order-builder.component.html","../../src/lib/settings/src/components/test-address-form/test-address-form.component.ts","../../src/lib/settings/src/components/test-address-form/test-address-form.component.html","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.ts","../../src/lib/settings/src/components/shipping-method-test-result/shipping-method-test-result.component.html","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.ts","../../src/lib/settings/src/components/shipping-method-detail/shipping-method-detail.component.html","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list-bulk-actions.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.ts","../../src/lib/settings/src/components/shipping-method-list/shipping-method-list.component.html","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.ts","../../src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.html","../../src/lib/settings/src/components/stock-location-list/stock-location-list-bulk-actions.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.ts","../../src/lib/settings/src/components/stock-location-list/stock-location-list.component.html","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.ts","../../src/lib/settings/src/components/tax-category-detail/tax-category-detail.component.html","../../src/lib/settings/src/components/tax-category-list/tax-category-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.ts","../../src/lib/settings/src/components/tax-category-list/tax-category-list.component.html","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.ts","../../src/lib/settings/src/components/tax-rate-detail/tax-rate-detail.component.html","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list-bulk-actions.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.ts","../../src/lib/settings/src/components/tax-rate-list/tax-rate-list.component.html","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.ts","../../src/lib/settings/src/components/test-shipping-methods/test-shipping-methods.component.html","../../src/lib/settings/src/components/zone-detail/zone-detail.component.ts","../../src/lib/settings/src/components/zone-detail/zone-detail.component.html","../../src/lib/settings/src/components/zone-list/zone-list-bulk-actions.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.ts","../../src/lib/settings/src/components/zone-list/zone-list.component.html","../../src/lib/settings/src/components/zone-member-list/zone-member-list-bulk-actions.ts","../../src/lib/settings/src/providers/routing/profile-resolver.ts","../../src/lib/settings/src/settings.routes.ts","../../src/lib/settings/src/settings.module.ts","../../src/lib/settings/src/public_api.ts","../../src/lib/settings/src/vendure-admin-ui-settings.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[vdrZoneMemberControls]',\r\n})\r\nexport class ZoneMemberControlsDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[vdrZoneMemberListHeader]',\r\n})\r\nexport class ZoneMemberListHeaderDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n BulkActionLocationId,\r\n DataService,\r\n GetZoneListQuery,\r\n GetZoneMembersDocument,\r\n GetZoneMembersQuery,\r\n ItemOf,\r\n SelectionManager,\r\n} from '@vendure/admin-ui/core';\r\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subject, switchMap } from 'rxjs';\r\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport { ZoneMemberControlsDirective } from './zone-member-controls.directive';\r\nimport { ZoneMemberListHeaderDirective } from './zone-member-list-header.directive';\r\n\r\nexport type ZoneMember = { id: string; name: string; code: string };\r\n\r\n@Component({\r\n selector: 'vdr-zone-member-list',\r\n templateUrl: './zone-member-list.component.html',\r\n styleUrls: ['./zone-member-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneMemberListComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() locationId: BulkActionLocationId;\r\n @Input() members?: ZoneMember[];\r\n @Input() selectedMemberIds: string[] = [];\r\n @Input() activeZone: ItemOf<GetZoneListQuery, 'zones'>;\r\n @Output() selectionChange = new EventEmitter<string[]>();\r\n @ContentChild(ZoneMemberListHeaderDirective) headerTemplate: ZoneMemberListHeaderDirective;\r\n @ContentChild(ZoneMemberControlsDirective) controlsTemplate: ZoneMemberControlsDirective;\r\n members$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members'] | ZoneMember[]>;\r\n filterTermControl = new FormControl('');\r\n filteredMembers$: Observable<ZoneMember[]>;\r\n totalItems$: Observable<number>;\r\n currentPage = 1;\r\n itemsPerPage = 10;\r\n selectionManager = new SelectionManager<ZoneMember>({\r\n multiSelect: true,\r\n itemsAreEqual: (a, b) => a.id === b.id,\r\n additiveMode: true,\r\n });\r\n private membersInput$ = new Subject<ZoneMember[]>();\r\n private activeZoneInput$ = new BehaviorSubject<ItemOf<GetZoneListQuery, 'zones'> | undefined>(undefined);\r\n private destroy$ = new Subject<void>();\r\n private refresh$ = new Subject<void>();\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n const activeZoneMembers$ = merge(this.activeZoneInput$, this.refresh$).pipe(\r\n switchMap(activeZone =>\r\n this.activeZone\r\n ? this.dataService\r\n .query(GetZoneMembersDocument, { zoneId: this.activeZone.id })\r\n .mapSingle(({ zone }) => zone?.members ?? [])\r\n : of([]),\r\n ),\r\n );\r\n this.members$ = merge(activeZoneMembers$, this.membersInput$);\r\n\r\n this.members$.pipe(take(1)).subscribe(members => {\r\n this.selectionManager.setCurrentItems(\r\n members?.filter(m => this.selectedMemberIds.includes(m.id)) ?? [],\r\n );\r\n });\r\n this.selectionManager.selectionChanges$.pipe(takeUntil(this.destroy$)).subscribe(selection => {\r\n this.selectionChange.emit(selection.map(s => s.id));\r\n });\r\n this.filteredMembers$ = combineLatest(\r\n this.members$,\r\n this.filterTermControl.valueChanges.pipe(startWith('')),\r\n ).pipe(\r\n map(([members, filterTerm]) => {\r\n if (filterTerm) {\r\n const term = filterTerm?.toLocaleLowerCase() ?? '';\r\n return members.filter(\r\n m =>\r\n m.name.toLocaleLowerCase().includes(term) ||\r\n m.code.toLocaleLowerCase().includes(term),\r\n );\r\n } else {\r\n return members;\r\n }\r\n }),\r\n );\r\n this.totalItems$ = this.filteredMembers$.pipe(map(members => members.length));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('members' in changes) {\r\n this.membersInput$.next(this.members ?? []);\r\n }\r\n if ('activeZone' in changes) {\r\n this.activeZoneInput$.next(this.activeZone);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n refresh() {\r\n this.refresh$.next();\r\n }\r\n}\r\n","<vdr-data-table-2\r\n [id]=\"locationId\"\r\n [items]=\"filteredMembers$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\"\r\n (itemsPerPageChange)=\"itemsPerPage = $event\"\r\n (pageChange)=\"currentPage = $event\"\r\n>\r\n <vdr-bulk-action-menu\r\n [locationId]=\"locationId\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"filterTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-member=\"item\">\r\n {{ member.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-member=\"item\">\r\n {{ member.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-member=\"item\">\r\n {{ member.createdAt | 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-member=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['/settings/countries', member.id]\"\r\n ><span> {{ member.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\r\n <ng-template let-member=\"item\">\r\n {{ member.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-member=\"item\">\r\n <vdr-chip *ngIf=\"member.enabled\" colorType=\"success\">{{ 'common.enabled' | translate }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!member.enabled\" colorType=\"warning\">{{ 'common.disabled' | translate }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport {\r\n DataService,\r\n Dialog,\r\n GetCountryListDocument,\r\n GetCountryListQuery,\r\n GetZoneListQuery,\r\n GetZoneMembersDocument,\r\n GetZoneMembersQuery,\r\n ItemOf,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { map, withLatestFrom } from 'rxjs/operators';\r\n\r\nexport const GET_ZONE_MEMBERS = gql`\r\n query GetZoneMembers($zoneId: ID!) {\r\n zone(id: $zoneId) {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n members {\r\n createdAt\r\n updatedAt\r\n id\r\n name\r\n code\r\n enabled\r\n }\r\n }\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-add-country-to-zone-dialog',\r\n templateUrl: './add-country-to-zone-dialog.component.html',\r\n styleUrls: ['./add-country-to-zone-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddCountryToZoneDialogComponent implements Dialog<string[]>, OnInit {\r\n resolveWith: (result?: string[]) => void;\r\n zoneName: string;\r\n zoneId: string;\r\n currentMembers$: Observable<NonNullable<GetZoneMembersQuery['zone']>['members']>;\r\n availableCountries$: Observable<Array<ItemOf<GetCountryListQuery, 'countries'>>>;\r\n selectedMemberIds: string[] = [];\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.currentMembers$ = this.dataService\r\n .query(GetZoneMembersDocument, { zoneId: this.zoneId })\r\n .mapSingle(({ zone }) => zone?.members ?? []);\r\n this.availableCountries$ = this.dataService\r\n .query(GetCountryListDocument, {\r\n options: { take: 999 },\r\n })\r\n .mapStream(data => data.countries.items)\r\n .pipe(\r\n withLatestFrom(this.currentMembers$),\r\n map(([countries, currentMembers]) =>\r\n countries.filter(c => !currentMembers.find(cm => cm.id === c.id)),\r\n ),\r\n );\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n add() {\r\n this.resolveWith(this.selectedMemberIds);\r\n }\r\n}\r\n","<ng-template vdrDialogTitle>{{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}</ng-template>\r\n\r\n<vdr-zone-member-list\r\n [members]=\"availableCountries$ | async\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n>\r\n</vdr-zone-member-list>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedMemberIds.length\" class=\"btn btn-primary\">\r\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}\r\n </button>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { PermissionDefinition } from '@vendure/admin-ui/core';\r\n\r\nexport interface PermissionGridRow {\r\n label: string;\r\n description: string;\r\n permissions: PermissionDefinition[];\r\n}\r\n\r\n/**\r\n * A table showing and allowing the setting of all possible CRUD permissions.\r\n */\r\n@Component({\r\n selector: 'vdr-permission-grid',\r\n templateUrl: './permission-grid.component.html',\r\n styleUrls: ['./permission-grid.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PermissionGridComponent implements OnInit {\r\n @Input() permissionDefinitions: PermissionDefinition[];\r\n @Input() activePermissions: string[];\r\n @Input() readonly = false;\r\n @Output() permissionChange = new EventEmitter<{ permission: string; value: boolean }>();\r\n gridData: PermissionGridRow[];\r\n\r\n ngOnInit() {\r\n this.buildGrid();\r\n }\r\n\r\n setPermission(permission: string, value: boolean) {\r\n if (!this.readonly) {\r\n this.permissionChange.emit({ permission, value });\r\n }\r\n }\r\n\r\n toggleAll(defs: PermissionDefinition[]) {\r\n const value = defs.some(d => !this.activePermissions.includes(d.name));\r\n for (const def of defs) {\r\n this.permissionChange.emit({ permission: def.name, value });\r\n }\r\n }\r\n\r\n private buildGrid() {\r\n const crudGroups = new Map<string, PermissionDefinition[]>();\r\n const nonCrud: PermissionDefinition[] = [];\r\n const crudRe = /^(Create|Read|Update|Delete)([a-zA-Z]+)$/;\r\n for (const def of this.permissionDefinitions) {\r\n const isCrud = crudRe.test(def.name);\r\n if (isCrud) {\r\n const groupName = def.name.match(crudRe)?.[2];\r\n if (groupName) {\r\n const existing = crudGroups.get(groupName);\r\n if (existing) {\r\n existing.push(def);\r\n } else {\r\n crudGroups.set(groupName, [def]);\r\n }\r\n }\r\n } else if (def.assignable) {\r\n nonCrud.push(def);\r\n }\r\n }\r\n this.gridData = [\r\n ...nonCrud.map(d => ({\r\n label: d.name,\r\n description: d.description,\r\n permissions: [d],\r\n })),\r\n ...Array.from(crudGroups.entries()).map(([label, defs]) => ({\r\n label,\r\n description: this.extractCrudDescription(defs[0]),\r\n permissions: defs,\r\n })),\r\n ];\r\n }\r\n\r\n private extractCrudDescription(def: PermissionDefinition): string {\r\n return def.description.replace(/Grants permission to [\\w]+/, 'Grants permissions on');\r\n }\r\n}\r\n","<table class=\"table\">\r\n <tbody>\r\n <tr *ngFor=\"let section of gridData\">\r\n <td class=\"permission-group left\">\r\n <div><strong>{{ section.label | translate }}</strong></div>\r\n <small>{{ section.description | translate }}</small><br>\r\n <button *ngIf=\"1 < section.permissions.length && !readonly\" class=\"button-small\" (click)=\"toggleAll(section.permissions)\">\r\n {{ 'common.toggle-all' | translate }}\r\n </button>\r\n </td>\r\n <td *ngFor=\"let permission of section.permissions\" [attr.colspan]=\"section.permissions.length === 1 ? 4 : 1\">\r\n <vdr-select-toggle\r\n size=\"small\"\r\n [title]=\"permission.description\"\r\n [label]=\"permission.name\"\r\n [disabled]=\"readonly\"\r\n [selected]=\"activePermissions?.includes(permission.name)\"\r\n (selectedChange)=\"setPermission(permission.name, $event)\"\r\n ></vdr-select-toggle>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { ResultOf } from '@graphql-typed-document-node/core';\r\nimport {\r\n ADMINISTRATOR_FRAGMENT,\r\n CreateAdministratorInput,\r\n DataService,\r\n GetAdministratorDetailDocument,\r\n getCustomFieldsDefaults,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n PermissionDefinition,\r\n RoleFragment,\r\n TypedBaseDetailComponent,\r\n UpdateAdministratorInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { CUSTOMER_ROLE_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport interface PermissionsByChannel {\r\n channelId: string;\r\n channelCode: string;\r\n permissions: { [K in Permission]: boolean };\r\n}\r\n\r\nexport const GET_ADMINISTRATOR_DETAIL = gql`\r\n query GetAdministratorDetail($id: ID!) {\r\n administrator(id: $id) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-admin-detail',\r\n templateUrl: './admin-detail.component.html',\r\n styleUrls: ['./admin-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AdminDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetAdministratorDetailDocument, 'administrator'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Administrator');\r\n detailForm = this.formBuilder.group({\r\n emailAddress: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n password: [''],\r\n roles: [\r\n [] as NonNullable<\r\n ResultOf<typeof GetAdministratorDetailDocument>['administrator']\r\n >['user']['roles'],\r\n ],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n permissionDefinitions: PermissionDefinition[];\r\n allRoles$: Observable<RoleFragment[]>;\r\n selectedRoles: RoleFragment[] = [];\r\n selectedRolePermissions: { [channelId: string]: PermissionsByChannel } = {} as any;\r\n selectedChannelId: string | null = null;\r\n\r\n getAvailableChannels(): PermissionsByChannel[] {\r\n return Object.values(this.selectedRolePermissions);\r\n }\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.allRoles$ = this.dataService.administrator\r\n .getRoles(999)\r\n .mapStream(item => item.roles.items.filter(i => i.code !== CUSTOMER_ROLE_CODE));\r\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\r\n if (\r\n !userStatus.permissions.includes(Permission.CreateAdministrator) &&\r\n !userStatus.permissions.includes(Permission.UpdateAdministrator)\r\n ) {\r\n const rolesSelect = this.detailForm.get('roles');\r\n if (rolesSelect) {\r\n rolesSelect.disable();\r\n }\r\n }\r\n });\r\n this.permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n rolesChanged(roles: RoleFragment[]) {\r\n this.buildPermissionsMap();\r\n }\r\n\r\n getPermissionsForSelectedChannel(): string[] {\r\n function getActivePermissions(input: PermissionsByChannel['permissions']): string[] {\r\n return Object.entries(input)\r\n .filter(([permission, active]) => active)\r\n .map(([permission, active]) => permission);\r\n }\r\n if (this.selectedChannelId) {\r\n const selectedChannel = this.selectedRolePermissions[this.selectedChannelId];\r\n if (selectedChannel) {\r\n const permissionMap = this.selectedRolePermissions[this.selectedChannelId].permissions;\r\n return getActivePermissions(permissionMap);\r\n }\r\n }\r\n const channels = Object.values(this.selectedRolePermissions);\r\n if (0 < channels.length) {\r\n this.selectedChannelId = channels[0].channelId;\r\n return getActivePermissions(channels[0].permissions);\r\n }\r\n return [];\r\n }\r\n\r\n create() {\r\n const { emailAddress, firstName, lastName, password, customFields, roles } = this.detailForm.value;\r\n if (!emailAddress || !firstName || !lastName || !password) {\r\n return;\r\n }\r\n const administrator: CreateAdministratorInput = {\r\n emailAddress,\r\n firstName,\r\n lastName,\r\n password,\r\n customFields,\r\n roleIds: roles?.map(role => role.id).filter(notNullOrUndefined) ?? [],\r\n };\r\n this.dataService.administrator.createAdministrator(administrator).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Administrator',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createAdministrator.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Administrator',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(({ id }) => {\r\n const formValue = this.detailForm.value;\r\n const administrator: UpdateAdministratorInput = {\r\n id,\r\n emailAddress: formValue.emailAddress,\r\n firstName: formValue.firstName,\r\n lastName: formValue.lastName,\r\n password: formValue.password,\r\n customFields: formValue.customFields,\r\n roleIds: formValue.roles?.map(role => role.id),\r\n };\r\n return this.dataService.administrator.updateAdministrator(administrator);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Administrator',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Administrator',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(\r\n entity: NonNullable<ResultOf<typeof GetAdministratorDetailDocument>['administrator']>,\r\n languageCode: LanguageCode,\r\n ) {\r\n this.detailForm.patchValue({\r\n emailAddress: entity.emailAddress,\r\n firstName: entity.firstName,\r\n lastName: entity.lastName,\r\n roles: entity.user.roles,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\r\n }\r\n const passwordControl = this.detailForm.get('password');\r\n if (passwordControl) {\r\n if (!entity.id) {\r\n passwordControl.setValidators([Validators.required]);\r\n } else {\r\n passwordControl.setValidators([]);\r\n }\r\n }\r\n this.buildPermissionsMap();\r\n }\r\n\r\n private buildPermissionsMap() {\r\n const permissionsControl = this.detailForm.get('roles');\r\n if (permissionsControl) {\r\n const roles = permissionsControl.value;\r\n const channelIdPermissionsMap = new Map<string, Set<Permission>>();\r\n const channelIdCodeMap = new Map<string, string>();\r\n\r\n for (const role of roles ?? []) {\r\n for (const channel of role.channels) {\r\n const channelPermissions = channelIdPermissionsMap.get(channel.id);\r\n const permissionSet = channelPermissions || new Set<Permission>();\r\n\r\n role.permissions.forEach(p => permissionSet.add(p));\r\n channelIdPermissionsMap.set(channel.id, permissionSet);\r\n channelIdCodeMap.set(channel.id, channel.code);\r\n }\r\n }\r\n\r\n this.selectedRolePermissions = {} as any;\r\n for (const channelId of Array.from(channelIdPermissionsMap.keys())) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const permissionSet = channelIdPermissionsMap.get(channelId)!;\r\n const permissionsHash: { [K in Permission]: boolean } = {} as any;\r\n for (const def of this.serverConfigService.getPermissionDefinitions()) {\r\n permissionsHash[def.name] = permissionSet.has(def.name as Permission);\r\n }\r\n this.selectedRolePermissions[channelId] = {\r\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n channelId,\r\n channelCode: channelIdCodeMap.get(channelId)!,\r\n permissions: permissionsHash,\r\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\r\n };\r\n }\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"administrator-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'settings.email-address-or-identifier' | translate\"\r\n for=\"emailAddress\"\r\n class=\"form-grid-span\"\r\n >\r\n <input\r\n id=\"emailAddress\"\r\n type=\"text\"\r\n formControlName=\"emailAddress\"\r\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input\r\n id=\"firstName\"\r\n type=\"text\"\r\n formControlName=\"firstName\"\r\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input\r\n id=\"lastName\"\r\n type=\"text\"\r\n formControlName=\"lastName\"\r\n [readonly]=\"!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"isNew$ | async\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"\r\n !(isNew$ | async) &&\r\n (['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)\r\n \"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"administrator-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n <vdr-page-block>\r\n <vdr-card [title]=\"'settings.roles' | translate\">\r\n <ng-select\r\n [items]=\"allRoles$ | async\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n formControlName=\"roles\"\r\n (change)=\"rolesChanged($event)\"\r\n bindLabel=\"description\"\r\n ></ng-select>\r\n\r\n <ul class=\"nav mt-2\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\r\n <button\r\n [id]=\"channel.channelId\"\r\n (click)=\"selectedChannelId = channel.channelId\"\r\n class=\"btn btn-link nav-link\"\r\n [class.active]=\"selectedChannelId === channel.channelId\"\r\n [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\r\n type=\"button\"\r\n >\r\n {{ channel.channelCode | channelCodeToLabel | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n <vdr-permission-grid\r\n [activePermissions]=\"getPermissionsForSelectedChannel()\"\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [readonly]=\"true\"\r\n ></vdr-permission-grid>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</form>\r\n","import {\r\n createBulkDeleteAction,\r\n GetAdministratorListQuery,\r\n ItemOf,\r\n Permission,\r\n} from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteAdministratorsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetAdministratorListQuery, 'administrators'>\r\n>({\r\n location: 'administrator-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\r\n getItemName: item => item.firstName + ' ' + item.lastName,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.administrator.deleteAdministrators(ids).pipe(map(res => res.deleteAdministrators)),\r\n});\r\n","import { Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n ADMINISTRATOR_FRAGMENT,\r\n GetAdministratorListDocument,\r\n LogicalOperator,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_ADMINISTRATOR_LIST = gql`\r\n query GetAdministratorList($options: AdministratorListOptions) {\r\n administrators(options: $options) {\r\n items {\r\n ...AdministratorListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment AdministratorListItem on Administrator {\r\n id\r\n createdAt\r\n updatedAt\r\n firstName\r\n lastName\r\n emailAddress\r\n user {\r\n id\r\n identifier\r\n lastLogin\r\n roles {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n description\r\n }\r\n }\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-administrator-list',\r\n templateUrl: './administrator-list.component.html',\r\n styleUrls: ['./administrator-list.component.scss'],\r\n})\r\nexport class AdministratorListComponent extends TypedBaseListComponent<\r\n typeof GetAdministratorListDocument,\r\n 'administrators'\r\n> {\r\n dataTableListId = 'administrator-list';\r\n readonly customFields = this.getCustomFieldConfig('Administrator');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'firstName',\r\n type: { kind: 'text' },\r\n label: _('settings.first-name'),\r\n filterField: 'firstName',\r\n })\r\n .addFilter({\r\n name: 'lastName',\r\n type: { kind: 'text' },\r\n label: _('settings.last-name'),\r\n filterField: 'lastName',\r\n })\r\n .addFilter({\r\n name: 'emailAddress',\r\n type: { kind: 'text' },\r\n label: _('settings.email-address'),\r\n filterField: 'emailAddress',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'lastName' })\r\n .addSort({ name: 'emailAddress' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetAdministratorListDocument,\r\n getItems: data => data.administrators,\r\n setVariables: (skip, take) => this.createSearchQuery(skip, take, this.searchTermControl.value),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n createSearchQuery(skip: number, take: number, searchTerm: string | null) {\r\n let _filter = {};\r\n let filterOperator: LogicalOperator = LogicalOperator.AND;\r\n\r\n if (searchTerm) {\r\n _filter = {\r\n emailAddress: {\r\n contains: searchTerm,\r\n },\r\n firstName: {\r\n contains: searchTerm,\r\n },\r\n lastName: {\r\n contains: searchTerm,\r\n },\r\n };\r\n filterOperator = LogicalOperator.OR;\r\n }\r\n return {\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n ...(_filter ?? {}),\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n filterOperator,\r\n },\r\n };\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateAdministrator']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'admin.create-new-administrator' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"administrator-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"administrator-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-administrator=\"item\">\r\n {{ administrator.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.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\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-administrator=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', administrator.id]\"\r\n ><span>{{ administrator.firstName }} {{ administrator.lastName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.roles' | translate\" id=\"roles\">\r\n <ng-template let-administrator=\"item\">\r\n <vdr-chip *ngFor=\"let role of administrator.user.roles\">{{ role.description }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CHANNEL_FRAGMENT,\r\n ChannelFragment,\r\n CreateChannelInput,\r\n CurrencyCode,\r\n DataService,\r\n GetChannelDetailDocument,\r\n getCustomFieldsDefaults,\r\n GetSellersQuery,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n ServerConfigService,\r\n TypedBaseDetailComponent,\r\n UpdateChannelInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { map, mergeMap, take, takeUntil } from 'rxjs/operators';\r\n\r\nexport const GET_CHANNEL_DETAIL = gql`\r\n query GetChannelDetail($id: ID!) {\r\n channel(id: $id) {\r\n ...Channel\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-channel-detail',\r\n templateUrl: './channel-detail.component.html',\r\n styleUrls: ['./channel-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChannelDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetChannelDetailDocument, 'channel'>\r\n implements OnInit, OnDestroy\r\n{\r\n DEFAULT_CHANNEL_CODE = DEFAULT_CHANNEL_CODE;\r\n customFields = this.getCustomFieldConfig('Channel');\r\n // zones$: Observable<Array<ItemOf<GetZoneListQuery, 'zones'>>>;\r\n sellers$: Observable<GetSellersQuery['sellers']['items']>;\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n token: ['', Validators.required],\r\n pricesIncludeTax: [false],\r\n availableLanguageCodes: [[] as string[]],\r\n availableCurrencyCodes: [[] as string[]],\r\n defaultCurrencyCode: ['' as CurrencyCode, Validators.required],\r\n defaultShippingZoneId: ['', Validators.required],\r\n defaultLanguageCode: [undefined as LanguageCode | undefined, Validators.required],\r\n defaultTaxZoneId: ['', Validators.required],\r\n sellerId: ['', Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n\r\n availableLanguageCodes$: Observable<LanguageCode[]>;\r\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateChannel, Permission.CreateChannel];\r\n\r\n constructor(\r\n protected serverConfigService: ServerConfigService,\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n // TODO: make this lazy-loaded autocomplete\r\n this.sellers$ = this.dataService.settings.getSellerList().mapSingle(data => data.sellers.items);\r\n this.availableLanguageCodes$ = this.serverConfigService.getAvailableLanguages();\r\n this.detailForm.controls.availableCurrencyCodes.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(value => {\r\n if (value) {\r\n const defaultCurrencyCode = this.detailForm.controls.defaultCurrencyCode.value;\r\n if (defaultCurrencyCode && !value.includes(defaultCurrencyCode)) {\r\n this.detailForm.controls.defaultCurrencyCode.setValue(value[0] as CurrencyCode);\r\n }\r\n }\r\n });\r\n this.detailForm.controls.availableLanguageCodes.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(value => {\r\n if (value) {\r\n const defaultLanguageCode = this.detailForm.controls.defaultLanguageCode.value;\r\n if (defaultLanguageCode && !value.includes(defaultLanguageCode)) {\r\n this.detailForm.controls.defaultLanguageCode.setValue(value[0] as LanguageCode);\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const {\r\n code,\r\n token,\r\n defaultLanguageCode,\r\n pricesIncludeTax,\r\n defaultCurrencyCode,\r\n defaultShippingZoneId,\r\n defaultTaxZoneId,\r\n customFields,\r\n sellerId,\r\n } = this.detailForm.value;\r\n if (\r\n !code ||\r\n !token ||\r\n !defaultLanguageCode ||\r\n !defaultCurrencyCode ||\r\n !defaultShippingZoneId ||\r\n !defaultTaxZoneId\r\n ) {\r\n return;\r\n }\r\n const input: CreateChannelInput = {\r\n code,\r\n token,\r\n defaultLanguageCode,\r\n pricesIncludeTax: !!pricesIncludeTax,\r\n defaultCurrencyCode,\r\n defaultShippingZoneId,\r\n defaultTaxZoneId,\r\n customFields,\r\n sellerId,\r\n };\r\n this.dataService.settings\r\n .createChannel(input)\r\n .pipe(\r\n mergeMap(({ createChannel }) =>\r\n this.dataService.auth.currentUser().single$.pipe(\r\n map(({ me }) => ({\r\n me,\r\n createChannel,\r\n })),\r\n ),\r\n ),\r\n mergeMap(({ me, createChannel }) =>\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n this.dataService.client.updateUserChannels(me!.channels).pipe(map(() => createChannel)),\r\n ),\r\n )\r\n .subscribe(data => {\r\n switch (data.__typename) {\r\n case 'Channel':\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Channel',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.id], { relativeTo: this.route });\r\n break;\r\n case 'LanguageNotAvailableError':\r\n this.notificationService.error(data.message);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(channel => {\r\n const input = {\r\n id: channel.id,\r\n code: formValue.code,\r\n token: formValue.token,\r\n pricesIncludeTax: formValue.pricesIncludeTax,\r\n availableLanguageCodes: formValue.availableLanguageCodes,\r\n availableCurrencyCodes: formValue.availableCurrencyCodes,\r\n defaultCurrencyCode: formValue.defaultCurrencyCode,\r\n defaultShippingZoneId: formValue.defaultShippingZoneId,\r\n defaultLanguageCode: formValue.defaultLanguageCode,\r\n defaultTaxZoneId: formValue.defaultTaxZoneId,\r\n customFields: formValue.customFields,\r\n sellerId: formValue.sellerId,\r\n } as UpdateChannelInput;\r\n return this.dataService.settings.updateChannel(input);\r\n }),\r\n )\r\n .subscribe(({ updateChannel }) => {\r\n switch (updateChannel.__typename) {\r\n case 'Channel':\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Channel',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n break;\r\n case 'LanguageNotAvailableError':\r\n this.notificationService.error(updateChannel.message);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: ChannelFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n code: entity.code,\r\n token: entity.token || this.generateToken(),\r\n pricesIncludeTax: entity.pricesIncludeTax,\r\n availableLanguageCodes: entity.availableLanguageCodes,\r\n availableCurrencyCodes: entity.availableCurrencyCodes,\r\n defaultCurrencyCode: entity.defaultCurrencyCode,\r\n defaultShippingZoneId: entity.defaultShippingZone?.id ?? '',\r\n defaultLanguageCode: entity.defaultLanguageCode,\r\n defaultTaxZoneId: entity.defaultTaxZone?.id ?? '',\r\n sellerId: entity.seller?.id ?? '',\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\r\n }\r\n if (entity.code === DEFAULT_CHANNEL_CODE) {\r\n const codeControl = this.detailForm.get('code');\r\n if (codeControl) {\r\n codeControl.disable();\r\n }\r\n }\r\n }\r\n\r\n private generateToken(): string {\r\n return Array.from(crypto.getRandomValues(new Uint8Array(10)))\r\n .map(b => b.toString(16).padStart(2, '0'))\r\n .join('');\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"channel-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n class=\"form-grid-span\"\r\n *ngIf=\"entity?.code !== DEFAULT_CHANNEL_CODE\"\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"code\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-item\r\n class=\"form-grid-span\"\r\n *ngIf=\"entity?.code === DEFAULT_CHANNEL_CODE\"\r\n [label]=\"'common.code' | translate\"\r\n >\r\n {{ entity?.code | channelCodeToLabel | translate }}\r\n </vdr-form-item>\r\n <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\r\n <input\r\n id=\"token\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"token\"\r\n />\r\n </vdr-form-field>\r\n\r\n <vdr-form-field [label]=\"'common.seller' | translate\" for=\"sellerId\">\r\n <select\r\n name=\"sellerId\"\r\n formControlName=\"sellerId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option selected value style=\"display: none\"></option>\r\n <option *ngFor=\"let seller of sellers$ | async\" [value]=\"seller.id\">\r\n {{ seller.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.available-languages' | translate\"\r\n for=\"availableLanguageCodes\"\r\n >\r\n <vdr-language-code-selector\r\n formControlName=\"availableLanguageCodes\"\r\n [languageCodes]=\"availableLanguageCodes$ | async\"\r\n ></vdr-language-code-selector>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.available-currencies' | translate\"\r\n for=\"availableCurrencyCodes\"\r\n >\r\n <vdr-currency-code-selector\r\n formControlName=\"availableCurrencyCodes\"\r\n ></vdr-currency-code-selector>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.defaults' | translate\">\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\r\n <select\r\n name=\"defaultLanguageCode\"\r\n formControlName=\"defaultLanguageCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option\r\n *ngFor=\"let languageCode of detailForm.value.availableLanguageCodes\"\r\n [value]=\"languageCode\"\r\n >\r\n {{ languageCode | localeLanguageName }} ({{ languageCode | uppercase }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.default-currency' | translate\" for=\"defaultCurrency\">\r\n <select\r\n name=\"defaultCurrencyCode\"\r\n formControlName=\"defaultCurrencyCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option\r\n *ngFor=\"let code of detailForm.value.availableCurrencyCodes\"\r\n [value]=\"code\"\r\n >\r\n {{ code | localeCurrencyName }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <div>\r\n <vdr-form-field\r\n [label]=\"'settings.default-tax-zone' | translate\"\r\n for=\"defaultTaxZoneId\"\r\n >\r\n <vdr-zone-selector\r\n formControlName=\"defaultTaxZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-zone-selector>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\r\n clrAlertType=\"danger\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-tax-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n\r\n <div>\r\n <vdr-form-field\r\n [label]=\"'settings.default-shipping-zone' | translate\"\r\n for=\"defaultShippingZoneId\"\r\n >\r\n <vdr-zone-selector\r\n name=\"defaultShippingZoneId\"\r\n formControlName=\"defaultShippingZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-zone-selector>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\r\n clrAlertType=\"danger\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-shipping-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <vdr-form-field\r\n [label]=\"'settings.prices-include-tax' | translate\"\r\n for=\"pricesIncludeTax\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"pricesIncludeTax\"\r\n formControlName=\"pricesIncludeTax\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Channel\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"channel-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetChannelsQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\n\r\nexport const deleteChannelsBulkAction = createBulkDeleteAction<ItemOf<GetChannelsQuery, 'channels'>>({\r\n location: 'channel-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.SuperAdmin) || userPermissions.includes(Permission.DeleteChannel),\r\n getItemName: item => item.code,\r\n bulkDelete: (dataService, ids) => {\r\n return dataService.settings.deleteChannels(ids).pipe(\r\n mergeMap(({ deleteChannels }) =>\r\n dataService.auth.currentUser().single$.pipe(\r\n map(({ me }) => ({\r\n me,\r\n deleteChannels,\r\n })),\r\n ),\r\n ),\r\n mergeMap(({ me, deleteChannels }) =>\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n dataService.client.updateUserChannels(me!.channels).pipe(map(() => deleteChannels)),\r\n ),\r\n );\r\n },\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { CHANNEL_FRAGMENT, GetChannelListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_CHANNEL_LIST = gql`\r\n query GetChannelList($options: ChannelListOptions) {\r\n channels(options: $options) {\r\n items {\r\n ...Channel\r\n }\r\n totalItems\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-channel-list',\r\n templateUrl: './channel-list.component.html',\r\n styleUrls: ['./channel-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChannelListComponent\r\n extends TypedBaseListComponent<typeof GetChannelListDocument, 'channels'>\r\n implements OnInit\r\n{\r\n dataTableListId = 'channel-list';\r\n readonly customFields = this.getCustomFieldConfig('Channel');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'token',\r\n type: { kind: 'text' },\r\n label: _('settings.channel-token'),\r\n filterField: 'token',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'token' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetChannelListDocument,\r\n getItems: data => data.channels,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n code: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n isDefaultChannel(channelCode: string): boolean {\r\n return channelCode === DEFAULT_CHANNEL_CODE;\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-list\" />\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateChannel']\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-channel' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"channel-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"channel-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-channel=\"item\">\r\n {{ channel.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-channel=\"item\">\r\n {{ channel.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-channel=\"item\">\r\n {{ channel.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-channel=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', channel.id]\"\r\n ><span>{{ channel.code | channelCodeToLabel | translate }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.channel-token' | translate\" id=\"channel-token\" [sort]=\"sorts.get('token')\">\r\n <ng-template let-channel=\"item\">\r\n {{ channel.token }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n COUNTRY_FRAGMENT,\r\n CountryFragment,\r\n createUpdatedTranslatable,\r\n DataService,\r\n findTranslation,\r\n GetCountryDetailDocument,\r\n getCustomFieldsDefaults,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TypedBaseDetailComponent,\r\n UpdateCountryInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_COUNTRY_DETAIL = gql`\r\n query GetCountryDetail($id: ID!) {\r\n country(id: $id) {\r\n ...Country\r\n }\r\n }\r\n ${COUNTRY_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-country-detail',\r\n templateUrl: './country-detail.component.html',\r\n styleUrls: ['./country-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CountryDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetCountryDetailDocument, 'country'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Region');\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n enabled: [true],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateCountry];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n\r\n const formValue = this.detailForm.value;\r\n const input = createUpdatedTranslatable({\r\n translatable: {\r\n id: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n code: '',\r\n name: '',\r\n enabled: false,\r\n translations: [],\r\n } as CountryFragment,\r\n updatedFields: formValue,\r\n languageCode: this.languageCode,\r\n customFieldConfig: this.customFields,\r\n defaultTranslation: {\r\n name: formValue.name ?? '',\r\n languageCode: this.languageCode,\r\n },\r\n });\r\n this.dataService.settings.createCountry(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Country',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createCountry.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Country',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n combineLatest(this.entity$, this.languageCode$)\r\n .pipe(\r\n take(1),\r\n mergeMap(([country, languageCode]) => {\r\n const formValue = this.detailForm.value;\r\n const input: UpdateCountryInput = createUpdatedTranslatable({\r\n translatable: country,\r\n updatedFields: formValue,\r\n customFieldConfig: this.customFields,\r\n languageCode,\r\n defaultTranslation: {\r\n name: formValue.name ?? '',\r\n languageCode,\r\n },\r\n });\r\n return this.dataService.settings.updateCountry(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Country',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Country',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(country: CountryFragment, languageCode: LanguageCode): void {\r\n const currentTranslation = findTranslation(country, languageCode);\r\n\r\n this.detailForm.patchValue({\r\n code: country.code,\r\n name: currentTranslation ? currentTranslation.name : '',\r\n enabled: country.enabled,\r\n });\r\n\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get(['customFields']),\r\n country,\r\n currentTranslation,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block\r\n ><vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"country-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Region\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"country-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetCountryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteCountriesBulkAction = createBulkDeleteAction<ItemOf<GetCountryListQuery, 'countries'>>({\r\n location: 'country-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteCountry),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteCountries(ids).pipe(map(res => res.deleteCountries)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetCountryListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_COUNTRY_LIST = gql`\r\n query GetCountryList($options: CountryListOptions) {\r\n countries(options: $options) {\r\n items {\r\n ...CountryListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment CountryListItem on Country {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n name\r\n type\r\n enabled\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-country-list',\r\n templateUrl: './country-list.component.html',\r\n styleUrls: ['./country-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CountryListComponent extends TypedBaseListComponent<typeof GetCountryListDocument, 'countries'> {\r\n dataTableListId = 'country-list';\r\n readonly customFields = this.getCustomFieldConfig('Region');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'enabled',\r\n type: { kind: 'boolean' },\r\n label: _('common.enabled'),\r\n filterField: 'enabled',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('name', 'ASC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'code' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetCountryListDocument,\r\n getItems: data => data.countries,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-country' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"country-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"country-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-country=\"item\">\r\n {{ country.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-country=\"item\">\r\n {{ country.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-country=\"item\">\r\n {{ country.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\"\r\n id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-country=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', country.id]\"\r\n ><span>{{ country.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-country=\"item\">\r\n {{ country.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-country=\"item\">\r\n <vdr-chip *ngIf=\"country.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!country.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetGlobalSettingsDetailDocument,\r\n GlobalSettings,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TypedBaseDetailComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nexport const GET_GLOBAL_SETTINGS_DETAIL = gql`\r\n query GetGlobalSettingsDetail {\r\n globalSettings {\r\n ...GlobalSettingsDetail\r\n }\r\n }\r\n fragment GlobalSettingsDetail on GlobalSettings {\r\n id\r\n createdAt\r\n updatedAt\r\n availableLanguages\r\n trackInventory\r\n outOfStockThreshold\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-global-settings',\r\n templateUrl: './global-settings.component.html',\r\n styleUrls: ['./global-settings.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GlobalSettingsComponent\r\n extends TypedBaseDetailComponent<typeof GetGlobalSettingsDetailDocument, 'globalSettings'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('GlobalSettings');\r\n detailForm = this.formBuilder.group({\r\n availableLanguages: [[] as LanguageCode[]],\r\n trackInventory: false,\r\n outOfStockThreshold: [0, Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n languageCodes = Object.values(LanguageCode);\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateGlobalSettings];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {\r\n if (!userStatus.permissions.includes(Permission.UpdateSettings)) {\r\n const languagesSelect = this.detailForm.get('availableLanguages');\r\n if (languagesSelect) {\r\n languagesSelect.disable();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n\r\n this.dataService.settings\r\n .updateGlobalSettings(this.detailForm.value)\r\n .pipe(\r\n tap(({ updateGlobalSettings }) => {\r\n switch (updateGlobalSettings.__typename) {\r\n case 'GlobalSettings':\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Settings',\r\n });\r\n break;\r\n case 'ChannelDefaultLanguageError':\r\n this.notificationService.error(updateGlobalSettings.message);\r\n }\r\n }),\r\n switchMap(() => this.serverConfigService.refreshGlobalSettings()),\r\n withLatestFrom(this.dataService.client.uiState().single$),\r\n )\r\n .subscribe(([{ globalSettings }, { uiState }]) => {\r\n const availableLangs = globalSettings.availableLanguages;\r\n if (availableLangs.length && !availableLangs.includes(uiState.contentLanguage)) {\r\n this.dataService.client.setContentLanguage(availableLangs[0]).subscribe();\r\n }\r\n });\r\n }\r\n\r\n protected setFormValues(entity: GlobalSettings, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n availableLanguages: entity.availableLanguages,\r\n trackInventory: entity.trackInventory,\r\n outOfStockThreshold: entity.outOfStockThreshold,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"global-setting-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n <vdr-action-bar-dropdown-menu locationId=\"global-setting-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field\r\n [label]=\"'common.available-languages' | translate\"\r\n for=\"availableLanguages\"\r\n [tooltip]=\"'settings.global-available-languages-tooltip' | translate\"\r\n >\r\n <vdr-language-code-selector\r\n formControlName=\"availableLanguages\"\r\n [languageCodes]=\"languageCodes\"\r\n ></vdr-language-code-selector>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\r\n for=\"outOfStockThreshold\"\r\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\r\n >\r\n <input\r\n id=\"outOfStockThreshold\"\r\n type=\"number\"\r\n formControlName=\"outOfStockThreshold\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.track-inventory-default' | translate\"\r\n for=\"enabled\"\r\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"enabled\"\r\n formControlName=\"trackInventory\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"GlobalSettings\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"global-settings-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n</form>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n configurableDefinitionToInstance,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n CreatePaymentMethodInput,\r\n createUpdatedTranslatable,\r\n DataService,\r\n findTranslation,\r\n getConfigArgValue,\r\n getCustomFieldsDefaults,\r\n GetPaymentMethodDetailDocument,\r\n GetPaymentMethodDetailQuery,\r\n LanguageCode,\r\n NotificationService,\r\n PAYMENT_METHOD_FRAGMENT,\r\n PaymentMethodFragment,\r\n Permission,\r\n toConfigurableOperationInput,\r\n TypedBaseDetailComponent,\r\n UpdatePaymentMethodInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_PAYMENT_METHOD_DETAIL = gql`\r\n query GetPaymentMethodDetail($id: ID!) {\r\n paymentMethod(id: $id) {\r\n ...PaymentMethod\r\n }\r\n }\r\n ${PAYMENT_METHOD_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-payment-method-detail',\r\n templateUrl: './payment-method-detail.component.html',\r\n styleUrls: ['./payment-method-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentMethodDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetPaymentMethodDetailDocument, 'paymentMethod'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('PaymentMethod');\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n description: '',\r\n enabled: [true, Validators.required],\r\n checker: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['checker'],\r\n handler: {} as NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>['handler'],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n checkers: ConfigurableOperationDefinition[] = [];\r\n handlers: ConfigurableOperationDefinition[] = [];\r\n selectedChecker?: ConfigurableOperation | null;\r\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\r\n selectedHandler?: ConfigurableOperation | null;\r\n selectedHandlerDefinition?: ConfigurableOperationDefinition;\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdatePaymentMethod];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.dataService.settings.getPaymentMethodOperations().single$.subscribe(data => {\r\n this.checkers = data.paymentMethodEligibilityCheckers;\r\n this.handlers = data.paymentMethodHandlers;\r\n this.changeDetector.markForCheck();\r\n this.selectedCheckerDefinition = data.paymentMethodEligibilityCheckers.find(\r\n c => c.code === this.entity?.checker?.code,\r\n );\r\n this.selectedHandlerDefinition = data.paymentMethodHandlers.find(\r\n c => c.code === this.entity?.handler?.code,\r\n );\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n updateCode(currentCode: string | undefined, nameValue: string) {\r\n if (!currentCode) {\r\n const codeControl = this.detailForm.get('code');\r\n if (codeControl && codeControl.pristine) {\r\n codeControl.setValue(normalizeString(nameValue, '-'));\r\n }\r\n }\r\n }\r\n\r\n selectChecker(checker: ConfigurableOperationDefinition) {\r\n this.selectedCheckerDefinition = checker;\r\n this.selectedChecker = configurableDefinitionToInstance(checker);\r\n const formControl = this.detailForm.get('checker');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedChecker);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n selectHandler(handler: ConfigurableOperationDefinition) {\r\n this.selectedHandlerDefinition = handler;\r\n this.selectedHandler = configurableDefinitionToInstance(handler);\r\n const formControl = this.detailForm.get('handler');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedHandler);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n removeChecker() {\r\n this.selectedChecker = null;\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n removeHandler() {\r\n this.selectedHandler = null;\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n create() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedHandler = this.selectedHandler;\r\n if (!selectedHandler) {\r\n return;\r\n }\r\n const input = this.getUpdatedPaymentMethod(\r\n {\r\n id: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n name: '',\r\n code: '',\r\n description: '',\r\n enabled: true,\r\n checker: undefined as any,\r\n handler: undefined as any,\r\n translations: [],\r\n },\r\n this.detailForm,\r\n this.languageCode,\r\n selectedHandler,\r\n selectedChecker,\r\n ) as CreatePaymentMethodInput;\r\n this.dataService.settings.createPaymentMethod(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'PaymentMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createPaymentMethod.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'PaymentMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedHandler = this.selectedHandler;\r\n if (!selectedHandler) {\r\n return;\r\n }\r\n combineLatest(this.entity$, this.languageCode$)\r\n .pipe(\r\n take(1),\r\n mergeMap(([paymentMethod, languageCode]) => {\r\n const input = this.getUpdatedPaymentMethod(\r\n paymentMethod,\r\n this.detailForm,\r\n languageCode,\r\n selectedHandler,\r\n selectedChecker,\r\n ) as UpdatePaymentMethodInput;\r\n return this.dataService.settings.updatePaymentMethod(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'PaymentMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'PaymentMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Given a PaymentMethod and the value of the detailForm, this method creates an updated copy of it which\r\n * can then be persisted to the API.\r\n */\r\n private getUpdatedPaymentMethod(\r\n paymentMethod: PaymentMethodFragment,\r\n formGroup: UntypedFormGroup,\r\n languageCode: LanguageCode,\r\n selectedHandler: ConfigurableOperation,\r\n selectedChecker?: ConfigurableOperation | null,\r\n ): UpdatePaymentMethodInput | CreatePaymentMethodInput {\r\n const input = createUpdatedTranslatable({\r\n translatable: paymentMethod,\r\n updatedFields: formGroup.value,\r\n customFieldConfig: this.customFields,\r\n languageCode,\r\n defaultTranslation: {\r\n languageCode,\r\n name: paymentMethod.name || '',\r\n description: paymentMethod.description || '',\r\n },\r\n });\r\n return {\r\n ...input,\r\n checker: selectedChecker\r\n ? toConfigurableOperationInput(selectedChecker, formGroup.value.checker)\r\n : null,\r\n handler: toConfigurableOperationInput(selectedHandler, formGroup.value.handler),\r\n };\r\n }\r\n\r\n protected setFormValues(\r\n paymentMethod: NonNullable<GetPaymentMethodDetailQuery['paymentMethod']>,\r\n languageCode: LanguageCode,\r\n ): void {\r\n const currentTranslation = findTranslation(paymentMethod, languageCode);\r\n this.detailForm.patchValue({\r\n name: currentTranslation?.name,\r\n code: paymentMethod.code,\r\n description: currentTranslation?.description,\r\n enabled: paymentMethod.enabled,\r\n checker: paymentMethod.checker || ({} as any),\r\n handler: paymentMethod.handler || ({} as any),\r\n });\r\n if (!this.selectedChecker) {\r\n this.selectedChecker = paymentMethod.checker && {\r\n code: paymentMethod.checker.code,\r\n args: paymentMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (!this.selectedHandler) {\r\n this.selectedHandler = paymentMethod.handler && {\r\n code: paymentMethod.handler.code,\r\n args: paymentMethod.handler.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get('customFields'),\r\n paymentMethod,\r\n currentTranslation,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block\r\n ><vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n (click)=\"create()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"enabled\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(entity?.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n class=\"form-grid-span\"\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n </div>\r\n </vdr-card>\r\n\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"PaymentMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"payment-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-card [title]=\"'settings.payment-eligibility-checker' | translate\">\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeChecker()\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.payment-handler' | translate\">\r\n <vdr-configurable-input\r\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\r\n [operation]=\"selectedHandler\"\r\n [operationDefinition]=\"selectedHandlerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeHandler()\"\r\n formControlName=\"handler\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let handler of handlers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectHandler(handler)\"\r\n >\r\n {{ handler.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import {\r\n createBulkAssignToChannelAction,\r\n AssignPaymentMethodsToChannelDocument,\r\n RemovePaymentMethodsFromChannelDocument,\r\n createBulkDeleteAction,\r\n createBulkRemoveFromChannelAction,\r\n GetPaymentMethodListQuery,\r\n ItemOf,\r\n Permission,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deletePaymentMethodsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\r\n>({\r\n location: 'payment-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeletePaymentMethod) ||\r\n userPermissions.includes(Permission.DeleteSettings),\r\n getItemName: item => item.name,\r\n shouldRetryItem: (response, item) => !!response.message,\r\n bulkDelete: (dataService, ids, retrying) =>\r\n dataService.settings.deletePaymentMethods(ids, retrying).pipe(map(res => res.deletePaymentMethods)),\r\n});\r\n\r\nconst ASSIGN_PAYMENT_METHODS_TO_CHANNEL = gql`\r\n mutation AssignPaymentMethodsToChannel($input: AssignPaymentMethodsToChannelInput!) {\r\n assignPaymentMethodsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst REMOVE_PAYMENT_METHODS_FROM_CHANNEL = gql`\r\n mutation RemovePaymentMethodsFromChannel($input: RemovePaymentMethodsFromChannelInput!) {\r\n removePaymentMethodsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\nexport const assignPaymentMethodsToChannelBulkAction = createBulkAssignToChannelAction<\r\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\r\n>({\r\n location: 'payment-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.UpdatePaymentMethod) ||\r\n userPermissions.includes(Permission.UpdateSettings),\r\n getItemName: item => item.name,\r\n bulkAssignToChannel: (dataService, paymentMethodIds, channelIds) =>\r\n channelIds.map(channelId =>\r\n dataService\r\n .mutate(AssignPaymentMethodsToChannelDocument, {\r\n input: {\r\n channelId,\r\n paymentMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.assignPaymentMethodsToChannel)),\r\n ),\r\n});\r\n\r\nexport const removePaymentMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\r\n ItemOf<GetPaymentMethodListQuery, 'paymentMethods'>\r\n>({\r\n location: 'payment-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeletePaymentMethod) ||\r\n userPermissions.includes(Permission.DeleteSettings),\r\n getItemName: item => item.name,\r\n bulkRemoveFromChannel: (dataService, paymentMethodIds, channelId) =>\r\n dataService\r\n .mutate(RemovePaymentMethodsFromChannelDocument, {\r\n input: {\r\n channelId,\r\n paymentMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.removePaymentMethodsFromChannel)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetPaymentMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_PAYMENT_METHOD_LIST = gql`\r\n query GetPaymentMethodList($options: PaymentMethodListOptions!) {\r\n paymentMethods(options: $options) {\r\n items {\r\n ...PaymentMethodListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment PaymentMethodListItem on PaymentMethod {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n description\r\n code\r\n enabled\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-payment-method-list',\r\n templateUrl: './payment-method-list.component.html',\r\n styleUrls: ['./payment-method-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentMethodListComponent extends TypedBaseListComponent<\r\n typeof GetPaymentMethodListDocument,\r\n 'paymentMethods'\r\n> {\r\n dataTableListId = 'payment-method-list';\r\n readonly customFields = this.getCustomFieldConfig('PaymentMethod');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'enabled',\r\n type: { kind: 'boolean' },\r\n label: _('common.enabled'),\r\n filterField: 'enabled',\r\n })\r\n .addFilter({\r\n name: 'description',\r\n type: { kind: 'text' },\r\n label: _('common.description'),\r\n filterField: 'description',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'id' })\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'description' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetPaymentMethodListDocument,\r\n getItems: data => data.paymentMethods,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreatePaymentMethod']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-payment-method' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"payment-method-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"payment-method-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column\r\n [heading]=\"'common.id' | translate\"\r\n id=\"id\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('id')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\"\r\n id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\"\r\n id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\"\r\n id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-paymentMethod=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', paymentMethod.id]\"\r\n ><span>{{ paymentMethod.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-paymentMethod=\"item\">\r\n {{ paymentMethod.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-paymentMethod=\"item\">\r\n <vdr-chip *ngIf=\"paymentMethod.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!paymentMethod.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n Administrator,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetProfileDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n TypedBaseDetailComponent,\r\n UpdateActiveAdministratorInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_PROFILE_DETAIL = gql`\r\n query GetProfileDetail {\r\n activeAdministrator {\r\n ...ProfileDetail\r\n }\r\n }\r\n fragment ProfileDetail on Administrator {\r\n id\r\n createdAt\r\n updatedAt\r\n firstName\r\n lastName\r\n emailAddress\r\n user {\r\n id\r\n lastLogin\r\n verified\r\n }\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProfileComponent\r\n extends TypedBaseDetailComponent<typeof GetProfileDetailDocument, 'activeAdministrator'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Administrator');\r\n detailForm = this.formBuilder.group({\r\n emailAddress: ['', Validators.required],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n password: [''],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n save() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(({ id }) => {\r\n const formValue = this.detailForm.value;\r\n const administrator: UpdateActiveAdministratorInput = {\r\n emailAddress: formValue.emailAddress,\r\n firstName: formValue.firstName,\r\n lastName: formValue.lastName,\r\n password: formValue.password,\r\n customFields: formValue.customFields,\r\n };\r\n return this.dataService.administrator.updateActiveAdministrator(administrator);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Administrator',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Administrator',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(administrator: Administrator, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n emailAddress: administrator.emailAddress,\r\n firstName: administrator.firstName,\r\n lastName: administrator.lastName,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get('customFields'),\r\n administrator,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"profile\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"isNew$ | async\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"administrator-profile\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateRoleInput,\r\n DataService,\r\n GetRoleDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n Role,\r\n ROLE_FRAGMENT,\r\n TypedBaseDetailComponent,\r\n UpdateRoleInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\r\nimport { unique } from '@vendure/common/lib/unique';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_ROLE_DETAIL = gql`\r\n query GetRoleDetail($id: ID!) {\r\n role(id: $id) {\r\n ...Role\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-role-detail',\r\n templateUrl: './role-detail.component.html',\r\n styleUrls: ['./role-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RoleDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetRoleDetailDocument, 'role'>\r\n implements OnInit, OnDestroy\r\n{\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n description: ['', Validators.required],\r\n channelIds: [[] as string[]],\r\n permissions: [[] as Permission[]],\r\n });\r\n permissionDefinitions = this.serverConfigService.getPermissionDefinitions();\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n updateCode(nameValue: string) {\r\n const codeControl = this.detailForm.get(['code']);\r\n if (codeControl && codeControl.pristine) {\r\n codeControl.setValue(normalizeString(nameValue, '-'));\r\n }\r\n }\r\n\r\n setPermission(change: { permission: string; value: boolean }) {\r\n const permissionsControl = this.detailForm.get('permissions');\r\n if (permissionsControl) {\r\n const currentPermissions = permissionsControl.value as string[];\r\n const newValue = (\r\n change.value === true\r\n ? unique([...currentPermissions, change.permission])\r\n : currentPermissions.filter(p => p !== change.permission)\r\n ) as Permission[];\r\n permissionsControl.setValue(newValue);\r\n permissionsControl.markAsDirty();\r\n }\r\n }\r\n\r\n create() {\r\n const { code, description, permissions, channelIds } = this.detailForm.value;\r\n if (!code || !description) {\r\n return;\r\n }\r\n const role: CreateRoleInput = {\r\n code,\r\n description,\r\n permissions: permissions ?? [],\r\n channelIds,\r\n };\r\n this.dataService.administrator.createRole(role).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), { entity: 'Role' });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createRole.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Role',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(({ id }) => {\r\n const formValue = this.detailForm.value;\r\n const role: UpdateRoleInput = { id, ...formValue };\r\n return this.dataService.administrator.updateRole(role);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), { entity: 'Role' });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Role',\r\n });\r\n },\r\n );\r\n }\r\n\r\n protected setFormValues(role: Role, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n description: role.description,\r\n code: role.code,\r\n channelIds: role.channels.map(c => c.id),\r\n permissions: role.permissions,\r\n });\r\n // This was required to get the channel selector component to\r\n // correctly display its contents. A while spent debugging the root\r\n // cause did not yield a solution, therefore this next line.\r\n this.changeDetector.detectChanges();\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"role-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"role-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\">\r\n <input\r\n id=\"description\"\r\n type=\"text\"\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n (input)=\"updateCode($event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"'UpdateAdministrator' | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n <vdr-page-block class=\"mt-2\">\r\n <vdr-card [title]=\"'settings.permissions' | translate\">\r\n <vdr-form-field [label]=\"'settings.channel' | translate\">\r\n <vdr-channel-assignment-control\r\n formControlName=\"channelIds\"\r\n [vdrDisabled]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-channel-assignment-control>\r\n </vdr-form-field>\r\n <vdr-permission-grid\r\n class=\"mt-2\"\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [activePermissions]=\"detailForm.get('permissions')?.value\"\r\n (permissionChange)=\"setPermission($event)\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-permission-grid>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</form>\r\n","import { createBulkDeleteAction, GetRolesQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteRolesBulkAction = createBulkDeleteAction<ItemOf<GetRolesQuery, 'roles'>>({\r\n location: 'role-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteAdministrator),\r\n getItemName: item => item.description,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.administrator.deleteRoles(ids).pipe(map(res => res.deleteRoles)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n GetRoleListDocument,\r\n GetRolesQuery,\r\n ItemOf,\r\n Role,\r\n ROLE_FRAGMENT,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { CUSTOMER_ROLE_CODE, SUPER_ADMIN_ROLE_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_ROLE_LIST = gql`\r\n query GetRoleList($options: RoleListOptions) {\r\n roles(options: $options) {\r\n items {\r\n ...Role\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-role-list',\r\n templateUrl: './role-list.component.html',\r\n styleUrls: ['./role-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RoleListComponent\r\n extends TypedBaseListComponent<typeof GetRoleListDocument, 'roles'>\r\n implements OnInit\r\n{\r\n dataTableListId = 'role-list';\r\n readonly initialLimit = 3;\r\n displayLimit: { [id: string]: number } = {};\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'description' })\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetRoleListDocument,\r\n getItems: data => data.roles,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n code: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n toggleDisplayLimit(role: ItemOf<GetRolesQuery, 'roles'>) {\r\n if (this.displayLimit[role.id] === role.permissions.length) {\r\n this.displayLimit[role.id] = this.initialLimit;\r\n } else {\r\n this.displayLimit[role.id] = role.permissions.length;\r\n }\r\n }\r\n\r\n isDefaultRole(role: Role): boolean {\r\n return role.code === SUPER_ADMIN_ROLE_CODE || role.code === CUSTOMER_ROLE_CODE;\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"role-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateAdministrator']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-role' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"role-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"role-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-role=\"item\">\r\n {{ role.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-role=\"item\">\r\n {{ role.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-role=\"item\">\r\n {{ role.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.description' | translate\" id=\"description\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('description')\"\r\n >\r\n <ng-template let-role=\"item\">\r\n <a\r\n *ngIf=\"!isDefaultRole(role); else defaultRole\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"['./', role.id]\"\r\n ><span>{{ role.description }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n <ng-template #defaultRole>\r\n {{ role.description }}\r\n </ng-template>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-role=\"item\">\r\n <span *ngIf=\"!isDefaultRole(role)\">{{ role.code }}</span>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.channel' | translate\" id=\"channel\">\r\n <ng-template let-role=\"item\">\r\n <ng-container *ngIf=\"!isDefaultRole(role)\">\r\n <vdr-chip *ngFor=\"let channel of role.channels\">\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n <div class=\"ml-1\">{{ channel.code | channelCodeToLabel | translate }}</div>\r\n </vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.permissions' | translate\" id=\"permissions\">\r\n <ng-template let-role=\"item\">\r\n <ng-container *ngIf=\"!isDefaultRole(role); else defaultRole\">\r\n <div class=\"permissions-list\">\r\n <vdr-chip\r\n *ngFor=\"let permission of role.permissions | slice : 0 : displayLimit[role.id] || 3\"\r\n >{{ permission }}</vdr-chip\r\n >\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"role.permissions.length > initialLimit\"\r\n (click)=\"toggleDisplayLimit(role)\"\r\n >\r\n <ng-container\r\n *ngIf=\"(displayLimit[role.id] || 0) < role.permissions.length; else collapse\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ role.permissions.length - initialLimit }}\r\n </ng-container>\r\n <ng-template #collapse>\r\n <clr-icon shape=\"minus\"></clr-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultRole>\r\n <span class=\"default-role-label\">{{ 'settings.default-role-label' | translate }}</span>\r\n </ng-template>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateSellerInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetSellerDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n SellerFragment,\r\n TypedBaseDetailComponent,\r\n UpdateSellerInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_SELLER_DETAIL = gql`\r\n query GetSellerDetail($id: ID!) {\r\n seller(id: $id) {\r\n ...SellerDetail\r\n }\r\n }\r\n fragment SellerDetail on Seller {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-seller-detail',\r\n templateUrl: './seller-detail.component.html',\r\n styleUrls: ['./seller-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellerDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetSellerDetailDocument, 'seller'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Seller');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateSeller, Permission.CreateSeller];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n if (!formValue.name) {\r\n return;\r\n }\r\n const input: CreateSellerInput = {\r\n name: formValue.name,\r\n customFields: formValue.customFields,\r\n };\r\n this.dataService.settings.createSeller(input).subscribe(data => {\r\n switch (data.createSeller.__typename) {\r\n case 'Seller':\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Seller',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createSeller.id], { relativeTo: this.route });\r\n break;\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(seller => {\r\n const input = {\r\n id: seller.id,\r\n name: formValue.name,\r\n customFields: formValue.customFields,\r\n } as UpdateSellerInput;\r\n return this.dataService.settings.updateSeller(input);\r\n }),\r\n )\r\n .subscribe(({ updateSeller }) => {\r\n switch (updateSeller.__typename) {\r\n case 'Seller':\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Seller',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n break;\r\n // case 'LanguageNotAvailableError':\r\n // this.notificationService.error(updateSeller.message);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: SellerFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"seller-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateSeller']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"seller-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"name\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Seller\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"seller-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetSellersQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteSellersBulkAction = createBulkDeleteAction<ItemOf<GetSellersQuery, 'sellers'>>({\r\n location: 'seller-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteSeller),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteSellers(ids).pipe(map(res => res.deleteSellers)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetSellerListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nconst GET_SELLER_LIST = gql`\r\n query GetSellerList($options: SellerListOptions) {\r\n sellers(options: $options) {\r\n items {\r\n ...SellerListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment SellerListItem on Seller {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-seller-list',\r\n templateUrl: './seller-list.component.html',\r\n styleUrls: ['./seller-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellerListComponent\r\n extends TypedBaseListComponent<typeof GetSellerListDocument, 'sellers'>\r\n implements OnInit\r\n{\r\n dataTableListId = 'seller-list';\r\n readonly customFields = this.getCustomFieldConfig('Seller');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetSellerListDocument,\r\n getItems: data => data.sellers,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"seller-list\" />\r\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"['SuperAdmin', 'CreateSeller']\" [routerLink]=\"['./', 'create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-seller' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"seller-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"seller-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-seller=\"item\">{{ seller.id }}</ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-seller=\"item\">\r\n {{ seller.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-seller=\"item\">\r\n {{ seller.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-seller=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', seller.id]\"\r\n ><span>{{ seller.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { CurrencyCode, ShippingMethodQuote } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-shipping-eligibility-test-result',\r\n templateUrl: './shipping-eligibility-test-result.component.html',\r\n styleUrls: ['./shipping-eligibility-test-result.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingEligibilityTestResultComponent {\r\n @Input() testResult: ShippingMethodQuote[];\r\n @Input() okToRun = false;\r\n @Input() testDataUpdated = false;\r\n @Input() currencyCode: CurrencyCode;\r\n @Output() runTest = new EventEmitter<void>();\r\n}\r\n","<vdr-card class=\"test-result\" [title]=\"'settings.test-result' | translate\">\r\n <div class=\"card-span\" *ngFor=\"let quote of testResult\">\r\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\r\n {{ quote.name }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ quote.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\r\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\r\n </div>\r\n </div>\r\n <div class=\"card-span\" *ngIf=\"testResult?.length === 0\">\r\n <clr-icon shape=\"ban\" class=\"is-solid error\"></clr-icon>\r\n {{ 'settings.no-eligible-shipping-methods' | translate }}\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n {{ 'settings.test-shipping-methods' | translate }}\r\n </button>\r\n </div>\r\n</vdr-card>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport {\r\n CurrencyCode,\r\n DataService,\r\n LocalStorageService,\r\n ProductSelectorSearchQuery,\r\n} from '@vendure/admin-ui/core';\r\n\r\ntype SearchItem = ProductSelectorSearchQuery['search']['items'][number];\r\n\r\nexport interface TestOrderLine {\r\n id: string;\r\n name: string;\r\n preview: string;\r\n sku: string;\r\n unitPriceWithTax: number;\r\n quantity: number;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-test-order-builder',\r\n templateUrl: './test-order-builder.component.html',\r\n styleUrls: ['./test-order-builder.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TestOrderBuilderComponent implements OnInit {\r\n @Output() orderLinesChange = new EventEmitter<TestOrderLine[]>();\r\n lines: TestOrderLine[] = [];\r\n currencyCode: CurrencyCode;\r\n get subTotal(): number {\r\n return this.lines.reduce((sum, l) => sum + l.unitPriceWithTax * l.quantity, 0);\r\n }\r\n\r\n constructor(private dataService: DataService, private localStorageService: LocalStorageService) {}\r\n\r\n ngOnInit() {\r\n this.lines = this.loadFromLocalStorage();\r\n if (this.lines) {\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n this.dataService.settings.getActiveChannel('cache-first').single$.subscribe(result => {\r\n this.currencyCode = result.activeChannel.defaultCurrencyCode;\r\n });\r\n }\r\n\r\n selectResult(result: SearchItem) {\r\n if (result) {\r\n this.addToLines(result);\r\n }\r\n }\r\n\r\n private addToLines(result: SearchItem) {\r\n if (!this.lines.find(l => l.id === result.productVariantId)) {\r\n this.lines.push({\r\n id: result.productVariantId,\r\n name: result.productVariantName,\r\n preview: result.productAsset?.preview ?? '',\r\n quantity: 1,\r\n sku: result.sku,\r\n unitPriceWithTax:\r\n (result.priceWithTax.__typename === 'SinglePrice' && result.priceWithTax.value) || 0,\r\n });\r\n this.persistToLocalStorage();\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n }\r\n\r\n updateQuantity() {\r\n this.persistToLocalStorage();\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n\r\n removeLine(line: TestOrderLine) {\r\n this.lines = this.lines.filter(l => l.id !== line.id);\r\n this.persistToLocalStorage();\r\n this.orderLinesChange.emit(this.lines);\r\n }\r\n\r\n private persistToLocalStorage() {\r\n this.localStorageService.setForCurrentLocation('shippingTestOrder', this.lines);\r\n }\r\n\r\n private loadFromLocalStorage(): TestOrderLine[] {\r\n return this.localStorageService.getForCurrentLocation('shippingTestOrder') || [];\r\n }\r\n}\r\n","<table class=\"order-table table\" *ngIf=\"lines.length; else emptyPlaceholder\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.total' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.preview + '?preset=tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.sku }}</td>\r\n <td class=\"align-middle unit-price\">\r\n {{ line.unitPriceWithTax | localeCurrency : currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <input [(ngModel)]=\"line.quantity\" (change)=\"updateQuantity()\" type=\"number\" max=\"9999\" min=\"1\" />\r\n <button class=\"icon-button\" (click)=\"removeLine(line)\">\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </td>\r\n <td class=\"align-middle total\">\r\n {{ line.unitPriceWithTax * line.quantity | localeCurrency : currencyCode }}\r\n </td>\r\n </tr>\r\n <tr class=\"sub-total\">\r\n <td class=\"left\">{{ 'order.sub-total' | translate }}</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td>{{ subTotal | localeCurrency : currencyCode }}</td>\r\n </tr>\r\n</table>\r\n\r\n<ng-template #emptyPlaceholder>\r\n <div class=\"card-block empty-placeholder card-span\">\r\n <div class=\"empty-text\">{{ 'settings.add-products-to-test-order' | translate }}</div>\r\n <clr-icon shape=\"arrow\" dir=\"down\" size=\"96\"></clr-icon>\r\n </div>\r\n</ng-template>\r\n<div class=\"card-block\">\r\n <vdr-product-variant-selector (productSelected)=\"selectResult($event)\"> </vdr-product-variant-selector>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { DataService, GetAvailableCountriesQuery, ItemOf, LocalStorageService } from '@vendure/admin-ui/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\n\r\nexport interface TestAddress {\r\n city: string;\r\n province: string;\r\n postalCode: string;\r\n countryCode: string;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-test-address-form',\r\n templateUrl: './test-address-form.component.html',\r\n styleUrls: ['./test-address-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TestAddressFormComponent implements OnInit, OnDestroy {\r\n @Output() addressChange = new EventEmitter<TestAddress>();\r\n availableCountries$: Observable<Array<ItemOf<GetAvailableCountriesQuery, 'countries'>>>;\r\n form: UntypedFormGroup;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private dataService: DataService,\r\n private localStorageService: LocalStorageService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.availableCountries$ = this.dataService.settings\r\n .getAvailableCountries()\r\n .mapSingle(result => result.countries.items);\r\n const storedValue = this.localStorageService.getForCurrentLocation('shippingTestAddress');\r\n const initialValue: TestAddress = storedValue\r\n ? storedValue\r\n : {\r\n city: '',\r\n countryCode: '',\r\n postalCode: '',\r\n province: '',\r\n };\r\n this.addressChange.emit(initialValue);\r\n\r\n this.form = this.formBuilder.group(initialValue);\r\n this.subscription = this.form.valueChanges.subscribe(value => {\r\n this.localStorageService.setForCurrentLocation('shippingTestAddress', value);\r\n this.addressChange.emit(value);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header\">\r\n {{ 'settings.test-address' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <form [formGroup]=\"form\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"'customer.city' | translate\">\r\n <input formControlName=\"city\" type=\"text\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.province' | translate\">\r\n <input formControlName=\"province\" type=\"text\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.postal-code' | translate\">\r\n <input formControlName=\"postalCode\" type=\"text\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.country' | translate\">\r\n <select name=\"countryCode\" formControlName=\"countryCode\" >\r\n <option *ngFor=\"let country of availableCountries$ | async\" [value]=\"country.code\">\r\n {{ country.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n </form>\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { CurrencyCode, TestShippingMethodResult } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-shipping-method-test-result',\r\n templateUrl: './shipping-method-test-result.component.html',\r\n styleUrls: ['./shipping-method-test-result.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingMethodTestResultComponent {\r\n @Input() testResult: TestShippingMethodResult;\r\n @Input() okToRun = false;\r\n @Input() testDataUpdated = false;\r\n @Input() currencyCode: CurrencyCode;\r\n @Output() runTest = new EventEmitter<void>();\r\n}\r\n","<div\r\n class=\"test-result card\"\r\n [ngClass]=\"{\r\n success: testResult?.eligible === true,\r\n error: testResult?.eligible === false,\r\n unknown: !testResult\r\n }\"\r\n>\r\n <div class=\"card-header\">\r\n {{ 'settings.test-result' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n <vdr-labeled-data [label]=\"'settings.eligible' | translate\">\r\n <div class=\"eligible-icon\">\r\n <clr-icon\r\n shape=\"success-standard\"\r\n class=\"is-solid success\"\r\n *ngIf=\"testResult?.eligible\"\r\n ></clr-icon>\r\n <clr-icon\r\n shape=\"ban\"\r\n class=\"is-solid error\"\r\n *ngIf=\"testResult?.eligible === false\"\r\n ></clr-icon>\r\n <clr-icon shape=\"unknown-status\" *ngIf=\"!testResult\"></clr-icon>\r\n </div>\r\n {{ testResult?.eligible }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data\r\n [label]=\"'common.price' | translate\"\r\n *ngIf=\"testResult?.quote?.price != null\"\r\n >\r\n {{ testResult.quote?.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data\r\n [label]=\"'common.price-with-tax' | translate\"\r\n *ngIf=\"testResult?.quote?.priceWithTax != null\"\r\n >\r\n {{ testResult.quote?.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree\r\n *ngIf=\"testResult?.quote?.metadata\"\r\n [value]=\"testResult?.quote?.metadata\"\r\n ></vdr-object-tree>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n {{ 'settings.test-shipping-method' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n configurableDefinitionToInstance,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n CreateShippingMethodInput,\r\n createUpdatedTranslatable,\r\n DataService,\r\n findTranslation,\r\n GetActiveChannelQuery,\r\n getConfigArgValue,\r\n getCustomFieldsDefaults,\r\n GetShippingMethodDetailDocument,\r\n GetShippingMethodDetailQuery,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n SHIPPING_METHOD_FRAGMENT,\r\n ShippingMethodFragment,\r\n TestShippingMethodInput,\r\n TestShippingMethodResult,\r\n toConfigurableOperationInput,\r\n TypedBaseDetailComponent,\r\n UpdateShippingMethodInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { normalizeString } from '@vendure/common/lib/normalize-string';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest, merge, Observable, of, Subject } from 'rxjs';\r\nimport { mergeMap, switchMap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport { TestAddress } from '../test-address-form/test-address-form.component';\r\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\r\n\r\nexport const GET_SHIPPING_METHOD_DETAIL = gql`\r\n query GetShippingMethodDetail($id: ID!) {\r\n shippingMethod(id: $id) {\r\n ...ShippingMethod\r\n }\r\n }\r\n ${SHIPPING_METHOD_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-shipping-method-detail',\r\n templateUrl: './shipping-method-detail.component.html',\r\n styleUrls: ['./shipping-method-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingMethodDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetShippingMethodDetailDocument, 'shippingMethod'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('ShippingMethod');\r\n detailForm = this.formBuilder.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n description: '',\r\n fulfillmentHandler: ['', Validators.required],\r\n checker: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['checker'],\r\n calculator: {} as NonNullable<GetShippingMethodDetailQuery['shippingMethod']>['calculator'],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n checkers: ConfigurableOperationDefinition[] = [];\r\n calculators: ConfigurableOperationDefinition[] = [];\r\n fulfillmentHandlers: ConfigurableOperationDefinition[] = [];\r\n selectedChecker?: ConfigurableOperation | null;\r\n selectedCheckerDefinition?: ConfigurableOperationDefinition;\r\n selectedCalculator?: ConfigurableOperation | null;\r\n selectedCalculatorDefinition?: ConfigurableOperationDefinition;\r\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\r\n testAddress: TestAddress;\r\n testOrderLines: TestOrderLine[];\r\n testDataUpdated = false;\r\n testResult$: Observable<TestShippingMethodResult | undefined>;\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateShippingMethod];\r\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.dataService.shippingMethod.getShippingMethodOperations().single$.subscribe(data => {\r\n this.checkers = data.shippingEligibilityCheckers;\r\n this.calculators = data.shippingCalculators;\r\n this.fulfillmentHandlers = data.fulfillmentHandlers;\r\n this.changeDetector.markForCheck();\r\n this.selectedCheckerDefinition = data.shippingEligibilityCheckers.find(\r\n c => c.code === this.entity?.checker?.code,\r\n );\r\n this.selectedCalculatorDefinition = data.shippingCalculators.find(\r\n c => c.code === this.entity?.calculator?.code,\r\n );\r\n });\r\n\r\n this.activeChannel$ = this.dataService.settings\r\n .getActiveChannel()\r\n .mapStream(data => data.activeChannel);\r\n\r\n this.testResult$ = this.fetchTestResult$.pipe(\r\n switchMap(([address, lines]) => {\r\n const { checker, calculator } = this.detailForm.value;\r\n if (!this.selectedChecker || !this.selectedCalculator || !checker || !calculator) {\r\n return of(undefined);\r\n }\r\n const input: TestShippingMethodInput = {\r\n shippingAddress: { ...address, streetLine1: 'test' },\r\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\r\n checker: toConfigurableOperationInput(this.selectedChecker, checker),\r\n calculator: toConfigurableOperationInput(this.selectedCalculator, calculator),\r\n };\r\n return this.dataService.shippingMethod\r\n .testShippingMethod(input)\r\n .mapSingle(result => result.testShippingMethod);\r\n }),\r\n );\r\n\r\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n merge(\r\n this.detailForm.get(['checker'])!.valueChanges,\r\n this.detailForm.get(['calculator'])!.valueChanges,\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => (this.testDataUpdated = true));\r\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n updateCode(currentCode: string | undefined, nameValue: string) {\r\n if (!currentCode) {\r\n const codeControl = this.detailForm.get(['code']);\r\n if (codeControl && codeControl.pristine) {\r\n codeControl.setValue(normalizeString(nameValue, '-'));\r\n }\r\n }\r\n }\r\n\r\n selectChecker(checker: ConfigurableOperationDefinition) {\r\n this.selectedCheckerDefinition = checker;\r\n this.selectedChecker = configurableDefinitionToInstance(checker);\r\n const formControl = this.detailForm.get('checker');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedChecker);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n selectCalculator(calculator: ConfigurableOperationDefinition) {\r\n this.selectedCalculatorDefinition = calculator;\r\n this.selectedCalculator = configurableDefinitionToInstance(calculator);\r\n const formControl = this.detailForm.get('calculator');\r\n if (formControl) {\r\n formControl.clearValidators();\r\n formControl.updateValueAndValidity({ onlySelf: true });\r\n formControl.patchValue(this.selectedCalculator);\r\n }\r\n this.detailForm.markAsDirty();\r\n }\r\n\r\n create() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedCalculator = this.selectedCalculator;\r\n const { checker, calculator } = this.detailForm.value;\r\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n ...(this.getUpdatedShippingMethod(\r\n {\r\n createdAt: '',\r\n updatedAt: '',\r\n id: '',\r\n code: '',\r\n name: '',\r\n description: '',\r\n fulfillmentHandlerCode: '',\r\n checker: undefined as any,\r\n calculator: undefined as any,\r\n translations: [],\r\n },\r\n this.detailForm,\r\n this.languageCode,\r\n ) as CreateShippingMethodInput),\r\n checker: toConfigurableOperationInput(selectedChecker, checker),\r\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\r\n };\r\n this.dataService.shippingMethod.createShippingMethod(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'ShippingMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createShippingMethod.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'ShippingMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n const selectedChecker = this.selectedChecker;\r\n const selectedCalculator = this.selectedCalculator;\r\n const { checker, calculator } = this.detailForm.value;\r\n if (!selectedChecker || !selectedCalculator || !checker || !calculator) {\r\n return;\r\n }\r\n combineLatest([this.entity$, this.languageCode$])\r\n .pipe(\r\n take(1),\r\n mergeMap(([shippingMethod, languageCode]) => {\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n ...(this.getUpdatedShippingMethod(\r\n shippingMethod,\r\n this.detailForm,\r\n languageCode,\r\n ) as UpdateShippingMethodInput),\r\n checker: toConfigurableOperationInput(selectedChecker, checker),\r\n calculator: toConfigurableOperationInput(selectedCalculator, calculator),\r\n };\r\n return this.dataService.shippingMethod.updateShippingMethod(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'ShippingMethod',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n // eslint-disable-next-line no-console\r\n console.error(err);\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'ShippingMethod',\r\n });\r\n },\r\n );\r\n }\r\n\r\n setTestOrderLines(event: TestOrderLine[]) {\r\n this.testOrderLines = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n setTestAddress(event: TestAddress) {\r\n this.testAddress = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n allTestDataPresent(): boolean {\r\n return !!(\r\n this.testAddress &&\r\n this.testOrderLines &&\r\n this.testOrderLines.length &&\r\n this.selectedChecker &&\r\n this.selectedCalculator\r\n );\r\n }\r\n\r\n runTest() {\r\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\r\n this.testDataUpdated = false;\r\n }\r\n\r\n /**\r\n * Given a ShippingMethod and the value of the detailForm, this method creates an updated copy which\r\n * can then be persisted to the API.\r\n */\r\n private getUpdatedShippingMethod(\r\n shippingMethod: NonNullable<GetShippingMethodDetailQuery['shippingMethod']>,\r\n formGroup: typeof this.detailForm,\r\n languageCode: LanguageCode,\r\n ): Omit<CreateShippingMethodInput | UpdateShippingMethodInput, 'checker' | 'calculator'> {\r\n const formValue = formGroup.value;\r\n const input = createUpdatedTranslatable({\r\n translatable: shippingMethod,\r\n updatedFields: formValue,\r\n customFieldConfig: this.customFields,\r\n languageCode,\r\n defaultTranslation: {\r\n languageCode,\r\n name: shippingMethod.name || '',\r\n description: shippingMethod.description || '',\r\n },\r\n });\r\n return { ...input, fulfillmentHandler: formValue.fulfillmentHandler };\r\n }\r\n\r\n protected setFormValues(shippingMethod: ShippingMethodFragment, languageCode: LanguageCode): void {\r\n const currentTranslation = findTranslation(shippingMethod, languageCode);\r\n this.detailForm.patchValue({\r\n name: currentTranslation?.name ?? '',\r\n description: currentTranslation?.description ?? '',\r\n code: shippingMethod.code,\r\n fulfillmentHandler: shippingMethod.fulfillmentHandlerCode,\r\n checker: shippingMethod.checker || {},\r\n calculator: shippingMethod.calculator || {},\r\n });\r\n if (!this.selectedChecker) {\r\n this.selectedChecker = shippingMethod.checker && {\r\n code: shippingMethod.checker.code,\r\n args: shippingMethod.checker.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (!this.selectedCalculator) {\r\n this.selectedCalculator = shippingMethod.calculator && {\r\n code: shippingMethod.calculator?.code,\r\n args: shippingMethod.calculator?.args.map(a => ({ ...a, value: getConfigArgValue(a.value) })),\r\n };\r\n }\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(\r\n this.customFields,\r\n this.detailForm.get(['customFields']),\r\n shippingMethod,\r\n currentTranslation,\r\n );\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(entity?.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n class=\"form-grid-span\"\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field\r\n [label]=\"'settings.fulfillment-handler' | translate\"\r\n for=\"fulfillmentHandler\"\r\n >\r\n <select\r\n name=\"fulfillmentHandler\"\r\n formControlName=\"fulfillmentHandler\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\r\n {{ handler.code }}: {{ handler.description }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"ShippingMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"shipping-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-card [title]=\"'settings.shipping-eligibility-checker' | translate\">\r\n <vdr-configurable-input\r\n class=\"card-span\"\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedChecker = null\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\" class=\"card-span\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.shipping-calculator' | translate\">\r\n <vdr-configurable-input\r\n class=\"card-span\"\r\n *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\r\n [operation]=\"selectedCalculator\"\r\n [operationDefinition]=\"selectedCalculatorDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedCalculator = null\"\r\n formControlName=\"calculator\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\" class=\"card-span\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let calculator of calculators\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectCalculator(calculator)\"\r\n >\r\n {{ calculator.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'settings.test-shipping-method' | translate\">\r\n <vdr-test-order-builder\r\n class=\"card-span\"\r\n (orderLinesChange)=\"setTestOrderLines($event)\"\r\n ></vdr-test-order-builder>\r\n <vdr-test-address-form\r\n (addressChange)=\"setTestAddress($event)\"\r\n class=\"mt-2\"\r\n ></vdr-test-address-form>\r\n <vdr-shipping-method-test-result\r\n class=\"mt-2\"\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-method-test-result>\r\n </vdr-card>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import {\r\n createBulkAssignToChannelAction,\r\n createBulkDeleteAction,\r\n createBulkRemoveFromChannelAction,\r\n GetShippingMethodListQuery,\r\n GetRolesQuery,\r\n ItemOf,\r\n Permission,\r\n AssignShippingMethodsToChannelDocument,\r\n RemoveShippingMethodsFromChannelDocument,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteShippingMethodsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\r\n>({\r\n location: 'shipping-method-list',\r\n requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteShippingMethod),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.shippingMethod.deleteShippingMethods(ids).pipe(map(res => res.deleteShippingMethods)),\r\n});\r\n\r\nconst ASSIGN_SHIPPING_METHODS_TO_CHANNEL = gql`\r\n mutation AssignShippingMethodsToChannel($input: AssignShippingMethodsToChannelInput!) {\r\n assignShippingMethodsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst REMOVE_SHIPPING_METHODS_FROM_CHANNEL = gql`\r\n mutation RemoveShippingMethodsFromChannel($input: RemoveShippingMethodsFromChannelInput!) {\r\n removeShippingMethodsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\nexport const assignShippingMethodsToChannelBulkAction = createBulkAssignToChannelAction<\r\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\r\n>({\r\n location: 'shipping-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.UpdateShippingMethod) ||\r\n userPermissions.includes(Permission.UpdateSettings),\r\n getItemName: item => item.name,\r\n bulkAssignToChannel: (dataService, shippingMethodIds, channelIds) =>\r\n channelIds.map(channelId =>\r\n dataService\r\n .mutate(AssignShippingMethodsToChannelDocument, {\r\n input: {\r\n channelId,\r\n shippingMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.assignShippingMethodsToChannel)),\r\n ),\r\n});\r\n\r\nexport const removeShippingMethodsFromChannelBulkAction = createBulkRemoveFromChannelAction<\r\n ItemOf<GetShippingMethodListQuery, 'shippingMethods'>\r\n>({\r\n location: 'shipping-method-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteShippingMethod) ||\r\n userPermissions.includes(Permission.DeleteSettings),\r\n getItemName: item => item.name,\r\n bulkRemoveFromChannel: (dataService, shippingMethodIds, channelId) =>\r\n dataService\r\n .mutate(RemoveShippingMethodsFromChannelDocument, {\r\n input: {\r\n channelId,\r\n shippingMethodIds,\r\n },\r\n })\r\n .pipe(map(res => res.removeShippingMethodsFromChannel)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetShippingMethodListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_SHIPPING_METHOD_LIST = gql`\r\n query GetShippingMethodList($options: ShippingMethodListOptions) {\r\n shippingMethods(options: $options) {\r\n items {\r\n ...ShippingMethodListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment ShippingMethodListItem on ShippingMethod {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n name\r\n description\r\n fulfillmentHandlerCode\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-shipping-method-list',\r\n templateUrl: './shipping-method-list.component.html',\r\n styleUrls: ['./shipping-method-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ShippingMethodListComponent\r\n extends TypedBaseListComponent<typeof GetShippingMethodListDocument, 'shippingMethods'>\r\n implements OnInit\r\n{\r\n dataTableListId = 'shipping-method-list';\r\n readonly customFields = this.getCustomFieldConfig('ShippingMethod');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'code',\r\n type: { kind: 'text' },\r\n label: _('common.code'),\r\n filterField: 'code',\r\n })\r\n .addFilter({\r\n name: 'description',\r\n type: { kind: 'text' },\r\n label: _('common.description'),\r\n filterField: 'description',\r\n })\r\n .addFilter({\r\n name: 'fulfillmentHandler',\r\n type: { kind: 'text' },\r\n label: _('settings.fulfillment-handler'),\r\n filterField: 'fulfillmentHandlerCode',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'code' })\r\n .addSort({ name: 'description' })\r\n .addSort({ name: 'fulfillmentHandlerCode' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetShippingMethodListDocument,\r\n getItems: data => data.shippingMethods,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateShippingMethod']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-shipping-method' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"shipping-method-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"shipping-method-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-shippingMethod=\"item\">\r\n {{ shippingMethod.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-shippingMethod=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', shippingMethod.id]\"\r\n ><span>{{ shippingMethod.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [sort]=\"sorts.get('code')\">\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.description' | translate\" id=\"description\"\r\n [sort]=\"sorts.get('description')\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.description }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.fulfillment-handler' | translate\" id=\"fulfillment-handler\" [sort]=\"sorts.get('fulfillmentHandlerCode')\">\r\n <ng-template let-shippingMethod=\"item\">\r\n {{ shippingMethod.fulfillmentHandlerCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateStockLocationDocument,\r\n CreateStockLocationInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetStockLocationDetailDocument,\r\n NotificationService,\r\n StockLocationDetailFragment,\r\n TypedBaseDetailComponent,\r\n UpdateStockLocationDocument,\r\n UpdateStockLocationInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nconst STOCK_LOCATION_DETAIL_FRAGMENT = gql`\r\n fragment StockLocationDetail on StockLocation {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n description\r\n }\r\n`;\r\n\r\nexport const GET_STOCK_LOCATION_DETAIL = gql`\r\n query GetStockLocationDetail($id: ID!) {\r\n stockLocation(id: $id) {\r\n ...StockLocationDetail\r\n }\r\n }\r\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_STOCK_LOCATION = gql`\r\n mutation CreateStockLocation($input: CreateStockLocationInput!) {\r\n createStockLocation(input: $input) {\r\n ...StockLocationDetail\r\n }\r\n }\r\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_STOCK_LOCATION = gql`\r\n mutation UpdateStockLocation($input: UpdateStockLocationInput!) {\r\n updateStockLocation(input: $input) {\r\n ...StockLocationDetail\r\n }\r\n }\r\n ${STOCK_LOCATION_DETAIL_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-stock-location-detail',\r\n templateUrl: './stock-location-detail.component.html',\r\n styleUrls: ['./stock-location-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StockLocationDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetStockLocationDetailDocument, 'stockLocation'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('StockLocation');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n description: [''],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const { name, description, customFields } = this.detailForm.value;\r\n if (!name) {\r\n return;\r\n }\r\n const input = {\r\n name,\r\n description,\r\n customFields,\r\n } satisfies CreateStockLocationInput;\r\n this.dataService.mutate(CreateStockLocationDocument, { input }).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'StockLocation',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createStockLocation.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'StockLocation',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(taxRate => {\r\n const input = {\r\n id: taxRate.id,\r\n name: formValue.name,\r\n description: formValue.description,\r\n customFields: formValue.customFields,\r\n } satisfies UpdateStockLocationInput;\r\n return this.dataService.mutate(UpdateStockLocationDocument, { input });\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'StockLocation',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'StockLocation',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: StockLocationDetailFragment): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n description: entity.description,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"stock-location-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n *vdrIfPermissions=\"'UpdateStockLocation'\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n class=\"form-grid-span\"\r\n [label]=\"'common.description' | translate\"\r\n for=\"slug\"\r\n [errors]=\"{ pattern: 'catalog.slug-pattern-error' | translate }\"\r\n >\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdateStockLocation' | hasPermission)\"\r\n ></vdr-rich-text-editor>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"StockLocation\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"stock-location-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import {\r\n AssignStockLocationsToChannelDocument,\r\n createBulkAssignToChannelAction,\r\n createBulkDeleteAction,\r\n createBulkRemoveFromChannelAction,\r\n DeleteStockLocationsDocument,\r\n DeletionResult,\r\n GetStockLocationListQuery,\r\n ItemOf,\r\n Permission,\r\n RemoveStockLocationsFromChannelDocument,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { map } from 'rxjs/operators';\r\n\r\nconst DELETE_STOCK_LOCATIONS = gql`\r\n mutation DeleteStockLocations($input: [DeleteStockLocationInput!]!) {\r\n deleteStockLocations(input: $input) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nconst ASSIGN_STOCK_LOCATIONS_TO_CHANNEL = gql`\r\n mutation AssignStockLocationsToChannel($input: AssignStockLocationsToChannelInput!) {\r\n assignStockLocationsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nconst REMOVE_STOCK_LOCATIONS_FROM_CHANNEL = gql`\r\n mutation RemoveStockLocationsFromChannel($input: RemoveStockLocationsFromChannelInput!) {\r\n removeStockLocationsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const deleteStockLocationsBulkAction = createBulkDeleteAction<\r\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\r\n>({\r\n location: 'stock-location-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteStockLocation) ||\r\n userPermissions.includes(Permission.DeleteCatalog),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService\r\n .mutate(DeleteStockLocationsDocument, {\r\n input: ids.map(id => ({ id })),\r\n })\r\n .pipe(map(res => res.deleteStockLocations)),\r\n shouldRetryItem: response => response.result === DeletionResult.NOT_DELETED,\r\n});\r\n\r\nexport const assignStockLocationsToChannelBulkAction = createBulkAssignToChannelAction<\r\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\r\n>({\r\n location: 'stock-location-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.UpdateCatalog) ||\r\n userPermissions.includes(Permission.UpdateStockLocation),\r\n getItemName: item => item.name,\r\n bulkAssignToChannel: (dataService, stockLocationIds, channelIds) =>\r\n channelIds.map(channelId =>\r\n dataService\r\n .mutate(AssignStockLocationsToChannelDocument, {\r\n input: {\r\n channelId,\r\n stockLocationIds,\r\n },\r\n })\r\n .pipe(map(res => res.assignStockLocationsToChannel)),\r\n ),\r\n});\r\n\r\nexport const removeStockLocationsFromChannelBulkAction = createBulkRemoveFromChannelAction<\r\n ItemOf<GetStockLocationListQuery, 'stockLocations'>\r\n>({\r\n location: 'stock-location-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteCatalog) ||\r\n userPermissions.includes(Permission.DeleteStockLocation),\r\n getItemName: item => item.name,\r\n bulkRemoveFromChannel: (dataService, stockLocationIds, channelId) =>\r\n dataService\r\n .mutate(RemoveStockLocationsFromChannelDocument, {\r\n input: {\r\n channelId,\r\n stockLocationIds,\r\n },\r\n })\r\n .pipe(map(res => res.removeStockLocationsFromChannel)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetStockLocationListDocument, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_STOCK_LOCATION_LIST = gql`\r\n query GetStockLocationList($options: StockLocationListOptions) {\r\n stockLocations(options: $options) {\r\n items {\r\n ...StockLocationListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment StockLocationListItem on StockLocation {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n description\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-stock-location-list',\r\n templateUrl: './stock-location-list.component.html',\r\n styleUrls: ['./stock-location-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StockLocationListComponent\r\n extends TypedBaseListComponent<typeof GetStockLocationListDocument, 'stockLocations'>\r\n implements OnInit\r\n{\r\n dataTableListId = 'stock-location-list';\r\n readonly customFields = this.getCustomFieldConfig('StockLocation');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilters([\r\n {\r\n name: 'enabled',\r\n type: { kind: 'text' },\r\n label: _('common.enabled'),\r\n filterField: 'name',\r\n },\r\n {\r\n name: 'sku',\r\n type: { kind: 'text' },\r\n label: _('catalog.sku'),\r\n filterField: 'description',\r\n },\r\n ])\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .addSorts([\r\n { name: 'id' },\r\n { name: 'createdAt' },\r\n { name: 'updatedAt' },\r\n { name: 'name' },\r\n { name: 'description' },\r\n ])\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n this.configure({\r\n document: GetStockLocationListDocument,\r\n getItems: data => data.stockLocations,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"stock-location-list\" />\r\n <a\r\n class=\"button primary\"\r\n *vdrIfPermissions=\"['CreateStockLocation']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-stock-location' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"stock-location-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"stock-location-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-stockLocation=\"item\">\r\n {{ stockLocation.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-stockLocation=\"item\">\r\n {{ stockLocation.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-stockLocation=\"item\">\r\n {{ stockLocation.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-stockLocation=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', stockLocation.id]\"\r\n ><span>{{ stockLocation.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]=\"'common.description' | translate\" id=\"description\" [sort]=\"sorts.get('description')\">\r\n <ng-template let-stockLocation=\"item\">\r\n <div class=\"description\" [innerHTML]=\"stockLocation.description\"></div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let field of customFields\"\r\n [customField]=\"field\"\r\n [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateTaxCategoryInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetTaxCategoryDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TAX_CATEGORY_FRAGMENT,\r\n TaxCategoryFragment,\r\n TypedBaseDetailComponent,\r\n UpdateTaxCategoryInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_TAX_CATEGORY_DETAIL = gql`\r\n query GetTaxCategoryDetail($id: ID!) {\r\n taxCategory(id: $id) {\r\n ...TaxCategory\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-detail',\r\n templateUrl: './tax-category-detail.component.html',\r\n styleUrls: ['./tax-category-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxCategoryDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetTaxCategoryDetailDocument, 'taxCategory'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('TaxCategory');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n isDefault: false,\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxCategory];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n name: formValue.name,\r\n isDefault: formValue.isDefault,\r\n customFields: formValue.customFields,\r\n } as CreateTaxCategoryInput;\r\n this.dataService.settings.createTaxCategory(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'TaxCategory',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createTaxCategory.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'TaxCategory',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(taxCategory => {\r\n const input = {\r\n id: taxCategory.id,\r\n name: formValue.name,\r\n isDefault: formValue.isDefault,\r\n customFields: formValue.customFields,\r\n } as UpdateTaxCategoryInput;\r\n return this.dataService.settings.updateTaxCategory(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'TaxCategory',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'TaxCategory',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: TaxCategoryFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n isDefault: entity.isDefault,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"isDefault\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"isDefault\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxCategory\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-category-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetTaxCategoryListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteTaxCategoriesBulkAction = createBulkDeleteAction<\r\n ItemOf<GetTaxCategoryListQuery, 'taxCategories'>\r\n>({\r\n location: 'tax-category-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteTaxCategory),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteTaxCategories(ids).pipe(map(res => res.deleteTaxCategories)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n GetTaxCategoryListDocument,\r\n TAX_CATEGORY_FRAGMENT,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_TAX_CATEGORY_LIST = gql`\r\n query GetTaxCategoryList($options: TaxCategoryListOptions) {\r\n taxCategories(options: $options) {\r\n items {\r\n ...TaxCategory\r\n }\r\n totalItems\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-list',\r\n templateUrl: './tax-category-list.component.html',\r\n styleUrls: ['./tax-category-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxCategoryListComponent extends TypedBaseListComponent<\r\n typeof GetTaxCategoryListDocument,\r\n 'taxCategories'\r\n> {\r\n dataTableListId = 'tax-category-list';\r\n readonly customFields = this.serverConfigService.getCustomFieldsFor('TaxCategory');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetTaxCategoryListDocument,\r\n getItems: data => data.taxCategories,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxCategory']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-tax-category' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-category-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"tax-category-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-taxCategory=\"item\">\r\n {{ taxCategory.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-taxCategory=\"item\">\r\n {{ taxCategory.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-taxCategory=\"item\">\r\n {{ taxCategory.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-taxCategory=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', taxCategory.id]\"\r\n ><span>{{ taxCategory.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.default-tax-category' | translate\" id=\"default-tax-category\">\r\n <ng-template let-taxCategory=\"item\">\r\n <vdr-chip *ngIf=\"taxCategory.isDefault\">{{ 'common.default-tax-category' | translate }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateTaxRateInput,\r\n CustomerGroup,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetTaxRateDetailDocument,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TAX_RATE_FRAGMENT,\r\n TaxCategoryFragment,\r\n TaxRateFragment,\r\n TypedBaseDetailComponent,\r\n UpdateTaxRateInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_TAX_RATE_DETAIL = gql`\r\n query GetTaxRateDetail($id: ID!) {\r\n taxRate(id: $id) {\r\n ...TaxRate\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-rate-detail',\r\n templateUrl: './tax-rate-detail.component.html',\r\n styleUrls: ['./tax-rate-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxRateDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetTaxRateDetailDocument, 'taxRate'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('TaxRate');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n enabled: [true],\r\n value: [0, Validators.required],\r\n taxCategoryId: ['', Validators.required],\r\n zoneId: ['', Validators.required],\r\n customerGroupId: [''],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n taxCategories$: Observable<TaxCategoryFragment[]>;\r\n groups$: Observable<CustomerGroup[]>;\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxRate];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.taxCategories$ = this.dataService.settings\r\n .getTaxCategories({ take: 100 })\r\n .mapSingle(data => data.taxCategories.items);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const { name, enabled, value, taxCategoryId, zoneId, customerGroupId, customFields } =\r\n this.detailForm.value;\r\n if (!name || enabled == null || value == null || !taxCategoryId || !zoneId) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n const input = {\r\n name,\r\n enabled,\r\n value,\r\n categoryId: taxCategoryId,\r\n zoneId,\r\n customerGroupId: formValue.customerGroupId,\r\n customFields: formValue.customFields,\r\n } satisfies CreateTaxRateInput;\r\n this.dataService.settings.createTaxRate(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'TaxRate',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createTaxRate.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'TaxRate',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(taxRate => {\r\n const input = {\r\n id: taxRate.id,\r\n name: formValue.name,\r\n enabled: formValue.enabled,\r\n value: formValue.value,\r\n categoryId: formValue.taxCategoryId,\r\n zoneId: formValue.zoneId,\r\n customerGroupId: formValue.customerGroupId,\r\n customFields: formValue.customFields,\r\n } satisfies UpdateTaxRateInput;\r\n return this.dataService.settings.updateTaxRate(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'TaxRate',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'TaxRate',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(entity: TaxRateFragment, languageCode: LanguageCode): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n enabled: entity.enabled,\r\n value: entity.value,\r\n taxCategoryId: entity.category ? entity.category.id : '',\r\n zoneId: entity.zone ? entity.zone.id : '',\r\n customerGroupId: entity.customerGroup ? entity.customerGroup.id : '',\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left></vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\r\n <vdr-affixed-input suffix=\"%\">\r\n <input\r\n id=\"value\"\r\n type=\"number\"\r\n step=\"0.1\"\r\n formControlName=\"value\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\r\n <select\r\n name=\"taxCategoryId\"\r\n formControlName=\"taxCategoryId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option\r\n *ngFor=\"let taxCategory of taxCategories$ | async\"\r\n [value]=\"taxCategory.id\"\r\n >\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\r\n <vdr-zone-selector\r\n name=\"zoneId\"\r\n formControlName=\"zoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n </vdr-zone-selector>\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxRate\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-rate-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetTaxRateListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteTaxRatesBulkAction = createBulkDeleteAction<ItemOf<GetTaxRateListQuery, 'taxRates'>>({\r\n location: 'tax-rate-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteTaxRate),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) =>\r\n dataService.settings.deleteTaxRates(ids).pipe(map(res => res.deleteTaxRates)),\r\n});\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { GetTaxRateListDocument, TAX_RATE_FRAGMENT, TypedBaseListComponent } from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\n\r\nexport const GET_TAX_RATE_LIST = gql`\r\n query GetTaxRateList($options: TaxRateListOptions) {\r\n taxRates(options: $options) {\r\n items {\r\n ...TaxRate\r\n }\r\n totalItems\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-tax-rate-list',\r\n templateUrl: './tax-rate-list.component.html',\r\n styleUrls: ['./tax-rate-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxRateListComponent extends TypedBaseListComponent<typeof GetTaxRateListDocument, 'taxRates'> {\r\n dataTableListId = 'tax-rate-list';\r\n readonly customFields = this.getCustomFieldConfig('TaxRate');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addFilter({\r\n name: 'enabled',\r\n type: { kind: 'boolean' },\r\n label: _('common.enabled'),\r\n filterField: 'enabled',\r\n })\r\n .addFilter({\r\n name: 'value',\r\n type: { kind: 'number' },\r\n label: _('common.value'),\r\n filterField: 'value',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addSort({ name: 'value' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor() {\r\n super();\r\n super.configure({\r\n document: GetTaxRateListDocument,\r\n getItems: data => data.taxRates,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-tax-rate' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"tax-rate-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"tax-rate-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\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-taxRate=\"item\">\r\n {{ taxRate.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.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\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-taxRate=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', taxRate.id]\"\r\n ><span>{{ taxRate.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.tax-category' | translate\" id=\"tax-category\">\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.category.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.zone' | translate\" id=\"zone\">\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.zone.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'customer.customer-group' | translate\" id=\"customer-group\" [hiddenByDefault]=\"true\">\r\n <ng-template let-taxRate=\"item\">\r\n {{ taxRate.customerGroup?.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.tax-rate' | translate\" id=\"tax-rate\" [sort]=\"sorts.get('value')\">\r\n <ng-template let-taxRate=\"item\"> {{ taxRate.value }}% </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-taxRate=\"item\">\r\n <vdr-chip *ngIf=\"taxRate.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!taxRate.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport {\r\n DataService,\r\n GetActiveChannelQuery,\r\n ShippingMethodQuote,\r\n TestEligibleShippingMethodsInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { TestAddress } from '../test-address-form/test-address-form.component';\r\nimport { TestOrderLine } from '../test-order-builder/test-order-builder.component';\r\n\r\n@Component({\r\n selector: 'vdr-test-shipping-methods',\r\n templateUrl: './test-shipping-methods.component.html',\r\n styleUrls: ['./test-shipping-methods.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TestShippingMethodsComponent implements OnInit {\r\n activeChannel$: Observable<GetActiveChannelQuery['activeChannel']>;\r\n testAddress: TestAddress;\r\n testOrderLines: TestOrderLine[];\r\n testDataUpdated = false;\r\n testResult$: Observable<ShippingMethodQuote[] | undefined>;\r\n private fetchTestResult$ = new Subject<[TestAddress, TestOrderLine[]]>();\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.activeChannel$ = this.dataService.settings\r\n .getActiveChannel()\r\n .mapStream(data => data.activeChannel);\r\n this.testResult$ = this.fetchTestResult$.pipe(\r\n switchMap(([address, lines]) => {\r\n const input: TestEligibleShippingMethodsInput = {\r\n shippingAddress: { ...address, streetLine1: 'test' },\r\n lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),\r\n };\r\n return this.dataService.shippingMethod\r\n .testEligibleShippingMethods(input)\r\n .mapSingle(result => result.testEligibleShippingMethods);\r\n }),\r\n );\r\n }\r\n\r\n setTestOrderLines(event: TestOrderLine[]) {\r\n this.testOrderLines = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n setTestAddress(event: TestAddress) {\r\n this.testAddress = event;\r\n this.testDataUpdated = true;\r\n }\r\n\r\n allTestDataPresent(): boolean {\r\n return !!(this.testAddress && this.testOrderLines && this.testOrderLines.length);\r\n }\r\n\r\n runTest() {\r\n this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);\r\n this.testDataUpdated = false;\r\n }\r\n}\r\n","<vdr-page-block>\r\n <div class=\"test-wrapper\">\r\n <div class=\"\">\r\n <vdr-test-order-builder (orderLinesChange)=\"setTestOrderLines($event)\"></vdr-test-order-builder>\r\n </div>\r\n <div class=\"\">\r\n <vdr-test-address-form (addressChange)=\"setTestAddress($event)\"></vdr-test-address-form>\r\n <vdr-shipping-eligibility-test-result\r\n class=\"mt-1\"\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent()\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-eligibility-test-result>\r\n </div>\r\n </div>\r\n</vdr-page-block>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CreateZoneInput,\r\n DataService,\r\n getCustomFieldsDefaults,\r\n GetZoneDetailDocument,\r\n GetZoneDetailQuery,\r\n LanguageCode,\r\n NotificationService,\r\n Permission,\r\n TypedBaseDetailComponent,\r\n UpdateTaxCategoryInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\n\r\nexport const GET_ZONE_DETAIL = gql`\r\n query GetZoneDetail($id: ID!) {\r\n zone(id: $id) {\r\n ...ZoneDetail\r\n }\r\n }\r\n fragment ZoneDetail on Zone {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-zone-detail',\r\n templateUrl: './zone-detail.component.html',\r\n styleUrls: ['./zone-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneDetailComponent\r\n extends TypedBaseDetailComponent<typeof GetZoneDetailDocument, 'zone'>\r\n implements OnInit, OnDestroy\r\n{\r\n customFields = this.getCustomFieldConfig('Zone');\r\n detailForm = this.formBuilder.group({\r\n name: ['', Validators.required],\r\n customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\r\n });\r\n readonly updatePermission = [Permission.UpdateSettings, Permission.UpdateZone];\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private formBuilder: FormBuilder,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n saveButtonEnabled(): boolean {\r\n return this.detailForm.dirty && this.detailForm.valid;\r\n }\r\n\r\n create() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const { name, customFields } = this.detailForm.value;\r\n if (!name) {\r\n return;\r\n }\r\n const input = {\r\n name,\r\n customFields,\r\n } satisfies CreateZoneInput;\r\n this.dataService.settings.createZone(input).subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Zone',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n this.router.navigate(['../', data.createZone.id], { relativeTo: this.route });\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-create-error'), {\r\n entity: 'Zone',\r\n });\r\n },\r\n );\r\n }\r\n\r\n save() {\r\n if (!this.detailForm.dirty) {\r\n return;\r\n }\r\n const formValue = this.detailForm.value;\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n mergeMap(zone => {\r\n const input = {\r\n id: zone.id,\r\n name: formValue.name,\r\n customFields: formValue.customFields,\r\n } satisfies UpdateTaxCategoryInput;\r\n return this.dataService.settings.updateZone(input);\r\n }),\r\n )\r\n .subscribe(\r\n data => {\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Zone',\r\n });\r\n this.detailForm.markAsPristine();\r\n this.changeDetector.markForCheck();\r\n },\r\n err => {\r\n this.notificationService.error(_('common.notify-update-error'), {\r\n entity: 'Zone',\r\n });\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * Update the form values when the entity changes.\r\n */\r\n protected setFormValues(\r\n entity: NonNullable<GetZoneDetailQuery['zone']>,\r\n languageCode: LanguageCode,\r\n ): void {\r\n this.detailForm.patchValue({\r\n name: entity.name,\r\n });\r\n if (this.customFields.length) {\r\n this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);\r\n }\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"zone-detail\" />\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n <vdr-action-bar-dropdown-menu locationId=\"zone-detail\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card *ngIf=\"entity$ | async as entity\">\r\n <vdr-page-entity-info [entity]=\"entity\" />\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <vdr-page-block>\r\n <vdr-card>\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n </div>\r\n </vdr-card>\r\n <vdr-card\r\n formGroupName=\"customFields\"\r\n *ngIf=\"customFields.length\"\r\n [title]=\"'common.custom-fields' | translate\"\r\n >\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Zone\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-custom-detail-component-host\r\n locationId=\"zone-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n </vdr-page-block>\r\n </vdr-page-detail-layout>\r\n</form>\r\n","import { createBulkDeleteAction, GetZoneListQuery, ItemOf, Permission } from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport const deleteZonesBulkAction = createBulkDeleteAction<ItemOf<GetZoneListQuery, 'zones'>>({\r\n location: 'zone-list',\r\n requiresPermission: userPermissions =>\r\n userPermissions.includes(Permission.DeleteSettings) ||\r\n userPermissions.includes(Permission.DeleteZone),\r\n getItemName: item => item.name,\r\n bulkDelete: (dataService, ids) => dataService.settings.deleteZones(ids).pipe(map(res => res.deleteZones)),\r\n});\r\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n DataService,\r\n GetZoneListDocument,\r\n GetZoneListQuery,\r\n ItemOf,\r\n LanguageCode,\r\n LogicalOperator,\r\n ModalService,\r\n NotificationService,\r\n TypedBaseListComponent,\r\n} from '@vendure/admin-ui/core';\r\nimport { gql } from 'apollo-angular';\r\nimport { combineLatest, EMPTY, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, mapTo, switchMap, tap } from 'rxjs/operators';\r\n\r\nimport { AddCountryToZoneDialogComponent } from '../add-country-to-zone-dialog/add-country-to-zone-dialog.component';\r\nimport { ZoneMemberListComponent } from '../zone-member-list/zone-member-list.component';\r\n\r\nexport const GET_ZONE_LIST = gql`\r\n query GetZoneList($options: ZoneListOptions) {\r\n zones(options: $options) {\r\n items {\r\n ...ZoneListItem\r\n }\r\n totalItems\r\n }\r\n }\r\n fragment ZoneListItem on Zone {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\n@Component({\r\n selector: 'vdr-zone-list',\r\n templateUrl: './zone-list.component.html',\r\n styleUrls: ['./zone-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneListComponent\r\n extends TypedBaseListComponent<typeof GetZoneListDocument, 'zones'>\r\n implements OnInit\r\n{\r\n dataTableListId = 'zone-list';\r\n activeZone$: Observable<ItemOf<GetZoneListQuery, 'zones'> | undefined>;\r\n activeIndex$: Observable<number>;\r\n selectedMemberIds: string[] = [];\r\n @ViewChild(ZoneMemberListComponent) zoneMemberList: ZoneMemberListComponent;\r\n readonly customFields = this.serverConfigService.getCustomFieldsFor('Zone');\r\n readonly filters = this.createFilterCollection()\r\n .addIdFilter()\r\n .addDateFilters()\r\n .addFilter({\r\n name: 'name',\r\n type: { kind: 'text' },\r\n label: _('common.name'),\r\n filterField: 'name',\r\n })\r\n .addCustomFieldFilters(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n readonly sorts = this.createSortCollection()\r\n .defaultSort('createdAt', 'DESC')\r\n .addSort({ name: 'createdAt' })\r\n .addSort({ name: 'updatedAt' })\r\n .addSort({ name: 'name' })\r\n .addCustomFieldSorts(this.customFields)\r\n .connectToRoute(this.route);\r\n\r\n constructor(\r\n protected dataService: DataService,\r\n private notificationService: NotificationService,\r\n private modalService: ModalService,\r\n ) {\r\n super();\r\n super.configure({\r\n document: GetZoneListDocument,\r\n getItems: data => data.zones,\r\n setVariables: (skip, take) => ({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: this.searchTermControl.value,\r\n },\r\n ...this.filters.createFilterInput(),\r\n },\r\n filterOperator: this.searchTermControl.value ? LogicalOperator.OR : LogicalOperator.AND,\r\n sort: this.sorts.createSortInput(),\r\n },\r\n }),\r\n refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n const activeZoneId$ = this.route.paramMap.pipe(\r\n map(pm => pm.get('contents')),\r\n distinctUntilChanged(),\r\n tap(() => (this.selectedMemberIds = [])),\r\n );\r\n this.activeZone$ = combineLatest(this.items$, activeZoneId$).pipe(\r\n map(([zones, activeZoneId]) => {\r\n if (activeZoneId) {\r\n return zones.find(z => z.id === activeZoneId);\r\n }\r\n }),\r\n );\r\n this.activeIndex$ = combineLatest(this.items$, activeZoneId$).pipe(\r\n map(([zones, activeZoneId]) => {\r\n if (activeZoneId) {\r\n return zones.findIndex(g => g.id === activeZoneId);\r\n } else {\r\n return -1;\r\n }\r\n }),\r\n );\r\n }\r\n\r\n setLanguage(code: LanguageCode) {\r\n this.dataService.client.setContentLanguage(code).subscribe();\r\n }\r\n\r\n closeMembers() {\r\n const params = { ...this.route.snapshot.params };\r\n delete params.contents;\r\n this.router.navigate(['./', params], { relativeTo: this.route, queryParamsHandling: 'preserve' });\r\n }\r\n\r\n addToZone(zone: ItemOf<GetZoneListQuery, 'zones'>) {\r\n this.modalService\r\n .fromComponent(AddCountryToZoneDialogComponent, {\r\n locals: {\r\n zoneName: zone.name,\r\n zoneId: zone.id,\r\n },\r\n size: 'md',\r\n })\r\n .pipe(\r\n switchMap(memberIds =>\r\n memberIds\r\n ? this.dataService.settings\r\n .addMembersToZone(zone.id, memberIds)\r\n .pipe(mapTo(memberIds))\r\n : EMPTY,\r\n ),\r\n )\r\n .subscribe({\r\n next: result => {\r\n this.notificationService.success(_(`settings.add-countries-to-zone-success`), {\r\n countryCount: result.length,\r\n zoneName: zone.name,\r\n });\r\n this.refreshMemberList();\r\n },\r\n error: err => {\r\n this.notificationService.error(err);\r\n },\r\n });\r\n }\r\n\r\n refreshMemberList() {\r\n this.zoneMemberList?.refresh();\r\n }\r\n}\r\n","<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"zone-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-zone' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"zone-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-split-view [rightPanelOpen]=\"activeZone$ | async\" (closeClicked)=\"closeMembers()\">\r\n <ng-template vdrSplitViewLeft>\r\n <vdr-data-table-2\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n [activeIndex]=\"activeIndex$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n >\r\n <vdr-bulk-action-menu\r\n locationId=\"zone-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n {{ customerGroup.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.name' | translate\" id=\"name\"\r\n [optional]=\"false\"\r\n [sort]=\"sorts.get('name')\"\r\n >\r\n <ng-template let-customerGroup=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\r\n ><span>{{ customerGroup.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.view-contents' | translate\" id=\"view-contents\" [optional]=\"false\">\r\n <ng-template let-customerGroup=\"item\">\r\n <a\r\n class=\"button-small bg-weight-150\"\r\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <span>{{ 'settings.view-zone-members' | translate }}</span>\r\n <clr-icon shape=\"file-group\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sort]=\"sorts\"\r\n />\r\n </vdr-data-table-2>\r\n </ng-template>\r\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeZone$ | async)?.name\">\r\n <ng-container *ngIf=\"activeZone$ | async as activeZone\">\r\n <button class=\"button-ghost ml-4\" (click)=\"addToZone(activeZone)\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span>{{\r\n 'settings.add-countries-to-zone' | translate : { zoneName: activeZone.name }\r\n }}</span>\r\n </button>\r\n <vdr-zone-member-list\r\n *ngIf=\"activeZone$ | async as activeZone\"\r\n locationId=\"zone-members-list\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n [activeZone]=\"activeZone\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n />\r\n </ng-container>\r\n </ng-template>\r\n</vdr-split-view>\r\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { BulkAction, DataService, NotificationService, Permission } from '@vendure/admin-ui/core';\r\nimport { ZoneMember, ZoneMemberListComponent } from './zone-member-list.component';\r\n\r\nexport const removeZoneMembersBulkAction: BulkAction<ZoneMember, ZoneMemberListComponent> = {\r\n location: 'zone-members-list',\r\n label: _('settings.remove-from-zone'),\r\n icon: 'trash',\r\n iconClass: 'is-danger',\r\n requiresPermission: Permission.UpdateCustomerGroup,\r\n onClick: ({ injector, selection, hostComponent, clearSelection }) => {\r\n const dataService = injector.get(DataService);\r\n const notificationService = injector.get(NotificationService);\r\n\r\n const zone = hostComponent.activeZone;\r\n const memberIds = selection.map(s => s.id);\r\n\r\n dataService.settings.removeMembersFromZone(zone.id, memberIds).subscribe({\r\n complete: () => {\r\n notificationService.success(_(`settings.remove-countries-from-zone-success`), {\r\n countryCount: memberIds.length,\r\n zoneName: zone.name,\r\n });\r\n hostComponent.refresh();\r\n clearSelection();\r\n },\r\n });\r\n },\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AdministratorFragment, BaseEntityResolver, DataService } from '@vendure/admin-ui/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProfileResolver extends BaseEntityResolver<AdministratorFragment> {\r\n constructor(router: Router, dataService: DataService) {\r\n super(\r\n router,\r\n {\r\n __typename: 'Administrator' as const,\r\n id: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n emailAddress: '',\r\n firstName: '',\r\n lastName: '',\r\n user: { roles: [] } as any,\r\n },\r\n id =>\r\n dataService.administrator\r\n .getActiveAdministrator()\r\n .mapStream(data => data.activeAdministrator),\r\n );\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { Route } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n DataService,\r\n GetGlobalSettingsDetailDocument,\r\n GetProfileDetailDocument,\r\n PageComponent,\r\n PageService,\r\n} from '@vendure/admin-ui/core';\r\nimport { of } from 'rxjs';\r\n\r\nexport const createRoutes = (pageService: PageService): Route[] => [\r\n {\r\n path: 'profile',\r\n component: PageComponent,\r\n data: {\r\n breadcrumb: _('breadcrumb.profile'),\r\n },\r\n resolve: {\r\n detail: () =>\r\n inject(DataService)\r\n .query(GetProfileDetailDocument)\r\n .mapSingle(data => ({ entity: of(data.activeAdministrator) })),\r\n },\r\n children: pageService.getPageTabRoutes('profile'),\r\n },\r\n {\r\n path: 'administrators',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'administrator-list',\r\n breadcrumb: _('breadcrumb.administrators'),\r\n },\r\n children: pageService.getPageTabRoutes('administrator-list'),\r\n },\r\n {\r\n path: 'administrators/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'administrator-detail',\r\n breadcrumb: { label: _('breadcrumb.administrators'), link: ['../', 'administrators'] },\r\n },\r\n children: pageService.getPageTabRoutes('administrator-detail'),\r\n },\r\n {\r\n path: 'channels',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'channel-list',\r\n breadcrumb: _('breadcrumb.channels'),\r\n },\r\n children: pageService.getPageTabRoutes('channel-list'),\r\n },\r\n {\r\n path: 'channels/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'channel-detail',\r\n breadcrumb: { label: _('breadcrumb.channels'), link: ['../', 'channels'] },\r\n },\r\n children: pageService.getPageTabRoutes('channel-detail'),\r\n },\r\n {\r\n path: 'stock-locations',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'stock-location-list',\r\n breadcrumb: _('breadcrumb.stock-locations'),\r\n },\r\n children: pageService.getPageTabRoutes('stock-location-list'),\r\n },\r\n {\r\n path: 'stock-locations/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'stock-location-detail',\r\n breadcrumb: { label: _('breadcrumb.stock-locations'), link: ['../', 'stock-locations'] },\r\n },\r\n children: pageService.getPageTabRoutes('stock-location-detail'),\r\n },\r\n {\r\n path: 'sellers',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'seller-list',\r\n breadcrumb: _('breadcrumb.sellers'),\r\n },\r\n children: pageService.getPageTabRoutes('seller-list'),\r\n },\r\n {\r\n path: 'sellers/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'seller-detail',\r\n breadcrumb: { label: _('breadcrumb.sellers'), link: ['../', 'sellers'] },\r\n },\r\n children: pageService.getPageTabRoutes('seller-detail'),\r\n },\r\n {\r\n path: 'roles',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'role-list',\r\n breadcrumb: _('breadcrumb.roles'),\r\n },\r\n children: pageService.getPageTabRoutes('role-list'),\r\n },\r\n {\r\n path: 'roles/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'role-detail',\r\n breadcrumb: { label: _('breadcrumb.roles'), link: ['../', 'roles'] },\r\n },\r\n children: pageService.getPageTabRoutes('role-detail'),\r\n },\r\n {\r\n path: 'tax-categories',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-category-list',\r\n breadcrumb: _('breadcrumb.tax-categories'),\r\n },\r\n children: pageService.getPageTabRoutes('tax-category-list'),\r\n },\r\n {\r\n path: 'tax-categories/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-category-detail',\r\n breadcrumb: { label: _('breadcrumb.tax-categories'), link: ['../', 'tax-categories'] },\r\n },\r\n children: pageService.getPageTabRoutes('tax-category-detail'),\r\n },\r\n {\r\n path: 'tax-rates',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-rate-list',\r\n breadcrumb: _('breadcrumb.tax-rates'),\r\n },\r\n children: pageService.getPageTabRoutes('tax-rate-list'),\r\n },\r\n {\r\n path: 'tax-rates/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'tax-rate-detail',\r\n breadcrumb: { label: _('breadcrumb.tax-rates'), link: ['../', 'tax-rates'] },\r\n },\r\n children: pageService.getPageTabRoutes('tax-rate-detail'),\r\n },\r\n {\r\n path: 'countries',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'country-list',\r\n breadcrumb: _('breadcrumb.countries'),\r\n },\r\n children: pageService.getPageTabRoutes('country-list'),\r\n },\r\n {\r\n path: 'countries/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'country-detail',\r\n breadcrumb: { label: _('breadcrumb.countries'), link: ['../', 'countries'] },\r\n },\r\n children: pageService.getPageTabRoutes('country-detail'),\r\n },\r\n {\r\n path: 'zones',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'zone-list',\r\n breadcrumb: _('breadcrumb.zones'),\r\n },\r\n children: pageService.getPageTabRoutes('zone-list'),\r\n },\r\n {\r\n path: 'zones/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'zone-detail',\r\n breadcrumb: { label: _('breadcrumb.zones'), link: ['../', 'zones'] },\r\n },\r\n children: pageService.getPageTabRoutes('zone-detail'),\r\n },\r\n {\r\n path: 'shipping-methods',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'shipping-method-list',\r\n breadcrumb: _('breadcrumb.shipping-methods'),\r\n },\r\n children: pageService.getPageTabRoutes('shipping-method-list'),\r\n },\r\n {\r\n path: 'shipping-methods/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'shipping-method-detail',\r\n breadcrumb: { label: _('breadcrumb.shipping-methods'), link: ['../', 'shipping-methods'] },\r\n },\r\n children: pageService.getPageTabRoutes('shipping-method-detail'),\r\n },\r\n {\r\n path: 'payment-methods',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'payment-method-list',\r\n breadcrumb: _('breadcrumb.payment-methods'),\r\n },\r\n children: pageService.getPageTabRoutes('payment-method-list'),\r\n },\r\n {\r\n path: 'payment-methods/:id',\r\n component: PageComponent,\r\n data: {\r\n locationId: 'payment-method-detail',\r\n breadcrumb: { label: _('breadcrumb.payment-methods'), link: ['../', 'payment-methods'] },\r\n },\r\n children: pageService.getPageTabRoutes('payment-method-detail'),\r\n },\r\n {\r\n path: 'global-settings',\r\n component: PageComponent,\r\n data: {\r\n breadcrumb: _('breadcrumb.global-settings'),\r\n locationId: 'global-setting-detail',\r\n },\r\n resolve: {\r\n detail: () =>\r\n inject(DataService)\r\n .query(GetGlobalSettingsDetailDocument)\r\n .mapSingle(data => ({ entity: of(data.globalSettings) })),\r\n },\r\n children: pageService.getPageTabRoutes('global-setting-detail'),\r\n },\r\n];\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BulkActionRegistryService,\r\n detailComponentWithResolver,\r\n GetAdministratorDetailDocument,\r\n GetChannelDetailDocument,\r\n GetCountryDetailDocument,\r\n GetPaymentMethodDetailDocument,\r\n GetRoleDetailDocument,\r\n GetSellerDetailDocument,\r\n GetShippingMethodDetailDocument,\r\n GetStockLocationDetailDocument,\r\n GetTaxCategoryDetailDocument,\r\n GetTaxRateDetailDocument,\r\n GetZoneDetailDocument,\r\n PageService,\r\n SharedModule,\r\n} from '@vendure/admin-ui/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\n\r\nimport { AddCountryToZoneDialogComponent } from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\r\nimport { AdminDetailComponent } from './components/admin-detail/admin-detail.component';\r\nimport { deleteAdministratorsBulkAction } from './components/administrator-list/administrator-list-bulk-actions';\r\nimport { AdministratorListComponent } from './components/administrator-list/administrator-list.component';\r\nimport { ChannelDetailComponent } from './components/channel-detail/channel-detail.component';\r\nimport { deleteChannelsBulkAction } from './components/channel-list/channel-list-bulk-actions';\r\nimport { ChannelListComponent } from './components/channel-list/channel-list.component';\r\nimport { CountryDetailComponent } from './components/country-detail/country-detail.component';\r\nimport { deleteCountriesBulkAction } from './components/country-list/country-list-bulk-actions';\r\nimport { CountryListComponent } from './components/country-list/country-list.component';\r\nimport { GlobalSettingsComponent } from './components/global-settings/global-settings.component';\r\nimport { PaymentMethodDetailComponent } from './components/payment-method-detail/payment-method-detail.component';\r\nimport {\r\n assignPaymentMethodsToChannelBulkAction,\r\n deletePaymentMethodsBulkAction,\r\n removePaymentMethodsFromChannelBulkAction,\r\n} from './components/payment-method-list/payment-method-list-bulk-actions';\r\nimport { PaymentMethodListComponent } from './components/payment-method-list/payment-method-list.component';\r\nimport { PermissionGridComponent } from './components/permission-grid/permission-grid.component';\r\nimport { ProfileComponent } from './components/profile/profile.component';\r\nimport { RoleDetailComponent } from './components/role-detail/role-detail.component';\r\nimport { deleteRolesBulkAction } from './components/role-list/role-list-bulk-actions';\r\nimport { RoleListComponent } from './components/role-list/role-list.component';\r\nimport { SellerDetailComponent } from './components/seller-detail/seller-detail.component';\r\nimport { deleteSellersBulkAction } from './components/seller-list/seller-list-bulk-actions';\r\nimport { SellerListComponent } from './components/seller-list/seller-list.component';\r\nimport { ShippingEligibilityTestResultComponent } from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\r\nimport { ShippingMethodDetailComponent } from './components/shipping-method-detail/shipping-method-detail.component';\r\nimport {\r\n assignShippingMethodsToChannelBulkAction,\r\n deleteShippingMethodsBulkAction,\r\n removeShippingMethodsFromChannelBulkAction,\r\n} from './components/shipping-method-list/shipping-method-list-bulk-actions';\r\nimport { ShippingMethodListComponent } from './components/shipping-method-list/shipping-method-list.component';\r\nimport { ShippingMethodTestResultComponent } from './components/shipping-method-test-result/shipping-method-test-result.component';\r\nimport { StockLocationDetailComponent } from './components/stock-location-detail/stock-location-detail.component';\r\nimport {\r\n assignStockLocationsToChannelBulkAction,\r\n deleteStockLocationsBulkAction,\r\n removeStockLocationsFromChannelBulkAction,\r\n} from './components/stock-location-list/stock-location-list-bulk-actions';\r\nimport { StockLocationListComponent } from './components/stock-location-list/stock-location-list.component';\r\nimport { TaxCategoryDetailComponent } from './components/tax-category-detail/tax-category-detail.component';\r\nimport { deleteTaxCategoriesBulkAction } from './components/tax-category-list/tax-category-list-bulk-actions';\r\nimport { TaxCategoryListComponent } from './components/tax-category-list/tax-category-list.component';\r\nimport { TaxRateDetailComponent } from './components/tax-rate-detail/tax-rate-detail.component';\r\nimport { deleteTaxRatesBulkAction } from './components/tax-rate-list/tax-rate-list-bulk-actions';\r\nimport { TaxRateListComponent } from './components/tax-rate-list/tax-rate-list.component';\r\nimport { TestAddressFormComponent } from './components/test-address-form/test-address-form.component';\r\nimport { TestOrderBuilderComponent } from './components/test-order-builder/test-order-builder.component';\r\nimport { TestShippingMethodsComponent } from './components/test-shipping-methods/test-shipping-methods.component';\r\nimport { ZoneDetailComponent } from './components/zone-detail/zone-detail.component';\r\nimport { deleteZonesBulkAction } from './components/zone-list/zone-list-bulk-actions';\r\nimport { ZoneListComponent } from './components/zone-list/zone-list.component';\r\nimport { ZoneMemberControlsDirective } from './components/zone-member-list/zone-member-controls.directive';\r\nimport { removeZoneMembersBulkAction } from './components/zone-member-list/zone-member-list-bulk-actions';\r\nimport { ZoneMemberListHeaderDirective } from './components/zone-member-list/zone-member-list-header.directive';\r\nimport { ZoneMemberListComponent } from './components/zone-member-list/zone-member-list.component';\r\nimport { createRoutes } from './settings.routes';\r\n\r\n@NgModule({\r\n imports: [SharedModule, RouterModule.forChild([])],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: (pageService: PageService) => createRoutes(pageService),\r\n multi: true,\r\n deps: [PageService],\r\n },\r\n ],\r\n declarations: [\r\n TaxCategoryListComponent,\r\n TaxCategoryDetailComponent,\r\n AdministratorListComponent,\r\n RoleListComponent,\r\n RoleDetailComponent,\r\n AdminDetailComponent,\r\n PermissionGridComponent,\r\n CountryListComponent,\r\n CountryDetailComponent,\r\n TaxRateListComponent,\r\n TaxRateDetailComponent,\r\n ChannelListComponent,\r\n ChannelDetailComponent,\r\n ShippingMethodListComponent,\r\n ShippingMethodDetailComponent,\r\n PaymentMethodListComponent,\r\n PaymentMethodDetailComponent,\r\n GlobalSettingsComponent,\r\n TestOrderBuilderComponent,\r\n TestAddressFormComponent,\r\n SellerDetailComponent,\r\n SellerListComponent,\r\n ShippingMethodTestResultComponent,\r\n ShippingEligibilityTestResultComponent,\r\n ZoneListComponent,\r\n AddCountryToZoneDialogComponent,\r\n ZoneMemberListComponent,\r\n ZoneMemberListHeaderDirective,\r\n ZoneMemberControlsDirective,\r\n ProfileComponent,\r\n TestShippingMethodsComponent,\r\n ZoneDetailComponent,\r\n StockLocationListComponent,\r\n StockLocationDetailComponent,\r\n ],\r\n})\r\nexport class SettingsModule {\r\n private static hasRegisteredTabsAndBulkActions = false;\r\n\r\n constructor(bulkActionRegistryService: BulkActionRegistryService, pageService: PageService) {\r\n if (SettingsModule.hasRegisteredTabsAndBulkActions) {\r\n return;\r\n }\r\n bulkActionRegistryService.registerBulkAction(deleteSellersBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteChannelsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteAdministratorsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteRolesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(assignShippingMethodsToChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(removeShippingMethodsFromChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(deleteShippingMethodsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(assignPaymentMethodsToChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(removePaymentMethodsFromChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(deletePaymentMethodsBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteTaxCategoriesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteTaxRatesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteCountriesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(deleteZonesBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(removeZoneMembersBulkAction);\r\n\r\n bulkActionRegistryService.registerBulkAction(assignStockLocationsToChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(removeStockLocationsFromChannelBulkAction);\r\n bulkActionRegistryService.registerBulkAction(deleteStockLocationsBulkAction);\r\n\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'seller-list',\r\n tab: _('breadcrumb.sellers'),\r\n route: '',\r\n component: SellerListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'seller-detail',\r\n tab: _('settings.seller'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: SellerDetailComponent,\r\n query: GetSellerDetailDocument,\r\n entityKey: 'seller',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-seller'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'channel-list',\r\n tab: _('breadcrumb.channels'),\r\n route: '',\r\n component: ChannelListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'channel-detail',\r\n tab: _('settings.channel'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: ChannelDetailComponent,\r\n query: GetChannelDetailDocument,\r\n entityKey: 'channel',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity\r\n ? entity.code === DEFAULT_CHANNEL_CODE\r\n ? 'common.default-channel'\r\n : entity.code\r\n : _('settings.create-new-channel'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'administrator-list',\r\n tab: _('breadcrumb.administrators'),\r\n route: '',\r\n component: AdministratorListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'administrator-detail',\r\n tab: _('settings.administrator'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: AdminDetailComponent,\r\n query: GetAdministratorDetailDocument,\r\n entityKey: 'administrator',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity\r\n ? `${entity.firstName} ${entity.lastName}`\r\n : _('admin.create-new-administrator'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'role-list',\r\n tab: _('breadcrumb.roles'),\r\n route: '',\r\n component: RoleListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'role-detail',\r\n tab: _('settings.role'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: RoleDetailComponent,\r\n query: GetRoleDetailDocument,\r\n entityKey: 'role',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.description : _('settings.create-new-role'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'shipping-method-list',\r\n tab: _('breadcrumb.shipping-methods'),\r\n route: '',\r\n component: ShippingMethodListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'shipping-method-detail',\r\n tab: _('settings.shipping-method'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: ShippingMethodDetailComponent,\r\n query: GetShippingMethodDetailDocument,\r\n entityKey: 'shippingMethod',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-shipping-method'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'shipping-method-list',\r\n tab: _('settings.test-shipping-methods'),\r\n route: 'test',\r\n component: TestShippingMethodsComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'payment-method-list',\r\n tab: _('breadcrumb.payment-methods'),\r\n route: '',\r\n component: PaymentMethodListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'payment-method-detail',\r\n tab: _('settings.payment-method'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: PaymentMethodDetailComponent,\r\n query: GetPaymentMethodDetailDocument,\r\n entityKey: 'paymentMethod',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-payment-method'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-category-list',\r\n tab: _('breadcrumb.tax-categories'),\r\n route: '',\r\n component: TaxCategoryListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-category-detail',\r\n tab: _('settings.tax-category'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: TaxCategoryDetailComponent,\r\n query: GetTaxCategoryDetailDocument,\r\n entityKey: 'taxCategory',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-tax-category'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-rate-list',\r\n tab: _('breadcrumb.tax-rates'),\r\n route: '',\r\n component: TaxRateListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'tax-rate-detail',\r\n tab: _('settings.tax-rate'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: TaxRateDetailComponent,\r\n query: GetTaxRateDetailDocument,\r\n entityKey: 'taxRate',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-tax-rate'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'country-list',\r\n tab: _('breadcrumb.countries'),\r\n route: '',\r\n component: CountryListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'country-detail',\r\n tab: _('settings.country'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: CountryDetailComponent,\r\n query: GetCountryDetailDocument,\r\n entityKey: 'country',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-country'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'zone-list',\r\n tab: _('breadcrumb.zones'),\r\n route: '',\r\n component: ZoneListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'zone-detail',\r\n tab: _('settings.zone'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: ZoneDetailComponent,\r\n query: GetZoneDetailDocument,\r\n entityKey: 'zone',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('settings.create-new-zone'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'global-setting-detail',\r\n tab: _('breadcrumb.global-settings'),\r\n route: '',\r\n component: GlobalSettingsComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'profile',\r\n tab: _('breadcrumb.profile'),\r\n route: '',\r\n component: ProfileComponent,\r\n });\r\n\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'stock-location-list',\r\n tab: _('catalog.stock-locations'),\r\n route: '',\r\n component: StockLocationListComponent,\r\n });\r\n pageService.registerPageTab({\r\n priority: 0,\r\n location: 'stock-location-detail',\r\n tab: _('catalog.stock-location'),\r\n route: '',\r\n component: detailComponentWithResolver({\r\n component: StockLocationDetailComponent,\r\n query: GetStockLocationDetailDocument,\r\n entityKey: 'stockLocation',\r\n getBreadcrumbs: entity => [\r\n {\r\n label: entity ? entity.name : _('catalog.create-new-stock-location'),\r\n link: [entity?.id],\r\n },\r\n ],\r\n }),\r\n });\r\n SettingsModule.hasRegisteredTabsAndBulkActions = true;\r\n }\r\n}\r\n","// This file was generated by the build-public-api.ts script\nexport * from './components/add-country-to-zone-dialog/add-country-to-zone-dialog.component';\nexport * from './components/admin-detail/admin-detail.component';\nexport * from './components/administrator-list/administrator-list-bulk-actions';\nexport * from './components/administrator-list/administrator-list.component';\nexport * from './components/channel-detail/channel-detail.component';\nexport * from './components/channel-list/channel-list-bulk-actions';\nexport * from './components/channel-list/channel-list.component';\nexport * from './components/country-detail/country-detail.component';\nexport * from './components/country-list/country-list-bulk-actions';\nexport * from './components/country-list/country-list.component';\nexport * from './components/global-settings/global-settings.component';\nexport * from './components/payment-method-detail/payment-method-detail.component';\nexport * from './components/payment-method-list/payment-method-list-bulk-actions';\nexport * from './components/payment-method-list/payment-method-list.component';\nexport * from './components/permission-grid/permission-grid.component';\nexport * from './components/profile/profile.component';\nexport * from './components/role-detail/role-detail.component';\nexport * from './components/role-list/role-list-bulk-actions';\nexport * from './components/role-list/role-list.component';\nexport * from './components/seller-detail/seller-detail.component';\nexport * from './components/seller-list/seller-list-bulk-actions';\nexport * from './components/seller-list/seller-list.component';\nexport * from './components/shipping-eligibility-test-result/shipping-eligibility-test-result.component';\nexport * from './components/shipping-method-detail/shipping-method-detail.component';\nexport * from './components/shipping-method-list/shipping-method-list-bulk-actions';\nexport * from './components/shipping-method-list/shipping-method-list.component';\nexport * from './components/shipping-method-test-result/shipping-method-test-result.component';\nexport * from './components/stock-location-detail/stock-location-detail.component';\nexport * from './components/stock-location-list/stock-location-list-bulk-actions';\nexport * from './components/stock-location-list/stock-location-list.component';\nexport * from './components/tax-category-detail/tax-category-detail.component';\nexport * from './components/tax-category-list/tax-category-list-bulk-actions';\nexport * from './components/tax-category-list/tax-category-list.component';\nexport * from './components/tax-rate-detail/tax-rate-detail.component';\nexport * from './components/tax-rate-list/tax-rate-list-bulk-actions';\nexport * from './components/tax-rate-list/tax-rate-list.component';\nexport * from './components/test-address-form/test-address-form.component';\nexport * from './components/test-order-builder/test-order-builder.component';\nexport * from './components/test-shipping-methods/test-shipping-methods.component';\nexport * from './components/zone-detail/zone-detail.component';\nexport * from './components/zone-list/zone-list-bulk-actions';\nexport * from './components/zone-list/zone-list.component';\nexport * from './components/zone-member-list/zone-member-controls.directive';\nexport * from './components/zone-member-list/zone-member-list-bulk-actions';\nexport * from './components/zone-member-list/zone-member-list-header.directive';\nexport * from './components/zone-member-list/zone-member-list.component';\nexport * from './providers/routing/profile-resolver';\nexport * from './settings.module';\nexport * from './settings.routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i4","i2.ZoneMemberListComponent","i1","_","i5.PermissionGridComponent","i6","switchMap","i4.PermissionGridComponent","i5","i5.TestOrderBuilderComponent","i6.TestAddressFormComponent","i7.ShippingMethodTestResultComponent","i8","i2.TestOrderBuilderComponent","i3.TestAddressFormComponent","i4.ShippingEligibilityTestResultComponent","i5.ZoneMemberListComponent"],"mappings":"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"}
|