@snabcentr/client-ui 4.4.3 → 5.0.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 +3730 -3948
 - package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
 - package/index.d.ts +4466 -3
 - package/package.json +1 -3
 - package/release_notes.tmp +1 -10
 - package/styles/tailwind/tailwind.scss +5 -177
 - 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/api-error-response.d.ts +0 -13
 - package/auth/interfaces/index.d.ts +0 -3
 - 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 -26
 - package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +0 -39
 - package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +0 -41
 - 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 -106
 - package/auth/sign-up-form/sc-sign-up-form.component.d.ts +0 -161
 - package/banner/index.d.ts +0 -2
 - package/banner/sc-banner.component.d.ts +0 -88
 - package/banner/sc-banner.module.d.ts +0 -18
 - 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 -48
 - package/cart/cart-item/sc-cart-item.component.d.ts +0 -25
 - package/cart/index.d.ts +0 -3
 - package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +0 -62
 - 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 -12
 - 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/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 -28
 - 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 -161
 - 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 -125
 - package/contragents/sc-contragents.module.d.ts +0 -27
 - 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 -26
 - 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 -7
 - 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 -18
 - package/directives/next-input-focus/sc-next-input-focus.module.d.ts +0 -10
 - package/directives/sc-date-value-transformer.directive.d.ts +0 -8
 - 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 -5
 - package/error-handler/error-block-status/error-block-status.component.d.ts +0 -37
 - 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/api-error-response.mjs +0 -2
 - package/esm2022/auth/interfaces/index.mjs +0 -4
 - 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 -99
 - package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +0 -87
 - package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +0 -86
 - 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 -187
 - package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +0 -333
 - package/esm2022/banner/index.mjs +0 -3
 - package/esm2022/banner/sc-banner.component.mjs +0 -143
 - package/esm2022/banner/sc-banner.module.mjs +0 -30
 - 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 -74
 - package/esm2022/cart/cart-item/sc-cart-item.component.mjs +0 -74
 - package/esm2022/cart/index.mjs +0 -4
 - package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +0 -110
 - package/esm2022/catalog/category-card/sc-category-card.component.mjs +0 -102
 - package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +0 -38
 - 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 -13
 - package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +0 -177
 - 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 -52
 - 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 -54
 - package/esm2022/catalog/sc-catalog.module.mjs +0 -125
 - package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +0 -42
 - 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 -38
 - 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 -92
 - package/esm2022/contacts/tokens/index.mjs +0 -3
 - package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +0 -24
 - package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +0 -7
 - 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 -278
 - package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +0 -75
 - package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +0 -69
 - 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 -242
 - package/esm2022/contragents/sc-contragents.module.mjs +0 -118
 - package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +0 -250
 - 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 -69
 - package/esm2022/delivery-address/index.mjs +0 -5
 - package/esm2022/delivery-address/sc-delivery-address.module.mjs +0 -99
 - 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 -8
 - 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 -43
 - package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +0 -19
 - package/esm2022/directives/sc-date-value-transformer.directive.mjs +0 -30
 - 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 -8
 - package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +0 -76
 - 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 -155
 - package/esm2022/form-fields/form-fields.module.mjs +0 -69
 - package/esm2022/form-fields/index.mjs +0 -4
 - package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +0 -175
 - package/esm2022/helpers/index.mjs +0 -2
 - package/esm2022/helpers/sc-px-converter.mjs +0 -27
 - 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/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/order/index.mjs +0 -4
 - package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +0 -60
 - package/esm2022/order/sc-order.module.mjs +0 -53
 - 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 -28
 - package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +0 -6
 - 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 -106
 - 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 -175
 - package/esm2022/profile/sc-profile.module.mjs +0 -76
 - 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 -12
 - package/esm2022/providers/sc-allow-select-terminated.mjs +0 -6
 - package/esm2022/providers/sc-country-ids.mjs +0 -6
 - package/esm2022/providers/sc-date-formatter.mjs +0 -12
 - package/esm2022/providers/sc-date-value-transformer.mjs +0 -12
 - package/esm2022/providers/sc-help-notification-close.mjs +0 -7
 - package/esm2022/providers/sc-help-notification-limit.mjs +0 -6
 - package/esm2022/providers/sc-max-files-in-form-input.mjs +0 -6
 - package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +0 -6
 - package/esm2022/providers/sc-page-size-options.mjs +0 -6
 - package/esm2022/providers/sc-user-providers.mjs +0 -33
 - package/esm2022/providers/sc-verification-code-timeout.mjs +0 -6
 - 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 -68
 - package/esm2022/services/index.mjs +0 -2
 - package/esm2022/services/sc-help-notification.service.mjs +0 -90
 - 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 -75
 - package/esm2022/user/sc-user.module.mjs +0 -89
 - package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +0 -122
 - package/esm2022/user/user-managers/sc-user-managers.component.mjs +0 -42
 - package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +0 -106
 - 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 -4
 - package/esm2022/verification/providers/index.mjs +0 -3
 - package/esm2022/verification/providers/sc-phone-approve-code-sender.provider.mjs +0 -12
 - package/esm2022/verification/providers/sc-phone-approve-code-sender.token.mjs +0 -7
 - package/esm2022/verification/sc-verification.module.mjs +0 -88
 - package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +0 -277
 - 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 -19
 - package/form-fields/index.d.ts +0 -3
 - package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +0 -73
 - package/helpers/index.d.ts +0 -1
 - package/helpers/sc-px-converter.d.ts +0 -15
 - package/icons/index.d.ts +0 -1
 - package/icons/sc-client-ui-icons-name.d.ts +0 -4
 - 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/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/order/index.d.ts +0 -3
 - package/order/order-item-mobile/sc-order-item-mobile.component.d.ts +0 -39
 - package/order/sc-order.module.d.ts +0 -19
 - 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 -18
 - 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 -24
 - 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 -11
 - package/providers/sc-allow-select-terminated.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-help-notification-close.d.ts +0 -6
 - package/providers/sc-help-notification-limit.d.ts +0 -5
 - 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 -31
 - 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 -1
 - package/services/sc-help-notification.service.d.ts +0 -64
 - 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 -25
 - 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 -26
 - 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 -3
 - package/verification/providers/index.d.ts +0 -2
 - package/verification/providers/sc-phone-approve-code-sender.provider.d.ts +0 -6
 - package/verification/providers/sc-phone-approve-code-sender.token.d.ts +0 -7
 - package/verification/sc-verification.module.d.ts +0 -21
 - package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +0 -149
 
| 
         @@ -1,118 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { CommonModule } from '@angular/common';
         
     | 
| 
       2 
     | 
    
         
            -
            import { NgModule } from '@angular/core';
         
     | 
| 
       3 
     | 
    
         
            -
            import { FormsModule, ReactiveFormsModule } from '@angular/forms';
         
     | 
| 
       4 
     | 
    
         
            -
            import { MaskitoDirective } from '@maskito/angular';
         
     | 
| 
       5 
     | 
    
         
            -
            import { TuiLet } from '@taiga-ui/cdk';
         
     | 
| 
       6 
     | 
    
         
            -
            import { TuiButton, TuiDataList, TuiError, TuiLabel, TuiLoader, TuiNotification } from '@taiga-ui/core';
         
     | 
| 
       7 
     | 
    
         
            -
            import { TuiButtonLoading, TuiCarousel, TuiDataListWrapper, TuiElasticContainer, TuiFieldErrorPipe, TuiFilterByInputPipe, TuiStepper, TuiStringifyContentPipe, } from '@taiga-ui/kit';
         
     | 
| 
       8 
     | 
    
         
            -
            import { TuiComboBoxModule, TuiInputModule, TuiInputPhoneModule, TuiSelectModule } from '@taiga-ui/legacy';
         
     | 
| 
       9 
     | 
    
         
            -
            import { ScAccordionModule } from '../accordion';
         
     | 
| 
       10 
     | 
    
         
            -
            import { ScContactsModule } from '../contacts/sc-contacts.module';
         
     | 
| 
       11 
     | 
    
         
            -
            import { ScFormFieldsModule } from '../form-fields/form-fields.module';
         
     | 
| 
       12 
     | 
    
         
            -
            import { ScAddContragentBankAccountsDialogComponent } from './add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component';
         
     | 
| 
       13 
     | 
    
         
            -
            import { ScAddContragentDialogComponent } from './add-contragent-dialog/sc-add-contragent-dialog.component';
         
     | 
| 
       14 
     | 
    
         
            -
            import { ScContragentsAccordionItemComponent } from './contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component';
         
     | 
| 
       15 
     | 
    
         
            -
            import { ScContragentsAccordionComponent } from './contragents-accordion/sc-contragents-accordion.component';
         
     | 
| 
       16 
     | 
    
         
            -
            import { ScNewContragentBankAccountsFormComponent } from './new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component';
         
     | 
| 
       17 
     | 
    
         
            -
            import { ScNewContragentFormComponent } from './new-contragent-form/sc-new-contragent-form.component';
         
     | 
| 
       18 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       19 
     | 
    
         
            -
            import * as i1 from "@taiga-ui/core";
         
     | 
| 
       20 
     | 
    
         
            -
            import * as i2 from "@taiga-ui/kit";
         
     | 
| 
       21 
     | 
    
         
            -
            import * as i3 from "@taiga-ui/core/components/data-list";
         
     | 
| 
       22 
     | 
    
         
            -
            import * as i4 from "@taiga-ui/cdk/directives/item";
         
     | 
| 
       23 
     | 
    
         
            -
            /**
         
     | 
| 
       24 
     | 
    
         
            -
             * Модуль для отображение контента разделами, с возможностью скрывать и отображать содержимое.
         
     | 
| 
       25 
     | 
    
         
            -
             */
         
     | 
| 
       26 
     | 
    
         
            -
            export class ScContragentsModule {
         
     | 
| 
       27 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
         
     | 
| 
       28 
     | 
    
         
            -
                static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsModule, declarations: [ScContragentsAccordionComponent,
         
     | 
| 
       29 
     | 
    
         
            -
                        ScContragentsAccordionItemComponent,
         
     | 
| 
       30 
     | 
    
         
            -
                        ScNewContragentBankAccountsFormComponent,
         
     | 
| 
       31 
     | 
    
         
            -
                        ScAddContragentBankAccountsDialogComponent,
         
     | 
| 
       32 
     | 
    
         
            -
                        ScAddContragentDialogComponent,
         
     | 
| 
       33 
     | 
    
         
            -
                        ScNewContragentFormComponent], imports: [FormsModule,
         
     | 
| 
       34 
     | 
    
         
            -
                        ReactiveFormsModule,
         
     | 
| 
       35 
     | 
    
         
            -
                        CommonModule,
         
     | 
| 
       36 
     | 
    
         
            -
                        ScAccordionModule,
         
     | 
| 
       37 
     | 
    
         
            -
                        TuiButton,
         
     | 
| 
       38 
     | 
    
         
            -
                        TuiLoader,
         
     | 
| 
       39 
     | 
    
         
            -
                        TuiLet,
         
     | 
| 
       40 
     | 
    
         
            -
                        TuiNotification,
         
     | 
| 
       41 
     | 
    
         
            -
                        ScContactsModule,
         
     | 
| 
       42 
     | 
    
         
            -
                        TuiFieldErrorPipe,
         
     | 
| 
       43 
     | 
    
         
            -
                        TuiError,
         
     | 
| 
       44 
     | 
    
         
            -
                        TuiSelectModule, i1.TuiDataListComponent, i1.TuiDataListDirective, i1.TuiOption, i1.TuiOptionNew, i1.TuiOptionWithValue, i1.TuiOptGroup, i2.TuiDataListWrapperComponent, i2.TuiDataListGroupWrapperComponent, i3.TuiDataListDirective, TuiLabel,
         
     | 
| 
       45 
     | 
    
         
            -
                        TuiInputModule,
         
     | 
| 
       46 
     | 
    
         
            -
                        TuiInputPhoneModule,
         
     | 
| 
       47 
     | 
    
         
            -
                        MaskitoDirective,
         
     | 
| 
       48 
     | 
    
         
            -
                        ScFormFieldsModule,
         
     | 
| 
       49 
     | 
    
         
            -
                        TuiElasticContainer, i4.TuiItem, i2.TuiCarouselComponent, i2.TuiCarouselDirective, i2.TuiCarouselAutoscroll, i2.TuiCarouselButtons, i2.TuiCarouselScroll, TuiButtonLoading,
         
     | 
| 
       50 
     | 
    
         
            -
                        TuiComboBoxModule,
         
     | 
| 
       51 
     | 
    
         
            -
                        TuiStringifyContentPipe,
         
     | 
| 
       52 
     | 
    
         
            -
                        TuiFilterByInputPipe, i2.TuiStepperComponent, i2.TuiStep], exports: [ScContragentsAccordionComponent,
         
     | 
| 
       53 
     | 
    
         
            -
                        ScNewContragentBankAccountsFormComponent,
         
     | 
| 
       54 
     | 
    
         
            -
                        ScAddContragentBankAccountsDialogComponent,
         
     | 
| 
       55 
     | 
    
         
            -
                        ScAddContragentDialogComponent,
         
     | 
| 
       56 
     | 
    
         
            -
                        ScNewContragentFormComponent] }); }
         
     | 
