@snabcentr/client-ui 4.14.9 → 4.14.20

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.
Files changed (564) hide show
  1. package/accordion/index.d.ts +3 -0
  2. package/accordion/sc-accordion-content.directive.d.ts +9 -0
  3. package/accordion/sc-accordion.component.d.ts +56 -0
  4. package/accordion/sc-accordion.module.d.ts +15 -0
  5. package/auth/enums/auth-method.d.ts +13 -0
  6. package/auth/index.d.ts +8 -0
  7. package/auth/interfaces/index.d.ts +2 -0
  8. package/auth/interfaces/sc-bank-account-form-group.d.ts +11 -0
  9. package/auth/interfaces/sc-contact-form-group.d.ts +10 -0
  10. package/auth/sc-auth.module.d.ts +27 -0
  11. package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +55 -0
  12. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +45 -0
  13. package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +53 -0
  14. package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +113 -0
  15. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +172 -0
  16. package/banner/index.d.ts +2 -0
  17. package/banner/sc-banner.component.d.ts +108 -0
  18. package/banner/sc-banner.module.d.ts +17 -0
  19. package/brands-list/index.d.ts +3 -0
  20. package/brands-list/sc-brand-list-item.d.ts +25 -0
  21. package/brands-list/sc-brands-list.component.d.ts +13 -0
  22. package/brands-list/sc-brands-list.module.d.ts +12 -0
  23. 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
  24. package/cart/add-or-editing-cart-item-dialog/index.d.ts +2 -0
  25. package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +49 -0
  26. package/cart/index.d.ts +2 -0
  27. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +62 -0
  28. package/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.d.ts +47 -0
  29. package/catalog/catalog-filters/index.d.ts +4 -0
  30. package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +199 -0
  31. package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +7 -0
  32. package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +5 -0
  33. package/catalog/category-card/sc-category-card.component.d.ts +76 -0
  34. package/catalog/cost-with-discount/cost-with-discount.component.d.ts +23 -0
  35. package/catalog/download-price-list/sc-download-price-list.component.d.ts +38 -0
  36. package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +48 -0
  37. package/catalog/index.d.ts +15 -0
  38. package/catalog/input-quantity/sc-input-quantity.component.d.ts +82 -0
  39. package/catalog/notify-when-in-stock-dialog/index.d.ts +2 -0
  40. package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +90 -0
  41. package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +22 -0
  42. package/catalog/price-card/sc-price-card.component.d.ts +18 -0
  43. package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +10 -0
  44. package/catalog/price-history/sc-price-history.component.d.ts +92 -0
  45. package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +40 -0
  46. package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +47 -0
  47. package/catalog/sc-catalog.module.d.ts +29 -0
  48. package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +25 -0
  49. package/catalog/seo-tags/sc-seo-tags.component.d.ts +20 -0
  50. package/configurators/index.d.ts +3 -0
  51. package/configurators/models/index.d.ts +3 -0
  52. package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +22 -0
  53. package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +18 -0
  54. package/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.d.ts +18 -0
  55. package/configurators/sandwich/index.d.ts +3 -0
  56. package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +8 -0
  57. package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +14 -0
  58. package/configurators/sandwich/sc-sandwich.component.d.ts +186 -0
  59. package/configurators/sandwich_m2/index.d.ts +4 -0
  60. package/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.d.ts +8 -0
  61. package/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.d.ts +23 -0
  62. package/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.d.ts +13 -0
  63. package/configurators/sandwich_m2/sc-sandwich-m2.component.d.ts +275 -0
  64. package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +49 -0
  65. package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +23 -0
  66. package/contacts/index.d.ts +7 -0
  67. package/contacts/manager-card/sc-manager-card.component.d.ts +22 -0
  68. package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +18 -0
  69. package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +28 -0
  70. package/contacts/sc-contacts.module.d.ts +27 -0
  71. package/contacts/tokens/index.d.ts +2 -0
  72. package/contacts/tokens/sc-manager-qr-handler.token.d.ts +6 -0
  73. package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +5 -0
  74. package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +49 -0
  75. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +158 -0
  76. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +62 -0
  77. package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +49 -0
  78. package/contragents/index.d.ts +7 -0
  79. package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +64 -0
  80. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +123 -0
  81. package/contragents/sc-contragents.module.d.ts +27 -0
  82. package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +148 -0
  83. package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +50 -0
  84. package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +49 -0
  85. package/delivery-address/index.d.ts +4 -0
  86. package/delivery-address/sc-delivery-address.module.d.ts +25 -0
  87. package/dialogs/index.d.ts +1 -0
  88. package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +42 -0
  89. package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +136 -0
  90. package/directives/address-quality/sc-address-quality.directive.d.ts +23 -0
  91. package/directives/address-quality/sc-address-quality.service.d.ts +122 -0
  92. package/directives/address-quality/sc-i-address-quality-state.d.ts +14 -0
  93. package/directives/index.d.ts +11 -0
  94. package/directives/links/index.d.ts +4 -0
  95. package/directives/links/sc-email-link.directive.d.ts +25 -0
  96. package/directives/links/sc-link-location.d.ts +5 -0
  97. package/directives/links/sc-links.d.ts +7 -0
  98. package/directives/links/sc-tel-link.directive.d.ts +40 -0
  99. package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +27 -0
  100. package/directives/next-input-focus/sc-next-input-focus.module.d.ts +10 -0
  101. package/directives/print/sc-print.directive.d.ts +21 -0
  102. package/directives/sc-date-value-transformer.directive.d.ts +8 -0
  103. package/directives/sc-focus-first-invalid-field.directive.d.ts +30 -0
  104. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +14 -0
  105. package/directives/terminal-link/sc-terminal-link.directive.d.ts +34 -0
  106. package/error-handler/consts/error-change-handler.providers.d.ts +6 -0
  107. package/error-handler/error-block-status/error-block-status.component.d.ts +55 -0
  108. package/error-handler/index.d.ts +4 -0
  109. package/error-handler/interfaces/i-block-error.d.ts +17 -0
  110. package/error-handler/sc-error-handler.component.d.ts +40 -0
  111. package/esm2022/accordion/index.mjs +4 -0
  112. package/esm2022/accordion/sc-accordion-content.directive.mjs +17 -0
  113. package/esm2022/accordion/sc-accordion.component.mjs +92 -0
  114. package/esm2022/accordion/sc-accordion.module.mjs +26 -0
  115. package/esm2022/auth/enums/auth-method.mjs +15 -0
  116. package/esm2022/auth/index.mjs +9 -0
  117. package/esm2022/auth/interfaces/index.mjs +3 -0
  118. package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +2 -0
  119. package/esm2022/auth/interfaces/sc-contact-form-group.mjs +2 -0
  120. package/esm2022/auth/sc-auth.module.mjs +103 -0
  121. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +100 -0
  122. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +81 -0
  123. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +89 -0
  124. package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +203 -0
  125. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +344 -0
  126. package/esm2022/banner/index.mjs +3 -0
  127. package/esm2022/banner/sc-banner.component.mjs +176 -0
  128. package/esm2022/banner/sc-banner.module.mjs +29 -0
  129. package/esm2022/brands-list/index.mjs +4 -0
  130. package/esm2022/brands-list/sc-brand-list-item.mjs +2 -0
  131. package/esm2022/brands-list/sc-brands-list.component.mjs +24 -0
  132. package/esm2022/brands-list/sc-brands-list.module.mjs +22 -0
  133. 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
  134. package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +3 -0
  135. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +75 -0
  136. package/esm2022/cart/index.mjs +3 -0
  137. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +110 -0
  138. package/esm2022/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.mjs +59 -0
  139. package/esm2022/catalog/catalog-filters/index.mjs +5 -0
  140. package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +451 -0
  141. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +10 -0
  142. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +6 -0
  143. package/esm2022/catalog/category-card/sc-category-card.component.mjs +102 -0
  144. package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +38 -0
  145. package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +56 -0
  146. package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +76 -0
  147. package/esm2022/catalog/index.mjs +16 -0
  148. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +190 -0
  149. package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +3 -0
  150. package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +173 -0
  151. package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +35 -0
  152. package/esm2022/catalog/price-card/sc-price-card.component.mjs +71 -0
  153. package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +54 -0
  154. package/esm2022/catalog/price-history/sc-price-history.component.mjs +144 -0
  155. package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +65 -0
  156. package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +61 -0
  157. package/esm2022/catalog/sc-catalog.module.mjs +128 -0
  158. package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +42 -0
  159. package/esm2022/catalog/seo-tags/sc-seo-tags.component.mjs +25 -0
  160. package/esm2022/configurators/index.mjs +4 -0
  161. package/esm2022/configurators/models/index.mjs +4 -0
  162. package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +2 -0
  163. package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +2 -0
  164. package/esm2022/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.mjs +2 -0
  165. package/esm2022/configurators/sandwich/index.mjs +4 -0
  166. package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +14 -0
  167. package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +2 -0
  168. package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +387 -0
  169. package/esm2022/configurators/sandwich_m2/index.mjs +5 -0
  170. package/esm2022/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.mjs +14 -0
  171. package/esm2022/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.mjs +2 -0
  172. package/esm2022/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.mjs +5 -0
  173. package/esm2022/configurators/sandwich_m2/sc-sandwich-m2.component.mjs +569 -0
  174. package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +91 -0
  175. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +37 -0
  176. package/esm2022/contacts/index.mjs +8 -0
  177. package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +58 -0
  178. package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +28 -0
  179. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +37 -0
  180. package/esm2022/contacts/sc-contacts.module.mjs +89 -0
  181. package/esm2022/contacts/tokens/index.mjs +3 -0
  182. package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +25 -0
  183. package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +9 -0
  184. package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +81 -0
  185. package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +266 -0
  186. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +74 -0
  187. package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +68 -0
  188. package/esm2022/contragents/index.mjs +8 -0
  189. package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +72 -0
  190. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +230 -0
  191. package/esm2022/contragents/sc-contragents.module.mjs +118 -0
  192. package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +261 -0
  193. package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +60 -0
  194. package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +68 -0
  195. package/esm2022/delivery-address/index.mjs +5 -0
  196. package/esm2022/delivery-address/sc-delivery-address.module.mjs +96 -0
  197. package/esm2022/dialogs/index.mjs +2 -0
  198. package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +73 -0
  199. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +170 -0
  200. package/esm2022/directives/address-quality/sc-address-quality.directive.mjs +40 -0
  201. package/esm2022/directives/address-quality/sc-address-quality.service.mjs +214 -0
  202. package/esm2022/directives/address-quality/sc-i-address-quality-state.mjs +2 -0
  203. package/esm2022/directives/index.mjs +12 -0
  204. package/esm2022/directives/links/index.mjs +5 -0
  205. package/esm2022/directives/links/sc-email-link.directive.mjs +49 -0
  206. package/esm2022/directives/links/sc-link-location.mjs +2 -0
  207. package/esm2022/directives/links/sc-links.mjs +8 -0
  208. package/esm2022/directives/links/sc-tel-link.directive.mjs +79 -0
  209. package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +70 -0
  210. package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +19 -0
  211. package/esm2022/directives/print/sc-print.directive.mjs +36 -0
  212. package/esm2022/directives/sc-date-value-transformer.directive.mjs +30 -0
  213. package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +85 -0
  214. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +36 -0
  215. package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +69 -0
  216. package/esm2022/error-handler/consts/error-change-handler.providers.mjs +10 -0
  217. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +101 -0
  218. package/esm2022/error-handler/index.mjs +5 -0
  219. package/esm2022/error-handler/interfaces/i-block-error.mjs +2 -0
  220. package/esm2022/error-handler/sc-error-handler.component.mjs +58 -0
  221. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +344 -0
  222. package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +32 -0
  223. package/esm2022/feedback/index.mjs +4 -0
  224. package/esm2022/feedback/interfaces/index.mjs +2 -0
  225. package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +2 -0
  226. package/esm2022/files/directives/index.mjs +3 -0
  227. package/esm2022/files/directives/tree-top.directive.mjs +63 -0
  228. package/esm2022/files/directives/tree.directive.mjs +47 -0
  229. package/esm2022/files/file-tree-item/file-tree-item.component.mjs +18 -0
  230. package/esm2022/files/files-and-documents/files-and-documents.component.mjs +61 -0
  231. package/esm2022/files/files-and-documents.module.mjs +28 -0
  232. package/esm2022/files/index.mjs +6 -0
  233. package/esm2022/files/interfaces/tree-node.mjs +2 -0
  234. package/esm2022/files/services/index.mjs +3 -0
  235. package/esm2022/files/services/tree-icon.service.mjs +49 -0
  236. package/esm2022/files/services/tree-loader.service.mjs +62 -0
  237. package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +155 -0
  238. package/esm2022/form-fields/form-fields.module.mjs +66 -0
  239. package/esm2022/form-fields/index.mjs +4 -0
  240. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +234 -0
  241. package/esm2022/icons/index.mjs +2 -0
  242. package/esm2022/icons/sc-client-ui-icons-name.mjs +99 -0
  243. package/esm2022/loader/index.mjs +2 -0
  244. package/esm2022/loader/sc-i-loader.mjs +2 -0
  245. package/esm2022/masks/index.mjs +8 -0
  246. package/esm2022/masks/sc-account-number-mask.mjs +7 -0
  247. package/esm2022/masks/sc-bic-mask.mjs +7 -0
  248. package/esm2022/masks/sc-correspondent-account-mask.mjs +7 -0
  249. package/esm2022/masks/sc-inn-mask.mjs +13 -0
  250. package/esm2022/masks/sc-kpp-mask.mjs +7 -0
  251. package/esm2022/masks/sc-okpo-mask.mjs +13 -0
  252. package/esm2022/masks/sc-phone-verification-code-mask.mjs +7 -0
  253. package/esm2022/methods/index.mjs +2 -0
  254. package/esm2022/methods/sc-get-current-route.mjs +14 -0
  255. package/esm2022/models/i-sc-image.mjs +2 -0
  256. package/esm2022/models/index.mjs +2 -0
  257. package/esm2022/news/index.mjs +4 -0
  258. package/esm2022/news/news-card/sc-news-card.component.mjs +34 -0
  259. package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +31 -0
  260. package/esm2022/news/sc-news.module.mjs +25 -0
  261. package/esm2022/noindex-wrapper/directives/index.mjs +2 -0
  262. package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +58 -0
  263. package/esm2022/noindex-wrapper/index.mjs +3 -0
  264. package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +18 -0
  265. package/esm2022/order/directives/index.mjs +3 -0
  266. package/esm2022/order/directives/sc-order-accessor.directive.mjs +28 -0
  267. package/esm2022/order/directives/sc-order-options.mjs +11 -0
  268. package/esm2022/order/draft/sc-draft.component.mjs +118 -0
  269. package/esm2022/order/index.mjs +14 -0
  270. package/esm2022/order/models/i-new-order-form.mjs +2 -0
  271. package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +22 -0
  272. package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +39 -0
  273. package/esm2022/order/order-form/sc-order-form.component.mjs +565 -0
  274. package/esm2022/order/order-form/sc-order-form.config.mjs +7 -0
  275. package/esm2022/order/order-item/sc-order-item.component.mjs +112 -0
  276. package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +212 -0
  277. package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +75 -0
  278. package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +75 -0
  279. package/esm2022/order/sc-order.module.mjs +52 -0
  280. package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +35 -0
  281. package/esm2022/pages/frequently-asked-questions/sc-faq-query-params.mjs +5 -0
  282. package/esm2022/pages/frequently-asked-questions/sc-faq-question-anchor.mjs +23 -0
  283. package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +167 -0
  284. package/esm2022/pages/frequently-asked-questions/sc-get-faq-group-query-params.mjs +14 -0
  285. package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +8 -0
  286. package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +88 -0
  287. package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +123 -0
  288. package/esm2022/pages/index.mjs +11 -0
  289. package/esm2022/pages/news-list/sc-news-list.component.mjs +90 -0
  290. package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +46 -0
  291. package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +30 -0
  292. package/esm2022/pages/public-offer/sc-public-offer.component.mjs +50 -0
  293. package/esm2022/pagination/index.mjs +2 -0
  294. package/esm2022/pagination/sc-pagination-links/sc-pagination-links.component.mjs +99 -0
  295. package/esm2022/pipes/index.mjs +3 -0
  296. package/esm2022/pipes/sc-format-date.mjs +33 -0
  297. package/esm2022/pipes/sc-phone-format.mjs +44 -0
  298. package/esm2022/profile/index.mjs +3 -0
  299. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +174 -0
  300. package/esm2022/profile/sc-profile.module.mjs +73 -0
  301. package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +30 -0
  302. package/esm2022/providers/date-value-transformer/index.mjs +4 -0
  303. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +2 -0
  304. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +26 -0
  305. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +37 -0
  306. package/esm2022/providers/index.mjs +18 -0
  307. package/esm2022/providers/sc-allow-select-terminated.mjs +8 -0
  308. package/esm2022/providers/sc-banner-duration.mjs +8 -0
  309. package/esm2022/providers/sc-block-incomplete-address.mjs +8 -0
  310. package/esm2022/providers/sc-country-ids.mjs +8 -0
  311. package/esm2022/providers/sc-date-formatter.mjs +15 -0
  312. package/esm2022/providers/sc-date-value-transformer.mjs +12 -0
  313. package/esm2022/providers/sc-debounce-time-default.mjs +9 -0
  314. package/esm2022/providers/sc-dialog-service.providers.mjs +6 -0
  315. package/esm2022/providers/sc-help-notification-close.mjs +9 -0
  316. package/esm2022/providers/sc-help-notification-limit.mjs +8 -0
  317. package/esm2022/providers/sc-hidden-print-elements.token.mjs +10 -0
  318. package/esm2022/providers/sc-max-files-in-form-input.mjs +8 -0
  319. package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +8 -0
  320. package/esm2022/providers/sc-page-size-options.mjs +8 -0
  321. package/esm2022/providers/sc-user-providers.mjs +38 -0
  322. package/esm2022/providers/sc-verification-code-timeout.mjs +8 -0
  323. package/esm2022/public-api.mjs +36 -0
  324. package/esm2022/qrcode/index.mjs +3 -0
  325. package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +58 -0
  326. package/esm2022/qrcode/sc-qrcode.module.mjs +25 -0
  327. package/esm2022/samples/index.mjs +5 -0
  328. package/esm2022/samples/interfaces/index.mjs +3 -0
  329. package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +2 -0
  330. package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +2 -0
  331. package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +42 -0
  332. package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +63 -0
  333. package/esm2022/samples/sc-sample.module.mjs +66 -0
  334. package/esm2022/services/index.mjs +3 -0
  335. package/esm2022/services/print.service.mjs +49 -0
  336. package/esm2022/services/sc-help-notification.service.mjs +100 -0
  337. package/esm2022/share/index.mjs +6 -0
  338. package/esm2022/share/sc-share-dialog-data.mjs +2 -0
  339. package/esm2022/share/sc-share.service.mjs +40 -0
  340. package/esm2022/share/share-button/sc-share-button.component.mjs +99 -0
  341. package/esm2022/share/share-dialog/sc-share-dialog.component.mjs +139 -0
  342. package/esm2022/share/share-messengers-links/sc-share-messengers-links.component.mjs +84 -0
  343. package/esm2022/snabcentr-client-ui.mjs +5 -0
  344. package/esm2022/user/index.mjs +6 -0
  345. package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +74 -0
  346. package/esm2022/user/sc-user.module.mjs +86 -0
  347. package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +121 -0
  348. package/esm2022/user/user-managers/sc-user-managers.component.mjs +40 -0
  349. package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +105 -0
  350. package/esm2022/validators/index.mjs +7 -0
  351. package/esm2022/validators/sc-at-least-one-required-validator.mjs +25 -0
  352. package/esm2022/validators/sc-bic-validator.mjs +10 -0
  353. package/esm2022/validators/sc-correspondent-account-validator.mjs +10 -0
  354. package/esm2022/validators/sc-password-confirm-matching-validator.mjs +17 -0
  355. package/esm2022/validators/sc-phone-validator.mjs +14 -0
  356. package/esm2022/validators/step-validator.mjs +18 -0
  357. package/esm2022/verification/index.mjs +3 -0
  358. package/esm2022/verification/sc-verification.module.mjs +86 -0
  359. package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +259 -0
  360. package/feedback/feedback-form/sc-feedback-form.component.d.ts +163 -0
  361. package/feedback/gratitude/sc-gratitude.component.d.ts +20 -0
  362. package/feedback/index.d.ts +3 -0
  363. package/feedback/interfaces/index.d.ts +1 -0
  364. package/feedback/interfaces/sc-feedback-form-config.d.ts +23 -0
  365. package/fesm2022/snabcentr-client-ui.mjs +5634 -4837
  366. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  367. package/files/directives/index.d.ts +2 -0
  368. package/files/directives/tree-top.directive.d.ts +33 -0
  369. package/files/directives/tree.directive.d.ts +35 -0
  370. package/files/file-tree-item/file-tree-item.component.d.ts +9 -0
  371. package/files/files-and-documents/files-and-documents.component.d.ts +27 -0
  372. package/files/files-and-documents.module.d.ts +17 -0
  373. package/files/index.d.ts +5 -0
  374. package/files/interfaces/tree-node.d.ts +29 -0
  375. package/files/services/index.d.ts +2 -0
  376. package/files/services/tree-icon.service.d.ts +23 -0
  377. package/files/services/tree-loader.service.d.ts +43 -0
  378. package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +80 -0
  379. package/form-fields/form-fields.module.d.ts +18 -0
  380. package/form-fields/index.d.ts +3 -0
  381. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +107 -0
  382. package/icons/index.d.ts +1 -0
  383. package/icons/sc-client-ui-icons-name.d.ts +4 -0
  384. package/icons/svg-pack/application.svg +1 -1
  385. package/icons/svg-pack/back.svg +1 -1
  386. package/icons/svg-pack/bag.svg +1 -1
  387. package/icons/svg-pack/banknote-arrow-in-top.svg +1 -1
  388. package/icons/svg-pack/catalog/aluminum-systems.svg +1 -1
  389. package/icons/svg-pack/catalog/arm-profile.svg +1 -1
  390. package/icons/svg-pack/catalog/batten.svg +1 -1
  391. package/icons/svg-pack/catalog/brusbox.svg +1 -1
  392. package/icons/svg-pack/catalog/canopy.svg +1 -1
  393. package/icons/svg-pack/catalog/configurator.svg +1 -1
  394. package/icons/svg-pack/catalog/covering-material.svg +1 -1
  395. package/icons/svg-pack/catalog/door-accessories.svg +1 -1
  396. package/icons/svg-pack/catalog/drainage-system.svg +1 -1
  397. package/icons/svg-pack/catalog/fastener.svg +1 -1
  398. package/icons/svg-pack/catalog/finishing-materials.svg +1 -1
  399. package/icons/svg-pack/catalog/fixing-impost.svg +1 -1
  400. package/icons/svg-pack/catalog/flask.svg +1 -1
  401. package/icons/svg-pack/catalog/foam-balloon.svg +1 -1
  402. package/icons/svg-pack/catalog/foam.svg +1 -1
  403. package/icons/svg-pack/catalog/glue.svg +1 -1
  404. package/icons/svg-pack/catalog/handle.svg +1 -1
  405. package/icons/svg-pack/catalog/instrument.svg +1 -1
  406. package/icons/svg-pack/catalog/kve-profile.svg +1 -1
  407. package/icons/svg-pack/catalog/lubricants.svg +1 -1
  408. package/icons/svg-pack/catalog/mosquito-net.svg +1 -1
  409. package/icons/svg-pack/catalog/mounting-accessories.svg +1 -1
  410. package/icons/svg-pack/catalog/net-order.svg +1 -1
  411. package/icons/svg-pack/catalog/panel-1.svg +1 -1
  412. package/icons/svg-pack/catalog/panel.svg +1 -1
  413. package/icons/svg-pack/catalog/polyethylene-film.svg +1 -1
  414. package/icons/svg-pack/catalog/profile-plastic.svg +1 -1
  415. package/icons/svg-pack/catalog/promo-materials.svg +1 -1
  416. package/icons/svg-pack/catalog/psul.svg +1 -1
  417. package/icons/svg-pack/catalog/rehau-profile.svg +1 -1
  418. package/icons/svg-pack/catalog/sandwich-plastic.svg +1 -1
  419. package/icons/svg-pack/catalog/sealer.svg +1 -1
  420. package/icons/svg-pack/catalog/siding-2.svg +1 -1
  421. package/icons/svg-pack/catalog/siding.svg +1 -1
  422. package/icons/svg-pack/catalog/start-finish-profile.svg +1 -1
  423. package/icons/svg-pack/catalog/steam-waterproofing.svg +1 -1
  424. package/icons/svg-pack/catalog/stiz.svg +1 -1
  425. package/icons/svg-pack/catalog/thermometer.svg +1 -1
  426. package/icons/svg-pack/catalog/windowsill.svg +1 -1
  427. package/icons/svg-pack/chart-column-plus.svg +1 -1
  428. package/icons/svg-pack/circle-arrow-in-right.svg +1 -1
  429. package/icons/svg-pack/contacts.svg +1 -1
  430. package/icons/svg-pack/deadline.svg +1 -1
  431. package/icons/svg-pack/file-p.svg +1 -1
  432. package/icons/svg-pack/file-search.svg +1 -1
  433. package/icons/svg-pack/file-w.svg +1 -1
  434. package/icons/svg-pack/file-x.svg +1 -1
  435. package/icons/svg-pack/grid-height-arrow.svg +1 -1
  436. package/icons/svg-pack/grid-width-arrow.svg +1 -1
  437. package/icons/svg-pack/layout-list-tree.svg +1 -1
  438. package/icons/svg-pack/list.svg +1 -1
  439. package/icons/svg-pack/puzzle.svg +1 -1
  440. package/icons/svg-pack/reclamation.svg +1 -1
  441. package/icons/svg-pack/retail-store.svg +1 -1
  442. package/icons/svg-pack/send.svg +1 -1
  443. package/index.d.ts +5 -0
  444. package/loader/index.d.ts +1 -0
  445. package/loader/sc-i-loader.d.ts +9 -0
  446. package/masks/index.d.ts +7 -0
  447. package/masks/sc-account-number-mask.d.ts +5 -0
  448. package/masks/sc-bic-mask.d.ts +5 -0
  449. package/masks/sc-correspondent-account-mask.d.ts +5 -0
  450. package/masks/sc-inn-mask.d.ts +9 -0
  451. package/masks/sc-kpp-mask.d.ts +5 -0
  452. package/masks/sc-okpo-mask.d.ts +9 -0
  453. package/masks/sc-phone-verification-code-mask.d.ts +5 -0
  454. package/methods/index.d.ts +1 -0
  455. package/methods/sc-get-current-route.d.ts +8 -0
  456. package/models/i-sc-image.d.ts +17 -0
  457. package/models/index.d.ts +1 -0
  458. package/news/index.d.ts +3 -0
  459. package/news/news-card/sc-news-card.component.d.ts +22 -0
  460. package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +16 -0
  461. package/news/sc-news.module.d.ts +15 -0
  462. package/noindex-wrapper/directives/index.d.ts +1 -0
  463. package/noindex-wrapper/directives/sc-noindex.directive.d.ts +29 -0
  464. package/noindex-wrapper/index.d.ts +2 -0
  465. package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +9 -0
  466. package/order/directives/index.d.ts +2 -0
  467. package/order/directives/sc-order-accessor.directive.d.ts +13 -0
  468. package/order/directives/sc-order-options.d.ts +14 -0
  469. package/order/draft/sc-draft.component.d.ts +63 -0
  470. package/order/index.d.ts +13 -0
  471. package/order/models/i-new-order-form.d.ts +39 -0
  472. package/order/models/sc-i-cart-items-by-direction.d.ts +25 -0
  473. package/order/order-direction-items/sc-order-direction-items.component.d.ts +29 -0
  474. package/order/order-form/sc-order-form.component.d.ts +283 -0
  475. package/order/order-form/sc-order-form.config.d.ts +20 -0
  476. package/order/order-item/sc-order-item.component.d.ts +43 -0
  477. package/order/order-items-list/sc-order-items-list.component.d.ts +113 -0
  478. package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +58 -0
  479. package/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.d.ts +55 -0
  480. package/order/sc-order.module.d.ts +18 -0
  481. package/order/sc-payment-status/sc-payment-status.component.d.ts +25 -0
  482. package/package.json +37 -35
  483. package/pages/frequently-asked-questions/sc-faq-query-params.d.ts +4 -0
  484. package/pages/frequently-asked-questions/sc-faq-question-anchor.d.ts +16 -0
  485. package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +84 -0
  486. package/pages/frequently-asked-questions/sc-get-faq-group-query-params.d.ts +10 -0
  487. package/pages/frequently-asked-questions/sc-page-size-options.d.ts +5 -0
  488. package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +47 -0
  489. package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +89 -0
  490. package/pages/index.d.ts +10 -0
  491. package/pages/news-list/sc-news-list.component.d.ts +57 -0
  492. package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +17 -0
  493. package/pages/privacy-policy/sc-privacy-policy.component.d.ts +17 -0
  494. package/pages/public-offer/sc-public-offer.component.d.ts +22 -0
  495. package/pagination/index.d.ts +1 -0
  496. package/pagination/sc-pagination-links/sc-pagination-links.component.d.ts +60 -0
  497. package/pipes/index.d.ts +2 -0
  498. package/pipes/sc-format-date.d.ts +20 -0
  499. package/pipes/sc-phone-format.d.ts +21 -0
  500. package/profile/index.d.ts +2 -0
  501. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +126 -0
  502. package/profile/sc-profile.module.d.ts +23 -0
  503. package/providers/cleanup-recaptcha-artifacts.d.ts +7 -0
  504. package/providers/date-value-transformer/index.d.ts +3 -0
  505. package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +9 -0
  506. package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +16 -0
  507. package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +22 -0
  508. package/providers/index.d.ts +17 -0
  509. package/providers/sc-allow-select-terminated.d.ts +5 -0
  510. package/providers/sc-banner-duration.d.ts +5 -0
  511. package/providers/sc-block-incomplete-address.d.ts +5 -0
  512. package/providers/sc-country-ids.d.ts +5 -0
  513. package/providers/sc-date-formatter.d.ts +6 -0
  514. package/providers/sc-date-value-transformer.d.ts +5 -0
  515. package/providers/sc-debounce-time-default.d.ts +5 -0
  516. package/providers/sc-dialog-service.providers.d.ts +45 -0
  517. package/providers/sc-help-notification-close.d.ts +6 -0
  518. package/providers/sc-help-notification-limit.d.ts +5 -0
  519. package/providers/sc-hidden-print-elements.token.d.ts +6 -0
  520. package/providers/sc-max-files-in-form-input.d.ts +5 -0
  521. package/providers/sc-notify-when-in-stock-required-fields.d.ts +5 -0
  522. package/providers/sc-page-size-options.d.ts +5 -0
  523. package/providers/sc-user-providers.d.ts +21 -0
  524. package/providers/sc-verification-code-timeout.d.ts +5 -0
  525. package/public-api.d.ts +35 -0
  526. package/qrcode/index.d.ts +2 -0
  527. package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +37 -0
  528. package/qrcode/sc-qrcode.module.d.ts +14 -0
  529. package/release_notes.tmp +2 -16
  530. package/samples/index.d.ts +4 -0
  531. package/samples/interfaces/index.d.ts +2 -0
  532. package/samples/interfaces/sc-i-preview-sample.d.ts +56 -0
  533. package/samples/interfaces/sc-preview-mosquito-config.d.ts +62 -0
  534. package/samples/preview-sample/sc-preview-sample.component.d.ts +30 -0
  535. package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +50 -0
  536. package/samples/sc-sample.module.d.ts +19 -0
  537. package/services/index.d.ts +2 -0
  538. package/services/print.service.d.ts +31 -0
  539. package/services/sc-help-notification.service.d.ts +70 -0
  540. package/share/index.d.ts +5 -0
  541. package/share/sc-share-dialog-data.d.ts +13 -0
  542. package/share/sc-share.service.d.ts +19 -0
  543. package/share/share-button/sc-share-button.component.d.ts +78 -0
  544. package/share/share-dialog/sc-share-dialog.component.d.ts +87 -0
  545. package/share/share-messengers-links/sc-share-messengers-links.component.d.ts +49 -0
  546. package/styles/taiga/variables.less +17 -35
  547. package/styles/tailwind/tailwind.scss +14 -56
  548. package/user/index.d.ts +5 -0
  549. package/user/reset-user-password/sc-reset-user-password.component.d.ts +46 -0
  550. package/user/sc-user.module.d.ts +24 -0
  551. package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +63 -0
  552. package/user/user-managers/sc-user-managers.component.d.ts +23 -0
  553. package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +53 -0
  554. package/validators/index.d.ts +6 -0
  555. package/validators/sc-at-least-one-required-validator.d.ts +10 -0
  556. package/validators/sc-bic-validator.d.ts +8 -0
  557. package/validators/sc-correspondent-account-validator.d.ts +8 -0
  558. package/validators/sc-password-confirm-matching-validator.d.ts +8 -0
  559. package/validators/sc-phone-validator.d.ts +5 -0
  560. package/validators/step-validator.d.ts +7 -0
  561. package/verification/index.d.ts +2 -0
  562. package/verification/sc-verification.module.d.ts +21 -0
  563. package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +145 -0
  564. 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==