@snabcentr/client-ui 4.14.9 → 4.14.21
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/accordion/index.d.ts +3 -0
- package/accordion/sc-accordion-content.directive.d.ts +9 -0
- package/accordion/sc-accordion.component.d.ts +56 -0
- package/accordion/sc-accordion.module.d.ts +15 -0
- package/auth/enums/auth-method.d.ts +13 -0
- package/auth/index.d.ts +8 -0
- package/auth/interfaces/index.d.ts +2 -0
- package/auth/interfaces/sc-bank-account-form-group.d.ts +11 -0
- package/auth/interfaces/sc-contact-form-group.d.ts +10 -0
- package/auth/sc-auth.module.d.ts +27 -0
- package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +55 -0
- package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +45 -0
- package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +53 -0
- package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +113 -0
- package/auth/sign-up-form/sc-sign-up-form.component.d.ts +172 -0
- package/banner/index.d.ts +2 -0
- package/banner/sc-banner.component.d.ts +108 -0
- package/banner/sc-banner.module.d.ts +17 -0
- package/brands-list/index.d.ts +3 -0
- package/brands-list/sc-brand-list-item.d.ts +25 -0
- package/brands-list/sc-brands-list.component.d.ts +13 -0
- package/brands-list/sc-brands-list.module.d.ts +12 -0
- package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +106 -0
- package/cart/add-or-editing-cart-item-dialog/index.d.ts +2 -0
- package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +49 -0
- package/cart/index.d.ts +2 -0
- package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +62 -0
- package/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.d.ts +47 -0
- package/catalog/catalog-filters/index.d.ts +4 -0
- package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +199 -0
- package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +7 -0
- package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +5 -0
- package/catalog/category-card/sc-category-card.component.d.ts +76 -0
- package/catalog/cost-with-discount/cost-with-discount.component.d.ts +23 -0
- package/catalog/download-price-list/sc-download-price-list.component.d.ts +38 -0
- package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +48 -0
- package/catalog/index.d.ts +15 -0
- package/catalog/input-quantity/sc-input-quantity.component.d.ts +82 -0
- package/catalog/notify-when-in-stock-dialog/index.d.ts +2 -0
- package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +90 -0
- package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +22 -0
- package/catalog/price-card/sc-price-card.component.d.ts +18 -0
- package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +10 -0
- package/catalog/price-history/sc-price-history.component.d.ts +92 -0
- package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +40 -0
- package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +47 -0
- package/catalog/sc-catalog.module.d.ts +29 -0
- package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +25 -0
- package/catalog/seo-tags/sc-seo-tags.component.d.ts +20 -0
- package/configurators/index.d.ts +3 -0
- package/configurators/models/index.d.ts +3 -0
- package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +22 -0
- package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +18 -0
- package/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.d.ts +18 -0
- package/configurators/sandwich/index.d.ts +3 -0
- package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +8 -0
- package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +14 -0
- package/configurators/sandwich/sc-sandwich.component.d.ts +186 -0
- package/configurators/sandwich_m2/index.d.ts +4 -0
- package/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.d.ts +8 -0
- package/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.d.ts +23 -0
- package/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.d.ts +13 -0
- package/configurators/sandwich_m2/sc-sandwich-m2.component.d.ts +275 -0
- package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +49 -0
- package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +23 -0
- package/contacts/index.d.ts +7 -0
- package/contacts/manager-card/sc-manager-card.component.d.ts +22 -0
- package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +18 -0
- package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +28 -0
- package/contacts/sc-contacts.module.d.ts +28 -0
- package/contacts/tokens/index.d.ts +2 -0
- package/contacts/tokens/sc-manager-qr-handler.token.d.ts +6 -0
- package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +5 -0
- package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +49 -0
- package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +158 -0
- package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +66 -0
- package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +49 -0
- package/contragents/index.d.ts +7 -0
- package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +64 -0
- package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +129 -0
- package/contragents/sc-contragents.module.d.ts +28 -0
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +148 -0
- package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +50 -0
- package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +49 -0
- package/delivery-address/index.d.ts +4 -0
- package/delivery-address/sc-delivery-address.module.d.ts +25 -0
- package/dialogs/index.d.ts +1 -0
- package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +42 -0
- package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +136 -0
- package/directives/address-quality/sc-address-quality.directive.d.ts +23 -0
- package/directives/address-quality/sc-address-quality.service.d.ts +122 -0
- package/directives/address-quality/sc-i-address-quality-state.d.ts +14 -0
- package/directives/index.d.ts +11 -0
- package/directives/links/index.d.ts +4 -0
- package/directives/links/sc-email-link.directive.d.ts +25 -0
- package/directives/links/sc-link-location.d.ts +5 -0
- package/directives/links/sc-links.d.ts +7 -0
- package/directives/links/sc-tel-link.directive.d.ts +40 -0
- package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +27 -0
- package/directives/next-input-focus/sc-next-input-focus.module.d.ts +10 -0
- package/directives/print/sc-print.directive.d.ts +21 -0
- package/directives/sc-date-value-transformer.directive.d.ts +8 -0
- package/directives/sc-focus-first-invalid-field.directive.d.ts +30 -0
- package/directives/sc-null-on-empty-value-transformer.directive.d.ts +8 -0
- package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +14 -0
- package/directives/terminal-link/sc-terminal-link.directive.d.ts +34 -0
- package/error-handler/consts/error-change-handler.providers.d.ts +6 -0
- package/error-handler/error-block-status/error-block-status.component.d.ts +55 -0
- package/error-handler/index.d.ts +4 -0
- package/error-handler/interfaces/i-block-error.d.ts +17 -0
- package/error-handler/sc-error-handler.component.d.ts +40 -0
- package/esm2022/accordion/index.mjs +4 -0
- package/esm2022/accordion/sc-accordion-content.directive.mjs +17 -0
- package/esm2022/accordion/sc-accordion.component.mjs +92 -0
- package/esm2022/accordion/sc-accordion.module.mjs +26 -0
- package/esm2022/auth/enums/auth-method.mjs +15 -0
- package/esm2022/auth/index.mjs +9 -0
- package/esm2022/auth/interfaces/index.mjs +3 -0
- package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +2 -0
- package/esm2022/auth/interfaces/sc-contact-form-group.mjs +2 -0
- package/esm2022/auth/sc-auth.module.mjs +103 -0
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +100 -0
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +81 -0
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +89 -0
- package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +203 -0
- package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +345 -0
- package/esm2022/banner/index.mjs +3 -0
- package/esm2022/banner/sc-banner.component.mjs +176 -0
- package/esm2022/banner/sc-banner.module.mjs +29 -0
- package/esm2022/brands-list/index.mjs +4 -0
- package/esm2022/brands-list/sc-brand-list-item.mjs +2 -0
- package/esm2022/brands-list/sc-brands-list.component.mjs +24 -0
- package/esm2022/brands-list/sc-brands-list.module.mjs +22 -0
- package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +233 -0
- package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +3 -0
- package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +75 -0
- package/esm2022/cart/index.mjs +3 -0
- package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +110 -0
- package/esm2022/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.mjs +59 -0
- package/esm2022/catalog/catalog-filters/index.mjs +5 -0
- package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +451 -0
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +10 -0
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +6 -0
- package/esm2022/catalog/category-card/sc-category-card.component.mjs +102 -0
- package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +38 -0
- package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +56 -0
- package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +76 -0
- package/esm2022/catalog/index.mjs +16 -0
- package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +190 -0
- package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +3 -0
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +173 -0
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +35 -0
- package/esm2022/catalog/price-card/sc-price-card.component.mjs +71 -0
- package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +54 -0
- package/esm2022/catalog/price-history/sc-price-history.component.mjs +144 -0
- package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +65 -0
- package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +61 -0
- package/esm2022/catalog/sc-catalog.module.mjs +128 -0
- package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +42 -0
- package/esm2022/catalog/seo-tags/sc-seo-tags.component.mjs +25 -0
- package/esm2022/configurators/index.mjs +4 -0
- package/esm2022/configurators/models/index.mjs +4 -0
- package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +2 -0
- package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +2 -0
- package/esm2022/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.mjs +2 -0
- package/esm2022/configurators/sandwich/index.mjs +4 -0
- package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +14 -0
- package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +2 -0
- package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +387 -0
- package/esm2022/configurators/sandwich_m2/index.mjs +5 -0
- package/esm2022/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.mjs +14 -0
- package/esm2022/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.mjs +2 -0
- package/esm2022/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.mjs +5 -0
- package/esm2022/configurators/sandwich_m2/sc-sandwich-m2.component.mjs +569 -0
- package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +91 -0
- package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +37 -0
- package/esm2022/contacts/index.mjs +8 -0
- package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +58 -0
- package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +28 -0
- package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +38 -0
- package/esm2022/contacts/sc-contacts.module.mjs +92 -0
- package/esm2022/contacts/tokens/index.mjs +3 -0
- package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +25 -0
- package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +9 -0
- package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +81 -0
- package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +266 -0
- package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +79 -0
- package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +68 -0
- package/esm2022/contragents/index.mjs +8 -0
- package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +72 -0
- package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +241 -0
- package/esm2022/contragents/sc-contragents.module.mjs +121 -0
- package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +261 -0
- package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +60 -0
- package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +68 -0
- package/esm2022/delivery-address/index.mjs +5 -0
- package/esm2022/delivery-address/sc-delivery-address.module.mjs +96 -0
- package/esm2022/dialogs/index.mjs +2 -0
- package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +73 -0
- package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +170 -0
- package/esm2022/directives/address-quality/sc-address-quality.directive.mjs +40 -0
- package/esm2022/directives/address-quality/sc-address-quality.service.mjs +214 -0
- package/esm2022/directives/address-quality/sc-i-address-quality-state.mjs +2 -0
- package/esm2022/directives/index.mjs +12 -0
- package/esm2022/directives/links/index.mjs +5 -0
- package/esm2022/directives/links/sc-email-link.directive.mjs +49 -0
- package/esm2022/directives/links/sc-link-location.mjs +2 -0
- package/esm2022/directives/links/sc-links.mjs +8 -0
- package/esm2022/directives/links/sc-tel-link.directive.mjs +79 -0
- package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +70 -0
- package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +19 -0
- package/esm2022/directives/print/sc-print.directive.mjs +36 -0
- package/esm2022/directives/sc-date-value-transformer.directive.mjs +30 -0
- package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +85 -0
- package/esm2022/directives/sc-null-on-empty-value-transformer.directive.mjs +30 -0
- package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +36 -0
- package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +69 -0
- package/esm2022/error-handler/consts/error-change-handler.providers.mjs +10 -0
- package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +101 -0
- package/esm2022/error-handler/index.mjs +5 -0
- package/esm2022/error-handler/interfaces/i-block-error.mjs +2 -0
- package/esm2022/error-handler/sc-error-handler.component.mjs +58 -0
- package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +344 -0
- package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +32 -0
- package/esm2022/feedback/index.mjs +4 -0
- package/esm2022/feedback/interfaces/index.mjs +2 -0
- package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +2 -0
- package/esm2022/files/directives/index.mjs +3 -0
- package/esm2022/files/directives/tree-top.directive.mjs +63 -0
- package/esm2022/files/directives/tree.directive.mjs +47 -0
- package/esm2022/files/file-tree-item/file-tree-item.component.mjs +18 -0
- package/esm2022/files/files-and-documents/files-and-documents.component.mjs +61 -0
- package/esm2022/files/files-and-documents.module.mjs +28 -0
- package/esm2022/files/index.mjs +6 -0
- package/esm2022/files/interfaces/tree-node.mjs +2 -0
- package/esm2022/files/services/index.mjs +3 -0
- package/esm2022/files/services/tree-icon.service.mjs +49 -0
- package/esm2022/files/services/tree-loader.service.mjs +62 -0
- package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +155 -0
- package/esm2022/form-fields/form-fields.module.mjs +66 -0
- package/esm2022/form-fields/index.mjs +4 -0
- package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +235 -0
- package/esm2022/icons/index.mjs +2 -0
- package/esm2022/icons/sc-client-ui-icons-name.mjs +99 -0
- package/esm2022/loader/index.mjs +2 -0
- package/esm2022/loader/sc-i-loader.mjs +2 -0
- package/esm2022/masks/index.mjs +9 -0
- package/esm2022/masks/sc-account-number-mask.mjs +7 -0
- package/esm2022/masks/sc-bic-mask.mjs +7 -0
- package/esm2022/masks/sc-correspondent-account-mask.mjs +7 -0
- package/esm2022/masks/sc-inn-mask.mjs +13 -0
- package/esm2022/masks/sc-kpp-mask.mjs +7 -0
- package/esm2022/masks/sc-ogrn-mask.mjs +13 -0
- package/esm2022/masks/sc-okpo-mask.mjs +13 -0
- package/esm2022/masks/sc-phone-verification-code-mask.mjs +7 -0
- package/esm2022/methods/index.mjs +2 -0
- package/esm2022/methods/sc-get-current-route.mjs +14 -0
- package/esm2022/models/i-sc-image.mjs +2 -0
- package/esm2022/models/index.mjs +2 -0
- package/esm2022/news/index.mjs +4 -0
- package/esm2022/news/news-card/sc-news-card.component.mjs +34 -0
- package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +31 -0
- package/esm2022/news/sc-news.module.mjs +25 -0
- package/esm2022/noindex-wrapper/directives/index.mjs +2 -0
- package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +58 -0
- package/esm2022/noindex-wrapper/index.mjs +3 -0
- package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +18 -0
- package/esm2022/order/directives/index.mjs +3 -0
- package/esm2022/order/directives/sc-order-accessor.directive.mjs +28 -0
- package/esm2022/order/directives/sc-order-options.mjs +11 -0
- package/esm2022/order/draft/sc-draft.component.mjs +118 -0
- package/esm2022/order/index.mjs +14 -0
- package/esm2022/order/models/i-new-order-form.mjs +2 -0
- package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +22 -0
- package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +39 -0
- package/esm2022/order/order-form/sc-order-form.component.mjs +565 -0
- package/esm2022/order/order-form/sc-order-form.config.mjs +7 -0
- package/esm2022/order/order-item/sc-order-item.component.mjs +112 -0
- package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +212 -0
- package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +75 -0
- package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +75 -0
- package/esm2022/order/sc-order.module.mjs +52 -0
- package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +35 -0
- package/esm2022/pages/frequently-asked-questions/sc-faq-query-params.mjs +5 -0
- package/esm2022/pages/frequently-asked-questions/sc-faq-question-anchor.mjs +23 -0
- package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +167 -0
- package/esm2022/pages/frequently-asked-questions/sc-get-faq-group-query-params.mjs +14 -0
- package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +8 -0
- package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +88 -0
- package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +123 -0
- package/esm2022/pages/index.mjs +11 -0
- package/esm2022/pages/news-list/sc-news-list.component.mjs +90 -0
- package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +46 -0
- package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +30 -0
- package/esm2022/pages/public-offer/sc-public-offer.component.mjs +50 -0
- package/esm2022/pagination/index.mjs +2 -0
- package/esm2022/pagination/sc-pagination-links/sc-pagination-links.component.mjs +99 -0
- package/esm2022/pipes/index.mjs +3 -0
- package/esm2022/pipes/sc-format-date.mjs +33 -0
- package/esm2022/pipes/sc-phone-format.mjs +44 -0
- package/esm2022/profile/index.mjs +3 -0
- package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +174 -0
- package/esm2022/profile/sc-profile.module.mjs +73 -0
- package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +30 -0
- package/esm2022/providers/date-value-transformer/index.mjs +4 -0
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +2 -0
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +26 -0
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +37 -0
- package/esm2022/providers/index.mjs +18 -0
- package/esm2022/providers/null-on-empty-value-transformer/index.mjs +2 -0
- package/esm2022/providers/null-on-empty-value-transformer/sc-null-on-empty-value-transformer.mjs +31 -0
- package/esm2022/providers/sc-allow-select-terminated.mjs +8 -0
- package/esm2022/providers/sc-banner-duration.mjs +8 -0
- package/esm2022/providers/sc-block-incomplete-address.mjs +8 -0
- package/esm2022/providers/sc-country-ids.mjs +8 -0
- package/esm2022/providers/sc-date-formatter.mjs +15 -0
- package/esm2022/providers/sc-date-value-transformer.mjs +12 -0
- package/esm2022/providers/sc-debounce-time-default.mjs +9 -0
- package/esm2022/providers/sc-dialog-service.providers.mjs +6 -0
- package/esm2022/providers/sc-help-notification-close.mjs +9 -0
- package/esm2022/providers/sc-help-notification-limit.mjs +8 -0
- package/esm2022/providers/sc-hidden-print-elements.token.mjs +10 -0
- package/esm2022/providers/sc-max-files-in-form-input.mjs +8 -0
- package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +8 -0
- package/esm2022/providers/sc-page-size-options.mjs +8 -0
- package/esm2022/providers/sc-user-providers.mjs +38 -0
- package/esm2022/providers/sc-verification-code-timeout.mjs +8 -0
- package/esm2022/public-api.mjs +36 -0
- package/esm2022/qrcode/index.mjs +3 -0
- package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +58 -0
- package/esm2022/qrcode/sc-qrcode.module.mjs +25 -0
- package/esm2022/samples/index.mjs +5 -0
- package/esm2022/samples/interfaces/index.mjs +3 -0
- package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +2 -0
- package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +2 -0
- package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +42 -0
- package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +63 -0
- package/esm2022/samples/sc-sample.module.mjs +66 -0
- package/esm2022/services/index.mjs +3 -0
- package/esm2022/services/print.service.mjs +49 -0
- package/esm2022/services/sc-help-notification.service.mjs +100 -0
- package/esm2022/share/index.mjs +6 -0
- package/esm2022/share/sc-share-dialog-data.mjs +2 -0
- package/esm2022/share/sc-share.service.mjs +40 -0
- package/esm2022/share/share-button/sc-share-button.component.mjs +99 -0
- package/esm2022/share/share-dialog/sc-share-dialog.component.mjs +139 -0
- package/esm2022/share/share-messengers-links/sc-share-messengers-links.component.mjs +84 -0
- package/esm2022/snabcentr-client-ui.mjs +5 -0
- package/esm2022/user/index.mjs +6 -0
- package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +74 -0
- package/esm2022/user/sc-user.module.mjs +86 -0
- package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +121 -0
- package/esm2022/user/user-managers/sc-user-managers.component.mjs +40 -0
- package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +105 -0
- package/esm2022/validators/index.mjs +7 -0
- package/esm2022/validators/sc-at-least-one-required-validator.mjs +25 -0
- package/esm2022/validators/sc-bic-validator.mjs +10 -0
- package/esm2022/validators/sc-correspondent-account-validator.mjs +10 -0
- package/esm2022/validators/sc-password-confirm-matching-validator.mjs +17 -0
- package/esm2022/validators/sc-phone-validator.mjs +14 -0
- package/esm2022/validators/step-validator.mjs +18 -0
- package/esm2022/verification/index.mjs +3 -0
- package/esm2022/verification/sc-verification.module.mjs +86 -0
- package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +259 -0
- package/feedback/feedback-form/sc-feedback-form.component.d.ts +163 -0
- package/feedback/gratitude/sc-gratitude.component.d.ts +20 -0
- package/feedback/index.d.ts +3 -0
- package/feedback/interfaces/index.d.ts +1 -0
- package/feedback/interfaces/sc-feedback-form-config.d.ts +23 -0
- package/fesm2022/snabcentr-client-ui.mjs +5826 -4942
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/files/directives/index.d.ts +2 -0
- package/files/directives/tree-top.directive.d.ts +33 -0
- package/files/directives/tree.directive.d.ts +35 -0
- package/files/file-tree-item/file-tree-item.component.d.ts +9 -0
- package/files/files-and-documents/files-and-documents.component.d.ts +27 -0
- package/files/files-and-documents.module.d.ts +17 -0
- package/files/index.d.ts +5 -0
- package/files/interfaces/tree-node.d.ts +29 -0
- package/files/services/index.d.ts +2 -0
- package/files/services/tree-icon.service.d.ts +23 -0
- package/files/services/tree-loader.service.d.ts +43 -0
- package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +80 -0
- package/form-fields/form-fields.module.d.ts +18 -0
- package/form-fields/index.d.ts +3 -0
- package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +107 -0
- package/icons/index.d.ts +1 -0
- package/icons/sc-client-ui-icons-name.d.ts +4 -0
- package/icons/svg-pack/application.svg +1 -1
- package/icons/svg-pack/back.svg +1 -1
- package/icons/svg-pack/bag.svg +1 -1
- package/icons/svg-pack/banknote-arrow-in-top.svg +1 -1
- package/icons/svg-pack/catalog/aluminum-systems.svg +1 -1
- package/icons/svg-pack/catalog/arm-profile.svg +1 -1
- package/icons/svg-pack/catalog/batten.svg +1 -1
- package/icons/svg-pack/catalog/brusbox.svg +1 -1
- package/icons/svg-pack/catalog/canopy.svg +1 -1
- package/icons/svg-pack/catalog/configurator.svg +1 -1
- package/icons/svg-pack/catalog/covering-material.svg +1 -1
- package/icons/svg-pack/catalog/door-accessories.svg +1 -1
- package/icons/svg-pack/catalog/drainage-system.svg +1 -1
- package/icons/svg-pack/catalog/fastener.svg +1 -1
- package/icons/svg-pack/catalog/finishing-materials.svg +1 -1
- package/icons/svg-pack/catalog/fixing-impost.svg +1 -1
- package/icons/svg-pack/catalog/flask.svg +1 -1
- package/icons/svg-pack/catalog/foam-balloon.svg +1 -1
- package/icons/svg-pack/catalog/foam.svg +1 -1
- package/icons/svg-pack/catalog/glue.svg +1 -1
- package/icons/svg-pack/catalog/handle.svg +1 -1
- package/icons/svg-pack/catalog/instrument.svg +1 -1
- package/icons/svg-pack/catalog/kve-profile.svg +1 -1
- package/icons/svg-pack/catalog/lubricants.svg +1 -1
- package/icons/svg-pack/catalog/mosquito-net.svg +1 -1
- package/icons/svg-pack/catalog/mounting-accessories.svg +1 -1
- package/icons/svg-pack/catalog/net-order.svg +1 -1
- package/icons/svg-pack/catalog/panel-1.svg +1 -1
- package/icons/svg-pack/catalog/panel.svg +1 -1
- package/icons/svg-pack/catalog/polyethylene-film.svg +1 -1
- package/icons/svg-pack/catalog/profile-plastic.svg +1 -1
- package/icons/svg-pack/catalog/promo-materials.svg +1 -1
- package/icons/svg-pack/catalog/psul.svg +1 -1
- package/icons/svg-pack/catalog/rehau-profile.svg +1 -1
- package/icons/svg-pack/catalog/sandwich-plastic.svg +1 -1
- package/icons/svg-pack/catalog/sealer.svg +1 -1
- package/icons/svg-pack/catalog/siding-2.svg +1 -1
- package/icons/svg-pack/catalog/siding.svg +1 -1
- package/icons/svg-pack/catalog/start-finish-profile.svg +1 -1
- package/icons/svg-pack/catalog/steam-waterproofing.svg +1 -1
- package/icons/svg-pack/catalog/stiz.svg +1 -1
- package/icons/svg-pack/catalog/thermometer.svg +1 -1
- package/icons/svg-pack/catalog/windowsill.svg +1 -1
- package/icons/svg-pack/chart-column-plus.svg +1 -1
- package/icons/svg-pack/circle-arrow-in-right.svg +1 -1
- package/icons/svg-pack/contacts.svg +1 -1
- package/icons/svg-pack/deadline.svg +1 -1
- package/icons/svg-pack/file-p.svg +1 -1
- package/icons/svg-pack/file-search.svg +1 -1
- package/icons/svg-pack/file-w.svg +1 -1
- package/icons/svg-pack/file-x.svg +1 -1
- package/icons/svg-pack/grid-height-arrow.svg +1 -1
- package/icons/svg-pack/grid-width-arrow.svg +1 -1
- package/icons/svg-pack/layout-list-tree.svg +1 -1
- package/icons/svg-pack/list.svg +1 -1
- package/icons/svg-pack/puzzle.svg +1 -1
- package/icons/svg-pack/reclamation.svg +1 -1
- package/icons/svg-pack/retail-store.svg +1 -1
- package/icons/svg-pack/send.svg +1 -1
- package/index.d.ts +5 -0
- package/loader/index.d.ts +1 -0
- package/loader/sc-i-loader.d.ts +9 -0
- package/masks/index.d.ts +8 -0
- package/masks/sc-account-number-mask.d.ts +5 -0
- package/masks/sc-bic-mask.d.ts +5 -0
- package/masks/sc-correspondent-account-mask.d.ts +5 -0
- package/masks/sc-inn-mask.d.ts +9 -0
- package/masks/sc-kpp-mask.d.ts +5 -0
- package/masks/sc-ogrn-mask.d.ts +9 -0
- package/masks/sc-okpo-mask.d.ts +9 -0
- package/masks/sc-phone-verification-code-mask.d.ts +5 -0
- package/methods/index.d.ts +1 -0
- package/methods/sc-get-current-route.d.ts +8 -0
- package/models/i-sc-image.d.ts +17 -0
- package/models/index.d.ts +1 -0
- package/news/index.d.ts +3 -0
- package/news/news-card/sc-news-card.component.d.ts +22 -0
- package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +16 -0
- package/news/sc-news.module.d.ts +15 -0
- package/noindex-wrapper/directives/index.d.ts +1 -0
- package/noindex-wrapper/directives/sc-noindex.directive.d.ts +29 -0
- package/noindex-wrapper/index.d.ts +2 -0
- package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +9 -0
- package/order/directives/index.d.ts +2 -0
- package/order/directives/sc-order-accessor.directive.d.ts +13 -0
- package/order/directives/sc-order-options.d.ts +14 -0
- package/order/draft/sc-draft.component.d.ts +63 -0
- package/order/index.d.ts +13 -0
- package/order/models/i-new-order-form.d.ts +39 -0
- package/order/models/sc-i-cart-items-by-direction.d.ts +25 -0
- package/order/order-direction-items/sc-order-direction-items.component.d.ts +29 -0
- package/order/order-form/sc-order-form.component.d.ts +283 -0
- package/order/order-form/sc-order-form.config.d.ts +20 -0
- package/order/order-item/sc-order-item.component.d.ts +43 -0
- package/order/order-items-list/sc-order-items-list.component.d.ts +113 -0
- package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +58 -0
- package/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.d.ts +55 -0
- package/order/sc-order.module.d.ts +18 -0
- package/order/sc-payment-status/sc-payment-status.component.d.ts +25 -0
- package/package.json +37 -35
- package/pages/frequently-asked-questions/sc-faq-query-params.d.ts +4 -0
- package/pages/frequently-asked-questions/sc-faq-question-anchor.d.ts +16 -0
- package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +84 -0
- package/pages/frequently-asked-questions/sc-get-faq-group-query-params.d.ts +10 -0
- package/pages/frequently-asked-questions/sc-page-size-options.d.ts +5 -0
- package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +47 -0
- package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +89 -0
- package/pages/index.d.ts +10 -0
- package/pages/news-list/sc-news-list.component.d.ts +57 -0
- package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +17 -0
- package/pages/privacy-policy/sc-privacy-policy.component.d.ts +17 -0
- package/pages/public-offer/sc-public-offer.component.d.ts +22 -0
- package/pagination/index.d.ts +1 -0
- package/pagination/sc-pagination-links/sc-pagination-links.component.d.ts +60 -0
- package/pipes/index.d.ts +2 -0
- package/pipes/sc-format-date.d.ts +20 -0
- package/pipes/sc-phone-format.d.ts +21 -0
- package/profile/index.d.ts +2 -0
- package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +126 -0
- package/profile/sc-profile.module.d.ts +23 -0
- package/providers/cleanup-recaptcha-artifacts.d.ts +7 -0
- package/providers/date-value-transformer/index.d.ts +3 -0
- package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +9 -0
- package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +16 -0
- package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +22 -0
- package/providers/index.d.ts +17 -0
- package/providers/null-on-empty-value-transformer/index.d.ts +1 -0
- package/providers/null-on-empty-value-transformer/sc-null-on-empty-value-transformer.d.ts +21 -0
- package/providers/sc-allow-select-terminated.d.ts +5 -0
- package/providers/sc-banner-duration.d.ts +5 -0
- package/providers/sc-block-incomplete-address.d.ts +5 -0
- package/providers/sc-country-ids.d.ts +5 -0
- package/providers/sc-date-formatter.d.ts +6 -0
- package/providers/sc-date-value-transformer.d.ts +5 -0
- package/providers/sc-debounce-time-default.d.ts +5 -0
- package/providers/sc-dialog-service.providers.d.ts +45 -0
- package/providers/sc-help-notification-close.d.ts +6 -0
- package/providers/sc-help-notification-limit.d.ts +5 -0
- package/providers/sc-hidden-print-elements.token.d.ts +6 -0
- package/providers/sc-max-files-in-form-input.d.ts +5 -0
- package/providers/sc-notify-when-in-stock-required-fields.d.ts +5 -0
- package/providers/sc-page-size-options.d.ts +5 -0
- package/providers/sc-user-providers.d.ts +21 -0
- package/providers/sc-verification-code-timeout.d.ts +5 -0
- package/public-api.d.ts +35 -0
- package/qrcode/index.d.ts +2 -0
- package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +37 -0
- package/qrcode/sc-qrcode.module.d.ts +14 -0
- package/release_notes.tmp +2 -16
- package/samples/index.d.ts +4 -0
- package/samples/interfaces/index.d.ts +2 -0
- package/samples/interfaces/sc-i-preview-sample.d.ts +56 -0
- package/samples/interfaces/sc-preview-mosquito-config.d.ts +62 -0
- package/samples/preview-sample/sc-preview-sample.component.d.ts +30 -0
- package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +50 -0
- package/samples/sc-sample.module.d.ts +19 -0
- package/services/index.d.ts +2 -0
- package/services/print.service.d.ts +31 -0
- package/services/sc-help-notification.service.d.ts +70 -0
- package/share/index.d.ts +5 -0
- package/share/sc-share-dialog-data.d.ts +13 -0
- package/share/sc-share.service.d.ts +19 -0
- package/share/share-button/sc-share-button.component.d.ts +78 -0
- package/share/share-dialog/sc-share-dialog.component.d.ts +87 -0
- package/share/share-messengers-links/sc-share-messengers-links.component.d.ts +49 -0
- package/styles/taiga/variables.less +17 -35
- package/styles/tailwind/tailwind.scss +14 -56
- package/user/index.d.ts +5 -0
- package/user/reset-user-password/sc-reset-user-password.component.d.ts +46 -0
- package/user/sc-user.module.d.ts +24 -0
- package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +63 -0
- package/user/user-managers/sc-user-managers.component.d.ts +23 -0
- package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +53 -0
- package/validators/index.d.ts +6 -0
- package/validators/sc-at-least-one-required-validator.d.ts +10 -0
- package/validators/sc-bic-validator.d.ts +8 -0
- package/validators/sc-correspondent-account-validator.d.ts +8 -0
- package/validators/sc-password-confirm-matching-validator.d.ts +8 -0
- package/validators/sc-phone-validator.d.ts +5 -0
- package/validators/step-validator.d.ts +7 -0
- package/verification/index.d.ts +2 -0
- package/verification/sc-verification.module.d.ts +21 -0
- package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +145 -0
- package/types/snabcentr-client-ui.d.ts +0 -6787
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { TuiButton } from '@taiga-ui/core';
|
|
5
|
+
import { ScShareService } from '../sc-share.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Кнопка "Поделиться": открывает диалоговое окно с вариантами, как поделиться ссылкой.
|
|
9
|
+
*
|
|
10
|
+
* Ссылка формируется из {@link routerPath} относительно маршрутизации приложения, либо берётся из {@link shareUrl},
|
|
11
|
+
* а если не задано ни то, ни другое - используется адрес текущей страницы.
|
|
12
|
+
*/
|
|
13
|
+
export class ScShareButtonComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
/**
|
|
16
|
+
* {@link InputSignal} заголовка ссылки, которой необходимо поделиться.
|
|
17
|
+
*/
|
|
18
|
+
this.title = input('');
|
|
19
|
+
/**
|
|
20
|
+
* {@link InputSignal} ссылки, которой необходимо поделиться (абсолютной или относительно корня сайта).
|
|
21
|
+
*/
|
|
22
|
+
this.shareUrl = input();
|
|
23
|
+
/**
|
|
24
|
+
* {@link InputSignal} команд маршрутизатора, из которых формируется ссылка относительно маршрутизации приложения.
|
|
25
|
+
*/
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
this.routerPath = input();
|
|
28
|
+
/**
|
|
29
|
+
* {@link InputSignal} параметров формирования ссылки из {@link routerPath}.
|
|
30
|
+
*/
|
|
31
|
+
this.routerCreationOptions = input();
|
|
32
|
+
/**
|
|
33
|
+
* {@link InputSignal} формата внешнего вида кнопки.
|
|
34
|
+
*/
|
|
35
|
+
this.appearance = input('secondary');
|
|
36
|
+
/**
|
|
37
|
+
* {@link InputSignal} размера кнопки.
|
|
38
|
+
*/
|
|
39
|
+
this.size = input('m');
|
|
40
|
+
/**
|
|
41
|
+
* {@link InputSignal} признака, что подпись "Поделиться" отображается постоянно.
|
|
42
|
+
*/
|
|
43
|
+
this.showLabel = input(false);
|
|
44
|
+
/**
|
|
45
|
+
* {@link InputSignal} признака, что кнопка раскрывается с появлением подписи "Поделиться" при наведении.
|
|
46
|
+
*/
|
|
47
|
+
this.expandable = input(false);
|
|
48
|
+
/**
|
|
49
|
+
* Ссылка на объект документа.
|
|
50
|
+
*/
|
|
51
|
+
this.document = inject(DOCUMENT);
|
|
52
|
+
/**
|
|
53
|
+
* Сервис маршрутизации.
|
|
54
|
+
*/
|
|
55
|
+
this.router = inject(Router);
|
|
56
|
+
/**
|
|
57
|
+
* Сервис открытия диалогового окна "Поделиться".
|
|
58
|
+
*/
|
|
59
|
+
this.shareService = inject(ScShareService);
|
|
60
|
+
/**
|
|
61
|
+
* {@link Signal} ссылки, которой необходимо поделиться, заданной через входные параметры.
|
|
62
|
+
*/
|
|
63
|
+
this.href = computed(() => {
|
|
64
|
+
const routerPath = this.routerPath();
|
|
65
|
+
const url = routerPath ? this.router.createUrlTree(routerPath, this.routerCreationOptions()).toString() : this.shareUrl();
|
|
66
|
+
return url ? decodeURIComponent(url) : undefined;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Возвращает адрес текущей страницы.
|
|
71
|
+
*/
|
|
72
|
+
get currentUrl() {
|
|
73
|
+
return decodeURIComponent(this.router.url);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Обработчик нажатия на кнопку: открывает диалоговое окно "Поделиться".
|
|
77
|
+
*
|
|
78
|
+
* @param event Событие нажатия.
|
|
79
|
+
*/
|
|
80
|
+
openShareDialog(event) {
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
this.shareService.openShareDialog(this.title(), this.getAbsoluteUrl(this.href() ?? this.currentUrl));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Возвращает абсолютную ссылку.
|
|
86
|
+
*
|
|
87
|
+
* @param url Абсолютная ссылка или ссылка относительно корня сайта.
|
|
88
|
+
*/
|
|
89
|
+
getAbsoluteUrl(url) {
|
|
90
|
+
return /^https?:\/\//.test(url) ? url : `${this.document.location.origin}${url}`;
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScShareButtonComponent, isStandalone: true, selector: "sc-share-button", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, shareUrl: { classPropertyName: "shareUrl", publicName: "shareUrl", isSignal: true, isRequired: false, transformFunction: null }, routerPath: { classPropertyName: "routerPath", publicName: "routerPath", isSignal: true, isRequired: false, transformFunction: null }, routerCreationOptions: { classPropertyName: "routerCreationOptions", publicName: "routerCreationOptions", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, expandable: { classPropertyName: "expandable", publicName: "expandable", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (showLabel() || expandable()) {\n <a\n tuiButton\n iconStart=\"@tui.share-2\"\n [appearance]=\"appearance()\"\n [size]=\"size()\"\n [attr.href]=\"href() ?? currentUrl\"\n [class._expandable]=\"expandable()\"\n (click)=\"openShareDialog($event)\"\n >\n <span>\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F</span>\n </a>\n} @else {\n <a\n tuiIconButton\n iconStart=\"@tui.share-2\"\n title=\"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F\"\n aria-label=\"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F\"\n [appearance]=\"appearance()\"\n [size]=\"size()\"\n [attr.href]=\"href() ?? currentUrl\"\n (click)=\"openShareDialog($event)\"\n ></a>\n}\n", styles: ["a._expandable{--t-gap: 0 !important}a._expandable span{max-width:0;overflow:hidden;opacity:0;transition-duration:.5s}a._expandable:hover span{opacity:1;max-width:11.5rem;padding-left:1rem}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
94
|
+
}
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScShareButtonComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{ standalone: true, selector: 'sc-share-button', imports: [TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (showLabel() || expandable()) {\n <a\n tuiButton\n iconStart=\"@tui.share-2\"\n [appearance]=\"appearance()\"\n [size]=\"size()\"\n [attr.href]=\"href() ?? currentUrl\"\n [class._expandable]=\"expandable()\"\n (click)=\"openShareDialog($event)\"\n >\n <span>\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F</span>\n </a>\n} @else {\n <a\n tuiIconButton\n iconStart=\"@tui.share-2\"\n title=\"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F\"\n aria-label=\"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F\"\n [appearance]=\"appearance()\"\n [size]=\"size()\"\n [attr.href]=\"href() ?? currentUrl\"\n (click)=\"openShareDialog($event)\"\n ></a>\n}\n", styles: ["a._expandable{--t-gap: 0 !important}a._expandable span{max-width:0;overflow:hidden;opacity:0;transition-duration:.5s}a._expandable:hover span{opacity:1;max-width:11.5rem;padding-left:1rem}\n"] }]
|
|
98
|
+
}] });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zaGFyZS9zaGFyZS1idXR0b24vc2Mtc2hhcmUtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zaGFyZS9zaGFyZS1idXR0b24vc2Mtc2hhcmUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsTUFBTSxFQUFzQixNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQWdDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVyRDs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFTSTs7V0FFRztRQUNhLFVBQUssR0FBd0IsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRS9EOztXQUVHO1FBQ2EsYUFBUSxHQUFvQyxLQUFLLEVBQVUsQ0FBQztRQUU1RTs7V0FFRztRQUNILDhEQUE4RDtRQUM5QyxlQUFVLEdBQW1DLEtBQUssRUFBUyxDQUFDO1FBRTVFOztXQUVHO1FBQ2EsMEJBQXFCLEdBQWdELEtBQUssRUFBc0IsQ0FBQztRQUVqSDs7V0FFRztRQUNhLGVBQVUsR0FBOEQsS0FBSyxDQUErQyxXQUFXLENBQUMsQ0FBQztRQUV6Sjs7V0FFRztRQUNhLFNBQUksR0FBZ0QsS0FBSyxDQUFpQyxHQUFHLENBQUMsQ0FBQztRQUUvRzs7V0FFRztRQUNhLGNBQVMsR0FBeUIsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXhFOztXQUVHO1FBQ2EsZUFBVSxHQUF5QixLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDYyxhQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ2MsV0FBTSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNjLGlCQUFZLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV2RTs7V0FFRztRQUNnQixTQUFJLEdBQStCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUxSCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztLQTRCTjtJQTFCRzs7T0FFRztJQUNILElBQWMsVUFBVTtRQUNwQixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxlQUFlLENBQUMsS0FBWTtRQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssY0FBYyxDQUFDLEdBQVc7UUFDOUIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ3JGLENBQUM7K0dBNUZRLHNCQUFzQjttR0FBdEIsc0JBQXNCLHNvQ0NyQm5DLG16QkF3QkEsd1BETmMsU0FBUzs7NEZBR1Ysc0JBQXNCO2tCQVJsQyxTQUFTO2lDQUNNLElBQUksWUFDTixpQkFBaUIsV0FHbEIsQ0FBQyxTQUFTLENBQUMsbUJBQ0gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIFVybENyZWF0aW9uT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUdWlCdXR0b24sIFR1aVNpemVMLCBUdWlTaXplTSwgVHVpU2l6ZVMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7IFNjU2hhcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2Mtc2hhcmUuc2VydmljZSc7XG5cbi8qKlxuICog0JrQvdC+0L/QutCwIFwi0J/QvtC00LXQu9C40YLRjNGB0Y9cIjog0L7RgtC60YDRi9Cy0LDQtdGCINC00LjQsNC70L7Qs9C+0LLQvtC1INC+0LrQvdC+INGBINCy0LDRgNC40LDQvdGC0LDQvNC4LCDQutCw0Log0L/QvtC00LXQu9C40YLRjNGB0Y8g0YHRgdGL0LvQutC+0LkuXG4gKlxuICog0KHRgdGL0LvQutCwINGE0L7RgNC80LjRgNGD0LXRgtGB0Y8g0LjQtyB7QGxpbmsgcm91dGVyUGF0aH0g0L7RgtC90L7RgdC40YLQtdC70YzQvdC+INC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4INC/0YDQuNC70L7QttC10L3QuNGPLCDQu9C40LHQviDQsdC10YDRkdGC0YHRjyDQuNC3IHtAbGluayBzaGFyZVVybH0sXG4gKiDQsCDQtdGB0LvQuCDQvdC1INC30LDQtNCw0L3QviDQvdC4INGC0L4sINC90Lgg0LTRgNGD0LPQvtC1IC0g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINCw0LTRgNC10YEg0YLQtdC60YPRidC10Lkg0YHRgtGA0LDQvdC40YbRiy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLXNoYXJlLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXNoYXJlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NjLXNoYXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gICAgaW1wb3J0czogW1R1aUJ1dHRvbl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjU2hhcmVCdXR0b25Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBJbnB1dFNpZ25hbH0g0LfQsNCz0L7Qu9C+0LLQutCwINGB0YHRi9C70LrQuCwg0LrQvtGC0L7RgNC+0Lkg0L3QtdC+0LHRhdC+0LTQuNC80L4g0L/QvtC00LXQu9C40YLRjNGB0Y8uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHRpdGxlOiBJbnB1dFNpZ25hbDxzdHJpbmc+ID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INGB0YHRi9C70LrQuCwg0LrQvtGC0L7RgNC+0Lkg0L3QtdC+0LHRhdC+0LTQuNC80L4g0L/QvtC00LXQu9C40YLRjNGB0Y8gKNCw0LHRgdC+0LvRjtGC0L3QvtC5INC40LvQuCDQvtGC0L3QvtGB0LjRgtC10LvRjNC90L4g0LrQvtGA0L3RjyDRgdCw0LnRgtCwKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hhcmVVcmw6IElucHV0U2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INC60L7QvNCw0L3QtCDQvNCw0YDRiNGA0YPRgtC40LfQsNGC0L7RgNCwLCDQuNC3INC60L7RgtC+0YDRi9GFINGE0L7RgNC80LjRgNGD0LXRgtGB0Y8g0YHRgdGL0LvQutCwINC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QviDQvNCw0YDRiNGA0YPRgtC40LfQsNGG0LjQuCDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJQYXRoOiBJbnB1dFNpZ25hbDxhbnlbXSB8IHVuZGVmaW5lZD4gPSBpbnB1dDxhbnlbXT4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBJbnB1dFNpZ25hbH0g0L/QsNGA0LDQvNC10YLRgNC+0LIg0YTQvtGA0LzQuNGA0L7QstCw0L3QuNGPINGB0YHRi9C70LrQuCDQuNC3IHtAbGluayByb3V0ZXJQYXRofS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcm91dGVyQ3JlYXRpb25PcHRpb25zOiBJbnB1dFNpZ25hbDxVcmxDcmVhdGlvbk9wdGlvbnMgfCB1bmRlZmluZWQ+ID0gaW5wdXQ8VXJsQ3JlYXRpb25PcHRpb25zPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDRhNC+0YDQvNCw0YLQsCDQstC90LXRiNC90LXQs9C+INCy0LjQtNCwINC60L3QvtC/0LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXBwZWFyYW5jZTogSW5wdXRTaWduYWw8J3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnb3V0bGluZScgfCAnZmxhdCc+ID0gaW5wdXQ8J3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnb3V0bGluZScgfCAnZmxhdCc+KCdzZWNvbmRhcnknKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBJbnB1dFNpZ25hbH0g0YDQsNC30LzQtdGA0LAg0LrQvdC+0L/QutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzaXplOiBJbnB1dFNpZ25hbDxUdWlTaXplTCB8IFR1aVNpemVNIHwgVHVpU2l6ZVM+ID0gaW5wdXQ8VHVpU2l6ZUwgfCBUdWlTaXplTSB8IFR1aVNpemVTPignbScpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDQv9GA0LjQt9C90LDQutCwLCDRh9GC0L4g0L/QvtC00L/QuNGB0YwgXCLQn9C+0LTQtdC70LjRgtGM0YHRj1wiINC+0YLQvtCx0YDQsNC20LDQtdGC0YHRjyDQv9C+0YHRgtC+0Y/QvdC90L4uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHNob3dMYWJlbDogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INC/0YDQuNC30L3QsNC60LAsINGH0YLQviDQutC90L7Qv9C60LAg0YDQsNGB0LrRgNGL0LLQsNC10YLRgdGPINGBINC/0L7Rj9Cy0LvQtdC90LjQtdC8INC/0L7QtNC/0LjRgdC4IFwi0J/QvtC00LXQu9C40YLRjNGB0Y9cIiDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBleHBhbmRhYmxlOiBJbnB1dFNpZ25hbDxib29sZWFuPiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvdCwINC+0LHRitC10LrRgiDQtNC+0LrRg9C80LXQvdGC0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQvtGC0LrRgNGL0YLQuNGPINC00LjQsNC70L7Qs9C+0LLQvtCz0L4g0L7QutC90LAgXCLQn9C+0LTQtdC70LjRgtGM0YHRj1wiLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2hhcmVTZXJ2aWNlOiBTY1NoYXJlU2VydmljZSA9IGluamVjdChTY1NoYXJlU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU2lnbmFsfSDRgdGB0YvQu9C60LgsINC60L7RgtC+0YDQvtC5INC90LXQvtCx0YXQvtC00LjQvNC+INC/0L7QtNC10LvQuNGC0YzRgdGPLCDQt9Cw0LTQsNC90L3QvtC5INGH0LXRgNC10Lcg0LLRhdC+0LTQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBocmVmOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgcm91dGVyUGF0aCA9IHRoaXMucm91dGVyUGF0aCgpO1xuICAgICAgICBjb25zdCB1cmwgPSByb3V0ZXJQYXRoID8gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShyb3V0ZXJQYXRoLCB0aGlzLnJvdXRlckNyZWF0aW9uT3B0aW9ucygpKS50b1N0cmluZygpIDogdGhpcy5zaGFyZVVybCgpO1xuXG4gICAgICAgIHJldHVybiB1cmwgPyBkZWNvZGVVUklDb21wb25lbnQodXJsKSA6IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINCw0LTRgNC10YEg0YLQtdC60YPRidC10Lkg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGN1cnJlbnRVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0aGlzLnJvdXRlci51cmwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDOiDQvtGC0LrRgNGL0LLQsNC10YIg0LTQuNCw0LvQvtCz0L7QstC+0LUg0L7QutC90L4gXCLQn9C+0LTQtdC70LjRgtGM0YHRj1wiLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50INCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvcGVuU2hhcmVEaWFsb2coZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5zaGFyZVNlcnZpY2Uub3BlblNoYXJlRGlhbG9nKHRoaXMudGl0bGUoKSwgdGhpcy5nZXRBYnNvbHV0ZVVybCh0aGlzLmhyZWYoKSA/PyB0aGlzLmN1cnJlbnRVcmwpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQsNCx0YHQvtC70Y7RgtC90YPRjiDRgdGB0YvQu9C60YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsINCQ0LHRgdC+0LvRjtGC0L3QsNGPINGB0YHRi9C70LrQsCDQuNC70Lgg0YHRgdGL0LvQutCwINC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QviDQutC+0YDQvdGPINGB0LDQudGC0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRBYnNvbHV0ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJsKSA/IHVybCA6IGAke3RoaXMuZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lufSR7dXJsfWA7XG4gICAgfVxufVxuIiwiQGlmIChzaG93TGFiZWwoKSB8fCBleHBhbmRhYmxlKCkpIHtcbiAgICA8YVxuICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5zaGFyZS0yXCJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZSgpXCJcbiAgICAgICAgW2F0dHIuaHJlZl09XCJocmVmKCkgPz8gY3VycmVudFVybFwiXG4gICAgICAgIFtjbGFzcy5fZXhwYW5kYWJsZV09XCJleHBhbmRhYmxlKClcIlxuICAgICAgICAoY2xpY2spPVwib3BlblNoYXJlRGlhbG9nKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPHNwYW4+0J/QvtC00LXQu9C40YLRjNGB0Y88L3NwYW4+XG4gICAgPC9hPlxufSBAZWxzZSB7XG4gICAgPGFcbiAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnNoYXJlLTJcIlxuICAgICAgICB0aXRsZT1cItCf0L7QtNC10LvQuNGC0YzRgdGPXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cItCf0L7QtNC10LvQuNGC0YzRgdGPXCJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZSgpXCJcbiAgICAgICAgW2F0dHIuaHJlZl09XCJocmVmKCkgPz8gY3VycmVudFVybFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuU2hhcmVEaWFsb2coJGV2ZW50KVwiXG4gICAgPjwvYT5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Clipboard } from '@angular/cdk/clipboard';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { WA_WINDOW } from '@ng-web-apis/common';
|
|
5
|
+
import { IS_RUNNING_ON_TERMINAL, IS_SERVER, ScUserMetrikaGoalsEnum, ScUserMetrikaService } from '@snabcentr/client-core';
|
|
6
|
+
import { TUI_WINDOW_SIZE } from '@taiga-ui/cdk';
|
|
7
|
+
import { TuiAlertService, TuiButton, TuiDialogService, TuiIconPipe } from '@taiga-ui/core';
|
|
8
|
+
import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
|
|
9
|
+
import { QRCodeModule } from 'angularx-qrcode';
|
|
10
|
+
import { map, of } from 'rxjs';
|
|
11
|
+
import { ScEmailLinkDirective } from '../../directives';
|
|
12
|
+
import { ScQRCodeDialogComponent } from '../../qrcode';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "angularx-qrcode";
|
|
15
|
+
/**
|
|
16
|
+
* Диалоговое окно "Поделиться": варианты, как поделиться ссылкой.
|
|
17
|
+
*
|
|
18
|
+
* На терминале вместо вариантов отображается только QR-код ссылки.
|
|
19
|
+
*/
|
|
20
|
+
export class ScShareDialogComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
/**
|
|
23
|
+
* Провайдер данных о терминале.
|
|
24
|
+
*/
|
|
25
|
+
this.terminal = inject(IS_RUNNING_ON_TERMINAL);
|
|
26
|
+
/**
|
|
27
|
+
* Контекст диалогового окна, в котором открыт компонент.
|
|
28
|
+
*/
|
|
29
|
+
this.context = inject(POLYMORPHEUS_CONTEXT);
|
|
30
|
+
/**
|
|
31
|
+
* Сервис копирования текста в буфер обмена.
|
|
32
|
+
*/
|
|
33
|
+
this.clipboard = inject(Clipboard);
|
|
34
|
+
/**
|
|
35
|
+
* Ссылка на объект окна браузера.
|
|
36
|
+
*/
|
|
37
|
+
this.window = inject(WA_WINDOW);
|
|
38
|
+
/**
|
|
39
|
+
* Сервис уведомлений.
|
|
40
|
+
*/
|
|
41
|
+
this.alerts = inject(TuiAlertService);
|
|
42
|
+
/**
|
|
43
|
+
* Сервис для работы с диалоговыми окнами.
|
|
44
|
+
*/
|
|
45
|
+
this.dialog = inject(TuiDialogService);
|
|
46
|
+
/**
|
|
47
|
+
* Сервис для сбора метрик о действиях пользователей.
|
|
48
|
+
*/
|
|
49
|
+
this.userMetrikaService = inject(ScUserMetrikaService);
|
|
50
|
+
/**
|
|
51
|
+
* {@link Signal} формата отображения вариантов: в строку на широких экранах, списком на узких.
|
|
52
|
+
*/
|
|
53
|
+
this.viewMode = toSignal(inject(IS_SERVER) ? of('list') : inject(TUI_WINDOW_SIZE).pipe(map((rect) => (rect.width > 768 ? 'row' : 'list'))), { initialValue: 'list' });
|
|
54
|
+
/**
|
|
55
|
+
* Заголовок ссылки, которой необходимо поделиться.
|
|
56
|
+
*/
|
|
57
|
+
this.title = this.context.data.title;
|
|
58
|
+
/**
|
|
59
|
+
* Ссылка, которой необходимо поделиться.
|
|
60
|
+
*/
|
|
61
|
+
this.shareUrl = this.context.data.shareUrl;
|
|
62
|
+
/**
|
|
63
|
+
* Ссылка отправки по Email.
|
|
64
|
+
*/
|
|
65
|
+
this.emailLink = `mailto:?subject=${encodeURIComponent(['ООО Снабцентр', this.title].filter(Boolean).join(' - '))}&body=${encodeURIComponent(this.shareUrl)}`;
|
|
66
|
+
/**
|
|
67
|
+
* Ссылка отправки во ВКонтакте.
|
|
68
|
+
*/
|
|
69
|
+
this.vkLink = `https://vk.com/share.php?url=${encodeURIComponent(this.shareUrl)}`;
|
|
70
|
+
/**
|
|
71
|
+
* Ссылка отправки в Telegram.
|
|
72
|
+
*/
|
|
73
|
+
this.telegramLink = `https://t.me/share/url?url=${encodeURIComponent(this.shareUrl)}`;
|
|
74
|
+
}
|
|
75
|
+
/** @inheritDoc */
|
|
76
|
+
ngOnInit() {
|
|
77
|
+
this.userMetrikaService.emitUserMetrikaEvent({
|
|
78
|
+
target: ScUserMetrikaGoalsEnum.shareShow,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Открывает окно перехода в социальную сеть.
|
|
83
|
+
*
|
|
84
|
+
* @param shareLink Ссылка перехода в социальную сеть.
|
|
85
|
+
* @param socialMedia Slug социальной сети.
|
|
86
|
+
*/
|
|
87
|
+
openShareWindow(shareLink, socialMedia) {
|
|
88
|
+
this.emitShareClick(socialMedia);
|
|
89
|
+
this.window.open(shareLink, 'sharer', 'status=0,toolbar=0,width=650,height=500');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Копирует ссылку в буфер обмена.
|
|
93
|
+
*/
|
|
94
|
+
copyShareLink() {
|
|
95
|
+
this.emitShareClick('copy_to_clipboard');
|
|
96
|
+
if (this.clipboard.copy(this.shareUrl)) {
|
|
97
|
+
this.alerts.open('Ссылка скопирована в буфер обмена.', { appearance: 'positive' }).subscribe();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.alerts.open('Не удалось скопировать ссылку в буфер обмена.', { appearance: 'negative' }).subscribe();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Открывает диалоговое окно с QR-кодом ссылки.
|
|
105
|
+
*/
|
|
106
|
+
showQRCode() {
|
|
107
|
+
this.emitShareClick('qr');
|
|
108
|
+
this.userMetrikaService.emitUserMetrikaEvent({
|
|
109
|
+
target: ScUserMetrikaGoalsEnum.qrShow,
|
|
110
|
+
});
|
|
111
|
+
this.dialog
|
|
112
|
+
.open(new PolymorpheusComponent(ScQRCodeDialogComponent), {
|
|
113
|
+
size: 's',
|
|
114
|
+
label: this.title || 'QR-код',
|
|
115
|
+
data: { qrdata: this.shareUrl },
|
|
116
|
+
})
|
|
117
|
+
.subscribe();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Отправляет метрику выбора варианта "Поделиться".
|
|
121
|
+
*
|
|
122
|
+
* @param shareLinkName Наименование варианта.
|
|
123
|
+
*/
|
|
124
|
+
emitShareClick(shareLinkName) {
|
|
125
|
+
this.userMetrikaService.emitUserMetrikaEvent({
|
|
126
|
+
target: ScUserMetrikaGoalsEnum.shareClick,
|
|
127
|
+
params: {
|
|
128
|
+
share_link_name: shareLinkName,
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScShareDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScShareDialogComponent, isStandalone: true, selector: "sc-share-dialog", ngImport: i0, template: "@if (terminal.isRunningOnTerminal) {\n <p class=\"-mt-2 mb-3 text-tui-text-02\">\u0421\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 QR-\u043A\u043E\u0434.</p>\n <qrcode\n [margin]=\"0\"\n [qrdata]=\"shareUrl\"\n [width]=\"250\"\n elementType=\"img\"\n ></qrcode>\n} @else {\n @let isRow = viewMode() === 'row';\n @let appearance = isRow ? 'flat' : 'outline';\n @let buttonClass = isRow ? 'button _row' : 'button w-full !justify-start';\n @let iconClass = isRow ? '!m-0 !size-8' : '!m-0 !size-6';\n @let iconSize = isRow ? 32 : 24;\n\n <div\n class=\"gap-2\"\n [class.flex]=\"isRow\"\n [class.grid]=\"!isRow\"\n [class.grid-cols-2]=\"!isRow\"\n >\n <a\n tuiButton\n size=\"m\"\n scEmailLink\n linkLocation=\"share-link\"\n automation-id=\"sc-share-dialog__email\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n [href]=\"emailLink\"\n >\n <img\n [src]=\"'@tui.sc.img.email' | tuiIcon\"\n alt=\"Email\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>Email</span>\n </a>\n <a\n tuiButton\n size=\"m\"\n target=\"_blank\"\n automation-id=\"sc-share-dialog__vk\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n [href]=\"vkLink\"\n (click)=\"$event.preventDefault(); openShareWindow(vkLink, 'vk')\"\n >\n <img\n [src]=\"'@tui.sc.img.vk' | tuiIcon\"\n alt=\"\u0412\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u0435\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>\u0412\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u0435</span>\n </a>\n <a\n tuiButton\n size=\"m\"\n target=\"_blank\"\n automation-id=\"sc-share-dialog__telegram\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n [href]=\"telegramLink\"\n (click)=\"$event.preventDefault(); openShareWindow(telegramLink, 'telegram')\"\n >\n <img\n [src]=\"'@tui.sc.img.telegram' | tuiIcon\"\n alt=\"Telegram\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>Telegram</span>\n </a>\n <button\n tuiButton\n size=\"m\"\n type=\"button\"\n automation-id=\"sc-share-dialog__copy\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n (click)=\"copyShareLink()\"\n >\n <img\n [src]=\"'@tui.sc.img.copy' | tuiIcon\"\n alt=\"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C</span>\n </button>\n <button\n tuiButton\n size=\"m\"\n type=\"button\"\n automation-id=\"sc-share-dialog__qr\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n (click)=\"showQRCode()\"\n >\n <img\n [src]=\"'@tui.sc.img.qr-code' | tuiIcon\"\n alt=\"QR-\u043A\u043E\u0434\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>QR-\u043A\u043E\u0434</span>\n </button>\n </div>\n}\n", styles: [".button._row{--tui-padding: .625rem;--t-gap: 0 !important}.button._row span{max-width:0;overflow:hidden;opacity:0;transition-duration:.5s}.button._row:hover span{opacity:1;max-width:11.5rem;padding-left:1rem}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }, { kind: "directive", type: ScEmailLinkDirective, selector: "a[scEmailLink]", inputs: ["linkLocation"] }, { kind: "ngmodule", type: QRCodeModule }, { kind: "component", type: i1.QRCodeComponent, selector: "qrcode", inputs: ["allowEmptyString", "colorDark", "colorLight", "cssClass", "elementType", "errorCorrectionLevel", "imageSrc", "imageHeight", "imageWidth", "margin", "qrdata", "scale", "version", "width", "alt", "ariaLabel", "title"], outputs: ["qrCodeURL"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
134
|
+
}
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScShareDialogComponent, decorators: [{
|
|
136
|
+
type: Component,
|
|
137
|
+
args: [{ standalone: true, selector: 'sc-share-dialog', imports: [TuiButton, TuiIconPipe, ScEmailLinkDirective, QRCodeModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (terminal.isRunningOnTerminal) {\n <p class=\"-mt-2 mb-3 text-tui-text-02\">\u0421\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 QR-\u043A\u043E\u0434.</p>\n <qrcode\n [margin]=\"0\"\n [qrdata]=\"shareUrl\"\n [width]=\"250\"\n elementType=\"img\"\n ></qrcode>\n} @else {\n @let isRow = viewMode() === 'row';\n @let appearance = isRow ? 'flat' : 'outline';\n @let buttonClass = isRow ? 'button _row' : 'button w-full !justify-start';\n @let iconClass = isRow ? '!m-0 !size-8' : '!m-0 !size-6';\n @let iconSize = isRow ? 32 : 24;\n\n <div\n class=\"gap-2\"\n [class.flex]=\"isRow\"\n [class.grid]=\"!isRow\"\n [class.grid-cols-2]=\"!isRow\"\n >\n <a\n tuiButton\n size=\"m\"\n scEmailLink\n linkLocation=\"share-link\"\n automation-id=\"sc-share-dialog__email\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n [href]=\"emailLink\"\n >\n <img\n [src]=\"'@tui.sc.img.email' | tuiIcon\"\n alt=\"Email\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>Email</span>\n </a>\n <a\n tuiButton\n size=\"m\"\n target=\"_blank\"\n automation-id=\"sc-share-dialog__vk\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n [href]=\"vkLink\"\n (click)=\"$event.preventDefault(); openShareWindow(vkLink, 'vk')\"\n >\n <img\n [src]=\"'@tui.sc.img.vk' | tuiIcon\"\n alt=\"\u0412\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u0435\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>\u0412\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u0435</span>\n </a>\n <a\n tuiButton\n size=\"m\"\n target=\"_blank\"\n automation-id=\"sc-share-dialog__telegram\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n [href]=\"telegramLink\"\n (click)=\"$event.preventDefault(); openShareWindow(telegramLink, 'telegram')\"\n >\n <img\n [src]=\"'@tui.sc.img.telegram' | tuiIcon\"\n alt=\"Telegram\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>Telegram</span>\n </a>\n <button\n tuiButton\n size=\"m\"\n type=\"button\"\n automation-id=\"sc-share-dialog__copy\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n (click)=\"copyShareLink()\"\n >\n <img\n [src]=\"'@tui.sc.img.copy' | tuiIcon\"\n alt=\"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C</span>\n </button>\n <button\n tuiButton\n size=\"m\"\n type=\"button\"\n automation-id=\"sc-share-dialog__qr\"\n [appearance]=\"appearance\"\n [class]=\"buttonClass\"\n (click)=\"showQRCode()\"\n >\n <img\n [src]=\"'@tui.sc.img.qr-code' | tuiIcon\"\n alt=\"QR-\u043A\u043E\u0434\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [class]=\"iconClass\"\n />\n <span>QR-\u043A\u043E\u0434</span>\n </button>\n </div>\n}\n", styles: [".button._row{--tui-padding: .625rem;--t-gap: 0 !important}.button._row span{max-width:0;overflow:hidden;opacity:0;transition-duration:.5s}.button._row:hover span{opacity:1;max-width:11.5rem;padding-left:1rem}\n"] }]
|
|
138
|
+
}] });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zaGFyZS9zaGFyZS1kaWFsb2cvc2Mtc2hhcmUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zaGFyZS9zaGFyZS1kaWFsb2cvc2Mtc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUF1QixzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQW9CLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7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L2Nkay9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBXQV9XSU5ET1cgfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7IElTX1JVTk5JTkdfT05fVEVSTUlOQUwsIElTX1NFUlZFUiwgU2NJVGVybWluYWxQcm92aWRlciwgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSwgU2NVc2VyTWV0cmlrYVNlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9XSU5ET1dfU0laRSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQWxlcnRTZXJ2aWNlLCBUdWlCdXR0b24sIFR1aURpYWxvZ0NvbnRleHQsIFR1aURpYWxvZ1NlcnZpY2UsIFR1aUljb25QaXBlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgUE9MWU1PUlBIRVVTX0NPTlRFWFQsIFBvbHltb3JwaGV1c0NvbXBvbmVudCB9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHsgUVJDb2RlTW9kdWxlIH0gZnJvbSAnYW5ndWxhcngtcXJjb2RlJztcbmltcG9ydCB7IG1hcCwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NFbWFpbExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNjUVJDb2RlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXJjb2RlJztcbmltcG9ydCB7IFNjU2hhcmVEaWFsb2dEYXRhIH0gZnJvbSAnLi4vc2Mtc2hhcmUtZGlhbG9nLWRhdGEnO1xuXG4vKipcbiAqINCU0LjQsNC70L7Qs9C+0LLQvtC1INC+0LrQvdC+IFwi0J/QvtC00LXQu9C40YLRjNGB0Y9cIjog0LLQsNGA0LjQsNC90YLRiywg0LrQsNC6INC/0L7QtNC10LvQuNGC0YzRgdGPINGB0YHRi9C70LrQvtC5LlxuICpcbiAqINCd0LAg0YLQtdGA0LzQuNC90LDQu9C1INCy0LzQtdGB0YLQviDQstCw0YDQuNCw0L3RgtC+0LIg0L7RgtC+0LHRgNCw0LbQsNC10YLRgdGPINGC0L7Qu9GM0LrQviBRUi3QutC+0LQg0YHRgdGL0LvQutC4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2Mtc2hhcmUtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2Mtc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJyxcbiAgICBpbXBvcnRzOiBbVHVpQnV0dG9uLCBUdWlJY29uUGlwZSwgU2NFbWFpbExpbmtEaXJlY3RpdmUsIFFSQ29kZU1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjU2hhcmVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LDQudC00LXRgCDQtNCw0L3QvdGL0YUg0L4g0YLQtdGA0LzQuNC90LDQu9C1LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXJtaW5hbDogU2NJVGVybWluYWxQcm92aWRlciA9IGluamVjdDxTY0lUZXJtaW5hbFByb3ZpZGVyPihJU19SVU5OSU5HX09OX1RFUk1JTkFMKTtcblxuICAgIC8qKlxuICAgICAqINCa0L7QvdGC0LXQutGB0YIg0LTQuNCw0LvQvtCz0L7QstC+0LPQviDQvtC60L3QsCwg0LIg0LrQvtGC0L7RgNC+0Lwg0L7RgtC60YDRi9GCINC60L7QvNC/0L7QvdC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IFR1aURpYWxvZ0NvbnRleHQ8dm9pZCwgU2NTaGFyZURpYWxvZ0RhdGE+ID0gaW5qZWN0PFR1aURpYWxvZ0NvbnRleHQ8dm9pZCwgU2NTaGFyZURpYWxvZ0RhdGE+PihQT0xZTU9SUEhFVVNfQ09OVEVYVCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LrQvtC/0LjRgNC+0LLQsNC90LjRjyDRgtC10LrRgdGC0LAg0LIg0LHRg9GE0LXRgCDQvtCx0LzQtdC90LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmQ6IENsaXBib2FyZCA9IGluamVjdChDbGlwYm9hcmQpO1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINC90LAg0L7QsdGK0LXQutGCINC+0LrQvdCwINCx0YDQsNGD0LfQtdGA0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IFdpbmRvdyA9IGluamVjdChXQV9XSU5ET1cpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINGD0LLQtdC00L7QvNC70LXQvdC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFR1aUFsZXJ0U2VydmljZSA9IGluamVjdChUdWlBbGVydFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LTQuNCw0LvQvtCz0L7QstGL0LzQuCDQvtC60L3QsNC80LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IFR1aURpYWxvZ1NlcnZpY2UgPSBpbmplY3QoVHVpRGlhbG9nU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UgPSBpbmplY3QoU2NVc2VyTWV0cmlrYVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFNpZ25hbH0g0YTQvtGA0LzQsNGC0LAg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQstCw0YDQuNCw0L3RgtC+0LI6INCyINGB0YLRgNC+0LrRgyDQvdCwINGI0LjRgNC+0LrQuNGFINGN0LrRgNCw0L3QsNGFLCDRgdC/0LjRgdC60L7QvCDQvdCwINGD0LfQutC40YUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZpZXdNb2RlOiBTaWduYWw8J3JvdycgfCAnbGlzdCc+ID0gdG9TaWduYWwoXG4gICAgICAgIGluamVjdDxib29sZWFuPihJU19TRVJWRVIpID8gb2Y8J3JvdycgfCAnbGlzdCc+KCdsaXN0JykgOiBpbmplY3QoVFVJX1dJTkRPV19TSVpFKS5waXBlKG1hcCgocmVjdCkgPT4gKHJlY3Qud2lkdGggPiA3NjggPyAncm93JyA6ICdsaXN0JykpKSxcbiAgICAgICAgeyBpbml0aWFsVmFsdWU6ICdsaXN0JyB9XG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGB0YvQu9C60LgsINC60L7RgtC+0YDQvtC5INC90LXQvtCx0YXQvtC00LjQvNC+INC/0L7QtNC10LvQuNGC0YzRgdGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0aXRsZTogc3RyaW5nID0gdGhpcy5jb250ZXh0LmRhdGEudGl0bGU7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAsINC60L7RgtC+0YDQvtC5INC90LXQvtCx0YXQvtC00LjQvNC+INC/0L7QtNC10LvQuNGC0YzRgdGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzaGFyZVVybDogc3RyaW5nID0gdGhpcy5jb250ZXh0LmRhdGEuc2hhcmVVcmw7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0L7RgtC/0YDQsNCy0LrQuCDQv9C+IEVtYWlsLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbWFpbExpbms6IHN0cmluZyA9IGBtYWlsdG86P3N1YmplY3Q9JHtlbmNvZGVVUklDb21wb25lbnQoWyfQntCe0J4g0KHQvdCw0LHRhtC10L3RgtGAJywgdGhpcy50aXRsZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAtICcpKX0mYm9keT0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnNoYXJlVXJsKX1gO1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINC+0YLQv9GA0LDQstC60Lgg0LLQviDQktCa0L7QvdGC0LDQutGC0LUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZrTGluazogc3RyaW5nID0gYGh0dHBzOi8vdmsuY29tL3NoYXJlLnBocD91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5zaGFyZVVybCl9YDtcblxuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvtGC0L/RgNCw0LLQutC4INCyIFRlbGVncmFtLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZWxlZ3JhbUxpbms6IHN0cmluZyA9IGBodHRwczovL3QubWUvc2hhcmUvdXJsP3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnNoYXJlVXJsKX1gO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0uc2hhcmVTaG93LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntGC0LrRgNGL0LLQsNC10YIg0L7QutC90L4g0L/QtdGA0LXRhdC+0LTQsCDQsiDRgdC+0YbQuNCw0LvRjNC90YPRjiDRgdC10YLRjC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaGFyZUxpbmsg0KHRgdGL0LvQutCwINC/0LXRgNC10YXQvtC00LAg0LIg0YHQvtGG0LjQsNC70YzQvdGD0Y4g0YHQtdGC0YwuXG4gICAgICogQHBhcmFtIHNvY2lhbE1lZGlhIFNsdWcg0YHQvtGG0LjQsNC70YzQvdC+0Lkg0YHQtdGC0LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9wZW5TaGFyZVdpbmRvdyhzaGFyZUxpbms6IHN0cmluZywgc29jaWFsTWVkaWE6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtaXRTaGFyZUNsaWNrKHNvY2lhbE1lZGlhKTtcbiAgICAgICAgdGhpcy53aW5kb3cub3BlbihzaGFyZUxpbmssICdzaGFyZXInLCAnc3RhdHVzPTAsdG9vbGJhcj0wLHdpZHRoPTY1MCxoZWlnaHQ9NTAwJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JrQvtC/0LjRgNGD0LXRgiDRgdGB0YvQu9C60YMg0LIg0LHRg9GE0LXRgCDQvtCx0LzQtdC90LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvcHlTaGFyZUxpbmsoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1pdFNoYXJlQ2xpY2soJ2NvcHlfdG9fY2xpcGJvYXJkJyk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5zaGFyZVVybCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzLm9wZW4oJ9Ch0YHRi9C70LrQsCDRgdC60L7Qv9C40YDQvtCy0LDQvdCwINCyINCx0YPRhNC10YAg0L7QsdC80LXQvdCwLicsIHsgYXBwZWFyYW5jZTogJ3Bvc2l0aXZlJyB9KS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzLm9wZW4oJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQutC+0L/QuNGA0L7QstCw0YLRjCDRgdGB0YvQu9C60YMg0LIg0LHRg9GE0LXRgCDQvtCx0LzQtdC90LAuJywgeyBhcHBlYXJhbmNlOiAnbmVnYXRpdmUnIH0pLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgtC60YDRi9Cy0LDQtdGCINC00LjQsNC70L7Qs9C+0LLQvtC1INC+0LrQvdC+INGBIFFSLdC60L7QtNC+0Lwg0YHRgdGL0LvQutC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzaG93UVJDb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtaXRTaGFyZUNsaWNrKCdxcicpO1xuICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0ucXJTaG93LFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAgICAgLm9wZW4obmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudChTY1FSQ29kZURpYWxvZ0NvbXBvbmVudCksIHtcbiAgICAgICAgICAgICAgICBzaXplOiAncycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudGl0bGUgfHwgJ1FSLdC60L7QtCcsXG4gICAgICAgICAgICAgICAgZGF0YTogeyBxcmRhdGE6IHRoaXMuc2hhcmVVcmwgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgtC/0YDQsNCy0LvRj9C10YIg0LzQtdGC0YDQuNC60YMg0LLRi9Cx0L7RgNCwINCy0LDRgNC40LDQvdGC0LAgXCLQn9C+0LTQtdC70LjRgtGM0YHRj1wiLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNoYXJlTGlua05hbWUg0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INCy0LDRgNC40LDQvdGC0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBlbWl0U2hhcmVDbGljayhzaGFyZUxpbmtOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnNoYXJlQ2xpY2ssXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBzaGFyZV9saW5rX25hbWU6IHNoYXJlTGlua05hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAaWYgKHRlcm1pbmFsLmlzUnVubmluZ09uVGVybWluYWwpIHtcbiAgICA8cCBjbGFzcz1cIi1tdC0yIG1iLTMgdGV4dC10dWktdGV4dC0wMlwiPtCh0LrQsNC90LjRgNGD0LnRgtC1IFFSLdC60L7QtC48L3A+XG4gICAgPHFyY29kZVxuICAgICAgICBbbWFyZ2luXT1cIjBcIlxuICAgICAgICBbcXJkYXRhXT1cInNoYXJlVXJsXCJcbiAgICAgICAgW3dpZHRoXT1cIjI1MFwiXG4gICAgICAgIGVsZW1lbnRUeXBlPVwiaW1nXCJcbiAgICA+PC9xcmNvZGU+XG59IEBlbHNlIHtcbiAgICBAbGV0IGlzUm93ID0gdmlld01vZGUoKSA9PT0gJ3Jvdyc7XG4gICAgQGxldCBhcHBlYXJhbmNlID0gaXNSb3cgPyAnZmxhdCcgOiAnb3V0bGluZSc7XG4gICAgQGxldCBidXR0b25DbGFzcyA9IGlzUm93ID8gJ2J1dHRvbiBfcm93JyA6ICdidXR0b24gdy1mdWxsICFqdXN0aWZ5LXN0YXJ0JztcbiAgICBAbGV0IGljb25DbGFzcyA9IGlzUm93ID8gJyFtLTAgIXNpemUtOCcgOiAnIW0tMCAhc2l6ZS02JztcbiAgICBAbGV0IGljb25TaXplID0gaXNSb3cgPyAzMiA6IDI0O1xuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdhcC0yXCJcbiAgICAgICAgW2NsYXNzLmZsZXhdPVwiaXNSb3dcIlxuICAgICAgICBbY2xhc3MuZ3JpZF09XCIhaXNSb3dcIlxuICAgICAgICBbY2xhc3MuZ3JpZC1jb2xzLTJdPVwiIWlzUm93XCJcbiAgICA+XG4gICAgICAgIDxhXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgIHNjRW1haWxMaW5rXG4gICAgICAgICAgICBsaW5rTG9jYXRpb249XCJzaGFyZS1saW5rXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJzYy1zaGFyZS1kaWFsb2dfX2VtYWlsXCJcbiAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgICAgICAgIFtocmVmXT1cImVtYWlsTGlua1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBbc3JjXT1cIidAdHVpLnNjLmltZy5lbWFpbCcgfCB0dWlJY29uXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJFbWFpbFwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cImljb25TaXplXCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImljb25TaXplXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiaWNvbkNsYXNzXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8c3Bhbj5FbWFpbDwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YVxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInNjLXNoYXJlLWRpYWxvZ19fdmtcIlxuICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgW2hyZWZdPVwidmtMaW5rXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgb3BlblNoYXJlV2luZG93KHZrTGluaywgJ3ZrJylcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCInQHR1aS5zYy5pbWcudmsnIHwgdHVpSWNvblwiXG4gICAgICAgICAgICAgICAgYWx0PVwi0JLQmtC+0L3RgtCw0LrRgtC1XCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJpY29uQ2xhc3NcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPtCS0JrQvtC90YLQsNC60YLQtTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YVxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInNjLXNoYXJlLWRpYWxvZ19fdGVsZWdyYW1cIlxuICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgW2hyZWZdPVwidGVsZWdyYW1MaW5rXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgb3BlblNoYXJlV2luZG93KHRlbGVncmFtTGluaywgJ3RlbGVncmFtJylcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCInQHR1aS5zYy5pbWcudGVsZWdyYW0nIHwgdHVpSWNvblwiXG4gICAgICAgICAgICAgICAgYWx0PVwiVGVsZWdyYW1cIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+VGVsZWdyYW08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJzYy1zaGFyZS1kaWFsb2dfX2NvcHlcIlxuICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlTaGFyZUxpbmsoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBbc3JjXT1cIidAdHVpLnNjLmltZy5jb3B5JyB8IHR1aUljb25cIlxuICAgICAgICAgICAgICAgIGFsdD1cItCa0L7Qv9C40YDQvtCy0LDRgtGMXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiaWNvblNpemVcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJpY29uQ2xhc3NcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPtCa0L7Qv9C40YDQvtCy0LDRgtGMPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJzYy1zaGFyZS1kaWFsb2dfX3FyXCJcbiAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzaG93UVJDb2RlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCInQHR1aS5zYy5pbWcucXItY29kZScgfCB0dWlJY29uXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJRUi3QutC+0LRcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4+UVIt0LrQvtC0PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { WA_WINDOW } from '@ng-web-apis/common';
|
|
3
|
+
import { IS_RUNNING_ON_TERMINAL, ScPhoneService, ScUserMetrikaGoalsEnum, ScUserMetrikaService } from '@snabcentr/client-core';
|
|
4
|
+
import { TuiButton, TuiDialogService } from '@taiga-ui/core';
|
|
5
|
+
import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
|
|
6
|
+
import { ScPhoneFormatPipe } from '../../pipes';
|
|
7
|
+
import { ScQRCodeDialogComponent } from '../../qrcode';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Ссылки на мессенджеры контакта по номеру телефона.
|
|
11
|
+
*
|
|
12
|
+
* На терминале вместо перехода в мессенджер отображается QR-код ссылки.
|
|
13
|
+
*/
|
|
14
|
+
export class ScShareMessengersLinksComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
/**
|
|
17
|
+
* {@link InputSignal} телефона контакта.
|
|
18
|
+
*/
|
|
19
|
+
this.phone = input.required();
|
|
20
|
+
/**
|
|
21
|
+
* {@link InputSignal} размера кнопок.
|
|
22
|
+
*/
|
|
23
|
+
this.size = input('s');
|
|
24
|
+
/**
|
|
25
|
+
* Сервис для сбора метрик о действиях пользователей.
|
|
26
|
+
*/
|
|
27
|
+
this.userMetrikaService = inject(ScUserMetrikaService);
|
|
28
|
+
/**
|
|
29
|
+
* Ссылка на объект окна браузера.
|
|
30
|
+
*/
|
|
31
|
+
this.window = inject(WA_WINDOW);
|
|
32
|
+
/**
|
|
33
|
+
* Провайдер данных о терминале.
|
|
34
|
+
*/
|
|
35
|
+
this.terminal = inject(IS_RUNNING_ON_TERMINAL);
|
|
36
|
+
/**
|
|
37
|
+
* Сервис для работы с диалоговыми окнами.
|
|
38
|
+
*/
|
|
39
|
+
this.dialog = inject(TuiDialogService);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Открывает окно перехода в мессенджер.
|
|
43
|
+
*
|
|
44
|
+
* @param shareLink Ссылка перехода в мессенджер.
|
|
45
|
+
* @param socialMedia Slug мессенджера.
|
|
46
|
+
*/
|
|
47
|
+
openShareWindow(shareLink, socialMedia) {
|
|
48
|
+
this.userMetrikaService.emitUserMetrikaEvent({
|
|
49
|
+
target: ScUserMetrikaGoalsEnum.shareClick,
|
|
50
|
+
params: {
|
|
51
|
+
share_link_name: socialMedia,
|
|
52
|
+
phone: this.phone(),
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
if (this.terminal.isRunningOnTerminal) {
|
|
56
|
+
this.dialog
|
|
57
|
+
.open(new PolymorpheusComponent(ScQRCodeDialogComponent), {
|
|
58
|
+
size: 's',
|
|
59
|
+
label: socialMedia,
|
|
60
|
+
data: { qrdata: shareLink },
|
|
61
|
+
})
|
|
62
|
+
.subscribe();
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.window.open(shareLink, 'sharer', 'status=0,toolbar=0,width=650,height=500');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Проверяет, что номер телефона подходит для использования в мессенджерах.
|
|
70
|
+
*
|
|
71
|
+
* @param value Номер телефона.
|
|
72
|
+
*/
|
|
73
|
+
// eslint-disable-next-line class-methods-use-this
|
|
74
|
+
isValidPhoneNumberForMessenger(value) {
|
|
75
|
+
return ScPhoneService.isValidPhoneNumberForMessenger(value);
|
|
76
|
+
}
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScShareMessengersLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScShareMessengersLinksComponent, isStandalone: true, selector: "sc-share-messengers-links", inputs: { phone: { classPropertyName: "phone", publicName: "phone", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (isValidPhoneNumberForMessenger(phone())) {\n @let phoneNumber = phone() | scPhoneFormat: 'cleanWithPlus';\n\n <button\n tuiIconButton\n type=\"button\"\n appearance=\"mono\"\n iconStart=\"@tui.sc.telegram\"\n title=\"Telegram\"\n aria-label=\"Telegram\"\n [size]=\"size()\"\n (click)=\"openShareWindow('https://t.me/' + phoneNumber, 'telegram')\"\n ></button>\n}\n", dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "pipe", type: ScPhoneFormatPipe, name: "scPhoneFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScShareMessengersLinksComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{ standalone: true, selector: 'sc-share-messengers-links', imports: [TuiButton, ScPhoneFormatPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isValidPhoneNumberForMessenger(phone())) {\n @let phoneNumber = phone() | scPhoneFormat: 'cleanWithPlus';\n\n <button\n tuiIconButton\n type=\"button\"\n appearance=\"mono\"\n iconStart=\"@tui.sc.telegram\"\n title=\"Telegram\"\n aria-label=\"Telegram\"\n [size]=\"size()\"\n (click)=\"openShareWindow('https://t.me/' + phoneNumber, 'telegram')\"\n ></button>\n}\n" }]
|
|
83
|
+
}] });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2hhcmUtbWVzc2VuZ2Vycy1saW5rcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc2hhcmUvc2hhcmUtbWVzc2VuZ2Vycy1saW5rcy9zYy1zaGFyZS1tZXNzZW5nZXJzLWxpbmtzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zaGFyZS9zaGFyZS1tZXNzZW5nZXJzLWxpbmtzL3NjLXNoYXJlLW1lc3NlbmdlcnMtbGlua3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25KLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV2RDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLCtCQUErQjtJQVA1QztRQVFJOztXQUVHO1FBQ2EsVUFBSyxHQUF3QixLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFdEU7O1dBRUc7UUFDYSxTQUFJLEdBQTJCLEtBQUssQ0FBWSxHQUFHLENBQUMsQ0FBQztRQUVyRTs7V0FFRztRQUNjLHVCQUFrQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV6Rjs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEQ7O1dBRUc7UUFDYyxhQUFRLEdBQXdCLE1BQU0sQ0FBc0Isc0JBQXNCLENBQUMsQ0FBQztRQUVyRzs7V0FFRztRQUNjLFdBQU0sR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0F1Q3hFO0lBckNHOzs7OztPQUtHO0lBQ08sZUFBZSxDQUFDLFNBQWlCLEVBQUUsV0FBbUI7UUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1lBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxVQUFVO1lBQ3pDLE1BQU0sRUFBRTtnQkFDSixlQUFlLEVBQUUsV0FBVztnQkFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7YUFDdEI7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTTtpQkFDTixJQUFJLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO2dCQUN0RCxJQUFJLEVBQUUsR0FBRztnQkFDVCxLQUFLLEVBQUUsV0FBVztnQkFDbEIsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTthQUM5QixDQUFDO2lCQUNELFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtEQUFrRDtJQUN4Qyw4QkFBOEIsQ0FBQyxLQUFhO1FBQ2xELE9BQU8sY0FBYyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBbkVRLCtCQUErQjttR0FBL0IsK0JBQStCLDZVQ3JCNUMsb2JBY0EsNENESWMsU0FBUywrSEFBRSxpQkFBaUI7OzRGQUc3QiwrQkFBK0I7a0JBUDNDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDJCQUEyQixXQUU1QixDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxtQkFDdEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIElucHV0U2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXQV9XSU5ET1cgfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7IElTX1JVTk5JTkdfT05fVEVSTUlOQUwsIFNjSVRlcm1pbmFsUHJvdmlkZXIsIFNjUGhvbmVTZXJ2aWNlLCBTY1VzZXJNZXRyaWthR29hbHNFbnVtLCBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEaWFsb2dTZXJ2aWNlLCBUdWlTaXplWFMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQb2x5bW9ycGhldXNDb21wb25lbnQgfSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHsgU2NQaG9uZUZvcm1hdFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBTY1FSQ29kZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3FyY29kZSc7XG5cbi8qKlxuICog0KHRgdGL0LvQutC4INC90LAg0LzQtdGB0YHQtdC90LTQttC10YDRiyDQutC+0L3RgtCw0LrRgtCwINC/0L4g0L3QvtC80LXRgNGDINGC0LXQu9C10YTQvtC90LAuXG4gKlxuICog0J3QsCDRgtC10YDQvNC40L3QsNC70LUg0LLQvNC10YHRgtC+INC/0LXRgNC10YXQvtC00LAg0LIg0LzQtdGB0YHQtdC90LTQttC10YAg0L7RgtC+0LHRgNCw0LbQsNC10YLRgdGPIFFSLdC60L7QtCDRgdGB0YvQu9C60LguXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1zaGFyZS1tZXNzZW5nZXJzLWxpbmtzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtc2hhcmUtbWVzc2VuZ2Vycy1saW5rcy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1R1aUJ1dHRvbiwgU2NQaG9uZUZvcm1hdFBpcGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1NoYXJlTWVzc2VuZ2Vyc0xpbmtzQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INGC0LXQu9C10YTQvtC90LAg0LrQvtC90YLQsNC60YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcGhvbmU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INGA0LDQt9C80LXRgNCwINC60L3QvtC/0L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2l6ZTogSW5wdXRTaWduYWw8VHVpU2l6ZVhTPiA9IGlucHV0PFR1aVNpemVYUz4oJ3MnKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0L3QsCDQvtCx0YrQtdC60YIg0L7QutC90LAg0LHRgNCw0YPQt9C10YDQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogV2luZG93ID0gaW5qZWN0KFdBX1dJTkRPVyk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstCw0LnQtNC10YAg0LTQsNC90L3Ri9GFINC+INGC0LXRgNC80LjQvdCw0LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1pbmFsOiBTY0lUZXJtaW5hbFByb3ZpZGVyID0gaW5qZWN0PFNjSVRlcm1pbmFsUHJvdmlkZXI+KElTX1JVTk5JTkdfT05fVEVSTUlOQUwpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LTQuNCw0LvQvtCz0L7QstGL0LzQuCDQvtC60L3QsNC80LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IFR1aURpYWxvZ1NlcnZpY2UgPSBpbmplY3QoVHVpRGlhbG9nU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntGC0LrRgNGL0LLQsNC10YIg0L7QutC90L4g0L/QtdGA0LXRhdC+0LTQsCDQsiDQvNC10YHRgdC10L3QtNC20LXRgC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaGFyZUxpbmsg0KHRgdGL0LvQutCwINC/0LXRgNC10YXQvtC00LAg0LIg0LzQtdGB0YHQtdC90LTQttC10YAuXG4gICAgICogQHBhcmFtIHNvY2lhbE1lZGlhIFNsdWcg0LzQtdGB0YHQtdC90LTQttC10YDQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb3BlblNoYXJlV2luZG93KHNoYXJlTGluazogc3RyaW5nLCBzb2NpYWxNZWRpYTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaGFyZUNsaWNrLFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgc2hhcmVfbGlua19uYW1lOiBzb2NpYWxNZWRpYSxcbiAgICAgICAgICAgICAgICBwaG9uZTogdGhpcy5waG9uZSgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMudGVybWluYWwuaXNSdW5uaW5nT25UZXJtaW5hbCkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dcbiAgICAgICAgICAgICAgICAub3BlbihuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KFNjUVJDb2RlRGlhbG9nQ29tcG9uZW50KSwge1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAncycsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBzb2NpYWxNZWRpYSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBxcmRhdGE6IHNoYXJlTGluayB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy53aW5kb3cub3BlbihzaGFyZUxpbmssICdzaGFyZXInLCAnc3RhdHVzPTAsdG9vbGJhcj0wLHdpZHRoPTY1MCxoZWlnaHQ9NTAwJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIsINGH0YLQviDQvdC+0LzQtdGAINGC0LXQu9C10YTQvtC90LAg0L/QvtC00YXQvtC00LjRgiDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0LIg0LzQtdGB0YHQtdC90LTQttC10YDQsNGFLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCd0L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHByb3RlY3RlZCBpc1ZhbGlkUGhvbmVOdW1iZXJGb3JNZXNzZW5nZXIodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gU2NQaG9uZVNlcnZpY2UuaXNWYWxpZFBob25lTnVtYmVyRm9yTWVzc2VuZ2VyKHZhbHVlKTtcbiAgICB9XG59XG4iLCJAaWYgKGlzVmFsaWRQaG9uZU51bWJlckZvck1lc3NlbmdlcihwaG9uZSgpKSkge1xuICAgIEBsZXQgcGhvbmVOdW1iZXIgPSBwaG9uZSgpIHwgc2NQaG9uZUZvcm1hdDogJ2NsZWFuV2l0aFBsdXMnO1xuXG4gICAgPGJ1dHRvblxuICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgIGljb25TdGFydD1cIkB0dWkuc2MudGVsZWdyYW1cIlxuICAgICAgICB0aXRsZT1cIlRlbGVncmFtXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlRlbGVncmFtXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZSgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5TaGFyZVdpbmRvdygnaHR0cHM6Ly90Lm1lLycgKyBwaG9uZU51bWJlciwgJ3RlbGVncmFtJylcIlxuICAgID48L2J1dHRvbj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hYmNlbnRyLWNsaWVudC11aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbmFiY2VudHItY2xpZW50LXVpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './reset-user-password/sc-reset-user-password.component';
|
|
2
|
+
export * from './update-user-info-dialog/sc-update-user-info-dialog.component';
|
|
3
|
+
export * from './user-managers/sc-user-managers.component';
|
|
4
|
+
export * from './user-phone-approve-dialog/sc-user-phone-approve-dialog.component';
|
|
5
|
+
export * from './sc-user.module';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdXNlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2V0LXVzZXItcGFzc3dvcmQvc2MtcmVzZXQtdXNlci1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91cGRhdGUtdXNlci1pbmZvLWRpYWxvZy9zYy11cGRhdGUtdXNlci1pbmZvLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLW1hbmFnZXJzL3NjLXVzZXItbWFuYWdlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1waG9uZS1hcHByb3ZlLWRpYWxvZy9zYy11c2VyLXBob25lLWFwcHJvdmUtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXVzZXIubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
3
|
+
import { tuiIsFalsy, tuiIsPresent } from '@taiga-ui/cdk';
|
|
4
|
+
import { catchError, filter, map, of, share, startWith, Subject, switchMap, tap } from 'rxjs';
|
|
5
|
+
import { scPasswordConfirmMatchingValidator } from '../../validators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@snabcentr/client-core";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@angular/forms";
|
|
10
|
+
import * as i4 from "@taiga-ui/legacy";
|
|
11
|
+
import * as i5 from "@taiga-ui/legacy/components/primitive-textfield";
|
|
12
|
+
import * as i6 from "@taiga-ui/core";
|
|
13
|
+
import * as i7 from "@taiga-ui/kit";
|
|
14
|
+
/**
|
|
15
|
+
* Компонент смены пароля пользователя.
|
|
16
|
+
*/
|
|
17
|
+
export class ScResetUserPasswordComponent {
|
|
18
|
+
/**
|
|
19
|
+
* Инициализирует экземпляр класса {@link ScResetUserPasswordComponent}.
|
|
20
|
+
*
|
|
21
|
+
* @param userService Сервис данных о пользователе.
|
|
22
|
+
*/
|
|
23
|
+
constructor(userService) {
|
|
24
|
+
this.userService = userService;
|
|
25
|
+
/**
|
|
26
|
+
* Форма для изменения пароля пользователя.
|
|
27
|
+
*/
|
|
28
|
+
this.form = new FormGroup({
|
|
29
|
+
currentPassword: new FormControl(null, [Validators.required, Validators.minLength(8)]),
|
|
30
|
+
password: new FormControl(null, [Validators.required, Validators.minLength(8)]),
|
|
31
|
+
passwordConfirm: new FormControl(null, [Validators.required, Validators.minLength(8)]),
|
|
32
|
+
}, { validators: scPasswordConfirmMatchingValidator('password', 'passwordConfirm') });
|
|
33
|
+
/**
|
|
34
|
+
* {@link Subject} события отправки формы.
|
|
35
|
+
*/
|
|
36
|
+
this.onSubmit = new Subject();
|
|
37
|
+
/**
|
|
38
|
+
* {@link Observable} запроса данных аутентификации.
|
|
39
|
+
*/
|
|
40
|
+
this.request$ = this.onSubmit.pipe(filter(() => this.form.valid), map(() => this.form.value), switchMap((value) => this.userService.updateUserInfo$(value).pipe(map(() => ({ success: true })), tap(() => {
|
|
41
|
+
this.form.reset();
|
|
42
|
+
}),
|
|
43
|
+
// eslint-disable-next-line rxjs/no-implicit-any-catch
|
|
44
|
+
catchError((error) => {
|
|
45
|
+
const errorResponse = error.error;
|
|
46
|
+
// eslint-disable-next-line guard-for-in,no-restricted-syntax
|
|
47
|
+
for (const key in errorResponse.errors) {
|
|
48
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
49
|
+
this.form.get(key)?.setErrors({ serverResponse: errorResponse.errors[key] });
|
|
50
|
+
}
|
|
51
|
+
if (!errorResponse.errors && errorResponse.message) {
|
|
52
|
+
this.form.setErrors({ serverResponse: [errorResponse.message] });
|
|
53
|
+
}
|
|
54
|
+
return of({ success: false });
|
|
55
|
+
}), startWith(null))), share());
|
|
56
|
+
/**
|
|
57
|
+
* {@link Observable} изменения состояния загрузки данных аутентификации по email.
|
|
58
|
+
*/
|
|
59
|
+
this.loading$ = this.request$.pipe(map(tuiIsFalsy));
|
|
60
|
+
/**
|
|
61
|
+
* Сигнал события события смены пароля.
|
|
62
|
+
*/
|
|
63
|
+
this.successResetPassword = this.request$.pipe(filter(tuiIsPresent), filter(({ success }) => success));
|
|
64
|
+
}
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScResetUserPasswordComponent, deps: [{ token: i1.ScUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScResetUserPasswordComponent, selector: "sc-reset-user-password", outputs: { successResetPassword: "successResetPassword" }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4 p-1 lg:flex-row\"\n>\n <div class=\"grid items-start gap-2 lg:grow lg:grid-cols-3 lg:grid-rows-1 lg:gap-4\">\n <label tuiLabel\n >\u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password formControlName=\"currentPassword\">\n \u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"new-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"currentPassword\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel\n >\u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password\n [pseudoInvalid]=\"form.hasError('passwordNotEquivalent')\"\n formControlName=\"password\"\n >\n \u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"new-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"password\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel\n >\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password\n [pseudoInvalid]=\"form.hasError('passwordNotEquivalent')\"\n formControlName=\"passwordConfirm\"\n >\n \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"new-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"passwordConfirm\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <tui-error\n *ngIf=\"form.invalid\"\n class=\"lg:!hidden\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </div>\n <div class=\"flex flex-col justify-center lg:mt-5 lg:h-11\">\n @let loading = !!(loading$ | async);\n <button\n tuiButton\n [loading]=\"loading\"\n type=\"submit\"\n [disabled]=\"form.invalid || loading\"\n iconStart=\"@tui.save\"\n class=\"font-medium\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\n </div>\n</form>\n<tui-error\n class=\"!hidden lg:!block\"\n [formGroup]=\"form\"\n [error]=\"[] | tuiFieldError | async\"\n></tui-error>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.TuiInputPasswordComponent, selector: "tui-input-password" }, { kind: "directive", type: i4.TuiInputPasswordDirective, selector: "tui-input-password" }, { kind: "component", type: i5.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "directive", type: i6.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i6.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "directive", type: i6.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i7.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScResetUserPasswordComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'sc-reset-user-password', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4 p-1 lg:flex-row\"\n>\n <div class=\"grid items-start gap-2 lg:grow lg:grid-cols-3 lg:grid-rows-1 lg:gap-4\">\n <label tuiLabel\n >\u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password formControlName=\"currentPassword\">\n \u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"new-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"currentPassword\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel\n >\u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password\n [pseudoInvalid]=\"form.hasError('passwordNotEquivalent')\"\n formControlName=\"password\"\n >\n \u041F\u0440\u0438\u0434\u0443\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"new-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"password\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel\n >\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <tui-input-password\n [pseudoInvalid]=\"form.hasError('passwordNotEquivalent')\"\n formControlName=\"passwordConfirm\"\n >\n \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\n <input\n tuiTextfieldLegacy\n autocomplete=\"new-password\"\n />\n </tui-input-password>\n <tui-error\n formControlName=\"passwordConfirm\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <tui-error\n *ngIf=\"form.invalid\"\n class=\"lg:!hidden\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </div>\n <div class=\"flex flex-col justify-center lg:mt-5 lg:h-11\">\n @let loading = !!(loading$ | async);\n <button\n tuiButton\n [loading]=\"loading\"\n type=\"submit\"\n [disabled]=\"form.invalid || loading\"\n iconStart=\"@tui.save\"\n class=\"font-medium\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\n </div>\n</form>\n<tui-error\n class=\"!hidden lg:!block\"\n [formGroup]=\"form\"\n [error]=\"[] | tuiFieldError | async\"\n></tui-error>\n" }]
|
|
71
|
+
}], ctorParameters: () => [{ type: i1.ScUserService }], propDecorators: { successResetPassword: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}] } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcmVzZXQtdXNlci1wYXNzd29yZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdXNlci9yZXNldC11c2VyLXBhc3N3b3JkL3NjLXJlc2V0LXVzZXItcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3VzZXIvcmVzZXQtdXNlci1wYXNzd29yZC9zYy1yZXNldC11c2VyLXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7O0FBRXRFOztHQUVHO0FBTUgsTUFBTSxPQUFPLDRCQUE0QjtJQWtFckM7Ozs7T0FJRztJQUNILFlBQW9DLFdBQTBCO1FBQTFCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBdEU5RDs7V0FFRztRQUNJLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FDdkI7WUFDSSxlQUFlLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFD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bWV0aG9kICovXG5cbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2NJQXBpRXJyb3JSZXNwb25zZSwgU2NJQ2hhbmdlUGFzc3dvcmQsIFNjVXNlclNlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUlzRmFsc3ksIHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBzY1Bhc3N3b3JkQ29uZmlybU1hdGNoaW5nVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGB0LzQtdC90Ysg0L/QsNGA0L7Qu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1yZXNldC11c2VyLXBhc3N3b3JkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtcmVzZXQtdXNlci1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjUmVzZXRVc2VyUGFzc3dvcmRDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LAg0LTQu9GPINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAge1xuICAgICAgICAgICAgY3VycmVudFBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpXSksXG4gICAgICAgICAgICBwYXNzd29yZDogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KV0pLFxuICAgICAgICAgICAgcGFzc3dvcmRDb25maXJtOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpXSksXG4gICAgICAgIH0sXG4gICAgICAgIHsgdmFsaWRhdG9yczogc2NQYXNzd29yZENvbmZpcm1NYXRjaGluZ1ZhbGlkYXRvcigncGFzc3dvcmQnLCAncGFzc3dvcmRDb25maXJtJykgfVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU3ViamVjdH0g0YHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvblN1Ym1pdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JCA9IHRoaXMub25TdWJtaXQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUgYXMgU2NJQ2hhbmdlUGFzc3dvcmQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51cGRhdGVVc2VySW5mbyQodmFsdWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+ICh7IHN1Y2Nlc3M6IHRydWUgfSkpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzL25vLWltcGxpY2l0LWFueS1jYXRjaFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvclJlc3BvbnNlID0gZXJyb3IuZXJyb3IgYXMgU2NJQXBpRXJyb3JSZXNwb25zZTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ3VhcmQtZm9yLWluLG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVycm9yUmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KT8uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IGVycm9yUmVzcG9uc2UuZXJyb3JzW2tleV0gfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yUmVzcG9uc2UuZXJyb3JzICYmIGVycm9yUmVzcG9uc2UubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBbZXJyb3JSZXNwb25zZS5tZXNzYWdlXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QviBlbWFpbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDRgdC+0LHRi9GC0LjRjyDRgdC+0LHRi9GC0LjRjyDRgdC80LXQvdGLINC/0LDRgNC+0LvRjy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VjY2Vzc1Jlc2V0UGFzc3dvcmQgPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBmaWx0ZXIoKHsgc3VjY2VzcyB9KSA9PiBzdWNjZXNzKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUmVzZXRVc2VyUGFzc3dvcmRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNCw0L3QvdGL0YUg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHVzZXJTZXJ2aWNlOiBTY1VzZXJTZXJ2aWNlKSB7fVxufVxuIiwiPGZvcm1cbiAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdC5uZXh0KClcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNCBwLTEgbGc6ZmxleC1yb3dcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGl0ZW1zLXN0YXJ0IGdhcC0yIGxnOmdyb3cgbGc6Z3JpZC1jb2xzLTMgbGc6Z3JpZC1yb3dzLTEgbGc6Z2FwLTRcIj5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsXG4gICAgICAgICAgICA+0KHRgtCw0YDRi9C5INC/0LDRgNC+0LvRjFxuICAgICAgICAgICAgPHR1aS1pbnB1dC1wYXNzd29yZCBmb3JtQ29udHJvbE5hbWU9XCJjdXJyZW50UGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICDQodGC0LDRgNGL0Lkg0L/QsNGA0L7Qu9GMXG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dC1wYXNzd29yZD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjdXJyZW50UGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbFxuICAgICAgICAgICAgPtCf0YDQuNC00YPQvNCw0LnRgtC1INC90L7QstGL0Lkg0L/QsNGA0L7Qu9GMXG4gICAgICAgICAgICA8dHVpLWlucHV0LXBhc3N3b3JkXG4gICAgICAgICAgICAgICAgW3BzZXVkb0ludmFsaWRdPVwiZm9ybS5oYXNFcnJvcigncGFzc3dvcmROb3RFcXVpdmFsZW50JylcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQn9GA0LjQtNGD0LzQsNC50YLQtSDQvdC+0LLRi9C5INC/0LDRgNC+0LvRjFxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQtcGFzc3dvcmQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbFxuICAgICAgICAgICAgPtCf0L7QstGC0L7RgNC40YLQtSDQvdC+0LLRi9C5INC/0LDRgNC+0LvRjFxuICAgICAgICAgICAgPHR1aS1pbnB1dC1wYXNzd29yZFxuICAgICAgICAgICAgICAgIFtwc2V1ZG9JbnZhbGlkXT1cImZvcm0uaGFzRXJyb3IoJ3Bhc3N3b3JkTm90RXF1aXZhbGVudCcpXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZENvbmZpcm1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCf0L7QstGC0L7RgNC40YLQtSDQvdC+0LLRi9C5INC/0LDRgNC+0LvRjFxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC90dWktaW5wdXQtcGFzc3dvcmQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRDb25maXJtXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAqbmdJZj1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICBjbGFzcz1cImxnOiFoaWRkZW5cIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyIGxnOm10LTUgbGc6aC0xMVwiPlxuICAgICAgICBAbGV0IGxvYWRpbmcgPSAhIShsb2FkaW5nJCB8IGFzeW5jKTtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkuc2F2ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZvbnQtbWVkaXVtXCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0KHQvtGF0YDQsNC90LjRgtGMXG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuPHR1aS1lcnJvclxuICAgIGNsYXNzPVwiIWhpZGRlbiBsZzohYmxvY2tcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbj48L3R1aS1lcnJvcj5cbiJdfQ==
|