| 
       57 
     | 
    
         
            -
                static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsModule, imports: [FormsModule,
         
     | 
| 
       58 
     | 
    
         
            -
                        ReactiveFormsModule,
         
     | 
| 
       59 
     | 
    
         
            -
                        CommonModule,
         
     | 
| 
       60 
     | 
    
         
            -
                        ScAccordionModule,
         
     | 
| 
       61 
     | 
    
         
            -
                        TuiLoader,
         
     | 
| 
       62 
     | 
    
         
            -
                        ScContactsModule,
         
     | 
| 
       63 
     | 
    
         
            -
                        TuiError,
         
     | 
| 
       64 
     | 
    
         
            -
                        TuiSelectModule, i1.TuiDataListComponent, i1.TuiOption, i2.TuiDataListWrapperComponent, i2.TuiDataListGroupWrapperComponent, TuiInputModule,
         
     | 
| 
       65 
     | 
    
         
            -
                        TuiInputPhoneModule,
         
     | 
| 
       66 
     | 
    
         
            -
                        ScFormFieldsModule,
         
     | 
| 
       67 
     | 
    
         
            -
                        TuiElasticContainer, i2.TuiCarouselComponent, TuiButtonLoading,
         
     | 
| 
       68 
     | 
    
         
            -
                        TuiComboBoxModule, TuiStepper] }); }
         
     | 
| 
       69 
     | 
    
         
            -
            }
         
     | 
| 
       70 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsModule, decorators: [{
         
     | 
| 
       71 
     | 
    
         
            -
                        type: NgModule,
         
     | 
| 
       72 
     | 
    
         
            -
                        args: [{
         
     | 
| 
       73 
     | 
    
         
            -
                                declarations: [
         
     | 
| 
       74 
     | 
    
         
            -
                                    ScContragentsAccordionComponent,
         
     | 
| 
       75 
     | 
    
         
            -
                                    ScContragentsAccordionItemComponent,
         
     | 
| 
       76 
     | 
    
         
            -
                                    ScNewContragentBankAccountsFormComponent,
         
     | 
| 
       77 
     | 
    
         
            -
                                    ScAddContragentBankAccountsDialogComponent,
         
     | 
| 
       78 
     | 
    
         
            -
                                    ScAddContragentDialogComponent,
         
     | 
| 
       79 
     | 
    
         
            -
                                    ScNewContragentFormComponent,
         
     | 
| 
       80 
     | 
    
         
            -
                                ],
         
     | 
| 
       81 
     | 
    
         
            -
                                imports: [
         
     | 
| 
       82 
     | 
    
         
            -
                                    FormsModule,
         
     | 
| 
       83 
     | 
    
         
            -
                                    ReactiveFormsModule,
         
     | 
| 
       84 
     | 
    
         
            -
                                    CommonModule,
         
     | 
| 
       85 
     | 
    
         
            -
                                    ScAccordionModule,
         
     | 
| 
       86 
     | 
    
         
            -
                                    TuiButton,
         
     | 
| 
       87 
     | 
    
         
            -
                                    TuiLoader,
         
     | 
| 
       88 
     | 
    
         
            -
                                    TuiLet,
         
     | 
| 
       89 
     | 
    
         
            -
                                    TuiNotification,
         
     | 
| 
       90 
     | 
    
         
            -
                                    ScContactsModule,
         
     | 
| 
       91 
     | 
    
         
            -
                                    TuiFieldErrorPipe,
         
     | 
| 
       92 
     | 
    
         
            -
                                    TuiError,
         
     | 
| 
       93 
     | 
    
         
            -
                                    TuiSelectModule,
         
     | 
| 
       94 
     | 
    
         
            -
                                    ...TuiDataList,
         
     | 
| 
       95 
     | 
    
         
            -
                                    ...TuiDataListWrapper,
         
     | 
| 
       96 
     | 
    
         
            -
                                    TuiLabel,
         
     | 
| 
       97 
     | 
    
         
            -
                                    TuiInputModule,
         
     | 
| 
       98 
     | 
    
         
            -
                                    TuiInputPhoneModule,
         
     | 
| 
       99 
     | 
    
         
            -
                                    MaskitoDirective,
         
     | 
| 
       100 
     | 
    
         
            -
                                    ScFormFieldsModule,
         
     | 
| 
       101 
     | 
    
         
            -
                                    TuiElasticContainer,
         
     | 
| 
       102 
     | 
    
         
            -
                                    ...TuiCarousel,
         
     | 
| 
       103 
     | 
    
         
            -
                                    TuiButtonLoading,
         
     | 
| 
       104 
     | 
    
         
            -
                                    TuiComboBoxModule,
         
     | 
| 
       105 
     | 
    
         
            -
                                    TuiStringifyContentPipe,
         
     | 
| 
       106 
     | 
    
         
            -
                                    TuiFilterByInputPipe,
         
     | 
| 
       107 
     | 
    
         
            -
                                    ...TuiStepper,
         
     | 
| 
       108 
     | 
    
         
            -
                                ],
         
     | 
| 
       109 
     | 
    
         
            -
                                exports: [
         
     | 
| 
       110 
     | 
    
         
            -
                                    ScContragentsAccordionComponent,
         
     | 
| 
       111 
     | 
    
         
            -
                                    ScNewContragentBankAccountsFormComponent,
         
     | 
| 
       112 
     | 
    
         
            -
                                    ScAddContragentBankAccountsDialogComponent,
         
     | 
| 
       113 
     | 
    
         
            -
                                    ScAddContragentDialogComponent,
         
     | 
| 
       114 
     | 
    
         
            -
                                    ScNewContragentFormComponent,
         
     | 
| 
       115 
     | 
    
         
            -
                                ],
         
     | 
| 
       116 
     | 
    
         
            -
                            }]
         
     | 
| 
       117 
     | 
    
         
            -
                    }] });
         
     | 
| 
       118 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udHJhZ2VudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRyYWdlbnRzL3NjLWNvbnRyYWdlbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLHVCQUF1QixHQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUNsSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUNqSixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUM1SSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7O0FBRXRHOztHQUVHO0FBOENILE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CLGlCQTNDeEIsK0JBQStCO1lBQy9CLG1DQUFtQztZQUNuQyx3Q0FBd0M7WUFDeEMsMENBQTBDO1lBQzFDLDhCQUE4QjtZQUM5Qiw0QkFBNEIsYUFHNUIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxTQUFTO1lBQ1QsTUFBTTtZQUNOLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLFFBQVE7WUFDUixlQUFlLHdOQUdmLFFBQVE7WUFDUixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsbUJBQW1CLHVJQUVuQixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixvQkFBb0IsaURBSXBCLCtCQUErQjtZQUMvQix3Q0FBd0M7WUFDeEMsMENBQTBDO1lBQzFDLDhCQUE4QjtZQUM5Qiw0QkFBNEI7Z0hBR3ZCLG1CQUFtQixZQW5DeEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osaUJBQWlCO1lBRWpCLFNBQVM7WUFHVCxnQkFBZ0I7WUFFaEIsUUFBUTtZQUNSLGVBQWUsOEdBSWYsY0FBYztZQUNkLG1CQUFtQjtZQUVuQixrQkFBa0I7WUFDbEIsbUJBQW1CLDJCQUVuQixnQkFBZ0I7WUFDaEIsaUJBQWlCLEVBR2QsVUFBVTs7NEZBVVIsbUJBQW1CO2tCQTdDL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsK0JBQStCO3dCQUMvQixtQ0FBbUM7d0JBQ25DLHdDQUF3Qzt3QkFDeEMsMENBQTBDO3dCQUMxQyw4QkFBOEI7d0JBQzlCLDRCQUE0QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsU0FBUzt3QkFDVCxTQUFTO3dCQUNULE1BQU07d0JBQ04sZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsUUFBUTt3QkFDUixlQUFlO3dCQUNmLEdBQUcsV0FBVzt3QkFDZCxHQUFHLGtCQUFrQjt3QkFDckIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsR0FBRyxXQUFXO3dCQUNkLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsR0FBRyxVQUFVO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsK0JBQStCO3dCQUMvQix3Q0FBd0M7d0JBQ3hDLDBDQUEwQzt3QkFDMUMsOEJBQThCO3dCQUM5Qiw0QkFBNEI7cUJBQy9CO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hc2tpdG9EaXJlY3RpdmUgfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7IFR1aUxldCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEYXRhTGlzdCwgVHVpRXJyb3IsIFR1aUxhYmVsLCBUdWlMb2FkZXIsIFR1aU5vdGlmaWNhdGlvbiB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpQnV0dG9uTG9hZGluZyxcbiAgICBUdWlDYXJvdXNlbCxcbiAgICBUdWlEYXRhTGlzdFdyYXBwZXIsXG4gICAgVHVpRWxhc3RpY0NvbnRhaW5lcixcbiAgICBUdWlGaWVsZEVycm9yUGlwZSxcbiAgICBUdWlGaWx0ZXJCeUlucHV0UGlwZSxcbiAgICBUdWlTdGVwcGVyLFxuICAgIFR1aVN0cmluZ2lmeUNvbnRlbnRQaXBlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aUNvbWJvQm94TW9kdWxlLCBUdWlJbnB1dE1vZHVsZSwgVHVpSW5wdXRQaG9uZU1vZHVsZSwgVHVpU2VsZWN0TW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeSc7XG5cbmltcG9ydCB7IFNjQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnLi4vYWNjb3JkaW9uJztcbmltcG9ydCB7IFNjQ29udGFjdHNNb2R1bGUgfSBmcm9tICcuLi9jb250YWN0cy9zYy1jb250YWN0cy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NGb3JtRmllbGRzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZHMvZm9ybS1maWVsZHMubW9kdWxlJztcbmltcG9ydCB7IFNjQWRkQ29udHJhZ2VudEJhbmtBY2NvdW50c0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWRpYWxvZy9zYy1hZGQtY29udHJhZ2VudC1iYW5rLWFjY291bnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY0FkZENvbnRyYWdlbnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1jb250cmFnZW50LWRpYWxvZy9zYy1hZGQtY29udHJhZ2VudC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNjQ29udHJhZ2VudHNBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cmFnZW50cy1hY2NvcmRpb24vY29udHJhZ2VudHMtYWNjb3JkaW9uLWl0ZW0vc2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNjQ29udHJhZ2VudHNBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyYWdlbnRzLWFjY29yZGlvbi9zYy1jb250cmFnZW50cy1hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNjTmV3Q29udHJhZ2VudEJhbmtBY2NvdW50c0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL25ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWJhbmstYWNjb3VudC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY05ld0NvbnRyYWdlbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9uZXctY29udHJhZ2VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWZvcm0uY29tcG9uZW50JztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40LUg0LrQvtC90YLQtdC90YLQsCDRgNCw0LfQtNC10LvQsNC80LgsINGBINCy0L7Qt9C80L7QttC90L7RgdGC0YzRjiDRgdC60YDRi9Cy0LDRgtGMINC4INC+0YLQvtCx0YDQsNC20LDRgtGMINGB0L7QtNC10YDQttC40LzQvtC1LlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBTY0NvbnRyYWdlbnRzQWNjb3JkaW9uQ29tcG9uZW50LFxuICAgICAgICBTY0NvbnRyYWdlbnRzQWNjb3JkaW9uSXRlbUNvbXBvbmVudCxcbiAgICAgICAgU2NOZXdDb250cmFnZW50QmFua0FjY291bnRzRm9ybUNvbXBvbmVudCxcbiAgICAgICAgU2NBZGRDb250cmFnZW50QmFua0FjY291bnRzRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBTY0FkZENvbnRyYWdlbnREaWFsb2dDb21wb25lbnQsXG4gICAgICAgIFNjTmV3Q29udHJhZ2VudEZvcm1Db21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFNjQWNjb3JkaW9uTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b24sXG4gICAgICAgIFR1aUxvYWRlcixcbiAgICAgICAgVHVpTGV0LFxuICAgICAgICBUdWlOb3RpZmljYXRpb24sXG4gICAgICAgIFNjQ29udGFjdHNNb2R1bGUsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlLFxuICAgICAgICBUdWlFcnJvcixcbiAgICAgICAgVHVpU2VsZWN0TW9kdWxlLFxuICAgICAgICAuLi5UdWlEYXRhTGlzdCxcbiAgICAgICAgLi4uVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgICAgICBUdWlMYWJlbCxcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG4gICAgICAgIE1hc2tpdG9EaXJlY3RpdmUsXG4gICAgICAgIFNjRm9ybUZpZWxkc01vZHVsZSxcbiAgICAgICAgVHVpRWxhc3RpY0NvbnRhaW5lcixcbiAgICAgICAgLi4uVHVpQ2Fyb3VzZWwsXG4gICAgICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgICAgIFR1aUNvbWJvQm94TW9kdWxlLFxuICAgICAgICBUdWlTdHJpbmdpZnlDb250ZW50UGlwZSxcbiAgICAgICAgVHVpRmlsdGVyQnlJbnB1dFBpcGUsXG4gICAgICAgIC4uLlR1aVN0ZXBwZXIsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFNjQ29udHJhZ2VudHNBY2NvcmRpb25Db21wb25lbnQsXG4gICAgICAgIFNjTmV3Q29udHJhZ2VudEJhbmtBY2NvdW50c0Zvcm1Db21wb25lbnQsXG4gICAgICAgIFNjQWRkQ29udHJhZ2VudEJhbmtBY2NvdW50c0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgU2NBZGRDb250cmFnZW50RGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBTY05ld0NvbnRyYWdlbnRGb3JtQ29tcG9uZW50LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udHJhZ2VudHNNb2R1bGUge31cbiJdfQ==
         
     | 
