@snabcentr/client-ui 4.6.1 → 5.1.0
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/fesm2022/snabcentr-client-ui.mjs +4349 -4761
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +35 -36
- package/release_notes.tmp +2 -4
- package/styles/taiga/variables.less +16 -17
- package/styles/tailwind/tailwind.scss +17 -12
- package/types/snabcentr-client-ui.d.ts +5704 -0
- package/accordion/index.d.ts +0 -3
- package/accordion/sc-accordion-content.directive.d.ts +0 -9
- package/accordion/sc-accordion.component.d.ts +0 -56
- package/accordion/sc-accordion.module.d.ts +0 -15
- package/auth/enums/auth-method.d.ts +0 -13
- package/auth/index.d.ts +0 -8
- package/auth/interfaces/index.d.ts +0 -2
- package/auth/interfaces/sc-bank-account-form-group.d.ts +0 -11
- package/auth/interfaces/sc-contact-form-group.d.ts +0 -10
- package/auth/sc-auth.module.d.ts +0 -27
- package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +0 -55
- package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +0 -45
- package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +0 -53
- package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +0 -113
- package/auth/sign-up-form/sc-sign-up-form.component.d.ts +0 -166
- package/banner/index.d.ts +0 -2
- package/banner/sc-banner.component.d.ts +0 -79
- package/banner/sc-banner.module.d.ts +0 -17
- package/brands-list/index.d.ts +0 -2
- package/brands-list/sc-brands-list.component.d.ts +0 -15
- package/brands-list/sc-brands-list.module.d.ts +0 -12
- package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +0 -102
- package/cart/add-or-editing-cart-item-dialog/index.d.ts +0 -2
- package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +0 -49
- package/cart/index.d.ts +0 -2
- package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +0 -62
- package/catalog/catalog-filters/index.d.ts +0 -3
- package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +0 -102
- package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +0 -7
- package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +0 -5
- package/catalog/category-card/sc-category-card.component.d.ts +0 -76
- package/catalog/cost-with-discount/cost-with-discount.component.d.ts +0 -23
- package/catalog/download-price-list/sc-download-price-list.component.d.ts +0 -38
- package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +0 -48
- package/catalog/index.d.ts +0 -15
- package/catalog/input-quantity/sc-input-quantity.component.d.ts +0 -82
- package/catalog/notify-when-in-stock-dialog/index.d.ts +0 -2
- package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +0 -90
- package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +0 -22
- package/catalog/price-card/sc-price-card.component.d.ts +0 -18
- package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +0 -10
- package/catalog/price-history/sc-price-history.component.d.ts +0 -88
- package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +0 -40
- package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +0 -47
- package/catalog/sc-catalog.module.d.ts +0 -29
- package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +0 -25
- package/catalog/seo-tags/sc-seo-tags.component.d.ts +0 -20
- package/configurators/index.d.ts +0 -3
- package/configurators/models/index.d.ts +0 -3
- package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +0 -22
- package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +0 -18
- package/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.d.ts +0 -18
- package/configurators/sandwich/index.d.ts +0 -3
- package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +0 -8
- package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +0 -14
- package/configurators/sandwich/sc-sandwich.component.d.ts +0 -182
- package/configurators/sandwich_m2/index.d.ts +0 -4
- package/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.d.ts +0 -8
- package/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.d.ts +0 -23
- package/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.d.ts +0 -13
- package/configurators/sandwich_m2/sc-sandwich-m2.component.d.ts +0 -267
- package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +0 -49
- package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +0 -23
- package/contacts/index.d.ts +0 -7
- package/contacts/manager-card/sc-manager-card.component.d.ts +0 -22
- package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +0 -18
- package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +0 -28
- package/contacts/sc-contacts.module.d.ts +0 -27
- package/contacts/tokens/index.d.ts +0 -2
- package/contacts/tokens/sc-manager-qr-handler.token.d.ts +0 -6
- package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +0 -5
- package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +0 -49
- package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +0 -158
- package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +0 -62
- package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +0 -49
- package/contragents/index.d.ts +0 -7
- package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -64
- package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +0 -119
- package/contragents/sc-contragents.module.d.ts +0 -26
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +0 -141
- package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +0 -50
- package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +0 -49
- package/delivery-address/index.d.ts +0 -4
- package/delivery-address/sc-delivery-address.module.d.ts +0 -25
- package/dialogs/index.d.ts +0 -1
- package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +0 -42
- package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +0 -136
- package/directives/index.d.ts +0 -9
- package/directives/links/index.d.ts +0 -4
- package/directives/links/sc-email-link.directive.d.ts +0 -25
- package/directives/links/sc-link-location.d.ts +0 -5
- package/directives/links/sc-links.d.ts +0 -7
- package/directives/links/sc-tel-link.directive.d.ts +0 -40
- package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +0 -27
- package/directives/next-input-focus/sc-next-input-focus.module.d.ts +0 -10
- package/directives/print/sc-print.directive.d.ts +0 -21
- package/directives/sc-date-value-transformer.directive.d.ts +0 -8
- package/directives/sc-focus-first-invalid-field.directive.d.ts +0 -30
- package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +0 -14
- package/directives/terminal-link/sc-terminal-link.directive.d.ts +0 -34
- package/error-handler/consts/error-change-handler.providers.d.ts +0 -6
- package/error-handler/error-block-status/error-block-status.component.d.ts +0 -45
- package/error-handler/index.d.ts +0 -4
- package/error-handler/interfaces/i-block-error.d.ts +0 -17
- package/error-handler/sc-error-handler.component.d.ts +0 -40
- package/esm2022/accordion/index.mjs +0 -4
- package/esm2022/accordion/sc-accordion-content.directive.mjs +0 -17
- package/esm2022/accordion/sc-accordion.component.mjs +0 -92
- package/esm2022/accordion/sc-accordion.module.mjs +0 -26
- package/esm2022/auth/enums/auth-method.mjs +0 -15
- package/esm2022/auth/index.mjs +0 -9
- package/esm2022/auth/interfaces/index.mjs +0 -3
- package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +0 -2
- package/esm2022/auth/interfaces/sc-contact-form-group.mjs +0 -2
- package/esm2022/auth/sc-auth.module.mjs +0 -103
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +0 -100
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +0 -81
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +0 -89
- package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +0 -203
- package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +0 -334
- package/esm2022/banner/index.mjs +0 -3
- package/esm2022/banner/sc-banner.component.mjs +0 -131
- package/esm2022/banner/sc-banner.module.mjs +0 -29
- package/esm2022/brands-list/index.mjs +0 -3
- package/esm2022/brands-list/sc-brands-list.component.mjs +0 -24
- package/esm2022/brands-list/sc-brands-list.module.mjs +0 -22
- package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +0 -233
- package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +0 -3
- package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +0 -76
- package/esm2022/cart/index.mjs +0 -3
- package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +0 -110
- package/esm2022/catalog/catalog-filters/index.mjs +0 -4
- package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +0 -213
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +0 -10
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +0 -6
- package/esm2022/catalog/category-card/sc-category-card.component.mjs +0 -102
- package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +0 -39
- package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +0 -56
- package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +0 -76
- package/esm2022/catalog/index.mjs +0 -16
- package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +0 -189
- package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +0 -3
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +0 -173
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +0 -35
- package/esm2022/catalog/price-card/sc-price-card.component.mjs +0 -73
- package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +0 -56
- package/esm2022/catalog/price-history/sc-price-history.component.mjs +0 -140
- package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +0 -65
- package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +0 -61
- package/esm2022/catalog/sc-catalog.module.mjs +0 -126
- package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +0 -42
- package/esm2022/catalog/seo-tags/sc-seo-tags.component.mjs +0 -25
- package/esm2022/configurators/index.mjs +0 -4
- package/esm2022/configurators/models/index.mjs +0 -4
- package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +0 -2
- package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +0 -2
- package/esm2022/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.mjs +0 -2
- package/esm2022/configurators/sandwich/index.mjs +0 -4
- package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +0 -14
- package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +0 -2
- package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +0 -382
- package/esm2022/configurators/sandwich_m2/index.mjs +0 -5
- package/esm2022/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.mjs +0 -14
- package/esm2022/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.mjs +0 -2
- package/esm2022/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.mjs +0 -5
- package/esm2022/configurators/sandwich_m2/sc-sandwich-m2.component.mjs +0 -561
- package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +0 -91
- package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +0 -37
- package/esm2022/contacts/index.mjs +0 -8
- package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +0 -58
- package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +0 -28
- package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +0 -37
- package/esm2022/contacts/sc-contacts.module.mjs +0 -89
- package/esm2022/contacts/tokens/index.mjs +0 -3
- package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +0 -25
- package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +0 -9
- package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -81
- package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +0 -266
- package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +0 -74
- package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +0 -68
- package/esm2022/contragents/index.mjs +0 -8
- package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -72
- package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +0 -224
- package/esm2022/contragents/sc-contragents.module.mjs +0 -115
- package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +0 -248
- package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +0 -60
- package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +0 -68
- package/esm2022/delivery-address/index.mjs +0 -5
- package/esm2022/delivery-address/sc-delivery-address.module.mjs +0 -96
- package/esm2022/dialogs/index.mjs +0 -2
- package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +0 -68
- package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +0 -170
- package/esm2022/directives/index.mjs +0 -10
- package/esm2022/directives/links/index.mjs +0 -5
- package/esm2022/directives/links/sc-email-link.directive.mjs +0 -49
- package/esm2022/directives/links/sc-link-location.mjs +0 -2
- package/esm2022/directives/links/sc-links.mjs +0 -8
- package/esm2022/directives/links/sc-tel-link.directive.mjs +0 -79
- package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +0 -70
- package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +0 -19
- package/esm2022/directives/print/sc-print.directive.mjs +0 -36
- package/esm2022/directives/sc-date-value-transformer.directive.mjs +0 -30
- package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +0 -85
- package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +0 -31
- package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +0 -69
- package/esm2022/error-handler/consts/error-change-handler.providers.mjs +0 -10
- package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +0 -88
- package/esm2022/error-handler/index.mjs +0 -5
- package/esm2022/error-handler/interfaces/i-block-error.mjs +0 -2
- package/esm2022/error-handler/sc-error-handler.component.mjs +0 -58
- package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +0 -344
- package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +0 -32
- package/esm2022/feedback/index.mjs +0 -4
- package/esm2022/feedback/interfaces/index.mjs +0 -2
- package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +0 -2
- package/esm2022/files/directives/index.mjs +0 -3
- package/esm2022/files/directives/tree-top.directive.mjs +0 -63
- package/esm2022/files/directives/tree.directive.mjs +0 -47
- package/esm2022/files/file-tree-item/file-tree-item.component.mjs +0 -18
- package/esm2022/files/files-and-documents/files-and-documents.component.mjs +0 -61
- package/esm2022/files/files-and-documents.module.mjs +0 -28
- package/esm2022/files/index.mjs +0 -6
- package/esm2022/files/interfaces/tree-node.mjs +0 -2
- package/esm2022/files/services/index.mjs +0 -3
- package/esm2022/files/services/tree-icon.service.mjs +0 -49
- package/esm2022/files/services/tree-loader.service.mjs +0 -62
- package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +0 -156
- package/esm2022/form-fields/form-fields.module.mjs +0 -66
- package/esm2022/form-fields/index.mjs +0 -4
- package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +0 -174
- package/esm2022/icons/index.mjs +0 -2
- package/esm2022/icons/sc-client-ui-icons-name.mjs +0 -99
- package/esm2022/loader/index.mjs +0 -2
- package/esm2022/loader/sc-i-loader.mjs +0 -2
- package/esm2022/masks/index.mjs +0 -8
- package/esm2022/masks/sc-account-number-mask.mjs +0 -7
- package/esm2022/masks/sc-bic-mask.mjs +0 -7
- package/esm2022/masks/sc-correspondent-account-mask.mjs +0 -7
- package/esm2022/masks/sc-inn-mask.mjs +0 -13
- package/esm2022/masks/sc-kpp-mask.mjs +0 -7
- package/esm2022/masks/sc-okpo-mask.mjs +0 -13
- package/esm2022/masks/sc-phone-verification-code-mask.mjs +0 -7
- package/esm2022/methods/index.mjs +0 -2
- package/esm2022/methods/sc-get-current-route.mjs +0 -14
- package/esm2022/models/i-sc-image.mjs +0 -2
- package/esm2022/models/index.mjs +0 -2
- package/esm2022/news/index.mjs +0 -4
- package/esm2022/news/news-card/sc-news-card.component.mjs +0 -34
- package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +0 -31
- package/esm2022/news/sc-news.module.mjs +0 -26
- package/esm2022/noindex-wrapper/directives/index.mjs +0 -2
- package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +0 -58
- package/esm2022/noindex-wrapper/index.mjs +0 -3
- package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +0 -18
- package/esm2022/order/directives/index.mjs +0 -3
- package/esm2022/order/directives/sc-order-accessor.directive.mjs +0 -28
- package/esm2022/order/directives/sc-order-options.mjs +0 -11
- package/esm2022/order/draft/sc-draft.component.mjs +0 -118
- package/esm2022/order/index.mjs +0 -10
- package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +0 -22
- package/esm2022/order/order-item/sc-order-item.component.mjs +0 -108
- package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +0 -209
- package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +0 -75
- package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +0 -75
- package/esm2022/order/sc-order.module.mjs +0 -52
- package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +0 -35
- package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +0 -49
- package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +0 -8
- package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +0 -59
- package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +0 -107
- package/esm2022/pages/index.mjs +0 -7
- package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +0 -46
- package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +0 -30
- package/esm2022/pages/public-offer/sc-public-offer.component.mjs +0 -50
- package/esm2022/pipes/index.mjs +0 -3
- package/esm2022/pipes/sc-format-date.mjs +0 -33
- package/esm2022/pipes/sc-phone-format.mjs +0 -44
- package/esm2022/profile/index.mjs +0 -3
- package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +0 -174
- package/esm2022/profile/sc-profile.module.mjs +0 -73
- package/esm2022/providers/date-value-transformer/index.mjs +0 -4
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +0 -2
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +0 -26
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +0 -37
- package/esm2022/providers/index.mjs +0 -16
- package/esm2022/providers/sc-allow-select-terminated.mjs +0 -8
- package/esm2022/providers/sc-banner-duration.mjs +0 -8
- package/esm2022/providers/sc-country-ids.mjs +0 -8
- package/esm2022/providers/sc-date-formatter.mjs +0 -15
- package/esm2022/providers/sc-date-value-transformer.mjs +0 -12
- package/esm2022/providers/sc-debounce-time-default.mjs +0 -9
- package/esm2022/providers/sc-dialog-service.providers.mjs +0 -6
- package/esm2022/providers/sc-help-notification-close.mjs +0 -9
- package/esm2022/providers/sc-help-notification-limit.mjs +0 -8
- package/esm2022/providers/sc-hidden-print-elements.token.mjs +0 -10
- package/esm2022/providers/sc-max-files-in-form-input.mjs +0 -8
- package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +0 -8
- package/esm2022/providers/sc-page-size-options.mjs +0 -8
- package/esm2022/providers/sc-user-providers.mjs +0 -38
- package/esm2022/providers/sc-verification-code-timeout.mjs +0 -8
- package/esm2022/public-api.mjs +0 -35
- package/esm2022/qrcode/index.mjs +0 -3
- package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +0 -58
- package/esm2022/qrcode/sc-qrcode.module.mjs +0 -25
- package/esm2022/samples/index.mjs +0 -5
- package/esm2022/samples/interfaces/index.mjs +0 -3
- package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +0 -2
- package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +0 -2
- package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +0 -42
- package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +0 -63
- package/esm2022/samples/sc-sample.module.mjs +0 -66
- package/esm2022/services/index.mjs +0 -3
- package/esm2022/services/print.service.mjs +0 -49
- package/esm2022/services/sc-help-notification.service.mjs +0 -100
- package/esm2022/share-button/index.mjs +0 -3
- package/esm2022/share-button/sc-share-button.component.mjs +0 -35
- package/esm2022/share-button/sc-share-button.module.mjs +0 -22
- package/esm2022/snabcentr-client-ui.mjs +0 -5
- package/esm2022/user/index.mjs +0 -6
- package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +0 -74
- package/esm2022/user/sc-user.module.mjs +0 -86
- package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +0 -121
- package/esm2022/user/user-managers/sc-user-managers.component.mjs +0 -40
- package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +0 -105
- package/esm2022/validators/index.mjs +0 -7
- package/esm2022/validators/sc-at-least-one-required-validator.mjs +0 -25
- package/esm2022/validators/sc-bic-validator.mjs +0 -10
- package/esm2022/validators/sc-correspondent-account-validator.mjs +0 -10
- package/esm2022/validators/sc-password-confirm-matching-validator.mjs +0 -17
- package/esm2022/validators/sc-phone-validator.mjs +0 -14
- package/esm2022/validators/step-validator.mjs +0 -18
- package/esm2022/verification/index.mjs +0 -3
- package/esm2022/verification/sc-verification.module.mjs +0 -86
- package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +0 -259
- package/feedback/feedback-form/sc-feedback-form.component.d.ts +0 -163
- package/feedback/gratitude/sc-gratitude.component.d.ts +0 -20
- package/feedback/index.d.ts +0 -3
- package/feedback/interfaces/index.d.ts +0 -1
- package/feedback/interfaces/sc-feedback-form-config.d.ts +0 -23
- package/files/directives/index.d.ts +0 -2
- package/files/directives/tree-top.directive.d.ts +0 -33
- package/files/directives/tree.directive.d.ts +0 -35
- package/files/file-tree-item/file-tree-item.component.d.ts +0 -9
- package/files/files-and-documents/files-and-documents.component.d.ts +0 -27
- package/files/files-and-documents.module.d.ts +0 -17
- package/files/index.d.ts +0 -5
- package/files/interfaces/tree-node.d.ts +0 -29
- package/files/services/index.d.ts +0 -2
- package/files/services/tree-icon.service.d.ts +0 -23
- package/files/services/tree-loader.service.d.ts +0 -43
- package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +0 -78
- package/form-fields/form-fields.module.d.ts +0 -18
- package/form-fields/index.d.ts +0 -3
- package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +0 -73
- package/icons/index.d.ts +0 -1
- package/icons/sc-client-ui-icons-name.d.ts +0 -4
- package/index.d.ts +0 -5
- package/loader/index.d.ts +0 -1
- package/loader/sc-i-loader.d.ts +0 -9
- package/masks/index.d.ts +0 -7
- package/masks/sc-account-number-mask.d.ts +0 -5
- package/masks/sc-bic-mask.d.ts +0 -5
- package/masks/sc-correspondent-account-mask.d.ts +0 -5
- package/masks/sc-inn-mask.d.ts +0 -9
- package/masks/sc-kpp-mask.d.ts +0 -5
- package/masks/sc-okpo-mask.d.ts +0 -9
- package/masks/sc-phone-verification-code-mask.d.ts +0 -5
- package/methods/index.d.ts +0 -1
- package/methods/sc-get-current-route.d.ts +0 -8
- package/models/i-sc-image.d.ts +0 -17
- package/models/index.d.ts +0 -1
- package/news/index.d.ts +0 -3
- package/news/news-card/sc-news-card.component.d.ts +0 -22
- package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +0 -16
- package/news/sc-news.module.d.ts +0 -16
- package/noindex-wrapper/directives/index.d.ts +0 -1
- package/noindex-wrapper/directives/sc-noindex.directive.d.ts +0 -29
- package/noindex-wrapper/index.d.ts +0 -2
- package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +0 -9
- package/order/directives/index.d.ts +0 -2
- package/order/directives/sc-order-accessor.directive.d.ts +0 -13
- package/order/directives/sc-order-options.d.ts +0 -14
- package/order/draft/sc-draft.component.d.ts +0 -63
- package/order/index.d.ts +0 -9
- package/order/models/sc-i-cart-items-by-direction.d.ts +0 -25
- package/order/order-item/sc-order-item.component.d.ts +0 -39
- package/order/order-items-list/sc-order-items-list.component.d.ts +0 -109
- package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +0 -58
- package/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.d.ts +0 -55
- package/order/sc-order.module.d.ts +0 -18
- package/order/sc-payment-status/sc-payment-status.component.d.ts +0 -25
- package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +0 -22
- package/pages/frequently-asked-questions/sc-page-size-options.d.ts +0 -5
- package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +0 -28
- package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +0 -79
- package/pages/index.d.ts +0 -6
- package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +0 -17
- package/pages/privacy-policy/sc-privacy-policy.component.d.ts +0 -17
- package/pages/public-offer/sc-public-offer.component.d.ts +0 -22
- package/pipes/index.d.ts +0 -2
- package/pipes/sc-format-date.d.ts +0 -20
- package/pipes/sc-phone-format.d.ts +0 -21
- package/profile/index.d.ts +0 -2
- package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +0 -126
- package/profile/sc-profile.module.d.ts +0 -23
- package/providers/date-value-transformer/index.d.ts +0 -3
- package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +0 -9
- package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +0 -16
- package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +0 -22
- package/providers/index.d.ts +0 -15
- package/providers/sc-allow-select-terminated.d.ts +0 -5
- package/providers/sc-banner-duration.d.ts +0 -5
- package/providers/sc-country-ids.d.ts +0 -5
- package/providers/sc-date-formatter.d.ts +0 -6
- package/providers/sc-date-value-transformer.d.ts +0 -5
- package/providers/sc-debounce-time-default.d.ts +0 -5
- package/providers/sc-dialog-service.providers.d.ts +0 -45
- package/providers/sc-help-notification-close.d.ts +0 -6
- package/providers/sc-help-notification-limit.d.ts +0 -5
- package/providers/sc-hidden-print-elements.token.d.ts +0 -6
- package/providers/sc-max-files-in-form-input.d.ts +0 -5
- package/providers/sc-notify-when-in-stock-required-fields.d.ts +0 -5
- package/providers/sc-page-size-options.d.ts +0 -5
- package/providers/sc-user-providers.d.ts +0 -21
- package/providers/sc-verification-code-timeout.d.ts +0 -5
- package/public-api.d.ts +0 -34
- package/qrcode/index.d.ts +0 -2
- package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +0 -37
- package/qrcode/sc-qrcode.module.d.ts +0 -14
- package/samples/index.d.ts +0 -4
- package/samples/interfaces/index.d.ts +0 -2
- package/samples/interfaces/sc-i-preview-sample.d.ts +0 -56
- package/samples/interfaces/sc-preview-mosquito-config.d.ts +0 -62
- package/samples/preview-sample/sc-preview-sample.component.d.ts +0 -30
- package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +0 -50
- package/samples/sc-sample.module.d.ts +0 -19
- package/services/index.d.ts +0 -2
- package/services/print.service.d.ts +0 -31
- package/services/sc-help-notification.service.d.ts +0 -70
- package/share-button/index.d.ts +0 -2
- package/share-button/sc-share-button.component.d.ts +0 -22
- package/share-button/sc-share-button.module.d.ts +0 -12
- package/user/index.d.ts +0 -5
- package/user/reset-user-password/sc-reset-user-password.component.d.ts +0 -46
- package/user/sc-user.module.d.ts +0 -24
- package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +0 -63
- package/user/user-managers/sc-user-managers.component.d.ts +0 -23
- package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +0 -53
- package/validators/index.d.ts +0 -6
- package/validators/sc-at-least-one-required-validator.d.ts +0 -10
- package/validators/sc-bic-validator.d.ts +0 -8
- package/validators/sc-correspondent-account-validator.d.ts +0 -8
- package/validators/sc-password-confirm-matching-validator.d.ts +0 -8
- package/validators/sc-phone-validator.d.ts +0 -5
- package/validators/step-validator.d.ts +0 -8
- package/verification/index.d.ts +0 -2
- package/verification/sc-verification.module.d.ts +0 -21
- package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +0 -145
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, DestroyRef, inject, model, output } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
-
import { SC_ORDER_LOADER, ScOrderDraftsService, scOrderIsLoaded, ScRouteKeys, ScSeoService } from '@snabcentr/client-core';
|
|
5
|
-
import { TuiButton, TuiDialogService, TuiIcons } from '@taiga-ui/core';
|
|
6
|
-
import { TUI_CONFIRM } from '@taiga-ui/kit';
|
|
7
|
-
import { distinctUntilChanged, filter, map, noop, switchMap } from 'rxjs';
|
|
8
|
-
import { ScOrderAccessorDirective } from '../directives/sc-order-accessor.directive';
|
|
9
|
-
import { ScOrderItemsListByDirectionsComponent } from '../order-items-list-by-directions/sc-order-items-list-by-directions.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
/**
|
|
12
|
-
* Компонент страницы черновика заказа (аналог корзины для одного черновика).
|
|
13
|
-
*/
|
|
14
|
-
export class ScDraftComponent {
|
|
15
|
-
constructor() {
|
|
16
|
-
/**
|
|
17
|
-
* Сервис маршрутизации.
|
|
18
|
-
*/
|
|
19
|
-
this.router = inject(Router);
|
|
20
|
-
/**
|
|
21
|
-
* Сервис предоставляющий доступ к данным о маршруте.
|
|
22
|
-
*/
|
|
23
|
-
this.route = inject(ActivatedRoute);
|
|
24
|
-
/**
|
|
25
|
-
* Сервис для работы с черновиками заказов.
|
|
26
|
-
*/
|
|
27
|
-
this.draftsService = inject(ScOrderDraftsService);
|
|
28
|
-
/**
|
|
29
|
-
* Сигнал с данными текущего черновика заказа (из параметра orderId в URL).
|
|
30
|
-
*/
|
|
31
|
-
this.draft = model(null);
|
|
32
|
-
/**
|
|
33
|
-
* Идентификаторы выбранных позиций.
|
|
34
|
-
*/
|
|
35
|
-
this.selectedItemsIds = model([]);
|
|
36
|
-
/**
|
|
37
|
-
* Источник события удаления или отмены заказа.
|
|
38
|
-
*/
|
|
39
|
-
this.deleteEvent = output();
|
|
40
|
-
/**
|
|
41
|
-
* Сервис для работы с диалоговыми окнами.
|
|
42
|
-
*/
|
|
43
|
-
this.dialogService = inject(TuiDialogService);
|
|
44
|
-
/**
|
|
45
|
-
* Текущий ключ маршрута.
|
|
46
|
-
*/
|
|
47
|
-
this.isDraftPage = toSignal(this.route.data.pipe(map((data) => data['routes_key'] === ScRouteKeys.draft), distinctUntilChanged()), { initialValue: false });
|
|
48
|
-
/**
|
|
49
|
-
* Ссылка для автоматического управления уничтожением зависимостей.
|
|
50
|
-
*/
|
|
51
|
-
this.destroyRef = inject(DestroyRef);
|
|
52
|
-
/**
|
|
53
|
-
* Сервис установки SEO-данных приложения.
|
|
54
|
-
*/
|
|
55
|
-
this.seoService = inject(ScSeoService);
|
|
56
|
-
}
|
|
57
|
-
/** @inheritDoc */
|
|
58
|
-
ngOnInit() {
|
|
59
|
-
if (!this.draft()) {
|
|
60
|
-
this.draftsService
|
|
61
|
-
.get$(Number.parseInt(this.route.snapshot.paramMap.get('orderId') ?? '', 10))
|
|
62
|
-
.pipe(filter(scOrderIsLoaded), takeUntilDestroyed(this.destroyRef))
|
|
63
|
-
.subscribe((draft) => {
|
|
64
|
-
this.draft.set(draft);
|
|
65
|
-
this.seoService.setByDefaultAsNoIndexed('Черновики заказов');
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Переход к оформлению заказа по выбранному направлению продаж.
|
|
71
|
-
*
|
|
72
|
-
* @param direction Группа позиций по направлению продаж.
|
|
73
|
-
*/
|
|
74
|
-
goToNewOrder(direction) {
|
|
75
|
-
const ids = this.selectedItemsIds().filter((id) => direction.items.some((item) => item.id === id));
|
|
76
|
-
this.router.navigate(['orders', 'new', this.draft()?.id, direction.direction.id, 'draft'], { queryParams: { itemsIds: ids } }).catch(noop);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Удаляет черновик и перенаправляет к списку черновиков.
|
|
80
|
-
*/
|
|
81
|
-
clearDraft() {
|
|
82
|
-
const { id } = this.draft() ?? {};
|
|
83
|
-
if (!id) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.dialogService
|
|
87
|
-
.open(TUI_CONFIRM, {
|
|
88
|
-
label: `Удалить черновик №${id}?`,
|
|
89
|
-
data: {
|
|
90
|
-
content: `Это действие удалит черновик №${id}.`,
|
|
91
|
-
yes: 'Да, удалить',
|
|
92
|
-
no: 'Нет, оставить',
|
|
93
|
-
},
|
|
94
|
-
})
|
|
95
|
-
.pipe(filter(Boolean), switchMap(() => this.draftsService.delete$(id)), takeUntilDestroyed(this.destroyRef))
|
|
96
|
-
.subscribe(() => {
|
|
97
|
-
this.deleteEvent.emit();
|
|
98
|
-
this.router.navigate(['/drafts']).catch(noop);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDraftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
102
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScDraftComponent, isStandalone: true, selector: "sc-draft", inputs: { draft: { classPropertyName: "draft", publicName: "draft", isSignal: true, isRequired: false, transformFunction: null }, selectedItemsIds: { classPropertyName: "selectedItemsIds", publicName: "selectedItemsIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { draft: "draftChange", selectedItemsIds: "selectedItemsIdsChange", deleteEvent: "deleteEvent" }, providers: [
|
|
103
|
-
{
|
|
104
|
-
provide: SC_ORDER_LOADER,
|
|
105
|
-
useExisting: ScOrderDraftsService,
|
|
106
|
-
},
|
|
107
|
-
], ngImport: i0, template: "@let items = draft()?.products;\n\n@if (items) {\n <div class=\"flex flex-col gap-12\">\n <div class=\"flex flex-col gap-5\">\n @if (items.length) {\n <sc-order-items-list-by-directions\n scOrder\n [orderId]=\"draft()?.id\"\n [items]=\"items\"\n [editable]=\"isDraftPage()\"\n [selectable]=\"true\"\n (selectedItemsIdsChange)=\"selectedItemsIds.set($event)\"\n (continueClick)=\"goToNewOrder($event)\"\n >\n <div\n footerActions\n class=\"flex gap-2\"\n >\n <button\n tuiButton\n appearance=\"secondary\"\n (click)=\"clearDraft()\"\n iconStart=\"@tui.trash-2\"\n >\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\n </button>\n </div>\n </sc-order-items-list-by-directions>\n } @else {\n <p class=\"text-base font-bold\">\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u043F\u0443\u0441\u0442.</p>\n <div\n footerActions\n class=\"flex gap-2\"\n >\n <button\n tuiButton\n appearance=\"secondary\"\n (click)=\"clearDraft()\"\n iconStart=\"@tui.trash-2\"\n >\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\n </button>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"flex flex-col gap-12\">\n <div class=\"flex flex-col gap-5\">\n @for (item of [1, 2, 3, 4]; track item) {\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n }\n <div class=\"flex gap-2\">\n <div class=\"tui-skeleton h-10 w-40 rounded-md\"></div>\n <div class=\"tui-skeleton h-10 w-36 rounded-md\"></div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: ScOrderItemsListByDirectionsComponent, selector: "sc-order-items-list-by-directions", inputs: ["items", "selectable", "editable", "showContinueButton", "continueButtonText", "selectedItemsIds"], outputs: ["continueClick", "selectedItemsIdsChange"] }, { kind: "directive", type: ScOrderAccessorDirective, selector: "[scOrder]", inputs: ["orderId"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
108
|
-
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDraftComponent, decorators: [{
|
|
110
|
-
type: Component,
|
|
111
|
-
args: [{ standalone: true, selector: 'sc-draft', imports: [ScOrderItemsListByDirectionsComponent, ScOrderAccessorDirective, TuiButton, TuiIcons], providers: [
|
|
112
|
-
{
|
|
113
|
-
provide: SC_ORDER_LOADER,
|
|
114
|
-
useExisting: ScOrderDraftsService,
|
|
115
|
-
},
|
|
116
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let items = draft()?.products;\n\n@if (items) {\n <div class=\"flex flex-col gap-12\">\n <div class=\"flex flex-col gap-5\">\n @if (items.length) {\n <sc-order-items-list-by-directions\n scOrder\n [orderId]=\"draft()?.id\"\n [items]=\"items\"\n [editable]=\"isDraftPage()\"\n [selectable]=\"true\"\n (selectedItemsIdsChange)=\"selectedItemsIds.set($event)\"\n (continueClick)=\"goToNewOrder($event)\"\n >\n <div\n footerActions\n class=\"flex gap-2\"\n >\n <button\n tuiButton\n appearance=\"secondary\"\n (click)=\"clearDraft()\"\n iconStart=\"@tui.trash-2\"\n >\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\n </button>\n </div>\n </sc-order-items-list-by-directions>\n } @else {\n <p class=\"text-base font-bold\">\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u043F\u0443\u0441\u0442.</p>\n <div\n footerActions\n class=\"flex gap-2\"\n >\n <button\n tuiButton\n appearance=\"secondary\"\n (click)=\"clearDraft()\"\n iconStart=\"@tui.trash-2\"\n >\n \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\n </button>\n </div>\n }\n </div>\n </div>\n} @else {\n <div class=\"flex flex-col gap-12\">\n <div class=\"flex flex-col gap-5\">\n @for (item of [1, 2, 3, 4]; track item) {\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n }\n <div class=\"flex gap-2\">\n <div class=\"tui-skeleton h-10 w-40 rounded-md\"></div>\n <div class=\"tui-skeleton h-10 w-36 rounded-md\"></div>\n </div>\n </div>\n </div>\n}\n" }]
|
|
117
|
-
}] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZHJhZnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL29yZGVyL2RyYWZ0L3NjLWRyYWZ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9kcmFmdC9zYy1kcmFmdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixvQkFBb0IsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtFQUErRSxDQUFDOztBQUV0STs7R0FFRztBQWNILE1BQU0sT0FBTyxnQkFBZ0I7SUFiN0I7UUFjSTs7V0FFRztRQUNjLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekM7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RTtnQkFDRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsR0FBRztnQkFDL0MsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEVBQUUsRUFBRSxlQUFlO2FBQ3RCO1NBQ0osQ0FBQzthQUNELElBQUksQ0FDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQy9DLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDdEM7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0E3R1EsZ0JBQWdCO21HQUFoQixnQkFBZ0IsK2JBUmQ7WUFDUDtnQkFDSSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLG9CQUFvQjthQUNwQztTQUNKLDBCQ3pCTCw0NUVBNERBLDRDRHpDYyxxQ0FBcUMsaVBBQUUsd0JBQXdCLDJFQUFFLFNBQVM7OzRGQVMzRSxnQkFBZ0I7a0JBYjVCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLFVBQVUsV0FFWCxDQUFDLHFDQUFxQyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsYUFDcEY7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFdBQVcsRUFBRSxvQkFBb0I7eUJBQ3BDO3FCQUNKLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBtb2RlbCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNDX09SREVSX0xPQURFUiwgU2NPcmRlckRyYWZ0LCBTY09yZGVyRHJhZnRzU2VydmljZSwgc2NPcmRlcklzTG9hZGVkLCBTY1JvdXRlS2V5cywgU2NTZW9TZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBUdWlCdXR0b24sIFR1aURpYWxvZ1NlcnZpY2UsIFR1aUljb25zIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVFVJX0NPTkZJUk0gfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbm9vcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjT3JkZXJBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2Mtb3JkZXItYWNjZXNzb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNjT3JkZXJJdGVtc0J5RGlyZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3NjLWktY2FydC1pdGVtcy1ieS1kaXJlY3Rpb24nO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW1zTGlzdEJ5RGlyZWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWl0ZW1zLWxpc3QtYnktZGlyZWN0aW9ucy9zYy1vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMuY29tcG9uZW50JztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YHRgtGA0LDQvdC40YbRiyDRh9C10YDQvdC+0LLQuNC60LAg0LfQsNC60LDQt9CwICjQsNC90LDQu9C+0LMg0LrQvtGA0LfQuNC90Ysg0LTQu9GPINC+0LTQvdC+0LPQviDRh9C10YDQvdC+0LLQuNC60LApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2MtZHJhZnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1kcmFmdC5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1NjT3JkZXJJdGVtc0xpc3RCeURpcmVjdGlvbnNDb21wb25lbnQsIFNjT3JkZXJBY2Nlc3NvckRpcmVjdGl2ZSwgVHVpQnV0dG9uLCBUdWlJY29uc10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNDX09SREVSX0xPQURFUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTY09yZGVyRHJhZnRzU2VydmljZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0RyYWZ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RidC40Lkg0LTQvtGB0YLRg9C/INC6INC00LDQvdC90YvQvCDQviDQvNCw0YDRiNGA0YPRgtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINGH0LXRgNC90L7QstC40LrQsNC80Lgg0LfQsNC60LDQt9C+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcmFmdHNTZXJ2aWNlID0gaW5qZWN0KFNjT3JkZXJEcmFmdHNTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDRgSDQtNCw0L3QvdGL0LzQuCDRgtC10LrRg9GJ0LXQs9C+INGH0LXRgNC90L7QstC40LrQsCDQt9Cw0LrQsNC30LAgKNC40Lcg0L/QsNGA0LDQvNC10YLRgNCwIG9yZGVySWQg0LIgVVJMKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZHJhZnQgPSBtb2RlbDxTY09yZGVyRHJhZnQgfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0Ysg0LLRi9Cx0YDQsNC90L3Ri9GFINC/0L7Qt9C40YbQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZEl0ZW1zSWRzID0gbW9kZWw8c3RyaW5nW10+KFtdKTtcblxuICAgIC8qKlxuICAgICAqINCY0YHRgtC+0YfQvdC40Log0YHQvtCx0YvRgtC40Y8g0YPQtNCw0LvQtdC90LjRjyDQuNC70Lgg0L7RgtC80LXQvdGLINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlRXZlbnQgPSBvdXRwdXQoKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC00LjQsNC70L7Qs9C+0LLRi9C80Lgg0L7QutC90LDQvNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZSA9IGluamVjdDxUdWlEaWFsb2dTZXJ2aWNlPihUdWlEaWFsb2dTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCi0LXQutGD0YnQuNC5INC60LvRjtGHINC80LDRgNGI0YDRg9GC0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRHJhZnRQYWdlID0gdG9TaWduYWwoXG4gICAgICAgIHRoaXMucm91dGUuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKChkYXRhKSA9PiAoZGF0YVsncm91dGVzX2tleSddIGFzIFNjUm91dGVLZXlzKSA9PT0gU2NSb3V0ZUtleXMuZHJhZnQpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICB7IGluaXRpYWxWYWx1ZTogZmFsc2UgfVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0LTQu9GPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LPQviDRg9C/0YDQsNCy0LvQtdC90LjRjyDRg9C90LjRh9GC0L7QttC10L3QuNC10Lwg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9GB0YLQsNC90L7QstC60LggU0VPLdC00LDQvdC90YvRhSDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlb1NlcnZpY2U6IFNjU2VvU2VydmljZSA9IGluamVjdChTY1Nlb1NlcnZpY2UpO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZHJhZnQoKSkge1xuICAgICAgICAgICAgdGhpcy5kcmFmdHNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldCQoTnVtYmVyLnBhcnNlSW50KHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdvcmRlcklkJykgPz8gJycsIDEwKSlcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoc2NPcmRlcklzTG9hZGVkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZHJhZnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFmdC5zZXQoZHJhZnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlb1NlcnZpY2Uuc2V0QnlEZWZhdWx0QXNOb0luZGV4ZWQoJ9Cn0LXRgNC90L7QstC40LrQuCDQt9Cw0LrQsNC30L7QsicpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRhdC+0LQg0Log0L7RhNC+0YDQvNC70LXQvdC40Y4g0LfQsNC60LDQt9CwINC/0L4g0LLRi9Cx0YDQsNC90L3QvtC80YMg0L3QsNC/0YDQsNCy0LvQtdC90LjRjiDQv9GA0L7QtNCw0LYuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGlyZWN0aW9uINCT0YDRg9C/0L/QsCDQv9C+0LfQuNGG0LjQuSDQv9C+INC90LDQv9GA0LDQstC70LXQvdC40Y4g0L/RgNC+0LTQsNC2LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnb1RvTmV3T3JkZXIoZGlyZWN0aW9uOiBTY09yZGVySXRlbXNCeURpcmVjdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBpZHMgPSB0aGlzLnNlbGVjdGVkSXRlbXNJZHMoKS5maWx0ZXIoKGlkKSA9PiBkaXJlY3Rpb24uaXRlbXMuc29tZSgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpKTtcblxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ29yZGVycycsICduZXcnLCB0aGlzLmRyYWZ0KCk/LmlkLCBkaXJlY3Rpb24uZGlyZWN0aW9uLmlkLCAnZHJhZnQnXSwgeyBxdWVyeVBhcmFtczogeyBpdGVtc0lkczogaWRzIH0gfSkuY2F0Y2gobm9vcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YfQtdGA0L3QvtCy0LjQuiDQuCDQv9C10YDQtdC90LDQv9GA0LDQstC70Y/QtdGCINC6INGB0L/QuNGB0LrRgyDRh9C10YDQvdC+0LLQuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY2xlYXJEcmFmdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBpZCB9ID0gdGhpcy5kcmFmdCgpID8/IHt9O1xuXG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48Ym9vbGVhbj4oVFVJX0NPTkZJUk0sIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogYNCj0LTQsNC70LjRgtGMINGH0LXRgNC90L7QstC40Log4oSWJHtpZH0/YCxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGDQrdGC0L4g0LTQtdC50YHRgtCy0LjQtSDRg9C00LDQu9C40YIg0YfQtdGA0L3QvtCy0LjQuiDihJYke2lkfS5gLFxuICAgICAgICAgICAgICAgICAgICB5ZXM6ICfQlNCwLCDRg9C00LDQu9C40YLRjCcsXG4gICAgICAgICAgICAgICAgICAgIG5vOiAn0J3QtdGCLCDQvtGB0YLQsNCy0LjRgtGMJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kcmFmdHNTZXJ2aWNlLmRlbGV0ZSQoaWQpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZHJhZnRzJ10pLmNhdGNoKG5vb3ApO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGxldCBpdGVtcyA9IGRyYWZ0KCk/LnByb2R1Y3RzO1xuXG5AaWYgKGl0ZW1zKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01XCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxzYy1vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgc2NPcmRlclxuICAgICAgICAgICAgICAgICAgICBbb3JkZXJJZF09XCJkcmFmdCgpPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJpc0RyYWZ0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEl0ZW1zSWRzQ2hhbmdlKT1cInNlbGVjdGVkSXRlbXNJZHMuc2V0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoY29udGludWVDbGljayk9XCJnb1RvTmV3T3JkZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyRHJhZnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS50cmFzaC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDQo9C00LDQu9C40YLRjCDRh9C10YDQvdC+0LLQuNC6XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9zYy1vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnM+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj7Qp9C10YDQvdC+0LLQuNC6INC/0YPRgdGCLjwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGZvb3RlckFjdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdhcC0yXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJEcmFmdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkudHJhc2gtMlwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgINCj0LTQsNC70LjRgtGMINGH0LXRgNC90L7QstC40LpcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01XCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIFsxLCAyLCAzLCA0XTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dWktc2tlbGV0b24gZmxleCBoLVs4LjI1cmVtXSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGxcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR1aS1za2VsZXRvbiBoLTEwIHctNDAgcm91bmRlZC1tZFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dWktc2tlbGV0b24gaC0xMCB3LTM2IHJvdW5kZWQtbWRcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
package/esm2022/order/index.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './directives';
|
|
2
|
-
export * from './models/sc-i-cart-items-by-direction';
|
|
3
|
-
export * from './order-item/sc-order-item.component';
|
|
4
|
-
export * from './order-items-list/sc-order-items-list.component';
|
|
5
|
-
export * from './order-items-list-by-directions/sc-order-items-list-by-directions.component';
|
|
6
|
-
export * from './order-items-list-by-stock/sc-order-items-list-by-stock.component';
|
|
7
|
-
export * from './draft/sc-draft.component';
|
|
8
|
-
export * from './sc-payment-status/sc-payment-status.component';
|
|
9
|
-
export * from './sc-order.module';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3NjLWktY2FydC1pdGVtcy1ieS1kaXJlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlci1pdGVtL3NjLW9yZGVyLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItaXRlbXMtbGlzdC9zYy1vcmRlci1pdGVtcy1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyLWl0ZW1zLWxpc3QtYnktZGlyZWN0aW9ucy9zYy1vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItaXRlbXMtbGlzdC1ieS1zdG9jay9zYy1vcmRlci1pdGVtcy1saXN0LWJ5LXN0b2NrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWZ0L3NjLWRyYWZ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXBheW1lbnQtc3RhdHVzL3NjLXBheW1lbnQtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLW9yZGVyLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Группа позиций заказа по направлению продаж.
|
|
3
|
-
*/
|
|
4
|
-
export class ScOrderItemsByDirection {
|
|
5
|
-
/**
|
|
6
|
-
* @param direction Направление продаж.
|
|
7
|
-
* @param allItems Все элементы заказа.
|
|
8
|
-
*/
|
|
9
|
-
constructor(direction, allItems) {
|
|
10
|
-
this.direction = direction;
|
|
11
|
-
this.items = allItems.filter((item) => item.salesDirection === direction.id);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Получает список позиций заказа по идентификаторам.
|
|
15
|
-
*
|
|
16
|
-
* @param itemsIds Идентификаторы позиций.
|
|
17
|
-
*/
|
|
18
|
-
getItemsByIds(itemsIds) {
|
|
19
|
-
return this.items.filter((item) => itemsIds.includes(item.id));
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jYXJ0LWl0ZW1zLWJ5LWRpcmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9tb2RlbHMvc2MtaS1jYXJ0LWl0ZW1zLWJ5LWRpcmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFXaEM7OztPQUdHO0lBQ0gsWUFBWSxTQUE0QixFQUFFLFFBQWdDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsUUFBa0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY0lTYWxlc0RpcmVjdGlvbiwgU2NPcmRlckl0ZW0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcblxuLyoqXG4gKiDQk9GA0YPQv9C/0LAg0L/QvtC30LjRhtC40Lkg0LfQsNC60LDQt9CwINC/0L4g0L3QsNC/0YDQsNCy0LvQtdC90LjRjiDQv9GA0L7QtNCw0LYuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY09yZGVySXRlbXNCeURpcmVjdGlvbiB7XG4gICAgLyoqXG4gICAgICog0J3QsNC/0YDQsNCy0LvQtdC90LjQtSDQv9GA0L7QtNCw0LYg0LjQu9C4IHVuZGVmaW5lZCDQtNC70Y8g0L/QvtC30LjRhtC40Lkg0LHQtdC3INC90LDQv9GA0LDQstC70LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpcmVjdGlvbjogU2NJU2FsZXNEaXJlY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0L/QvtC30LjRhtC40Lkg0LfQsNC60LDQt9CwINCyINC00LDQvdC90L7QuSDQs9GA0YPQv9C/0LUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zOiBTY09yZGVySXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbiDQndCw0L/RgNCw0LLQu9C10L3QuNC1INC/0YDQvtC00LDQti5cbiAgICAgKiBAcGFyYW0gYWxsSXRlbXMg0JLRgdC1INGN0LvQtdC80LXQvdGC0Ysg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGRpcmVjdGlvbjogU2NJU2FsZXNEaXJlY3Rpb24sIGFsbEl0ZW1zOiByZWFkb25seSBTY09yZGVySXRlbVtdKSB7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICB0aGlzLml0ZW1zID0gYWxsSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNhbGVzRGlyZWN0aW9uID09PSBkaXJlY3Rpb24uaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9GD0YfQsNC10YIg0YHQv9C40YHQvtC6INC/0L7Qt9C40YbQuNC5INC30LDQutCw0LfQsCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LDQvC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtc0lkcyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGLINC/0L7Qt9C40YbQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJdGVtc0J5SWRzKGl0ZW1zSWRzOiBzdHJpbmdbXSk6IFNjT3JkZXJJdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW1zSWRzLmluY2x1ZGVzKGl0ZW0uaWQpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, inject, input, output, signal } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { SEARCH_TERM_PROVIDERS } from '@snabcentr/client-core';
|
|
6
|
-
import { TuiCurrencyPipe } from '@taiga-ui/addon-commerce';
|
|
7
|
-
import { TuiAutoFocus } from '@taiga-ui/cdk';
|
|
8
|
-
import { TuiAppearance, TuiButton, TuiFormatNumberPipe, TuiHint, TuiHintDirective, TuiHintDriver, TuiHintHover, tuiHintOptionsProvider, TuiHintPosition, TuiIcon, TuiLink, tuiTextfieldOptionsProvider, } from '@taiga-ui/core';
|
|
9
|
-
import { TuiButtonLoading, TuiHighlight, TuiPreview, TuiPreviewDialogService } from '@taiga-ui/kit';
|
|
10
|
-
import { TuiTextfieldControllerModule } from '@taiga-ui/legacy';
|
|
11
|
-
import { CostWithDiscountComponent, ScHoverImageCarouselComponent, ScInputQuantityComponent, ScPriceWarehouseStockComponent } from '../../catalog';
|
|
12
|
-
import { AbstractScPriceCard } from '../../directives';
|
|
13
|
-
import { ScPrintDirective } from '../../directives/print/sc-print.directive';
|
|
14
|
-
import { ScNoindexWrapperComponent } from '../../noindex-wrapper';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/common";
|
|
17
|
-
import * as i2 from "@taiga-ui/polymorpheus";
|
|
18
|
-
import * as i3 from "@angular/forms";
|
|
19
|
-
import * as i4 from "@taiga-ui/core";
|
|
20
|
-
import * as i5 from "@taiga-ui/kit";
|
|
21
|
-
/**
|
|
22
|
-
* Компонент карточки элемента корзины.
|
|
23
|
-
*/
|
|
24
|
-
export class ScOrderItemComponent extends AbstractScPriceCard {
|
|
25
|
-
constructor() {
|
|
26
|
-
super(...arguments);
|
|
27
|
-
/**
|
|
28
|
-
* Видимость подсказки про изменение размеров через конфигуратор.
|
|
29
|
-
*/
|
|
30
|
-
this.isConfiguratorHintVisible = signal(false);
|
|
31
|
-
/**
|
|
32
|
-
* Событие нажатия на кнопку редактирования конфигурации.
|
|
33
|
-
*/
|
|
34
|
-
this.clickSettings = output();
|
|
35
|
-
/**
|
|
36
|
-
* Сервис диалогового окна предварительного просмотра.
|
|
37
|
-
*/
|
|
38
|
-
this.previewDialogService = inject(TuiPreviewDialogService);
|
|
39
|
-
/**
|
|
40
|
-
* Признак, что необходимо отобразить элементы редактирования.
|
|
41
|
-
*/
|
|
42
|
-
this.isShowEditControls = input(true);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Отображает спецификацию.
|
|
46
|
-
*
|
|
47
|
-
* @param specificationPreviewReference Шаблон спецификации.
|
|
48
|
-
*/
|
|
49
|
-
showSpecification(specificationPreviewReference) {
|
|
50
|
-
this.previewDialogService.open(specificationPreviewReference).subscribe();
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Обрабатывает показ подсказки по размерам (синхронизация с подсветкой кнопки настроек).
|
|
54
|
-
*
|
|
55
|
-
* @param visible Признак видимости подсказки.
|
|
56
|
-
*/
|
|
57
|
-
configuratorHintVisible(visible) {
|
|
58
|
-
if (this.isShowEditControls()) {
|
|
59
|
-
this.isConfiguratorHintVisible.set(visible);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScOrderItemComponent, isStandalone: true, selector: "sc-order-item", inputs: { isShowEditControls: { classPropertyName: "isShowEditControls", publicName: "isShowEditControls", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickSettings: "clickSettings" }, providers: [
|
|
64
|
-
SEARCH_TERM_PROVIDERS,
|
|
65
|
-
tuiTextfieldOptionsProvider({
|
|
66
|
-
appearance: signal('textfield'),
|
|
67
|
-
}),
|
|
68
|
-
tuiHintOptionsProvider({ direction: 'top', showDelay: 100, hideDelay: 100 }),
|
|
69
|
-
], usesInheritance: true, ngImport: i0, template: "@if (product && orderItem) {\n <div class=\"@container relative flex w-full gap-4 rounded-xl p-1 text-body-s hover:bg-tui-background-neutral-1\">\n <sc-noindex-wrapper>\n @let isDisabled = product.isHidden || product.isNull;\n <sc-hover-image-carousel\n (click)=\"isDisabled ? null : clickCardEvent.emit()\"\n [images]=\"!isMobile ? getCardImagePreviewList(product) : [getCardImagePreview()]\"\n [isShowActions]=\"false\"\n class=\"aspect-square w-24 shrink-0 cursor-pointer self-start\"\n />\n <div class=\"flex w-full flex-col gap-y-1 gap-x-4 @5xl:flex-row @5xl:items-center @5xl:gap-5\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1\">\n <div\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </div>\n <div class=\"flex flex-col gap-1\">\n <a\n tuiLink\n [attr.href]=\"href ?? null\"\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n [class.disabled]=\"isDisabled\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n @if (product.supplierSku) {\n <span class=\"text-tui-text-02\"> \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }} </span>\n }\n @if (product.pack) {\n <div class=\"flex items-center gap-1 text-tui-text-02\">\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n @if (product.ignoreMinCountCheck) {\n <tui-icon\n icon=\"@tui.package\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xl text-tui-text-01 opacity-90\"\n />\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n }\n </div>\n }\n\n <sc-cost-with-discount\n scPrint=\"cost\"\n [product]=\"product\"\n />\n </div>\n @if (orderItem.specificationImgUrl) {\n <a\n tuiLink\n (click)=\"showSpecification(specificationPreview)\"\n [class.disabled]=\"isDisabled\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\n }\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"orderItem.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"orderItem.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n <div class=\"grid grid-cols-1 @lg:grid-cols-3 gap-2 @2xl:gap-4 @2xl:grid-rows-1\">\n <div class=\"grid grid-cols-1 items-center @lg:gap-2 @2xl:grid-cols-2 @lg:col-span-2\">\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430. -->\n @if (isShowEditControls() && showQuantityControl) {\n <!-- \u041F\u043E\u043B\u0435 \u0432\u0432\u043E\u0434\u0430 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043E\u0432\u0430\u0440\u0430. -->\n <sc-input-quantity\n #inputQuantity\n [tuiAutoFocus]=\"autoFocuseQuantityInput()\"\n [formControl]=\"quantityControl\"\n size=\"m\"\n [showCross]=\"false\"\n [isDisabled]=\"isDisabled\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"showLoader()\"\n (clickClearEvent)=\"clickClearEvent.emit(orderItem)\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n class=\"w-32 shrink-0\"\n />\n } @else {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n >\n <div class=\"!text-body-m text-start\">\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:\n <strong> {{ orderItem.quantity }} \u0448\u0442.</strong>\n </div>\n </button>\n }\n\n @let showAdditionalInfo = orderItem.configurator || orderItem.height || orderItem.length || orderItem.width || orderItem.marker;\n @if (showAdditionalInfo) {\n <div class=\"flex items-center gap-2 @lg:gap-3 max-w-min\">\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430. -->\n @if (isShowEditControls()) {\n <button\n tuiIconButton\n iconStart=\"@tui.settings\"\n [disabled]=\"isDisabled\"\n [loading]=\"showLoader()\"\n (click)=\"clickSettings.emit()\"\n size=\"s\"\n [appearance]=\"isConfiguratorHintVisible() ? 'primary' : 'secondary'\"\n class=\"shrink-0\"\n ></button>\n }\n\n <!-- \u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435. -->\n <div\n class=\"flex flex-col gap-x-1 text-tui-base-07\"\n [class.text-body-m]=\"!isShowEditControls()\"\n >\n @if (orderItem.marker) {\n <p>\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430: {{ orderItem.marker }}</p>\n }\n @if (orderItem.width) {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0448\u0438\u0440\u0438\u043D\u044B \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n class=\"text-body-s self-start whitespace-nowrap\"\n >\n \u0428\u0438\u0440\u0438\u043D\u0430: <span class=\"text-body-s-bold\">{{ orderItem.width }} \u043C.</span>\n </button>\n }\n @if (orderItem.height) {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u044B\u0441\u043E\u0442\u044B \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n class=\"text-body-s self-start whitespace-nowrap\"\n >\n \u0412\u044B\u0441\u043E\u0442\u0430: <span class=\"text-body-s-bold\">{{ orderItem.height }} \u043C.</span>\n </button>\n } @else if (orderItem.length) {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u0438\u043D\u044B \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n class=\"text-body-s self-start whitespace-nowrap\"\n >\n \u0414\u043B\u0438\u043D\u0430: <span class=\"text-body-s-bold\">{{ orderItem.length }} \u043C.</span>\n </button>\n }\n </div>\n </div>\n }\n </div>\n\n <!-- \u0421\u0443\u043C\u043C\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 \u0438 \u0441\u043A\u043B\u0430\u0434\u0441\u043A\u043E\u0435 \u043D\u0430\u043B\u0438\u0447\u0438\u0435. -->\n <div\n scPrint=\"cost\"\n class=\"flex min-w-[11rem] flex-col @lg:justify-end @2xl:!justify-center text-body-m\"\n >\n <p class=\"whitespace-nowrap\">\n \u0421\u0443\u043C\u043C\u0430:\n <strong> {{ orderItem.costRub | tuiFormatNumber: { precision: 2, decimalSeparator: '.', rounding: 'ceil' } | async }} {{ 'RUB' | tuiCurrency }}</strong>\n </p>\n <sc-price-warehouse-stock\n scPrint=\"defaultNoPrint\"\n [product]=\"product\"\n />\n </div>\n </div>\n </div>\n </sc-noindex-wrapper>\n </div>\n} @else {\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: TuiHighlight, selector: "[tuiHighlight]", inputs: ["tuiHighlight", "tuiHighlightColor"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "component", type: ScHoverImageCarouselComponent, selector: "sc-hover-image-carousel", inputs: ["images", "isShowActions", "productName"] }, { kind: "component", type: CostWithDiscountComponent, selector: "sc-cost-with-discount", inputs: ["product", "size"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "ignoreStepValidators", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "pipe", type: TuiCurrencyPipe, name: "tuiCurrency" }, { kind: "pipe", type: TuiFormatNumberPipe, name: "tuiFormatNumber" }, { kind: "component", type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable", "initialScale"] }, { kind: "directive", type: i5.TuiPreviewAction, selector: "[tuiPreviewAction]" }, { kind: "component", type: ScNoindexWrapperComponent, selector: "sc-noindex-wrapper" }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "directive", type: ScPrintDirective, selector: "[scPrint]", inputs: ["scPrint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemComponent, decorators: [{
|
|
72
|
-
type: Component,
|
|
73
|
-
args: [{ standalone: true, selector: 'sc-order-item', imports: [
|
|
74
|
-
CommonModule,
|
|
75
|
-
RouterModule,
|
|
76
|
-
TuiButton,
|
|
77
|
-
TuiIcon,
|
|
78
|
-
TuiTextfieldControllerModule,
|
|
79
|
-
FormsModule,
|
|
80
|
-
ReactiveFormsModule,
|
|
81
|
-
TuiHint,
|
|
82
|
-
TuiLink,
|
|
83
|
-
TuiHighlight,
|
|
84
|
-
TuiHintDriver,
|
|
85
|
-
TuiHintHover,
|
|
86
|
-
TuiHintPosition,
|
|
87
|
-
TuiHintDirective,
|
|
88
|
-
TuiAutoFocus,
|
|
89
|
-
ScHoverImageCarouselComponent,
|
|
90
|
-
CostWithDiscountComponent,
|
|
91
|
-
ScPriceWarehouseStockComponent,
|
|
92
|
-
ScInputQuantityComponent,
|
|
93
|
-
TuiCurrencyPipe,
|
|
94
|
-
TuiFormatNumberPipe,
|
|
95
|
-
TuiPreview,
|
|
96
|
-
ScNoindexWrapperComponent,
|
|
97
|
-
TuiAppearance,
|
|
98
|
-
TuiButtonLoading,
|
|
99
|
-
ScPrintDirective,
|
|
100
|
-
], providers: [
|
|
101
|
-
SEARCH_TERM_PROVIDERS,
|
|
102
|
-
tuiTextfieldOptionsProvider({
|
|
103
|
-
appearance: signal('textfield'),
|
|
104
|
-
}),
|
|
105
|
-
tuiHintOptionsProvider({ direction: 'top', showDelay: 100, hideDelay: 100 }),
|
|
106
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (product && orderItem) {\n <div class=\"@container relative flex w-full gap-4 rounded-xl p-1 text-body-s hover:bg-tui-background-neutral-1\">\n <sc-noindex-wrapper>\n @let isDisabled = product.isHidden || product.isNull;\n <sc-hover-image-carousel\n (click)=\"isDisabled ? null : clickCardEvent.emit()\"\n [images]=\"!isMobile ? getCardImagePreviewList(product) : [getCardImagePreview()]\"\n [isShowActions]=\"false\"\n class=\"aspect-square w-24 shrink-0 cursor-pointer self-start\"\n />\n <div class=\"flex w-full flex-col gap-y-1 gap-x-4 @5xl:flex-row @5xl:items-center @5xl:gap-5\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1\">\n <div\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </div>\n <div class=\"flex flex-col gap-1\">\n <a\n tuiLink\n [attr.href]=\"href ?? null\"\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n [class.disabled]=\"isDisabled\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n @if (product.supplierSku) {\n <span class=\"text-tui-text-02\"> \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }} </span>\n }\n @if (product.pack) {\n <div class=\"flex items-center gap-1 text-tui-text-02\">\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n @if (product.ignoreMinCountCheck) {\n <tui-icon\n icon=\"@tui.package\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xl text-tui-text-01 opacity-90\"\n />\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n }\n </div>\n }\n\n <sc-cost-with-discount\n scPrint=\"cost\"\n [product]=\"product\"\n />\n </div>\n @if (orderItem.specificationImgUrl) {\n <a\n tuiLink\n (click)=\"showSpecification(specificationPreview)\"\n [class.disabled]=\"isDisabled\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\n }\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"orderItem.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"orderItem.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n <div class=\"grid grid-cols-1 @lg:grid-cols-3 gap-2 @2xl:gap-4 @2xl:grid-rows-1\">\n <div class=\"grid grid-cols-1 items-center @lg:gap-2 @2xl:grid-cols-2 @lg:col-span-2\">\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430. -->\n @if (isShowEditControls() && showQuantityControl) {\n <!-- \u041F\u043E\u043B\u0435 \u0432\u0432\u043E\u0434\u0430 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043E\u0432\u0430\u0440\u0430. -->\n <sc-input-quantity\n #inputQuantity\n [tuiAutoFocus]=\"autoFocuseQuantityInput()\"\n [formControl]=\"quantityControl\"\n size=\"m\"\n [showCross]=\"false\"\n [isDisabled]=\"isDisabled\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"showLoader()\"\n (clickClearEvent)=\"clickClearEvent.emit(orderItem)\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n class=\"w-32 shrink-0\"\n />\n } @else {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n >\n <div class=\"!text-body-m text-start\">\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:\n <strong> {{ orderItem.quantity }} \u0448\u0442.</strong>\n </div>\n </button>\n }\n\n @let showAdditionalInfo = orderItem.configurator || orderItem.height || orderItem.length || orderItem.width || orderItem.marker;\n @if (showAdditionalInfo) {\n <div class=\"flex items-center gap-2 @lg:gap-3 max-w-min\">\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430. -->\n @if (isShowEditControls()) {\n <button\n tuiIconButton\n iconStart=\"@tui.settings\"\n [disabled]=\"isDisabled\"\n [loading]=\"showLoader()\"\n (click)=\"clickSettings.emit()\"\n size=\"s\"\n [appearance]=\"isConfiguratorHintVisible() ? 'primary' : 'secondary'\"\n class=\"shrink-0\"\n ></button>\n }\n\n <!-- \u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435. -->\n <div\n class=\"flex flex-col gap-x-1 text-tui-base-07\"\n [class.text-body-m]=\"!isShowEditControls()\"\n >\n @if (orderItem.marker) {\n <p>\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430: {{ orderItem.marker }}</p>\n }\n @if (orderItem.width) {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0448\u0438\u0440\u0438\u043D\u044B \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n class=\"text-body-s self-start whitespace-nowrap\"\n >\n \u0428\u0438\u0440\u0438\u043D\u0430: <span class=\"text-body-s-bold\">{{ orderItem.width }} \u043C.</span>\n </button>\n }\n @if (orderItem.height) {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u044B\u0441\u043E\u0442\u044B \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n class=\"text-body-s self-start whitespace-nowrap\"\n >\n \u0412\u044B\u0441\u043E\u0442\u0430: <span class=\"text-body-s-bold\">{{ orderItem.height }} \u043C.</span>\n </button>\n } @else if (orderItem.length) {\n <button\n [appearance]=\"isShowEditControls() ? 'action-grayscale' : ''\"\n tuiTheme=\"light\"\n tuiHint=\"\u0414\u043B\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0434\u043B\u0438\u043D\u044B \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0442\u043E\u0440\u043E\u043C\"\n (tuiHintVisible)=\"configuratorHintVisible($event)\"\n tuiLink\n [style.text-decoration-line]=\"isShowEditControls() ? 'underline' : 'none'\"\n [class.pointer-events-none]=\"!isShowEditControls()\"\n class=\"text-body-s self-start whitespace-nowrap\"\n >\n \u0414\u043B\u0438\u043D\u0430: <span class=\"text-body-s-bold\">{{ orderItem.length }} \u043C.</span>\n </button>\n }\n </div>\n </div>\n }\n </div>\n\n <!-- \u0421\u0443\u043C\u043C\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 \u0438 \u0441\u043A\u043B\u0430\u0434\u0441\u043A\u043E\u0435 \u043D\u0430\u043B\u0438\u0447\u0438\u0435. -->\n <div\n scPrint=\"cost\"\n class=\"flex min-w-[11rem] flex-col @lg:justify-end @2xl:!justify-center text-body-m\"\n >\n <p class=\"whitespace-nowrap\">\n \u0421\u0443\u043C\u043C\u0430:\n <strong> {{ orderItem.costRub | tuiFormatNumber: { precision: 2, decimalSeparator: '.', rounding: 'ceil' } | async }} {{ 'RUB' | tuiCurrency }}</strong>\n </p>\n <sc-price-warehouse-stock\n scPrint=\"defaultNoPrint\"\n [product]=\"product\"\n />\n </div>\n </div>\n </div>\n </sc-noindex-wrapper>\n </div>\n} @else {\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n}\n" }]
|
|
107
|
-
}] });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvb3JkZXItaXRlbS9zYy1vcmRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1pdGVtL3NjLW9yZGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW9CLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFDSCxhQUFhLEVBQ2IsU0FBUyxFQUVULG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixPQUFPLEVBQ1AsT0FBTyxFQUNQLDJCQUEyQixHQUM5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVsRTs7R0FFRztBQTBDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBekM3RDs7UUEwQ0k7O1dBRUc7UUFDZ0IsOEJBQXlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdEOztXQUVHO1FBQ2Esa0JBQWEsR0FBMkIsTUFBTSxFQUFFLENBQUM7UUFFakU7O1dBRUc7UUFDYyx5QkFBb0IsR0FBNEIsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFakc7O1dBRUc7UUFDYSx1QkFBa0IsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7S0FxQjdEO0lBbkJHOzs7O09BSUc7SUFDTyxpQkFBaUIsQ0FBQyw2QkFBNEQ7UUFDcEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sdUJBQXVCLENBQUMsT0FBZ0I7UUFDOUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7K0dBdkNRLG9CQUFvQjttR0FBcEIsb0JBQW9CLG9SQVRsQjtZQUNQLHFCQUFxQjtZQUNyQiwyQkFBMkIsQ0FBQztnQkFDeEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUM7YUFDbEMsQ0FBQztZQUNGLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUMvRSxpREN2RUwsdXlkQTBOQSwyQ0RwTFEsWUFBWSxtRkFDWixZQUFZLCtCQUNaLFNBQVMsb0lBQ1QsT0FBTyxvRkFDUCw0QkFBNEIsaUxBQzVCLFdBQVcsc0lBQ1gsbUJBQW1CLHVaQUVuQixPQUFPLDRGQUNQLFlBQVksMEdBS1osWUFBWSxxRkFDWiw2QkFBNkIsd0hBQzdCLHlCQUF5QiwrRkFDekIsOEJBQThCLG9JQUM5Qix3QkFBd0IsZ01BQ3hCLGVBQWUsK0NBQ2YsbUJBQW1CLDJRQUVuQix5QkFBeUIsK0RBRXpCLGdCQUFnQix1SEFDaEIsZ0JBQWdCOzs0RkFXWCxvQkFBb0I7a0JBekNoQyxTQUFTO2lDQUNNLElBQUksWUFDTixlQUFlLFdBRWhCO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixTQUFTO3dCQUNULE9BQU87d0JBQ1AsNEJBQTRCO3dCQUM1QixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLDZCQUE2Qjt3QkFDN0IseUJBQXlCO3dCQUN6Qiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFVBQVU7d0JBQ1YseUJBQXlCO3dCQUN6QixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3FCQUNuQixhQUNVO3dCQUNQLHFCQUFxQjt3QkFDckIsMkJBQTJCLENBQUM7NEJBQ3hCLFVBQVUsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDO3lCQUNsQyxDQUFDO3dCQUNGLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztxQkFDL0UsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBPdXRwdXRFbWl0dGVyUmVmLCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTRUFSQ0hfVEVSTV9QUk9WSURFUlMgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUN1cnJlbmN5UGlwZSB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZSc7XG5pbXBvcnQgeyBUdWlBdXRvRm9jdXMgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVHVpQXBwZWFyYW5jZSxcbiAgICBUdWlCdXR0b24sXG4gICAgVHVpRGlhbG9nQ29udGV4dCxcbiAgICBUdWlGb3JtYXROdW1iZXJQaXBlLFxuICAgIFR1aUhpbnQsXG4gICAgVHVpSGludERpcmVjdGl2ZSxcbiAgICBUdWlIaW50RHJpdmVyLFxuICAgIFR1aUhpbnRIb3ZlcixcbiAgICB0dWlIaW50T3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aUhpbnRQb3NpdGlvbixcbiAgICBUdWlJY29uLFxuICAgIFR1aUxpbmssXG4gICAgdHVpVGV4dGZpZWxkT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlIaWdobGlnaHQsIFR1aVByZXZpZXcsIFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeSc7XG5cbmltcG9ydCB7IENvc3RXaXRoRGlzY291bnRDb21wb25lbnQsIFNjSG92ZXJJbWFnZUNhcm91c2VsQ29tcG9uZW50LCBTY0lucHV0UXVhbnRpdHlDb21wb25lbnQsIFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NhdGFsb2cnO1xuaW1wb3J0IHsgQWJzdHJhY3RTY1ByaWNlQ2FyZCB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU2NQcmludERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHJpbnQvc2MtcHJpbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNjTm9pbmRleFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ub2luZGV4LXdyYXBwZXInO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQutCw0YDRgtC+0YfQutC4INGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1vcmRlci1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtb3JkZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uLFxuICAgICAgICBUdWlJY29uLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpSGludCxcbiAgICAgICAgVHVpTGluayxcbiAgICAgICAgVHVpSGlnaGxpZ2h0LFxuICAgICAgICBUdWlIaW50RHJpdmVyLFxuICAgICAgICBUdWlIaW50SG92ZXIsXG4gICAgICAgIFR1aUhpbnRQb3NpdGlvbixcbiAgICAgICAgVHVpSGludERpcmVjdGl2ZSxcbiAgICAgICAgVHVpQXV0b0ZvY3VzLFxuICAgICAgICBTY0hvdmVySW1hZ2VDYXJvdXNlbENvbXBvbmVudCxcbiAgICAgICAgQ29zdFdpdGhEaXNjb3VudENvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50LFxuICAgICAgICBTY0lucHV0UXVhbnRpdHlDb21wb25lbnQsXG4gICAgICAgIFR1aUN1cnJlbmN5UGlwZSxcbiAgICAgICAgVHVpRm9ybWF0TnVtYmVyUGlwZSxcbiAgICAgICAgVHVpUHJldmlldyxcbiAgICAgICAgU2NOb2luZGV4V3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgVHVpQXBwZWFyYW5jZSxcbiAgICAgICAgVHVpQnV0dG9uTG9hZGluZyxcbiAgICAgICAgU2NQcmludERpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBTRUFSQ0hfVEVSTV9QUk9WSURFUlMsXG4gICAgICAgIHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcih7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBzaWduYWwoJ3RleHRmaWVsZCcpLFxuICAgICAgICB9KSxcbiAgICAgICAgdHVpSGludE9wdGlvbnNQcm92aWRlcih7IGRpcmVjdGlvbjogJ3RvcCcsIHNob3dEZWxheTogMTAwLCBoaWRlRGVsYXk6IDEwMCB9KSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY09yZGVySXRlbUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0U2NQcmljZUNhcmQge1xuICAgIC8qKlxuICAgICAqINCS0LjQtNC40LzQvtGB0YLRjCDQv9C+0LTRgdC60LDQt9C60Lgg0L/RgNC+INC40LfQvNC10L3QtdC90LjQtSDRgNCw0LfQvNC10YDQvtCyINGH0LXRgNC10Lcg0LrQvtC90YTQuNCz0YPRgNCw0YLQvtGALlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NvbmZpZ3VyYXRvckhpbnRWaXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjbGlja1NldHRpbmdzOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQuNCw0LvQvtCz0L7QstC+0LPQviDQvtC60L3QsCDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQv9GA0L7RgdC80L7RgtGA0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmV2aWV3RGlhbG9nU2VydmljZTogVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UgPSBpbmplY3QoVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQvtGC0L7QsdGA0LDQt9C40YLRjCDRjdC70LXQvNC10L3RgtGLINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2hvd0VkaXRDb250cm9scyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICog0J7RgtC+0LHRgNCw0LbQsNC10YIg0YHQv9C10YbQuNGE0LjQutCw0YbQuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNwZWNpZmljYXRpb25QcmV2aWV3UmVmZXJlbmNlINCo0LDQsdC70L7QvSDRgdC/0LXRhtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNob3dTcGVjaWZpY2F0aW9uKHNwZWNpZmljYXRpb25QcmV2aWV3UmVmZXJlbmNlOiBUZW1wbGF0ZVJlZjxUdWlEaWFsb2dDb250ZXh0Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdEaWFsb2dTZXJ2aWNlLm9wZW4oc3BlY2lmaWNhdGlvblByZXZpZXdSZWZlcmVuY2UpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQsNGC0YvQstCw0LXRgiDQv9C+0LrQsNC3INC/0L7QtNGB0LrQsNC30LrQuCDQv9C+INGA0LDQt9C80LXRgNCw0LwgKNGB0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPINGBINC/0L7QtNGB0LLQtdGC0LrQvtC5INC60L3QvtC/0LrQuCDQvdCw0YHRgtGA0L7QtdC6KS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aXNpYmxlINCf0YDQuNC30L3QsNC6INCy0LjQtNC40LzQvtGB0YLQuCDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbmZpZ3VyYXRvckhpbnRWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTaG93RWRpdENvbnRyb2xzKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDb25maWd1cmF0b3JIaW50VmlzaWJsZS5zZXQodmlzaWJsZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKHByb2R1Y3QgJiYgb3JkZXJJdGVtKSB7XG4gICAgPGRpdiBjbGFzcz1cIkBjb250YWluZXIgcmVsYXRpdmUgZmxleCB3LWZ1bGwgZ2FwLTQgcm91bmRlZC14bCBwLTEgdGV4dC1ib2R5LXMgaG92ZXI6YmctdHVpLWJhY2tncm91bmQtbmV1dHJhbC0xXCI+XG4gICAgICAgIDxzYy1ub2luZGV4LXdyYXBwZXI+XG4gICAgICAgICAgICBAbGV0IGlzRGlzYWJsZWQgPSBwcm9kdWN0LmlzSGlkZGVuIHx8IHByb2R1Y3QuaXNOdWxsO1xuICAgICAgICAgICAgPHNjLWhvdmVyLWltYWdlLWNhcm91c2VsXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImlzRGlzYWJsZWQgPyBudWxsIDogY2xpY2tDYXJkRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBbaW1hZ2VzXT1cIiFpc01vYmlsZSA/IGdldENhcmRJbWFnZVByZXZpZXdMaXN0KHByb2R1Y3QpIDogW2dldENhcmRJbWFnZVByZXZpZXcoKV1cIlxuICAgICAgICAgICAgICAgIFtpc1Nob3dBY3Rpb25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFzcGVjdC1zcXVhcmUgdy0yNCBzaHJpbmstMCBjdXJzb3ItcG9pbnRlciBzZWxmLXN0YXJ0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wgZ2FwLXktMSBnYXAteC00IEA1eGw6ZmxleC1yb3cgQDV4bDppdGVtcy1jZW50ZXIgQDV4bDpnYXAtNVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG1pbi13LTAgZmxleC0xIGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAg0JDRgNGC0LjQutGD0Ls6IHt7IHByb2R1Y3QuY29kZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiaHJlZiA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpSGlnaGxpZ2h0XT1cIihzZWFyY2gkIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIXRleHQtYm9keS1tLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm9kdWN0LnN1cHBsaWVyU2t1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+INCQ0YDRgtC40LrRg9C7INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GPOiB7eyBwcm9kdWN0LnN1cHBsaWVyU2t1IH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocHJvZHVjdC5wYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIHRleHQtdHVpLXRleHQtMDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J3QvtGA0LzQsCDRg9C/0LDQutC+0LLQutC4OiB7eyBwcm9kdWN0LnBhY2sgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm9kdWN0Lmlnbm9yZU1pbkNvdW50Q2hlY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJAdHVpLnBhY2thZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlIaW50XT1cIm1pbkNvdW50SGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aUhpbnRTaG93RGVsYXldPVwiMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS14bCB0ZXh0LXR1aS10ZXh0LTAxIG9wYWNpdHktOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbWluQ291bnRIaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCU0L7RgdGC0YPQv9C10L0g0LfQsNC60LDQtyA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQv9GA0L7QuNC30LLQvtC70YzQvdC+0LPQviA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQutC+0LvQuNGH0LXRgdGC0LLQsFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2MtY29zdC13aXRoLWRpc2NvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NQcmludD1cImNvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9kdWN0XT1cInByb2R1Y3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAob3JkZXJJdGVtLnNwZWNpZmljYXRpb25JbWdVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93U3BlY2lmaWNhdGlvbihzcGVjaWZpY2F0aW9uUHJldmlldylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDQodC/0LXRhtC40YTQuNC60LDRhtC40Y9cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICNzcGVjaWZpY2F0aW9uUHJldmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0LXByZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1wcmV2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdGF0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21hYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJvcmRlckl0ZW0uc3BlY2lmaWNhdGlvbkltZ1VybCBhcyBzcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJwcmV2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJvcmRlckl0ZW0uc3BlY2lmaWNhdGlvbkltZ1VybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkueFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVByZXZpZXdBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aWV3LmNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHVpLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgQGxnOmdyaWQtY29scy0zIGdhcC0yIEAyeGw6Z2FwLTQgQDJ4bDpncmlkLXJvd3MtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBpdGVtcy1jZW50ZXIgQGxnOmdhcC0yIEAyeGw6Z3JpZC1jb2xzLTIgQGxnOmNvbC1zcGFuLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g0JrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwLiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNTaG93RWRpdENvbnRyb2xzKCkgJiYgc2hvd1F1YW50aXR5Q29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g0J/QvtC70LUg0LLQstC+0LTQsCDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAuIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYy1pbnB1dC1xdWFudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW5wdXRRdWFudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpQXV0b0ZvY3VzXT1cImF1dG9Gb2N1c2VRdWFudGl0eUlucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0Nyb3NzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cInVuaXRzSGVscGVyLnByb2R1Y3RNdWx0aXBsaWNpdHkocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWdub3JlU3RlcFZhbGlkYXRvcnNdPVwicHJvZHVjdC5pZ25vcmVNaW5Db3VudENoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwic2hvd0xvYWRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrQ2xlYXJFdmVudCk9XCJjbGlja0NsZWFyRXZlbnQuZW1pdChvcmRlckl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaW5wdXRRdWFudGl0eS5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5ibHVyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMzIgc2hyaW5rLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImlzU2hvd0VkaXRDb250cm9scygpID8gJ2FjdGlvbi1ncmF5c2NhbGUnIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlUaGVtZT1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSGludD1cItCU0LvRjyDQuNC30LzQtdC90LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0LLQvtGB0L/QvtC70YzQt9GD0LnRgtC10YHRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQvtC8XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR1aUhpbnRWaXNpYmxlKT1cImNvbmZpZ3VyYXRvckhpbnRWaXNpYmxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWRlY29yYXRpb24tbGluZV09XCJpc1Nob3dFZGl0Q29udHJvbHMoKSA/ICd1bmRlcmxpbmUnIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiIWlzU2hvd0VkaXRDb250cm9scygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIhdGV4dC1ib2R5LW0gdGV4dC1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0JrQvtC70LjRh9C10YHRgtCy0L46XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiB7eyBvcmRlckl0ZW0ucXVhbnRpdHkgfX0g0YjRgi48L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgc2hvd0FkZGl0aW9uYWxJbmZvID0gb3JkZXJJdGVtLmNvbmZpZ3VyYXRvciB8fCBvcmRlckl0ZW0uaGVpZ2h0IHx8IG9yZGVySXRlbS5sZW5ndGggfHwgb3JkZXJJdGVtLndpZHRoIHx8IG9yZGVySXRlbS5tYXJrZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dBZGRpdGlvbmFsSW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBAbGc6Z2FwLTMgbWF4LXctbWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0g0JrQvdC+0L/QutCwINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0YLQvtCy0LDRgNCwLiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc1Nob3dFZGl0Q29udHJvbHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwic2hvd0xvYWRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tTZXR0aW5ncy5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJpc0NvbmZpZ3VyYXRvckhpbnRWaXNpYmxlKCkgPyAncHJpbWFyeScgOiAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaHJpbmstMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdCw0Y8g0LjQvdGE0L7RgNC80LDRhtC40Y8g0L4g0YLQvtCy0LDRgNC1LiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC14LTEgdGV4dC10dWktYmFzZS0wN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC1ib2R5LW1dPVwiIWlzU2hvd0VkaXRDb250cm9scygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChvcmRlckl0ZW0ubWFya2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+0JzQsNGA0LrQuNGA0L7QstC60LA6IHt7IG9yZGVySXRlbS5tYXJrZXIgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG9yZGVySXRlbS53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiaXNTaG93RWRpdENvbnRyb2xzKCkgPyAnYWN0aW9uLWdyYXlzY2FsZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRoZW1lPVwibGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlIaW50PVwi0JTQu9GPINC40LfQvNC10L3QtdC90LjRjyDRiNC40YDQuNC90Ysg0LLQvtGB0L/QvtC70YzQt9GD0LnRgtC10YHRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQvtC8XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR1aUhpbnRWaXNpYmxlKT1cImNvbmZpZ3VyYXRvckhpbnRWaXNpYmxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWRlY29yYXRpb24tbGluZV09XCJpc1Nob3dFZGl0Q29udHJvbHMoKSA/ICd1bmRlcmxpbmUnIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiIWlzU2hvd0VkaXRDb250cm9scygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktcyBzZWxmLXN0YXJ0IHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCo0LjRgNC40L3QsDogPHNwYW4gY2xhc3M9XCJ0ZXh0LWJvZHktcy1ib2xkXCI+e3sgb3JkZXJJdGVtLndpZHRoIH19INC8Ljwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAob3JkZXJJdGVtLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiaXNTaG93RWRpdENvbnRyb2xzKCkgPyAnYWN0aW9uLWdyYXlzY2FsZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRoZW1lPVwibGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlIaW50PVwi0JTQu9GPINC40LfQvNC10L3QtdC90LjRjyDQstGL0YHQvtGC0Ysg0LLQvtGB0L/QvtC70YzQt9GD0LnRgtC10YHRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQvtC8XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR1aUhpbnRWaXNpYmxlKT1cImNvbmZpZ3VyYXRvckhpbnRWaXNpYmxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWRlY29yYXRpb24tbGluZV09XCJpc1Nob3dFZGl0Q29udHJvbHMoKSA/ICd1bmRlcmxpbmUnIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiIWlzU2hvd0VkaXRDb250cm9scygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktcyBzZWxmLXN0YXJ0IHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCS0YvRgdC+0YLQsDogPHNwYW4gY2xhc3M9XCJ0ZXh0LWJvZHktcy1ib2xkXCI+e3sgb3JkZXJJdGVtLmhlaWdodCB9fSDQvC48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChvcmRlckl0ZW0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJpc1Nob3dFZGl0Q29udHJvbHMoKSA/ICdhY3Rpb24tZ3JheXNjYWxlJyA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGhlbWU9XCJsaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUhpbnQ9XCLQlNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC00LvQuNC90Ysg0LLQvtGB0L/QvtC70YzQt9GD0LnRgtC10YHRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQvtC8XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR1aUhpbnRWaXNpYmxlKT1cImNvbmZpZ3VyYXRvckhpbnRWaXNpYmxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWRlY29yYXRpb24tbGluZV09XCJpc1Nob3dFZGl0Q29udHJvbHMoKSA/ICd1bmRlcmxpbmUnIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiIWlzU2hvd0VkaXRDb250cm9scygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktcyBzZWxmLXN0YXJ0IHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCU0LvQuNC90LA6IDxzcGFuIGNsYXNzPVwidGV4dC1ib2R5LXMtYm9sZFwiPnt7IG9yZGVySXRlbS5sZW5ndGggfX0g0LwuPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSDQodGD0LzQvNCwINGC0L7QstCw0YDQsCDQuCDRgdC60LvQsNC00YHQutC+0LUg0L3QsNC70LjRh9C40LUuIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBzY1ByaW50PVwiY29zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggbWluLXctWzExcmVtXSBmbGV4LWNvbCBAbGc6anVzdGlmeS1lbmQgQDJ4bDohanVzdGlmeS1jZW50ZXIgdGV4dC1ib2R5LW1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg0KHRg9C80LzQsDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiB7eyBvcmRlckl0ZW0uY29zdFJ1YiB8IHR1aUZvcm1hdE51bWJlcjogeyBwcmVjaXNpb246IDIsIGRlY2ltYWxTZXBhcmF0b3I6ICcuJywgcm91bmRpbmc6ICdjZWlsJyB9IHwgYXN5bmMgfX0ge3sgJ1JVQicgfCB0dWlDdXJyZW5jeSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjUHJpbnQ9XCJkZWZhdWx0Tm9QcmludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb2R1Y3RdPVwicHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NjLW5vaW5kZXgtd3JhcHBlcj5cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJ0dWktc2tlbGV0b24gZmxleCBoLVs4LjI1cmVtXSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGxcIj48L2Rpdj5cbn1cbiJdfQ==
|