| 
         @@ -1,250 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            /* eslint-disable @typescript-eslint/unbound-method,lodash/prefer-lodash-method */
         
     | 
| 
       2 
     | 
    
         
            -
            import { HttpErrorResponse } from '@angular/common/http';
         
     | 
| 
       3 
     | 
    
         
            -
            import { ChangeDetectionStrategy, Component, DestroyRef, Inject, inject } from '@angular/core';
         
     | 
| 
       4 
     | 
    
         
            -
            import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
         
     | 
| 
       5 
     | 
    
         
            -
            import { FormControl, FormGroup, Validators } from '@angular/forms';
         
     | 
| 
       6 
     | 
    
         
            -
            import { ScISuggestionType, ScUserMetrikaGoalsEnum, } from '@snabcentr/client-core';
         
     | 
| 
       7 
     | 
    
         
            -
            import { TUI_IS_MOBILE } from '@taiga-ui/cdk';
         
     | 
| 
       8 
     | 
    
         
            -
            import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus';
         
     | 
| 
       9 
     | 
    
         
            -
            import { getCountries } from 'libphonenumber-js';
         
     | 
| 
       10 
     | 
    
         
            -
            import { catchError, filter, map, of, share, startWith, Subject, switchMap, tap } from 'rxjs';
         
     | 
| 
       11 
     | 
    
         
            -
            import { IS_DEFAULT_COUNTRY } from '../../providers';
         
     | 
| 
       12 
     | 
    
         
            -
            import { ScHelpNotificationService } from '../../services';
         
     | 
| 
       13 
     | 
    
         
            -
            import { phoneValidator } from '../../validators/sc-phone-validator';
         
     | 
| 
       14 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       15 
     | 
    
         
            -
            import * as i1 from "@snabcentr/client-core";
         
     | 
| 
       16 
     | 
    
         
            -
            import * as i2 from "@angular/common";
         
     | 
| 
       17 
     | 
    
         
            -
            import * as i3 from "@taiga-ui/core";
         
     | 
| 
       18 
     | 
    
         
            -
            import * as i4 from "@angular/forms";
         
     | 
| 
       19 
     | 
    
         
            -
            import * as i5 from "@taiga-ui/core/components/label";
         
     | 
| 
       20 
     | 
    
         
            -
            import * as i6 from "@taiga-ui/legacy";
         
     | 
| 
       21 
     | 
    
         
            -
            import * as i7 from "@taiga-ui/legacy/components/primitive-textfield";
         
     | 
| 
       22 
     | 
    
         
            -
            import * as i8 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
         
     | 
| 
       23 
     | 
    
         
            -
            import * as i9 from "angular8-yandex-maps";
         
     | 
| 
       24 
     | 
    
         
            -
            import * as i10 from "@taiga-ui/kit";
         
     | 
| 
       25 
     | 
    
         
            -
            import * as i11 from "../../contacts/manager-card/sc-manager-card.component";
         
     | 
| 
       26 
     | 
    
         
            -
            import * as i12 from "@taiga-ui/experimental";
         
     | 
| 
       27 
     | 
    
         
            -
            /**
         
     | 
| 
       28 
     | 
    
         
            -
             * Компонент добавления адреса доставки.
         
     | 
| 
       29 
     | 
    
         
            -
             */
         
     | 
| 
       30 
     | 
    
         
            -
            export class ScAddDeliveryAddressDialogComponent {
         
     | 
| 
       31 
     | 
    
         
            -
                /**
         
     | 
| 
       32 
     | 
    
         
            -
                 * Округляет координаты до 6 цифр после запятой.
         
     | 
| 
       33 
     | 
    
         
            -
                 *
         
     | 
| 
       34 
     | 
    
         
            -
                 * @param coords Координаты точки.
         
     | 
| 
       35 
     | 
    
         
            -
                 */
         
     | 
| 
       36 
     | 
    
         
            -
                static roundCoordinate(coords) {
         
     | 
| 
       37 
     | 
    
         
            -
                    return coords.map((coord) => Math.round(coord * 1e6) / 1e6);
         
     | 
| 
       38 
     | 
    
         
            -
                }
         
     | 
| 
       39 
     | 
    
         
            -
                /**
         
     | 
| 
       40 
     | 
    
         
            -
                 * Инициализирует экземпляр класса {@link ScAddDeliveryAddressDialogComponent}.
         
     | 
| 
       41 
     | 
    
         
            -
                 *
         
     | 
| 
       42 
     | 
    
         
            -
                 * @param deliveryAddressService Сервис работы с адресами доставки.
         
     | 
| 
       43 
     | 
    
         
            -
                 * @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
         
     | 
| 
       44 
     | 
    
         
            -
                 * @param context Контекст диалогового окна, в котором открыт компонент.
         
     | 
| 
       45 
     | 
    
         
            -
                 * @param convertersService Сервис конвертации данных.
         
     | 
| 
       46 
     | 
    
         
            -
                 */
         
     | 
| 
       47 
     | 
    
         
            -
                constructor(deliveryAddressService, userMetrikaService, context, convertersService) {
         
     | 
| 
       48 
     | 
    
         
            -
                    this.deliveryAddressService = deliveryAddressService;
         
     | 
| 
       49 
     | 
    
         
            -
                    this.userMetrikaService = userMetrikaService;
         
     | 
| 
       50 
     | 
    
         
            -
                    this.context = context;
         
     | 
| 
       51 
     | 
    
         
            -
                    this.convertersService = convertersService;
         
     | 
| 
       52 
     | 
    
         
            -
                    /**
         
     | 
| 
       53 
     | 
    
         
            -
                     * Ссылка для автоматического управления уничтожением зависимостей.
         
     | 
| 
       54 
     | 
    
         
            -
                     */
         
     | 
| 
       55 
     | 
    
         
            -
                    this.destroyRef = inject(DestroyRef);
         
     | 
| 
       56 
     | 
    
         
            -
                    /**
         
     | 
| 
       57 
     | 
    
         
            -
                     * Признак того, отображается этот компонент на мобильном устройстве или нет.
         
     | 
| 
       58 
     | 
    
         
            -
                     */
         
     | 
| 
       59 
     | 
    
         
            -
                    this.isMobile = inject(TUI_IS_MOBILE);
         
     | 
| 
       60 
     | 
    
         
            -
                    /**
         
     | 
| 
       61 
     | 
    
         
            -
                     * Перечисление типов подсказок.
         
     | 
| 
       62 
     | 
    
         
            -
                     */
         
     | 
| 
       63 
     | 
    
         
            -
                    this.suggestionType = ScISuggestionType;
         
     | 
| 
       64 
     | 
    
         
            -
                    /**
         
     | 
| 
       65 
     | 
    
         
            -
                     * {@link Subject} события отправки формы.
         
     | 
| 
       66 
     | 
    
         
            -
                     */
         
     | 
| 
       67 
     | 
    
         
            -
                    this.onSubmit$ = new Subject();
         
     | 
| 
       68 
     | 
    
         
            -
                    /**
         
     | 
| 
       69 
     | 
    
         
            -
                     * Координаты центра карты по умолчанию.
         
     | 
| 
       70 
     | 
    
         
            -
                     */
         
     | 
| 
       71 
     | 
    
         
            -
                    this.defaultCenterMap = [57.000353, 40.97393];
         
     | 
| 
       72 
     | 
    
         
            -
                    /**
         
     | 
| 
       73 
     | 
    
         
            -
                     * Масштаб карты по умолчанию.
         
     | 
| 
       74 
     | 
    
         
            -
                     */
         
     | 
| 
       75 
     | 
    
         
            -
                    this.defaultZoomMap = 11;
         
     | 
| 
       76 
     | 
    
         
            -
                    /**
         
     | 
| 
       77 
     | 
    
         
            -
                     * {@link Observable} данных контактов дл помощи.
         
     | 
| 
       78 
     | 
    
         
            -
                     */
         
     | 
| 
       79 
     | 
    
         
            -
                    this.userHelpContacts$ = inject(ScHelpNotificationService).userHelpContacts;
         
     | 
| 
       80 
     | 
    
         
            -
                    /**
         
     | 
| 
       81 
     | 
    
         
            -
                     * Признак того, что текущая страна является верной.
         
     | 
| 
       82 
     | 
    
         
            -
                     */
         
     | 
| 
       83 
     | 
    
         
            -
                    this.isDefaultCountry = inject(IS_DEFAULT_COUNTRY);
         
     | 
| 
       84 
     | 
    
         
            -
                    /**
         
     | 
| 
       85 
     | 
    
         
            -
                     * Список стран.
         
     | 
| 
       86 
     | 
    
         
            -
                     */
         
     | 
| 
       87 
     | 
    
         
            -
                    this.countries = getCountries();
         
     | 
| 
       88 
     | 
    
         
            -
                    /**
         
     | 
| 
       89 
     | 
    
         
            -
                     * {@link Observable} запроса данных добавления адрес доставки.
         
     | 
| 
       90 
     | 
    
         
            -
                     */
         
     | 
| 
       91 
     | 
    
         
            -
                    this.request$ = this.onSubmit$.pipe(filter(() => this.form.valid), map(() => this.form.value), switchMap((value) => this.deliveryAddressService.createDeliveryAddress$(this.convertersService.removeNullRecursive(value)).pipe(tap(() => {
         
     | 
| 
       92 
     | 
    
         
            -
                        this.context.completeWith();
         
     | 
| 
       93 
     | 
    
         
            -
                    }), catchError((error) => {
         
     | 
| 
       94 
     | 
    
         
            -
                        if (error instanceof HttpErrorResponse) {
         
     | 
| 
       95 
     | 
    
         
            -
                            const { errors, message } = error.error;
         
     | 
| 
       96 
     | 
    
         
            -
                            if (errors) {
         
     | 
| 
       97 
     | 
    
         
            -
                                Object.keys(errors).forEach((key) => {
         
     | 
| 
       98 
     | 
    
         
            -
                                    // eslint-disable-next-line security/detect-object-injection
         
     | 
| 
       99 
     | 
    
         
            -
                                    this.form.get(key)?.setErrors({ serverResponse: errors[key] });
         
     | 
| 
       100 
     | 
    
         
            -
                                });
         
     | 
| 
       101 
     | 
    
         
            -
                            }
         
     | 
| 
       102 
     | 
    
         
            -
                            else if (message) {
         
     | 
| 
       103 
     | 
    
         
            -
                                this.form.setErrors({ serverResponse: [message] });
         
     | 
| 
       104 
     | 
    
         
            -
                            }
         
     | 
| 
       105 
     | 
    
         
            -
                        }
         
     | 
| 
       106 
     | 
    
         
            -
                        return of({});
         
     | 
| 
       107 
     | 
    
         
            -
                    }), startWith(null))), share());
         
     | 
| 
       108 
     | 
    
         
            -
                    /**
         
     | 
| 
       109 
     | 
    
         
            -
                     * {@link Observable} изменения состояния загрузки данных.
         
     | 
| 
       110 
     | 
    
         
            -
                     */
         
     | 
| 
       111 
     | 
    
         
            -
                    this.loading$ = this.request$.pipe(map((data) => data === null));
         
     | 
| 
       112 
     | 
    
         
            -
                    /**
         
     | 
| 
       113 
     | 
    
         
            -
                     * Группа с полями адресов.
         
     | 
| 
       114 
     | 
    
         
            -
                     */
         
     | 
| 
       115 
     | 
    
         
            -
                    this.addressControl = new FormControl(null, Validators.required);
         
     | 
| 
       116 
     | 
    
         
            -
                    /**
         
     | 
| 
       117 
     | 
    
         
            -
                     * Настройки карты.
         
     | 
| 
       118 
     | 
    
         
            -
                     */
         
     | 
| 
       119 
     | 
    
         
            -
                    this.options = {
         
     | 
| 
       120 
     | 
    
         
            -
                        autoFitToViewport: 'always',
         
     | 
| 
       121 
     | 
    
         
            -
                        yandexMapDisablePoiInteractivity: false,
         
     | 
| 
       122 
     | 
    
         
            -
                        maxZoom: 19,
         
     | 
| 
       123 
     | 
    
         
            -
                    };
         
     | 
| 
       124 
     | 
    
         
            -
                    /**
         
     | 
| 
       125 
     | 
    
         
            -
                     * Форма для создания адреса доставки.
         
     | 
| 
       126 
     | 
    
         
            -
                     */
         
     | 
| 
       127 
     | 
    
         
            -
                    this.form = new FormGroup({
         
     | 
| 
       128 
     | 
    
         
            -
                        address: this.addressControl,
         
     | 
| 
       129 
     | 
    
         
            -
                        coordinates: new FormGroup({
         
     | 
| 
       130 
     | 
    
         
            -
                            lat: new FormControl(null, Validators.required),
         
     | 
| 
       131 
     | 
    
         
            -
                            long: new FormControl(null, Validators.required),
         
     | 
| 
       132 
     | 
    
         
            -
                        }),
         
     | 
| 
       133 
     | 
    
         
            -
                        contact: new FormGroup({
         
     | 
| 
       134 
     | 
    
         
            -
                            name: new FormControl(null, Validators.required),
         
     | 
| 
       135 
     | 
    
         
            -
                            phone: new FormControl(null, [Validators.required, phoneValidator()]),
         
     | 
| 
       136 
     | 
    
         
            -
                            email: new FormControl(null, Validators.email),
         
     | 
| 
       137 
     | 
    
         
            -
                            position: new FormControl(null, Validators.required),
         
     | 
| 
       138 
     | 
    
         
            -
                        }),
         
     | 
| 
       139 
     | 
    
         
            -
                    });
         
     | 
| 
       140 
     | 
    
         
            -
                }
         
     | 
| 
       141 
     | 
    
         
            -
                /** @inheritdoc */
         
     | 
| 
       142 
     | 
    
         
            -
                ngAfterViewInit() {
         
     | 
| 
       143 
     | 
    
         
            -
                    this.userMetrikaService.emitUserMetrikaEvent({
         
     | 
| 
       144 
     | 
    
         
            -
                        target: ScUserMetrikaGoalsEnum.userProfileDeliveryAddressAddShow,
         
     | 
| 
       145 
     | 
    
         
            -
                    });
         
     | 
| 
       146 
     | 
    
         
            -
                    this.addressControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
         
     | 
| 
       147 
     | 
    
         
            -
                        this.removeGeoCoordinates();
         
     | 
| 
       148 
     | 
    
         
            -
                    });
         
     | 
| 
       149 
     | 
    
         
            -
                }
         
     | 
| 
       150 
     | 
    
         
            -
                /**
         
     | 
| 
       151 
     | 
    
         
            -
                 * Обработчик загрузки карты на странице.
         
     | 
| 
       152 
     | 
    
         
            -
                 *
         
     | 
| 
       153 
     | 
    
         
            -
                 * @param target Экземпляр целевого объекта.
         
     | 
| 
       154 
     | 
    
         
            -
                 * @param target.target Экземпляр целевого объекта.
         
     | 
| 
       155 
     | 
    
         
            -
                 */
         
     | 
| 
       156 
     | 
    
         
            -
                onMapReadyHandle({ target }) {
         
     | 
| 
       157 
     | 
    
         
            -
                    this.yaMap = target;
         
     | 
| 
       158 
     | 
    
         
            -
                    if (this.addressPlacemark) {
         
     | 
| 
       159 
     | 
    
         
            -
                        target.geoObjects.add(this.addressPlacemark);
         
     | 
| 
       160 
     | 
    
         
            -
                        const bounds = this.addressPlacemark.geometry?.getBounds();
         
     | 
| 
       161 
     | 
    
         
            -
                        if (bounds) {
         
     | 
| 
       162 
     | 
    
         
            -
                            target.setBounds(bounds);
         
     | 
| 
       163 
     | 
    
         
            -
                        }
         
     | 
| 
       164 
     | 
    
         
            -
                    }
         
     | 
| 
       165 
     | 
    
         
            -
                }
         
     | 
| 
       166 
     | 
    
         
            -
                /**
         
     | 
| 
       167 
     | 
    
         
            -
                 * Обработчик выбора адреса доставки.
         
     | 
| 
       168 
     | 
    
         
            -
                 *
         
     | 
| 
       169 
     | 
    
         
            -
                 * @param suggestion Объект подсказки ареса.
         
     | 
| 
       170 
     | 
    
         
            -
                 */
         
     | 
| 
       171 
     | 
    
         
            -
                onSelectedAddress(suggestion) {
         
     | 
| 
       172 
     | 
    
         
            -
                    if ('addressString' in suggestion && suggestion.geoCoordinates) {
         
     | 
| 
       173 
     | 
    
         
            -
                        const coords = ScAddDeliveryAddressDialogComponent.roundCoordinate([suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long]);
         
     | 
| 
       174 
     | 
    
         
            -
                        if (!this.addressPlacemark) {
         
     | 
| 
       175 
     | 
    
         
            -
                            this.addressPlacemark = this.createPlacemark(coords);
         
     | 
| 
       176 
     | 
    
         
            -
                        }
         
     | 
| 
       177 
     | 
    
         
            -
                        this.setGeoCoordinates(coords);
         
     | 
| 
       178 
     | 
    
         
            -
                        if (!this.yaMap?.geoObjects.getLength()) {
         
     | 
| 
       179 
     | 
    
         
            -
                            this.yaMap?.geoObjects.add(this.addressPlacemark);
         
     | 
| 
       180 
     | 
    
         
            -
                        }
         
     | 
| 
       181 
     | 
    
         
            -
                        const bounds = this.addressPlacemark.geometry?.getBounds();
         
     | 
| 
       182 
     | 
    
         
            -
                        if (bounds) {
         
     | 
| 
       183 
     | 
    
         
            -
                            this.yaMap?.setBounds(bounds);
         
     | 
| 
       184 
     | 
    
         
            -
                            this.yaMap?.setZoom(17);
         
     | 
| 
       185 
     | 
    
         
            -
                        }
         
     | 
| 
       186 
     | 
    
         
            -
                    }
         
     | 
| 
       187 
     | 
    
         
            -
                }
         
     | 
| 
       188 
     | 
    
         
            -
                /**
         
     | 
| 
       189 
     | 
    
         
            -
                 * Устанавливает {@link addressPlacemark} точку на определённые координаты.
         
     | 
| 
       190 
     | 
    
         
            -
                 *
         
     | 
| 
       191 
     | 
    
         
            -
                 * @param coords Координаты точки.
         
     | 
| 
       192 
     | 
    
         
            -
                 */
         
     | 
| 
       193 
     | 
    
         
            -
                setGeoCoordinates(coords) {
         
     | 
| 
       194 
     | 
    
         
            -
                    if (this.addressPlacemark) {
         
     | 
| 
       195 
     | 
    
         
            -
                        this.addressPlacemark.geometry?.setCoordinates(coords);
         
     | 
| 
       196 
     | 
    
         
            -
                        this.form.patchValue({
         
     | 
| 
       197 
     | 
    
         
            -
                            coordinates: {
         
     | 
| 
       198 
     | 
    
         
            -
                                lat: Number(coords[0].toFixed(6)),
         
     | 
| 
       199 
     | 
    
         
            -
                                long: Number(coords[1].toFixed(6)),
         
     | 
| 
       200 
     | 
    
         
            -
                            },
         
     | 
| 
       201 
     | 
    
         
            -
                        });
         
     | 
| 
       202 
     | 
    
         
            -
                    }
         
     | 
| 
       203 
     | 
    
         
            -
                }
         
     | 
| 
       204 
     | 
    
         
            -
                /**
         
     | 
| 
       205 
     | 
    
         
            -
                 * Устанавливает {@link addressPlacemark} точку на определённые координаты.
         
     | 
| 
       206 
     | 
    
         
            -
                 */
         
     | 
| 
       207 
     | 
    
         
            -
                removeGeoCoordinates() {
         
     | 
| 
       208 
     | 
    
         
            -
                    if (this.addressPlacemark) {
         
     | 
| 
       209 
     | 
    
         
            -
                        this.yaMap?.geoObjects.remove(this.addressPlacemark);
         
     | 
| 
       210 
     | 
    
         
            -
                        this.form.patchValue({
         
     | 
| 
       211 
     | 
    
         
            -
                            coordinates: {
         
     | 
| 
       212 
     | 
    
         
            -
                                lat: null,
         
     | 
| 
       213 
     | 
    
         
            -
                                long: null,
         
     | 
| 
       214 
     | 
    
         
            -
                            },
         
     | 
| 
       215 
     | 
    
         
            -
                        });
         
     | 
| 
       216 
     | 
    
         
            -
                        this.yaMap?.setCenter(this.defaultCenterMap);
         
     | 
| 
       217 
     | 
    
         
            -
                        this.yaMap?.setZoom(this.defaultZoomMap);
         
     | 
| 
       218 
     | 
    
         
            -
                    }
         
     | 
| 
       219 
     | 
    
         
            -
                }
         
     | 
| 
       220 
     | 
    
         
            -
                /**
         
     | 
| 
       221 
     | 
    
         
            -
                 * Создаёт объект точки и устанавливает события для него.
         
     | 
| 
       222 
     | 
    
         
            -
                 *
         
     | 
| 
       223 
     | 
    
         
            -
                 * @param coords Координаты точки.
         
     | 
| 
       224 
     | 
    
         
            -
                 */
         
     | 
| 
       225 
     | 
    
         
            -
                createPlacemark(coords) {
         
     | 
| 
       226 
     | 
    
         
            -
                    const placemark = new ymaps.Placemark(coords, {
         
     | 
| 
       227 
     | 
    
         
            -
                        iconCaption: '',
         
     | 
| 
       228 
     | 
    
         
            -
                    }, {
         
     | 
| 
       229 
     | 
    
         
            -
                        preset: 'islands',
         
     | 
| 
       230 
     | 
    
         
            -
                        draggable: true,
         
     | 
| 
       231 
     | 
    
         
            -
                    });
         
     | 
| 
       232 
     | 
    
         
            -
                    placemark.events.add('dragend', () => {
         
     | 
| 
       233 
     | 
    
         
            -
                        const coord = this.addressPlacemark?.geometry?.getCoordinates();
         
     | 
| 
       234 
     | 
    
         
            -
                        if (coord) {
         
     | 
| 
       235 
     | 
    
         
            -
                            this.setGeoCoordinates(ScAddDeliveryAddressDialogComponent.roundCoordinate(coord));
         
     | 
| 
       236 
     | 
    
         
            -
                        }
         
     | 
| 
       237 
     | 
    
         
            -
                    });
         
     | 
| 
       238 
     | 
    
         
            -
                    return placemark;
         
     | 
| 
       239 
     | 
    
         
            -
                }
         
     | 
| 
       240 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, deps: [{ token: i1.ScDeliveryAddressService }, { token: i1.ScUserMetrikaService }, { token: POLYMORPHEUS_CONTEXT }, { token: i1.ScConvertersService }], target: i0.ɵɵFactoryTarget.Component }); }
         
     | 
| 
       241 
     | 
    
         
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScAddDeliveryAddressDialogComponent, selector: "sc-add-delivery-address-dialog", ngImport: i0, template: "@let isEnabledAddDeliveryAddress = isDefaultCountry | async;\n\n@if (isEnabledAddDeliveryAddress) {\n    <div class=\"relative flex flex-col gap-3 md:flex-row\">\n        <form\n            [formGroup]=\"form\"\n            (ngSubmit)=\"onSubmit$.next()\"\n            class=\"flex w-full flex-col gap-3\"\n        >\n            <label tuiLabel>\n                \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n                <tui-input\n                    [pseudoInvalid]=\"(addressControl.valid && form.controls.coordinates.invalid) || null\"\n                    formControlName=\"address\"\n                >\n                    \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                        (selectedClick)=\"onSelectedAddress($event)\"\n                    />\n                    <input\n                        tuiTextfieldLegacy\n                        autocomplete=\"new-password\"\n                    />\n                </tui-input>\n                <tui-error\n                    formControlName=\"address\"\n                    [error]=\"[] | tuiFieldError | async\"\n                />\n                <tui-error\n                    *ngIf=\"addressControl.valid && form.controls.coordinates.invalid\"\n                    error=\"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430\"\n                />\n            </label>\n            <div\n                formGroupName=\"contact\"\n                class=\"flex grow flex-col gap-2\"\n            >\n                <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n                <label tuiLabel>\n                    \u0424.\u0418.\u041E.\n                    <tui-input formControlName=\"name\">\n                        \u0424.\u0418.\u041E.\n                        <sc-suggestion-field\n                            *tuiDataList\n                            [type]=\"suggestionType.fio\"\n                        />\n                    </tui-input>\n                    <tui-error\n                        formControlName=\"name\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n                <label tuiLabel>\n                    \u0422\u0435\u043B\u0435\u0444\u043E\u043D\n                    <tui-textfield>\n                        <input\n                            formControlName=\"phone\"\n                            tuiInputPhoneInternational\n                            [countrySearch]=\"true\"\n                            [countries]=\"(countries | tuiSortCountries | async) || []\"\n                            autocomplete=\"phone\"\n                        />\n                    </tui-textfield>\n                    <tui-error\n                        formControlName=\"phone\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n                <label tuiLabel>\n                    \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n                    <tui-input formControlName=\"email\">\n                        <input\n                            tuiTextfieldLegacy\n                            type=\"email\"\n                        />\n                        \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n                        <sc-suggestion-field\n                            *tuiDataList\n                            [type]=\"suggestionType.email\"\n                        />\n                    </tui-input>\n                    <tui-error\n                        formControlName=\"email\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n                <label tuiLabel>\n                    \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\n                    <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n                    <tui-error\n                        formControlName=\"position\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n            </div>\n            <div class=\"flex justify-center gap-8\">\n                <button\n                    tuiButton\n                    (click)=\"context.$implicit.complete()\"\n                    type=\"button\"\n                    [iconStart]=\"isMobile ? '@tui.x' : '@tui.x'\"\n                    appearance=\"secondary\"\n                >\n                    \u041E\u0442\u043C\u0435\u043D\u0430\n                </button>\n                <button\n                    tuiButton\n                    [iconStart]=\"isMobile ? '@tui.save' : '@tui.save'\"\n                    [disabled]=\"form.invalid\"\n                    [loading]=\"!!(loading$ | async)\"\n                    type=\"submit\"\n                >\n                    \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n                </button>\n            </div>\n        </form>\n\n        <div\n            class=\"absolute -z-10 flex size-full md:w-1/2\"\n            [ngClass]=\"{ 'z-0 relative': addressPlacemark }\"\n        >\n            <div\n                class=\"flex-auto\"\n                [ngClass]=\"{ 'pointer-events-none opacity-50': form.controls.coordinates.invalid }\"\n            >\n                <ya-map\n                    [zoom]=\"11\"\n                    [state]=\"{ controls: [] }\"\n                    (ready)=\"onMapReadyHandle($event)\"\n                    [options]=\"options\"\n                />\n            </div>\n        </div>\n    </div>\n} @else {\n    @let helpContacts = userHelpContacts$ | async;\n\n    @if (helpContacts && helpContacts.length) {\n        <tui-push\n            type=\"\u0427\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438, \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438\"\n            class=\"!w-auto\"\n        >\n            <tui-icon icon=\"@tui.message-square\" />\n            <sc-manager-card [manager]=\"helpContacts[0]\" />\n        </tui-push>\n    }\n}\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i3.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i6.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i6.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i7.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i8.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "directive", type: i3.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i9.YaMapComponent, selector: "ya-map", inputs: ["center", "zoom", "state", "options"], outputs: ["ready", "actionbegin", "actionbreak", "actionend", "actiontick", "actiontickcomplete", "balloonclose", "balloonopen", "boundschange", "yaclick", "yacontextmenu", "yadblclick", "destroy", "hintclose", "hintopen", "marginchange", "yamousedown", "yamouseenter", "yamouseleave", "yamousemove", "yamouseup", "multitouchend", "multitouchmove", "multitouchstart", "optionschange", "sizechange", "typechange", "yawheel"] }, { kind: "component", type: i10.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "component", type: i10.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }, { kind: "component", type: i3.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: i11.ScManagerCardComponent, selector: "sc-manager-card", inputs: ["manager"] }, { kind: "component", type: i12.TuiInputPhoneInternational, selector: "input[tuiInputPhoneInternational]", inputs: ["countrySearch", "countries", "countryIsoCode"], outputs: ["countryIsoCodeChange"] }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "pipe", type: i10.TuiSortCountriesPipe, name: "tuiSortCountries" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         
     | 
| 
       242 
     | 
    
         
            -
            }
         
     | 
| 
       243 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, decorators: [{
         
     | 
| 
       244 
     | 
    
         
            -
                        type: Component,
         
     | 
| 
       245 
     | 
    
         
            -
                        args: [{ selector: 'sc-add-delivery-address-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let isEnabledAddDeliveryAddress = isDefaultCountry | async;\n\n@if (isEnabledAddDeliveryAddress) {\n    <div class=\"relative flex flex-col gap-3 md:flex-row\">\n        <form\n            [formGroup]=\"form\"\n            (ngSubmit)=\"onSubmit$.next()\"\n            class=\"flex w-full flex-col gap-3\"\n        >\n            <label tuiLabel>\n                \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n                <tui-input\n                    [pseudoInvalid]=\"(addressControl.valid && form.controls.coordinates.invalid) || null\"\n                    formControlName=\"address\"\n                >\n                    \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n                    <sc-suggestion-field\n                        *tuiDataList\n                        [type]=\"suggestionType.address\"\n                        (selectedClick)=\"onSelectedAddress($event)\"\n                    />\n                    <input\n                        tuiTextfieldLegacy\n                        autocomplete=\"new-password\"\n                    />\n                </tui-input>\n                <tui-error\n                    formControlName=\"address\"\n                    [error]=\"[] | tuiFieldError | async\"\n                />\n                <tui-error\n                    *ngIf=\"addressControl.valid && form.controls.coordinates.invalid\"\n                    error=\"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430\"\n                />\n            </label>\n            <div\n                formGroupName=\"contact\"\n                class=\"flex grow flex-col gap-2\"\n            >\n                <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n                <label tuiLabel>\n                    \u0424.\u0418.\u041E.\n                    <tui-input formControlName=\"name\">\n                        \u0424.\u0418.\u041E.\n                        <sc-suggestion-field\n                            *tuiDataList\n                            [type]=\"suggestionType.fio\"\n                        />\n                    </tui-input>\n                    <tui-error\n                        formControlName=\"name\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n                <label tuiLabel>\n                    \u0422\u0435\u043B\u0435\u0444\u043E\u043D\n                    <tui-textfield>\n                        <input\n                            formControlName=\"phone\"\n                            tuiInputPhoneInternational\n                            [countrySearch]=\"true\"\n                            [countries]=\"(countries | tuiSortCountries | async) || []\"\n                            autocomplete=\"phone\"\n                        />\n                    </tui-textfield>\n                    <tui-error\n                        formControlName=\"phone\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n                <label tuiLabel>\n                    \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n                    <tui-input formControlName=\"email\">\n                        <input\n                            tuiTextfieldLegacy\n                            type=\"email\"\n                        />\n                        \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n                        <sc-suggestion-field\n                            *tuiDataList\n                            [type]=\"suggestionType.email\"\n                        />\n                    </tui-input>\n                    <tui-error\n                        formControlName=\"email\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n                <label tuiLabel>\n                    \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\n                    <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n                    <tui-error\n                        formControlName=\"position\"\n                        [error]=\"[] | tuiFieldError | async\"\n                    />\n                </label>\n            </div>\n            <div class=\"flex justify-center gap-8\">\n                <button\n                    tuiButton\n                    (click)=\"context.$implicit.complete()\"\n                    type=\"button\"\n                    [iconStart]=\"isMobile ? '@tui.x' : '@tui.x'\"\n                    appearance=\"secondary\"\n                >\n                    \u041E\u0442\u043C\u0435\u043D\u0430\n                </button>\n                <button\n                    tuiButton\n                    [iconStart]=\"isMobile ? '@tui.save' : '@tui.save'\"\n                    [disabled]=\"form.invalid\"\n                    [loading]=\"!!(loading$ | async)\"\n                    type=\"submit\"\n                >\n                    \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n                </button>\n            </div>\n        </form>\n\n        <div\n            class=\"absolute -z-10 flex size-full md:w-1/2\"\n            [ngClass]=\"{ 'z-0 relative': addressPlacemark }\"\n        >\n            <div\n                class=\"flex-auto\"\n                [ngClass]=\"{ 'pointer-events-none opacity-50': form.controls.coordinates.invalid }\"\n            >\n                <ya-map\n                    [zoom]=\"11\"\n                    [state]=\"{ controls: [] }\"\n                    (ready)=\"onMapReadyHandle($event)\"\n                    [options]=\"options\"\n                />\n            </div>\n        </div>\n    </div>\n} @else {\n    @let helpContacts = userHelpContacts$ | async;\n\n    @if (helpContacts && helpContacts.length) {\n        <tui-push\n            type=\"\u0427\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438, \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438\"\n            class=\"!w-auto\"\n        >\n            <tui-icon icon=\"@tui.message-square\" />\n            <sc-manager-card [manager]=\"helpContacts[0]\" />\n        </tui-push>\n    }\n}\n" }]
         
     | 
| 
       246 
     | 
    
         
            -
                    }], ctorParameters: () => [{ type: i1.ScDeliveryAddressService }, { type: i1.ScUserMetrikaService }, { type: undefined, decorators: [{
         
     | 
| 
       247 
     | 
    
         
            -
                                type: Inject,
         
     | 
| 
       248 
     | 
    
         
            -
                                args: [POLYMORPHEUS_CONTEXT]
         
     | 
| 
       249 
     | 
    
         
            -
                            }] }, { type: i1.ScConvertersService }] });
         
     | 
| 
       250 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9kZWxpdmVyeS1hZGRyZXNzL2FkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RlbGl2ZXJ5LWFkZHJlc3MvYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrRkFBa0Y7QUFFbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQU9ILGlCQUFpQixFQUVqQixzQkFBc0IsR0FFekIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFB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RUFBRSxjQUFjLEVBQUUsQ0FBQztZQUVoRSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQ0FBbUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2RixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOytHQS9RUSxtQ0FBbUMsOEZBaUpoQyxvQkFBb0I7bUdBakp2QixtQ0FBbUMsc0VDdkNoRCw0ak5BcUpBOzs0RkQ5R2EsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNJLGdDQUFnQyxtQkFFekIsdUJBQXVCLENBQUMsTUFBTTs7MEJBbUoxQyxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCxsb2Rhc2gvcHJlZmVyLWxvZGFzaC1tZXRob2QgKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBJbmplY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgU2NDb252ZXJ0ZXJzU2VydmljZSxcbiAgICBTY0RlbGl2ZXJ5QWRkcmVzc1NlcnZpY2UsXG4gICAgU2NJRGVsaXZlcnlBZGRyZXNzLFxuICAgIFNjSURlbGl2ZXJ5QWRkcmVzc09uRGF0YUNyZWF0ZSxcbiAgICBTY0lPcmdDb250YWN0LFxuICAgIFNjSVN1Z2dlc3Rpb25BZGRyZXNzLFxuICAgIFNjSVN1Z2dlc3Rpb25UeXBlLFxuICAgIFNjU3VnZ2VzdGlvbixcbiAgICBTY1VzZXJNZXRyaWthR29hbHNFbnVtLFxuICAgIFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxufSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9JU19NT0JJTEUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlDb3VudHJ5SXNvQ29kZSB9IGZyb20gJ0B0YWlnYS11aS9pMThuJztcbmltcG9ydCB7IFBPTFlNT1JQSEVVU19DT05URVhUIH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBZYVJlYWR5RXZlbnQgfSBmcm9tICdhbmd1bGFyOC15YW5kZXgtbWFwcyc7XG5pbXBvcnQgeyBnZXRDb3VudHJpZXMgfSBmcm9tICdsaWJwaG9uZW51bWJlci1qcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9hdXRoJztcbmltcG9ydCB7IElTX0RFRkFVTFRfQ09VTlRSWSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0hlbHBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgcGhvbmVWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzL3NjLXBob25lLXZhbGlkYXRvcic7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC00L7QsdCw0LLQu9C10L3QuNGPINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQWRkRGVsaXZlcnlBZGRyZXNzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICog0J7QutGA0YPQs9C70Y/QtdGCINC60L7QvtGA0LTQuNC90LDRgtGLINC00L4gNiDRhtC40YTRgCDQv9C+0YHQu9C1INC30LDQv9GP0YLQvtC5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvb3JkcyDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC+0YfQutC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIHJvdW5kQ29vcmRpbmF0ZShjb29yZHM6IG51bWJlcltdKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gY29vcmRzLm1hcCgoY29vcmQpID0+IE1hdGgucm91bmQoY29vcmQgKiAxZTYpIC8gMWU2KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0LTQu9GPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LPQviDRg9C/0YDQsNCy0LvQtdC90LjRjyDRg9C90LjRh9GC0L7QttC10L3QuNC10Lwg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDQvtGC0L7QsdGA0LDQttCw0LXRgtGB0Y8g0Y3RgtC+0YIg0LrQvtC80L/QvtC90LXQvdGCINC90LAg0LzQvtCx0LjQu9GM0L3QvtC8INGD0YHRgtGA0L7QudGB0YLQstC1INC40LvQuCDQvdC10YIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU3ViamVjdH0g0YHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvblN1Ym1pdCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YbQtdC90YLRgNCwINC60LDRgNGC0Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRDZW50ZXJNYXA6IG51bWJlcltdID0gWzU3LjAwMDM1MywgNDAuOTczOTNdO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNGB0YjRgtCw0LEg0LrQsNGA0YLRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFpvb21NYXA6IG51bWJlciA9IDExO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC00LDQvdC90YvRhSDQutC+0L3RgtCw0LrRgtC+0LIg0LTQuyDQv9C+0LzQvtGJ0LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHVzZXJIZWxwQ29udGFjdHMkOiBPYnNlcnZhYmxlPFNjSU9yZ0NvbnRhY3RbXT4gPSBpbmplY3QoU2NIZWxwTm90aWZpY2F0aW9uU2VydmljZSkudXNlckhlbHBDb250YWN0cztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDRh9GC0L4g0YLQtdC60YPRidCw0Y8g0YHRgtGA0LDQvdCwINGP0LLQu9GP0LXRgtGB0Y8g0LLQtdGA0L3QvtC5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0RlZmF1bHRDb3VudHJ5OiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gaW5qZWN0KElTX0RFRkFVTFRfQ09VTlRSWSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY291bnRyaWVzOiByZWFkb25seSBUdWlDb3VudHJ5SXNvQ29kZVtdID0gZ2V0Q291bnRyaWVzKCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINC00L7QsdCw0LLQu9C10L3QuNGPINCw0LTRgNC10YEg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFNjSURlbGl2ZXJ5QWRkcmVzcyB8IG51bGw+ID0gdGhpcy5vblN1Ym1pdCQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUgYXMgU2NJRGVsaXZlcnlBZGRyZXNzT25EYXRhQ3JlYXRlKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzU2VydmljZS5jcmVhdGVEZWxpdmVyeUFkZHJlc3MkKHRoaXMuY29udmVydGVyc1NlcnZpY2UucmVtb3ZlTnVsbFJlY3Vyc2l2ZTxTY0lEZWxpdmVyeUFkZHJlc3NPbkRhdGFDcmVhdGU+KHZhbHVlKSkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuY29tcGxldGVXaXRoKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzLCBtZXNzYWdlIH0gPSBlcnJvci5lcnJvciBhcyBBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KT8uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IGVycm9yc1trZXldIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbbWVzc2FnZV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe30gYXMgU2NJRGVsaXZlcnlBZGRyZXNzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUobWFwKChkYXRhKSA9PiBkYXRhID09PSBudWxsKSk7XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0YEg0L/QvtC70Y/QvNC4INCw0LTRgNC10YHQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRyZXNzQ29udHJvbDogRm9ybUNvbnRyb2w8U2NJU3VnZ2VzdGlvbkFkZHJlc3MgfCBzdHJpbmcgfCBudWxsPiA9IG5ldyBGb3JtQ29udHJvbDxTY0lTdWdnZXN0aW9uQWRkcmVzcyB8IHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNGB0YLRgNC+0LnQutC4INC60LDRgNGC0YsuXG4gICAgICovXG4gICAgcHVibGljIG9wdGlvbnM6IHltYXBzLklNYXBPcHRpb25zID0ge1xuICAgICAgICBhdXRvRml0VG9WaWV3cG9ydDogJ2Fsd2F5cycsXG4gICAgICAgIHlhbmRleE1hcERpc2FibGVQb2lJbnRlcmFjdGl2aXR5OiBmYWxzZSxcbiAgICAgICAgbWF4Wm9vbTogMTksXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0LDQtNGA0LXRgdCwINC00L7RgdGC0LDQstC60LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5hZGRyZXNzQ29udHJvbCxcbiAgICAgICAgY29vcmRpbmF0ZXM6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgbGF0OiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICBsb25nOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIH0pLFxuICAgICAgICBjb250YWN0OiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHBob25lVmFsaWRhdG9yKCldKSxcbiAgICAgICAgICAgIGVtYWlsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5lbWFpbCksXG4gICAgICAgICAgICBwb3NpdGlvbjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB9KSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCi0L7Rh9C60LAg0LDQtNGA0LXRgdCwINC90LAg0LrQsNGA0YLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkcmVzc1BsYWNlbWFyaz86IHltYXBzLlBsYWNlbWFyaztcblxuICAgIC8qKlxuICAgICAqINCv0L3QtNC10LrRgSDQutCw0YDRgtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyB5YU1hcD86IHltYXBzLk1hcDtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NBZGREZWxpdmVyeUFkZHJlc3NEaWFsb2dDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlbGl2ZXJ5QWRkcmVzc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSDQsNC00YDQtdGB0LDQvNC4INC00L7RgdGC0LDQstC60LguXG4gICAgICogQHBhcmFtIHVzZXJNZXRyaWthU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKiBAcGFyYW0gY29udGV4dCDQmtC+0L3RgtC10LrRgdGCINC00LjQsNC70L7Qs9C+0LLQvtCz0L4g0L7QutC90LAsINCyINC60L7RgtC+0YDQvtC8INC+0YLQutGA0YvRgiDQutC+0LzQv9C+0L3QtdC90YIuXG4gICAgICogQHBhcmFtIGNvbnZlcnRlcnNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVsaXZlcnlBZGRyZXNzU2VydmljZTogU2NEZWxpdmVyeUFkZHJlc3NTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoUE9MWU1PUlBIRVVTX0NPTlRFWFQpIHB1YmxpYyByZWFkb25seSBjb250ZXh0OiBUdWlEaWFsb2dDb250ZXh0PHZvaWQsIHZvaWQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnVzZXJQcm9maWxlRGVsaXZlcnlBZGRyZXNzQWRkU2hvdyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hZGRyZXNzQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlR2VvQ29vcmRpbmF0ZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LfQsNCz0YDRg9C30LrQuCDQutCw0YDRgtGLINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQg0K3QutC30LXQvNC/0LvRj9GAINGG0LXQu9C10LLQvtCz0L4g0L7QsdGK0LXQutGC0LAuXG4gICAgICogQHBhcmFtIHRhcmdldC50YXJnZXQg0K3QutC30LXQvNC/0LvRj9GAINGG0LXQu9C10LLQvtCz0L4g0L7QsdGK0LXQutGC0LAuXG4gICAgICovXG4gICAgcHVibGljIG9uTWFwUmVhZHlIYW5kbGUoeyB0YXJnZXQgfTogWWFSZWFkeUV2ZW50PHltYXBzLk1hcD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy55YU1hcCA9IHRhcmdldDtcblxuICAgICAgICBpZiAodGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICB0YXJnZXQuZ2VvT2JqZWN0cy5hZGQodGhpcy5hZGRyZXNzUGxhY2VtYXJrKTtcblxuICAgICAgICAgICAgY29uc3QgYm91bmRzID0gdGhpcy5hZGRyZXNzUGxhY2VtYXJrLmdlb21ldHJ5Py5nZXRCb3VuZHMoKTtcblxuICAgICAgICAgICAgaWYgKGJvdW5kcykge1xuICAgICAgICAgICAgICAgIHRhcmdldC5zZXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INCy0YvQsdC+0YDQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60Lgg0LDRgNC10YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25TZWxlY3RlZEFkZHJlc3Moc3VnZ2VzdGlvbjogU2NTdWdnZXN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICgnYWRkcmVzc1N0cmluZycgaW4gc3VnZ2VzdGlvbiAmJiBzdWdnZXN0aW9uLmdlb0Nvb3JkaW5hdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBjb29yZHMgPSBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudC5yb3VuZENvb3JkaW5hdGUoW3N1Z2dlc3Rpb24uZ2VvQ29vcmRpbmF0ZXMubGF0LCBzdWdnZXN0aW9uLmdlb0Nvb3JkaW5hdGVzLmxvbmddKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmFkZHJlc3NQbGFjZW1hcmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NQbGFjZW1hcmsgPSB0aGlzLmNyZWF0ZVBsYWNlbWFyayhjb29yZHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNldEdlb0Nvb3JkaW5hdGVzKGNvb3Jkcyk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy55YU1hcD8uZ2VvT2JqZWN0cy5nZXRMZW5ndGgoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMueWFNYXA/Lmdlb09iamVjdHMuYWRkKHRoaXMuYWRkcmVzc1BsYWNlbWFyayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuYWRkcmVzc1BsYWNlbWFyay5nZW9tZXRyeT8uZ2V0Qm91bmRzKCk7XG5cbiAgICAgICAgICAgIGlmIChib3VuZHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnlhTWFwPy5zZXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnlhTWFwPy5zZXRab29tKDE3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHtAbGluayBhZGRyZXNzUGxhY2VtYXJrfSDRgtC+0YfQutGDINC90LAg0L7Qv9GA0LXQtNC10LvRkdC90L3Ri9C1INC60L7QvtGA0LTQuNC90LDRgtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvb3JkcyDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC+0YfQutC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0R2VvQ29vcmRpbmF0ZXMoY29vcmRzOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NQbGFjZW1hcmsuZ2VvbWV0cnk/LnNldENvb3JkaW5hdGVzKGNvb3Jkcyk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBjb29yZGluYXRlczoge1xuICAgICAgICAgICAgICAgICAgICBsYXQ6IE51bWJlcihjb29yZHNbMF0udG9GaXhlZCg2KSksXG4gICAgICAgICAgICAgICAgICAgIGxvbmc6IE51bWJlcihjb29yZHNbMV0udG9GaXhlZCg2KSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIge0BsaW5rIGFkZHJlc3NQbGFjZW1hcmt9INGC0L7Rh9C60YMg0L3QsCDQvtC/0YDQtdC00LXQu9GR0L3QvdGL0LUg0LrQvtC+0YDQtNC40L3QsNGC0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVHZW9Db29yZGluYXRlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWRkcmVzc1BsYWNlbWFyaykge1xuICAgICAgICAgICAgdGhpcy55YU1hcD8uZ2VvT2JqZWN0cy5yZW1vdmUodGhpcy5hZGRyZXNzUGxhY2VtYXJrKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGxhdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbG9uZzogbnVsbCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMueWFNYXA/LnNldENlbnRlcih0aGlzLmRlZmF1bHRDZW50ZXJNYXApO1xuICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Wm9vbSh0aGlzLmRlZmF1bHRab29tTWFwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC+0LHRitC10LrRgiDRgtC+0YfQutC4INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGB0L7QsdGL0YLQuNGPINC00LvRjyDQvdC10LPQvi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb29yZHMg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVBsYWNlbWFyayhjb29yZHM6IG51bWJlcltdKTogeW1hcHMuUGxhY2VtYXJrIHtcbiAgICAgICAgY29uc3QgcGxhY2VtYXJrID0gbmV3IHltYXBzLlBsYWNlbWFyayhcbiAgICAgICAgICAgIGNvb3JkcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpY29uQ2FwdGlvbjogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByZXNldDogJ2lzbGFuZHMnLFxuICAgICAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBwbGFjZW1hcmsuZXZlbnRzLmFkZCgnZHJhZ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvb3JkID0gdGhpcy5hZGRyZXNzUGxhY2VtYXJrPy5nZW9tZXRyeT8uZ2V0Q29vcmRpbmF0ZXMoKTtcblxuICAgICAgICAgICAgaWYgKGNvb3JkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRHZW9Db29yZGluYXRlcyhTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudC5yb3VuZENvb3JkaW5hdGUoY29vcmQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHBsYWNlbWFyaztcbiAgICB9XG59XG4iLCJAbGV0IGlzRW5hYmxlZEFkZERlbGl2ZXJ5QWRkcmVzcyA9IGlzRGVmYXVsdENvdW50cnkgfCBhc3luYztcblxuQGlmIChpc0VuYWJsZWRBZGREZWxpdmVyeUFkZHJlc3MpIHtcbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBmbGV4LWNvbCBnYXAtMyBtZDpmbGV4LXJvd1wiPlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCQubmV4dCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wgZ2FwLTNcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDQtNC+0YHRgtCw0LLQutC4XG4gICAgICAgICAgICAgICAgPHR1aS1pbnB1dFxuICAgICAgICAgICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCIoYWRkcmVzc0NvbnRyb2wudmFsaWQgJiYgZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkKSB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDQkNC00YDQtdGBINC00L7RgdGC0LDQstC60LhcbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDbGljayk9XCJvblNlbGVjdGVkQWRkcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhZGRyZXNzQ29udHJvbC52YWxpZCAmJiBmb3JtLmNvbnRyb2xzLmNvb3JkaW5hdGVzLmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICBlcnJvcj1cItCS0YvQsdC10YDQuNGC0LUg0LLQsNGA0LjQsNC90YIg0LjQtyDRgdC/0LjRgdC60LBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGZvcm1Hcm91cE5hbWU9XCJjb250YWN0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbCBnYXAtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3LWZ1bGwgZm9udC1ib2xkXCI+0JrQvtC90YLQsNC60YLQvdC+0LUg0LvQuNGG0L46PC9wPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAg0KQu0Jgu0J4uXG4gICAgICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAg0KQu0Jgu0J4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmZpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICDQotC10LvQtdGE0L7QvVxuICAgICAgICAgICAgICAgICAgICA8dHVpLXRleHRmaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBob25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJbnB1dFBob25lSW50ZXJuYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb3VudHJ5U2VhcmNoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb3VudHJpZXNdPVwiKGNvdW50cmllcyB8IHR1aVNvcnRDb3VudHJpZXMgfCBhc3luYykgfHwgW11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cInBob25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICDQkNC00YDQtdGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRi1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5lbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAg0JTQvtC70LbQvdC+0YHRgtGMXG4gICAgICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicG9zaXRpb25cIj4g0JTQvtC70LbQvdC+0YHRgtGMIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGdhcC04XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25TdGFydF09XCJpc01vYmlsZSA/ICdAdHVpLngnIDogJ0B0dWkueCdcIlxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgINCe0YLQvNC10L3QsFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiaXNNb2JpbGUgPyAnQHR1aS5zYXZlJyA6ICdAdHVpLnNhdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDQlNC+0LHQsNCy0LjRgtGMXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXotMTAgZmxleCBzaXplLWZ1bGwgbWQ6dy0xLzJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnei0wIHJlbGF0aXZlJzogYWRkcmVzc1BsYWNlbWFyayB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwb2ludGVyLWV2ZW50cy1ub25lIG9wYWNpdHktNTAnOiBmb3JtLmNvbnRyb2xzLmNvb3JkaW5hdGVzLmludmFsaWQgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHlhLW1hcFxuICAgICAgICAgICAgICAgICAgICBbem9vbV09XCIxMVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJ7IGNvbnRyb2xzOiBbXSB9XCJcbiAgICAgICAgICAgICAgICAgICAgKHJlYWR5KT1cIm9uTWFwUmVhZHlIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG59IEBlbHNlIHtcbiAgICBAbGV0IGhlbHBDb250YWN0cyA9IHVzZXJIZWxwQ29udGFjdHMkIHwgYXN5bmM7XG5cbiAgICBAaWYgKGhlbHBDb250YWN0cyAmJiBoZWxwQ29udGFjdHMubGVuZ3RoKSB7XG4gICAgICAgIDx0dWktcHVzaFxuICAgICAgICAgICAgdHlwZT1cItCn0YLQvtCx0Ysg0LTQvtCx0LDQstC40YLRjCDQsNC00YDQtdGBINC00L7RgdGC0LDQstC60LgsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQvdCw0LzQuFwiXG4gICAgICAgICAgICBjbGFzcz1cIiF3LWF1dG9cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLWljb24gaWNvbj1cIkB0dWkubWVzc2FnZS1zcXVhcmVcIiAvPlxuICAgICAgICAgICAgPHNjLW1hbmFnZXItY2FyZCBbbWFuYWdlcl09XCJoZWxwQ29udGFjdHNbMF1cIiAvPlxuICAgICAgICA8L3R1aS1wdXNoPlxuICAgIH1cbn1cbiJdfQ==
         
     | 
| 
         @@ -1,60 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       3 
     | 
    
         
            -
            import * as i1 from "@snabcentr/client-core";
         
     | 
| 
       4 
     | 
    
         
            -
            import * as i2 from "@angular/common";
         
     | 
| 
       5 
     | 
    
         
            -
            import * as i3 from "../../../accordion/sc-accordion.component";
         
     | 
| 
       6 
     | 
    
         
            -
            import * as i4 from "../../../accordion/sc-accordion-content.directive";
         
     | 
| 
       7 
     | 
    
         
            -
            import * as i5 from "../../../contacts/contacts-accordion/sc-contacts-accordion.component";
         
     | 
| 
       8 
     | 
    
         
            -
            /**
         
     | 
| 
       9 
     | 
    
         
            -
             * Компонент адреса доставки.
         
     | 
| 
       10 
     | 
    
         
            -
             */
         
     | 
| 
       11 
     | 
    
         
            -
            export class ScDeliveryAddressAccordionItemComponent {
         
     | 
| 
       12 
     | 
    
         
            -
                /**
         
     | 
| 
       13 
     | 
    
         
            -
                 * Инициализирует экземпляр класса {@link ScDeliveryAddressAccordionItemComponent}.
         
     | 
| 
       14 
     | 
    
         
            -
                 *
         
     | 
| 
       15 
     | 
    
         
            -
                 * @param deliveryAddressService Сервис работы с адресами доставки.
         
     | 
| 
       16 
     | 
    
         
            -
                 */
         
     | 
| 
       17 
     | 
    
         
            -
                constructor(deliveryAddressService) {
         
     | 
| 
       18 
     | 
    
         
            -
                    this.deliveryAddressService = deliveryAddressService;
         
     | 
| 
       19 
     | 
    
         
            -
                    /**
         
     | 
| 
       20 
     | 
    
         
            -
                     * Событие нажатия на кнопку удаления адреса доставки.
         
     | 
| 
       21 
     | 
    
         
            -
                     */
         
     | 
| 
       22 
     | 
    
         
            -
                    this.deleteDeliveryAddressClick = new EventEmitter();
         
     | 
| 
       23 
     | 
    
         
            -
                    /**
         
     | 
| 
       24 
     | 
    
         
            -
                     * Событие нажатия на кнопку добавления контактного лица адресу доставки.
         
     | 
| 
       25 
     | 
    
         
            -
                     */
         
     | 
| 
       26 
     | 
    
         
            -
                    this.addDeliveryAddressContactClick = new EventEmitter();
         
     | 
| 
       27 
     | 
    
         
            -
                    /**
         
     | 
| 
       28 
     | 
    
         
            -
                     * Событие нажатия на кнопку удаления контактного лица адреса доставки.
         
     | 
| 
       29 
     | 
    
         
            -
                     */
         
     | 
| 
       30 
     | 
    
         
            -
                    this.deleteDeliveryAddressContactClick = new EventEmitter();
         
     | 
| 
       31 
     | 
    
         
            -
                }
         
     | 
| 
       32 
     | 
    
         
            -
                /** @inheritDoc */
         
     | 
| 
       33 
     | 
    
         
            -
                ngOnInit() {
         
     | 
| 
       34 
     | 
    
         
            -
                    this.contacts$ = this.deliveryAddressService.getDeliveryAddressContacts$(this.deliveryAddress.id);
         
     | 
| 
       35 
     | 
    
         
            -
                }
         
     | 
| 
       36 
     | 
    
         
            -
                /**
         
     | 
| 
       37 
     | 
    
         
            -
                 * Обработчик нажатия на кнопку удаления контактного лица у адреса доставки.
         
     | 
| 
       38 
     | 
    
         
            -
                 *
         
     | 
| 
       39 
     | 
    
         
            -
                 * @param contact Контактное лицо.
         
     | 
| 
       40 
     | 
    
         
            -
                 * @param address Адрес доставки клиента.
         
     | 
| 
       41 
     | 
    
         
            -
                 */
         
     | 
| 
       42 
     | 
    
         
            -
                onDeleteContragentContactClick(contact, address) {
         
     | 
| 
       43 
     | 
    
         
            -
                    this.deleteDeliveryAddressContactClick.emit({ contact: contact, address: address });
         
     | 
| 
       44 
     | 
    
         
            -
                }
         
     | 
| 
       45 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScDeliveryAddressAccordionItemComponent, deps: [{ token: i1.ScDeliveryAddressService }], target: i0.ɵɵFactoryTarget.Component }); }
         
     | 
| 
       46 
     | 
    
         
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScDeliveryAddressAccordionItemComponent, selector: "sc-delivery-address-accordion-item", inputs: { deliveryAddress: "deliveryAddress" }, outputs: { deleteDeliveryAddressClick: "deleteDeliveryAddressClick", addDeliveryAddressContactClick: "addDeliveryAddressContactClick", deleteDeliveryAddressContactClick: "deleteDeliveryAddressContactClick" }, ngImport: i0, template: "<sc-accordion [showAddButton]=\"false\">\n    {{ deliveryAddress.address }}\n\n    <ng-template scAccordionContent>\n        <div class=\"flex flex-col gap-2\">\n            <div class=\"flex gap-2\">\n                <div class=\"flex grow flex-col gap-2\">\n                    <span> \u0410\u0434\u0440\u0435\u0441: {{ deliveryAddress.address }} </span>\n                    <span *ngIf=\"deliveryAddress.comment\"> \u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439: {{ deliveryAddress.comment }} </span>\n                </div>\n                <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n                <!-- <button\n                    tuiIconButton\n                    size=\"m\"\n                    type=\"button\"\n                    icon=\"@tui.trash-2\"\n                    appearance=\"flat\"\n                    (click)=\"$event.stopPropagation(); deleteDeliveryAddressClick.emit(deliveryAddress)\"\n                ></button> -->\n            </div>\n\n            <sc-contacts-accordion\n                *ngIf=\"contacts$\"\n                [contacts$]=\"contacts$\"\n                (addContactClick)=\"addDeliveryAddressContactClick.next(deliveryAddress)\"\n                (deleteButtonClick)=\"onDeleteContragentContactClick($event, deliveryAddress)\"\n            ></sc-contacts-accordion>\n        </div>\n    </ng-template>\n</sc-accordion>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ScAccordionComponent, selector: "sc-accordion", inputs: ["showAddButton", "showDeleteButton", "showArrow", "open", "size", "disabledButtons"], outputs: ["addButtonClick", "deleteButtonClick"] }, { kind: "directive", type: i4.ScAccordionContentDirective, selector: "ng-template[scAccordionContent]" }, { kind: "component", type: i5.ScContactsAccordionComponent, selector: "sc-contacts-accordion", inputs: ["contacts$"], outputs: ["addContactClick", "deleteButtonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
         
     | 
| 
       47 
     | 
    
         
            -
            }
         
     | 
| 
       48 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScDeliveryAddressAccordionItemComponent, decorators: [{
         
     | 
| 
       49 
     | 
    
         
            -
                        type: Component,
         
     | 
| 
       50 
     | 
    
         
            -
                        args: [{ selector: 'sc-delivery-address-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sc-accordion [showAddButton]=\"false\">\n    {{ deliveryAddress.address }}\n\n    <ng-template scAccordionContent>\n        <div class=\"flex flex-col gap-2\">\n            <div class=\"flex gap-2\">\n                <div class=\"flex grow flex-col gap-2\">\n                    <span> \u0410\u0434\u0440\u0435\u0441: {{ deliveryAddress.address }} </span>\n                    <span *ngIf=\"deliveryAddress.comment\"> \u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439: {{ deliveryAddress.comment }} </span>\n                </div>\n                <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n                <!-- <button\n                    tuiIconButton\n                    size=\"m\"\n                    type=\"button\"\n                    icon=\"@tui.trash-2\"\n                    appearance=\"flat\"\n                    (click)=\"$event.stopPropagation(); deleteDeliveryAddressClick.emit(deliveryAddress)\"\n                ></button> -->\n            </div>\n\n            <sc-contacts-accordion\n                *ngIf=\"contacts$\"\n                [contacts$]=\"contacts$\"\n                (addContactClick)=\"addDeliveryAddressContactClick.next(deliveryAddress)\"\n                (deleteButtonClick)=\"onDeleteContragentContactClick($event, deliveryAddress)\"\n            ></sc-contacts-accordion>\n        </div>\n    </ng-template>\n</sc-accordion>\n" }]
         
     | 
| 
       51 
     | 
    
         
            -
                    }], ctorParameters: () => [{ type: i1.ScDeliveryAddressService }], propDecorators: { deliveryAddress: [{
         
     | 
| 
       52 
     | 
    
         
            -
                            type: Input
         
     | 
| 
       53 
     | 
    
         
            -
                        }], deleteDeliveryAddressClick: [{
         
     | 
| 
       54 
     | 
    
         
            -
                            type: Output
         
     | 
| 
       55 
     | 
    
         
            -
                        }], addDeliveryAddressContactClick: [{
         
     | 
| 
       56 
     | 
    
         
            -
                            type: Output
         
     | 
| 
       57 
     | 
    
         
            -
                        }], deleteDeliveryAddressContactClick: [{
         
     | 
| 
       58 
     | 
    
         
            -
                            type: Output
         
     | 
| 
       59 
     | 
    
         
            -
                        }] } });
         
     | 
| 
       60 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGVsaXZlcnktYWRkcmVzcy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGVsaXZlcnktYWRkcmVzcy9kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi9kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi1pdGVtL3NjLWRlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RlbGl2ZXJ5LWFkZHJlc3MvZGVsaXZlcnktYWRkcmVzcy1hY2NvcmRpb24vZGVsaXZlcnktYWRkcmVzcy1hY2NvcmRpb24taXRlbS9zYy1kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFJeEc7O0dBRUc7QUFNSCxNQUFNLE9BQU8sdUNBQXVDO0lBaUNoRDs7OztPQUlHO0lBQ0gsWUFBb0Msc0JBQWdEO1FBQWhELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMEI7UUExQnBGOztXQUVHO1FBRUksK0JBQTBCLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO1FBRTdHOztXQUVHO1FBRUksbUNBQThCLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO1FBRWpIOztXQUVHO1FBRUksc0NBQWlDLEdBQXVFLElBQUksWUFBWSxFQUczSCxDQUFDO0lBT2tGLENBQUM7SUFFeEYsa0JBQWtCO0lBQ1gsUUFBUTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksOEJBQThCLENBQUMsT0FBbUIsRUFBRSxPQUEyQjtRQUNsRixJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RixDQUFDOytHQXJEUSx1Q0FBdUM7bUdBQXZDLHVDQUF1QywyVUNacEQsa25EQThCQTs7NEZEbEJhLHVDQUF1QztrQkFMbkQsU0FBUzsrQkFDSSxvQ0FBb0MsbUJBRTdCLHVCQUF1QixDQUFDLE1BQU07NkZBT3hDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBWUMsMEJBQTBCO3NCQURoQyxNQUFNO2dCQU9BLDhCQUE4QjtzQkFEcEMsTUFBTTtnQkFPQSxpQ0FBaUM7c0JBRHZDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NEZWxpdmVyeUFkZHJlc3NTZXJ2aWNlLCBTY0lDb250YWN0LCBTY0lEZWxpdmVyeUFkZHJlc3MgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LDQtNGA0LXRgdCwINC00L7RgdGC0LDQstC60LguXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtZGVsaXZlcnktYWRkcmVzcy1hY2NvcmRpb24taXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWRlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0RlbGl2ZXJ5QWRkcmVzc0FjY29yZGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCQ0LTRgNC10YEg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWxpdmVyeUFkZHJlc3M6IFNjSURlbGl2ZXJ5QWRkcmVzcztcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQsdCw0L3QutC+0LLRgdC60LjRhSDRgdGH0LXRgtC+0LIg0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29udGFjdHMkPzogT2JzZXJ2YWJsZTxTY0lDb250YWN0W10gfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINGD0LTQsNC70LXQvdC40Y8g0LDQtNGA0LXRgdCwINC00L7RgdGC0LDQstC60LguXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbGV0ZURlbGl2ZXJ5QWRkcmVzc0NsaWNrOiBFdmVudEVtaXR0ZXI8U2NJRGVsaXZlcnlBZGRyZXNzPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NJRGVsaXZlcnlBZGRyZXNzPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0LTQvtCx0LDQstC70LXQvdC40Y8g0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsCDQsNC00YDQtdGB0YMg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWRkRGVsaXZlcnlBZGRyZXNzQ29udGFjdENsaWNrOiBFdmVudEVtaXR0ZXI8U2NJRGVsaXZlcnlBZGRyZXNzPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NJRGVsaXZlcnlBZGRyZXNzPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZWxldGVEZWxpdmVyeUFkZHJlc3NDb250YWN0Q2xpY2s6IEV2ZW50RW1pdHRlcjx7IGNvbnRhY3Q6IFNjSUNvbnRhY3Q7IGFkZHJlc3M6IFNjSURlbGl2ZXJ5QWRkcmVzcyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBjb250YWN0OiBTY0lDb250YWN0O1xuICAgICAgICBhZGRyZXNzOiBTY0lEZWxpdmVyeUFkZHJlc3M7XG4gICAgfT4oKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NEZWxpdmVyeUFkZHJlc3NBY2NvcmRpb25JdGVtQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWxpdmVyeUFkZHJlc3NTZXJ2aWNlINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LDQtNGA0LXRgdCw0LzQuCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRlbGl2ZXJ5QWRkcmVzc1NlcnZpY2U6IFNjRGVsaXZlcnlBZGRyZXNzU2VydmljZSkge31cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250YWN0cyQgPSB0aGlzLmRlbGl2ZXJ5QWRkcmVzc1NlcnZpY2UuZ2V0RGVsaXZlcnlBZGRyZXNzQ29udGFjdHMkKHRoaXMuZGVsaXZlcnlBZGRyZXNzLmlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDRg9C00LDQu9C10L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0YMg0LDQtNGA0LXRgdCwINC00L7RgdGC0LDQstC60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGFjdCDQmtC+0L3RgtCw0LrRgtC90L7QtSDQu9C40YbQvi5cbiAgICAgKiBAcGFyYW0gYWRkcmVzcyDQkNC00YDQtdGBINC00L7RgdGC0LDQstC60Lgg0LrQu9C40LXQvdGC0LAuXG4gICAgICovXG4gICAgcHVibGljIG9uRGVsZXRlQ29udHJhZ2VudENvbnRhY3RDbGljayhjb250YWN0OiBTY0lDb250YWN0LCBhZGRyZXNzOiBTY0lEZWxpdmVyeUFkZHJlc3MpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWxldGVEZWxpdmVyeUFkZHJlc3NDb250YWN0Q2xpY2suZW1pdCh7IGNvbnRhY3Q6IGNvbnRhY3QsIGFkZHJlc3M6IGFkZHJlc3MgfSk7XG4gICAgfVxufVxuIiwiPHNjLWFjY29yZGlvbiBbc2hvd0FkZEJ1dHRvbl09XCJmYWxzZVwiPlxuICAgIHt7IGRlbGl2ZXJ5QWRkcmVzcy5hZGRyZXNzIH19XG5cbiAgICA8bmctdGVtcGxhdGUgc2NBY2NvcmRpb25Db250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiDQkNC00YDQtdGBOiB7eyBkZWxpdmVyeUFkZHJlc3MuYWRkcmVzcyB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGVsaXZlcnlBZGRyZXNzLmNvbW1lbnRcIj4g0JrQvtC80LzQtdC90YLQsNGA0LjQuToge3sgZGVsaXZlcnlBZGRyZXNzLmNvbW1lbnQgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0g0KTRg9C90LrRhtC40L7QvdCw0Lsg0YPQtNCw0LvQtdC90LjRjyDQstGA0LXQvNC10L3QvdC+INC90LUg0LTQvtGB0YLRg9C/0LXQvSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4uIC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJAdHVpLnRyYXNoLTJcIlxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGRlbGV0ZURlbGl2ZXJ5QWRkcmVzc0NsaWNrLmVtaXQoZGVsaXZlcnlBZGRyZXNzKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8c2MtY29udGFjdHMtYWNjb3JkaW9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250YWN0cyRcIlxuICAgICAgICAgICAgICAgIFtjb250YWN0cyRdPVwiY29udGFjdHMkXCJcbiAgICAgICAgICAgICAgICAoYWRkQ29udGFjdENsaWNrKT1cImFkZERlbGl2ZXJ5QWRkcmVzc0NvbnRhY3RDbGljay5uZXh0KGRlbGl2ZXJ5QWRkcmVzcylcIlxuICAgICAgICAgICAgICAgIChkZWxldGVCdXR0b25DbGljayk9XCJvbkRlbGV0ZUNvbnRyYWdlbnRDb250YWN0Q2xpY2soJGV2ZW50LCBkZWxpdmVyeUFkZHJlc3MpXCJcbiAgICAgICAgICAgID48L3NjLWNvbnRhY3RzLWFjY29yZGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvc2MtYWNjb3JkaW9uPlxuIl19
         
     |