@snabcentr/client-ui 4.14.8 → 4.14.9

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 (590) hide show
  1. package/fesm2022/snabcentr-client-ui.mjs +3439 -4483
  2. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  3. package/icons/svg-pack/application.svg +1 -1
  4. package/icons/svg-pack/back.svg +1 -1
  5. package/icons/svg-pack/bag.svg +1 -1
  6. package/icons/svg-pack/banknote-arrow-in-top.svg +1 -1
  7. package/icons/svg-pack/catalog/aluminum-systems.svg +1 -1
  8. package/icons/svg-pack/catalog/arm-profile.svg +1 -1
  9. package/icons/svg-pack/catalog/batten.svg +1 -1
  10. package/icons/svg-pack/catalog/brusbox.svg +1 -1
  11. package/icons/svg-pack/catalog/canopy.svg +1 -1
  12. package/icons/svg-pack/catalog/configurator.svg +1 -1
  13. package/icons/svg-pack/catalog/covering-material.svg +1 -1
  14. package/icons/svg-pack/catalog/door-accessories.svg +1 -1
  15. package/icons/svg-pack/catalog/drainage-system.svg +1 -1
  16. package/icons/svg-pack/catalog/fastener.svg +1 -1
  17. package/icons/svg-pack/catalog/finishing-materials.svg +1 -1
  18. package/icons/svg-pack/catalog/fixing-impost.svg +1 -1
  19. package/icons/svg-pack/catalog/flask.svg +1 -1
  20. package/icons/svg-pack/catalog/foam-balloon.svg +1 -1
  21. package/icons/svg-pack/catalog/foam.svg +1 -1
  22. package/icons/svg-pack/catalog/glue.svg +1 -1
  23. package/icons/svg-pack/catalog/handle.svg +1 -1
  24. package/icons/svg-pack/catalog/instrument.svg +1 -1
  25. package/icons/svg-pack/catalog/kve-profile.svg +1 -1
  26. package/icons/svg-pack/catalog/lubricants.svg +1 -1
  27. package/icons/svg-pack/catalog/mosquito-net.svg +1 -1
  28. package/icons/svg-pack/catalog/mounting-accessories.svg +1 -1
  29. package/icons/svg-pack/catalog/net-order.svg +1 -1
  30. package/icons/svg-pack/catalog/panel-1.svg +1 -1
  31. package/icons/svg-pack/catalog/panel.svg +1 -1
  32. package/icons/svg-pack/catalog/polyethylene-film.svg +1 -1
  33. package/icons/svg-pack/catalog/profile-plastic.svg +1 -1
  34. package/icons/svg-pack/catalog/promo-materials.svg +1 -1
  35. package/icons/svg-pack/catalog/psul.svg +1 -1
  36. package/icons/svg-pack/catalog/rehau-profile.svg +1 -1
  37. package/icons/svg-pack/catalog/sandwich-plastic.svg +1 -1
  38. package/icons/svg-pack/catalog/sealer.svg +1 -1
  39. package/icons/svg-pack/catalog/siding-2.svg +1 -1
  40. package/icons/svg-pack/catalog/siding.svg +1 -1
  41. package/icons/svg-pack/catalog/start-finish-profile.svg +1 -1
  42. package/icons/svg-pack/catalog/steam-waterproofing.svg +1 -1
  43. package/icons/svg-pack/catalog/stiz.svg +1 -1
  44. package/icons/svg-pack/catalog/thermometer.svg +1 -1
  45. package/icons/svg-pack/catalog/windowsill.svg +1 -1
  46. package/icons/svg-pack/chart-column-plus.svg +1 -1
  47. package/icons/svg-pack/circle-arrow-in-right.svg +1 -1
  48. package/icons/svg-pack/contacts.svg +1 -1
  49. package/icons/svg-pack/deadline.svg +1 -1
  50. package/icons/svg-pack/file-p.svg +1 -1
  51. package/icons/svg-pack/file-search.svg +1 -1
  52. package/icons/svg-pack/file-w.svg +1 -1
  53. package/icons/svg-pack/file-x.svg +1 -1
  54. package/icons/svg-pack/grid-height-arrow.svg +1 -1
  55. package/icons/svg-pack/grid-width-arrow.svg +1 -1
  56. package/icons/svg-pack/layout-list-tree.svg +1 -1
  57. package/icons/svg-pack/list.svg +1 -1
  58. package/icons/svg-pack/puzzle.svg +1 -1
  59. package/icons/svg-pack/reclamation.svg +1 -1
  60. package/icons/svg-pack/retail-store.svg +1 -1
  61. package/icons/svg-pack/send.svg +1 -1
  62. package/package.json +35 -36
  63. package/release_notes.tmp +16 -2
  64. package/styles/taiga/variables.less +35 -17
  65. package/styles/tailwind/tailwind.scss +12 -12
  66. package/types/snabcentr-client-ui.d.ts +6787 -0
  67. package/accordion/index.d.ts +0 -3
  68. package/accordion/sc-accordion-content.directive.d.ts +0 -9
  69. package/accordion/sc-accordion.component.d.ts +0 -56
  70. package/accordion/sc-accordion.module.d.ts +0 -15
  71. package/auth/enums/auth-method.d.ts +0 -13
  72. package/auth/index.d.ts +0 -8
  73. package/auth/interfaces/index.d.ts +0 -2
  74. package/auth/interfaces/sc-bank-account-form-group.d.ts +0 -11
  75. package/auth/interfaces/sc-contact-form-group.d.ts +0 -10
  76. package/auth/sc-auth.module.d.ts +0 -27
  77. package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +0 -55
  78. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +0 -45
  79. package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +0 -53
  80. package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +0 -113
  81. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +0 -172
  82. package/banner/index.d.ts +0 -2
  83. package/banner/sc-banner.component.d.ts +0 -108
  84. package/banner/sc-banner.module.d.ts +0 -17
  85. package/brands-list/index.d.ts +0 -3
  86. package/brands-list/sc-brand-list-item.d.ts +0 -25
  87. package/brands-list/sc-brands-list.component.d.ts +0 -13
  88. package/brands-list/sc-brands-list.module.d.ts +0 -12
  89. package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +0 -106
  90. package/cart/add-or-editing-cart-item-dialog/index.d.ts +0 -2
  91. package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +0 -49
  92. package/cart/index.d.ts +0 -2
  93. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +0 -62
  94. package/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.d.ts +0 -47
  95. package/catalog/catalog-filters/index.d.ts +0 -4
  96. package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +0 -199
  97. package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +0 -7
  98. package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +0 -5
  99. package/catalog/category-card/sc-category-card.component.d.ts +0 -76
  100. package/catalog/cost-with-discount/cost-with-discount.component.d.ts +0 -23
  101. package/catalog/download-price-list/sc-download-price-list.component.d.ts +0 -38
  102. package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +0 -48
  103. package/catalog/index.d.ts +0 -15
  104. package/catalog/input-quantity/sc-input-quantity.component.d.ts +0 -82
  105. package/catalog/notify-when-in-stock-dialog/index.d.ts +0 -2
  106. package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +0 -90
  107. package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +0 -22
  108. package/catalog/price-card/sc-price-card.component.d.ts +0 -18
  109. package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +0 -10
  110. package/catalog/price-history/sc-price-history.component.d.ts +0 -92
  111. package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +0 -40
  112. package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +0 -47
  113. package/catalog/sc-catalog.module.d.ts +0 -29
  114. package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +0 -25
  115. package/catalog/seo-tags/sc-seo-tags.component.d.ts +0 -20
  116. package/configurators/index.d.ts +0 -3
  117. package/configurators/models/index.d.ts +0 -3
  118. package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +0 -22
  119. package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +0 -18
  120. package/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.d.ts +0 -18
  121. package/configurators/sandwich/index.d.ts +0 -3
  122. package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +0 -8
  123. package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +0 -14
  124. package/configurators/sandwich/sc-sandwich.component.d.ts +0 -186
  125. package/configurators/sandwich_m2/index.d.ts +0 -4
  126. package/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.d.ts +0 -8
  127. package/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.d.ts +0 -23
  128. package/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.d.ts +0 -13
  129. package/configurators/sandwich_m2/sc-sandwich-m2.component.d.ts +0 -275
  130. package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +0 -49
  131. package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +0 -23
  132. package/contacts/index.d.ts +0 -7
  133. package/contacts/manager-card/sc-manager-card.component.d.ts +0 -22
  134. package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +0 -18
  135. package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +0 -28
  136. package/contacts/sc-contacts.module.d.ts +0 -27
  137. package/contacts/tokens/index.d.ts +0 -2
  138. package/contacts/tokens/sc-manager-qr-handler.token.d.ts +0 -6
  139. package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +0 -5
  140. package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +0 -49
  141. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +0 -158
  142. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +0 -62
  143. package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +0 -49
  144. package/contragents/index.d.ts +0 -7
  145. package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -64
  146. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +0 -123
  147. package/contragents/sc-contragents.module.d.ts +0 -27
  148. package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +0 -148
  149. package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +0 -50
  150. package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +0 -49
  151. package/delivery-address/index.d.ts +0 -4
  152. package/delivery-address/sc-delivery-address.module.d.ts +0 -25
  153. package/dialogs/index.d.ts +0 -1
  154. package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +0 -42
  155. package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +0 -136
  156. package/directives/address-quality/sc-address-quality.directive.d.ts +0 -23
  157. package/directives/address-quality/sc-address-quality.service.d.ts +0 -122
  158. package/directives/address-quality/sc-i-address-quality-state.d.ts +0 -14
  159. package/directives/index.d.ts +0 -11
  160. package/directives/links/index.d.ts +0 -4
  161. package/directives/links/sc-email-link.directive.d.ts +0 -25
  162. package/directives/links/sc-link-location.d.ts +0 -5
  163. package/directives/links/sc-links.d.ts +0 -7
  164. package/directives/links/sc-tel-link.directive.d.ts +0 -40
  165. package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +0 -27
  166. package/directives/next-input-focus/sc-next-input-focus.module.d.ts +0 -10
  167. package/directives/print/sc-print.directive.d.ts +0 -21
  168. package/directives/sc-date-value-transformer.directive.d.ts +0 -8
  169. package/directives/sc-focus-first-invalid-field.directive.d.ts +0 -30
  170. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +0 -14
  171. package/directives/terminal-link/sc-terminal-link.directive.d.ts +0 -34
  172. package/error-handler/consts/error-change-handler.providers.d.ts +0 -6
  173. package/error-handler/error-block-status/error-block-status.component.d.ts +0 -55
  174. package/error-handler/index.d.ts +0 -4
  175. package/error-handler/interfaces/i-block-error.d.ts +0 -17
  176. package/error-handler/sc-error-handler.component.d.ts +0 -40
  177. package/esm2022/accordion/index.mjs +0 -4
  178. package/esm2022/accordion/sc-accordion-content.directive.mjs +0 -17
  179. package/esm2022/accordion/sc-accordion.component.mjs +0 -92
  180. package/esm2022/accordion/sc-accordion.module.mjs +0 -26
  181. package/esm2022/auth/enums/auth-method.mjs +0 -15
  182. package/esm2022/auth/index.mjs +0 -9
  183. package/esm2022/auth/interfaces/index.mjs +0 -3
  184. package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +0 -2
  185. package/esm2022/auth/interfaces/sc-contact-form-group.mjs +0 -2
  186. package/esm2022/auth/sc-auth.module.mjs +0 -103
  187. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +0 -100
  188. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +0 -81
  189. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +0 -89
  190. package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +0 -203
  191. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +0 -344
  192. package/esm2022/banner/index.mjs +0 -3
  193. package/esm2022/banner/sc-banner.component.mjs +0 -176
  194. package/esm2022/banner/sc-banner.module.mjs +0 -29
  195. package/esm2022/brands-list/index.mjs +0 -4
  196. package/esm2022/brands-list/sc-brand-list-item.mjs +0 -2
  197. package/esm2022/brands-list/sc-brands-list.component.mjs +0 -24
  198. package/esm2022/brands-list/sc-brands-list.module.mjs +0 -22
  199. package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +0 -233
  200. package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +0 -3
  201. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +0 -75
  202. package/esm2022/cart/index.mjs +0 -3
  203. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +0 -110
  204. package/esm2022/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.mjs +0 -59
  205. package/esm2022/catalog/catalog-filters/index.mjs +0 -5
  206. package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +0 -451
  207. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +0 -10
  208. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +0 -6
  209. package/esm2022/catalog/category-card/sc-category-card.component.mjs +0 -102
  210. package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +0 -38
  211. package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +0 -56
  212. package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +0 -76
  213. package/esm2022/catalog/index.mjs +0 -16
  214. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +0 -190
  215. package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +0 -3
  216. package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +0 -173
  217. package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +0 -35
  218. package/esm2022/catalog/price-card/sc-price-card.component.mjs +0 -71
  219. package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +0 -54
  220. package/esm2022/catalog/price-history/sc-price-history.component.mjs +0 -144
  221. package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +0 -65
  222. package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +0 -61
  223. package/esm2022/catalog/sc-catalog.module.mjs +0 -128
  224. package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +0 -42
  225. package/esm2022/catalog/seo-tags/sc-seo-tags.component.mjs +0 -25
  226. package/esm2022/configurators/index.mjs +0 -4
  227. package/esm2022/configurators/models/index.mjs +0 -4
  228. package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +0 -2
  229. package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +0 -2
  230. package/esm2022/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.mjs +0 -2
  231. package/esm2022/configurators/sandwich/index.mjs +0 -4
  232. package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +0 -14
  233. package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +0 -2
  234. package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +0 -387
  235. package/esm2022/configurators/sandwich_m2/index.mjs +0 -5
  236. package/esm2022/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.mjs +0 -14
  237. package/esm2022/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.mjs +0 -2
  238. package/esm2022/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.mjs +0 -5
  239. package/esm2022/configurators/sandwich_m2/sc-sandwich-m2.component.mjs +0 -569
  240. package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +0 -91
  241. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +0 -37
  242. package/esm2022/contacts/index.mjs +0 -8
  243. package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +0 -58
  244. package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +0 -28
  245. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +0 -37
  246. package/esm2022/contacts/sc-contacts.module.mjs +0 -89
  247. package/esm2022/contacts/tokens/index.mjs +0 -3
  248. package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +0 -25
  249. package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +0 -9
  250. package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -81
  251. package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +0 -266
  252. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +0 -74
  253. package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +0 -68
  254. package/esm2022/contragents/index.mjs +0 -8
  255. package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -72
  256. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +0 -230
  257. package/esm2022/contragents/sc-contragents.module.mjs +0 -118
  258. package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +0 -261
  259. package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +0 -60
  260. package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +0 -68
  261. package/esm2022/delivery-address/index.mjs +0 -5
  262. package/esm2022/delivery-address/sc-delivery-address.module.mjs +0 -96
  263. package/esm2022/dialogs/index.mjs +0 -2
  264. package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +0 -73
  265. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +0 -170
  266. package/esm2022/directives/address-quality/sc-address-quality.directive.mjs +0 -40
  267. package/esm2022/directives/address-quality/sc-address-quality.service.mjs +0 -214
  268. package/esm2022/directives/address-quality/sc-i-address-quality-state.mjs +0 -2
  269. package/esm2022/directives/index.mjs +0 -12
  270. package/esm2022/directives/links/index.mjs +0 -5
  271. package/esm2022/directives/links/sc-email-link.directive.mjs +0 -49
  272. package/esm2022/directives/links/sc-link-location.mjs +0 -2
  273. package/esm2022/directives/links/sc-links.mjs +0 -8
  274. package/esm2022/directives/links/sc-tel-link.directive.mjs +0 -79
  275. package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +0 -70
  276. package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +0 -19
  277. package/esm2022/directives/print/sc-print.directive.mjs +0 -36
  278. package/esm2022/directives/sc-date-value-transformer.directive.mjs +0 -30
  279. package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +0 -85
  280. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +0 -36
  281. package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +0 -69
  282. package/esm2022/error-handler/consts/error-change-handler.providers.mjs +0 -10
  283. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +0 -101
  284. package/esm2022/error-handler/index.mjs +0 -5
  285. package/esm2022/error-handler/interfaces/i-block-error.mjs +0 -2
  286. package/esm2022/error-handler/sc-error-handler.component.mjs +0 -58
  287. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +0 -334
  288. package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +0 -32
  289. package/esm2022/feedback/index.mjs +0 -4
  290. package/esm2022/feedback/interfaces/index.mjs +0 -2
  291. package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +0 -2
  292. package/esm2022/files/directives/index.mjs +0 -3
  293. package/esm2022/files/directives/tree-top.directive.mjs +0 -63
  294. package/esm2022/files/directives/tree.directive.mjs +0 -47
  295. package/esm2022/files/file-tree-item/file-tree-item.component.mjs +0 -18
  296. package/esm2022/files/files-and-documents/files-and-documents.component.mjs +0 -61
  297. package/esm2022/files/files-and-documents.module.mjs +0 -28
  298. package/esm2022/files/index.mjs +0 -6
  299. package/esm2022/files/interfaces/tree-node.mjs +0 -2
  300. package/esm2022/files/services/index.mjs +0 -3
  301. package/esm2022/files/services/tree-icon.service.mjs +0 -49
  302. package/esm2022/files/services/tree-loader.service.mjs +0 -62
  303. package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +0 -155
  304. package/esm2022/form-fields/form-fields.module.mjs +0 -66
  305. package/esm2022/form-fields/index.mjs +0 -4
  306. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +0 -234
  307. package/esm2022/icons/index.mjs +0 -2
  308. package/esm2022/icons/sc-client-ui-icons-name.mjs +0 -99
  309. package/esm2022/loader/index.mjs +0 -2
  310. package/esm2022/loader/sc-i-loader.mjs +0 -2
  311. package/esm2022/masks/index.mjs +0 -8
  312. package/esm2022/masks/sc-account-number-mask.mjs +0 -7
  313. package/esm2022/masks/sc-bic-mask.mjs +0 -7
  314. package/esm2022/masks/sc-correspondent-account-mask.mjs +0 -7
  315. package/esm2022/masks/sc-inn-mask.mjs +0 -13
  316. package/esm2022/masks/sc-kpp-mask.mjs +0 -7
  317. package/esm2022/masks/sc-okpo-mask.mjs +0 -13
  318. package/esm2022/masks/sc-phone-verification-code-mask.mjs +0 -7
  319. package/esm2022/methods/index.mjs +0 -2
  320. package/esm2022/methods/sc-get-current-route.mjs +0 -14
  321. package/esm2022/models/i-sc-image.mjs +0 -2
  322. package/esm2022/models/index.mjs +0 -2
  323. package/esm2022/news/index.mjs +0 -4
  324. package/esm2022/news/news-card/sc-news-card.component.mjs +0 -34
  325. package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +0 -31
  326. package/esm2022/news/sc-news.module.mjs +0 -25
  327. package/esm2022/noindex-wrapper/directives/index.mjs +0 -2
  328. package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +0 -58
  329. package/esm2022/noindex-wrapper/index.mjs +0 -3
  330. package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +0 -18
  331. package/esm2022/order/directives/index.mjs +0 -3
  332. package/esm2022/order/directives/sc-order-accessor.directive.mjs +0 -28
  333. package/esm2022/order/directives/sc-order-options.mjs +0 -11
  334. package/esm2022/order/draft/sc-draft.component.mjs +0 -115
  335. package/esm2022/order/index.mjs +0 -13
  336. package/esm2022/order/models/i-new-order-form.mjs +0 -2
  337. package/esm2022/order/new-order-items/sc-new-order-items.component.mjs +0 -39
  338. package/esm2022/order/order-form/sc-order-form.component.mjs +0 -553
  339. package/esm2022/order/order-form/sc-order-form.config.mjs +0 -7
  340. package/esm2022/order/order-item/sc-order-item.component.mjs +0 -112
  341. package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +0 -211
  342. package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +0 -75
  343. package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs +0 -53
  344. package/esm2022/order/sc-order.module.mjs +0 -52
  345. package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +0 -35
  346. package/esm2022/pages/frequently-asked-questions/sc-faq-query-params.mjs +0 -5
  347. package/esm2022/pages/frequently-asked-questions/sc-faq-question-anchor.mjs +0 -23
  348. package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +0 -167
  349. package/esm2022/pages/frequently-asked-questions/sc-get-faq-group-query-params.mjs +0 -14
  350. package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +0 -8
  351. package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +0 -88
  352. package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +0 -123
  353. package/esm2022/pages/index.mjs +0 -11
  354. package/esm2022/pages/news-list/sc-news-list.component.mjs +0 -90
  355. package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +0 -46
  356. package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +0 -30
  357. package/esm2022/pages/public-offer/sc-public-offer.component.mjs +0 -50
  358. package/esm2022/pagination/index.mjs +0 -2
  359. package/esm2022/pagination/sc-pagination-links/sc-pagination-links.component.mjs +0 -99
  360. package/esm2022/pipes/index.mjs +0 -3
  361. package/esm2022/pipes/sc-format-date.mjs +0 -33
  362. package/esm2022/pipes/sc-phone-format.mjs +0 -44
  363. package/esm2022/profile/index.mjs +0 -3
  364. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +0 -174
  365. package/esm2022/profile/sc-profile.module.mjs +0 -73
  366. package/esm2022/providers/date-value-transformer/index.mjs +0 -4
  367. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +0 -2
  368. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +0 -26
  369. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +0 -37
  370. package/esm2022/providers/index.mjs +0 -17
  371. package/esm2022/providers/sc-allow-select-terminated.mjs +0 -8
  372. package/esm2022/providers/sc-banner-duration.mjs +0 -8
  373. package/esm2022/providers/sc-block-incomplete-address.mjs +0 -8
  374. package/esm2022/providers/sc-country-ids.mjs +0 -8
  375. package/esm2022/providers/sc-date-formatter.mjs +0 -15
  376. package/esm2022/providers/sc-date-value-transformer.mjs +0 -12
  377. package/esm2022/providers/sc-debounce-time-default.mjs +0 -9
  378. package/esm2022/providers/sc-dialog-service.providers.mjs +0 -6
  379. package/esm2022/providers/sc-help-notification-close.mjs +0 -9
  380. package/esm2022/providers/sc-help-notification-limit.mjs +0 -8
  381. package/esm2022/providers/sc-hidden-print-elements.token.mjs +0 -10
  382. package/esm2022/providers/sc-max-files-in-form-input.mjs +0 -8
  383. package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +0 -8
  384. package/esm2022/providers/sc-page-size-options.mjs +0 -8
  385. package/esm2022/providers/sc-user-providers.mjs +0 -38
  386. package/esm2022/providers/sc-verification-code-timeout.mjs +0 -8
  387. package/esm2022/public-api.mjs +0 -37
  388. package/esm2022/qrcode/index.mjs +0 -3
  389. package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +0 -58
  390. package/esm2022/qrcode/sc-qrcode.module.mjs +0 -25
  391. package/esm2022/samples/index.mjs +0 -5
  392. package/esm2022/samples/interfaces/index.mjs +0 -3
  393. package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +0 -2
  394. package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +0 -2
  395. package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +0 -42
  396. package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +0 -63
  397. package/esm2022/samples/sc-sample.module.mjs +0 -59
  398. package/esm2022/services/index.mjs +0 -4
  399. package/esm2022/services/print.service.mjs +0 -49
  400. package/esm2022/services/sc-help-notification.service.mjs +0 -100
  401. package/esm2022/services/sc-scripts.service.mjs +0 -106
  402. package/esm2022/share/index.mjs +0 -6
  403. package/esm2022/share/sc-share-dialog-data.mjs +0 -2
  404. package/esm2022/share/sc-share.service.mjs +0 -40
  405. package/esm2022/share/share-button/sc-share-button.component.mjs +0 -99
  406. package/esm2022/share/share-dialog/sc-share-dialog.component.mjs +0 -139
  407. package/esm2022/share/share-messengers-links/sc-share-messengers-links.component.mjs +0 -84
  408. package/esm2022/smart-captcha/index.mjs +0 -5
  409. package/esm2022/smart-captcha/interfaces/index.mjs +0 -6
  410. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-api.mjs +0 -2
  411. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-event.mjs +0 -2
  412. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-language.mjs +0 -2
  413. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-render-params.mjs +0 -2
  414. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-settings.mjs +0 -2
  415. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-window.mjs +0 -2
  416. package/esm2022/smart-captcha/sc-smart-captcha.component.mjs +0 -167
  417. package/esm2022/smart-captcha/services/index.mjs +0 -2
  418. package/esm2022/smart-captcha/services/sc-smart-captcha-loader.service.mjs +0 -87
  419. package/esm2022/smart-captcha/tokens/index.mjs +0 -3
  420. package/esm2022/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.mjs +0 -8
  421. package/esm2022/smart-captcha/tokens/sc-smart-captcha-settings.token.mjs +0 -6
  422. package/esm2022/snabcentr-client-ui.mjs +0 -5
  423. package/esm2022/user/index.mjs +0 -6
  424. package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +0 -74
  425. package/esm2022/user/sc-user.module.mjs +0 -86
  426. package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +0 -121
  427. package/esm2022/user/user-managers/sc-user-managers.component.mjs +0 -40
  428. package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +0 -105
  429. package/esm2022/validators/index.mjs +0 -7
  430. package/esm2022/validators/sc-at-least-one-required-validator.mjs +0 -25
  431. package/esm2022/validators/sc-bic-validator.mjs +0 -10
  432. package/esm2022/validators/sc-correspondent-account-validator.mjs +0 -10
  433. package/esm2022/validators/sc-password-confirm-matching-validator.mjs +0 -17
  434. package/esm2022/validators/sc-phone-validator.mjs +0 -14
  435. package/esm2022/validators/step-validator.mjs +0 -18
  436. package/esm2022/verification/index.mjs +0 -3
  437. package/esm2022/verification/sc-verification.module.mjs +0 -86
  438. package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +0 -259
  439. package/feedback/feedback-form/sc-feedback-form.component.d.ts +0 -163
  440. package/feedback/gratitude/sc-gratitude.component.d.ts +0 -20
  441. package/feedback/index.d.ts +0 -3
  442. package/feedback/interfaces/index.d.ts +0 -1
  443. package/feedback/interfaces/sc-feedback-form-config.d.ts +0 -23
  444. package/files/directives/index.d.ts +0 -2
  445. package/files/directives/tree-top.directive.d.ts +0 -33
  446. package/files/directives/tree.directive.d.ts +0 -35
  447. package/files/file-tree-item/file-tree-item.component.d.ts +0 -9
  448. package/files/files-and-documents/files-and-documents.component.d.ts +0 -27
  449. package/files/files-and-documents.module.d.ts +0 -17
  450. package/files/index.d.ts +0 -5
  451. package/files/interfaces/tree-node.d.ts +0 -29
  452. package/files/services/index.d.ts +0 -2
  453. package/files/services/tree-icon.service.d.ts +0 -23
  454. package/files/services/tree-loader.service.d.ts +0 -43
  455. package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +0 -80
  456. package/form-fields/form-fields.module.d.ts +0 -18
  457. package/form-fields/index.d.ts +0 -3
  458. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +0 -107
  459. package/icons/index.d.ts +0 -1
  460. package/icons/sc-client-ui-icons-name.d.ts +0 -4
  461. package/index.d.ts +0 -5
  462. package/loader/index.d.ts +0 -1
  463. package/loader/sc-i-loader.d.ts +0 -9
  464. package/masks/index.d.ts +0 -7
  465. package/masks/sc-account-number-mask.d.ts +0 -5
  466. package/masks/sc-bic-mask.d.ts +0 -5
  467. package/masks/sc-correspondent-account-mask.d.ts +0 -5
  468. package/masks/sc-inn-mask.d.ts +0 -9
  469. package/masks/sc-kpp-mask.d.ts +0 -5
  470. package/masks/sc-okpo-mask.d.ts +0 -9
  471. package/masks/sc-phone-verification-code-mask.d.ts +0 -5
  472. package/methods/index.d.ts +0 -1
  473. package/methods/sc-get-current-route.d.ts +0 -8
  474. package/models/i-sc-image.d.ts +0 -17
  475. package/models/index.d.ts +0 -1
  476. package/news/index.d.ts +0 -3
  477. package/news/news-card/sc-news-card.component.d.ts +0 -22
  478. package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +0 -16
  479. package/news/sc-news.module.d.ts +0 -15
  480. package/noindex-wrapper/directives/index.d.ts +0 -1
  481. package/noindex-wrapper/directives/sc-noindex.directive.d.ts +0 -29
  482. package/noindex-wrapper/index.d.ts +0 -2
  483. package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +0 -9
  484. package/order/directives/index.d.ts +0 -2
  485. package/order/directives/sc-order-accessor.directive.d.ts +0 -13
  486. package/order/directives/sc-order-options.d.ts +0 -14
  487. package/order/draft/sc-draft.component.d.ts +0 -60
  488. package/order/index.d.ts +0 -12
  489. package/order/models/i-new-order-form.d.ts +0 -39
  490. package/order/new-order-items/sc-new-order-items.component.d.ts +0 -29
  491. package/order/order-form/sc-order-form.component.d.ts +0 -274
  492. package/order/order-form/sc-order-form.config.d.ts +0 -20
  493. package/order/order-item/sc-order-item.component.d.ts +0 -43
  494. package/order/order-items-list/sc-order-items-list.component.d.ts +0 -112
  495. package/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.d.ts +0 -55
  496. package/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.d.ts +0 -37
  497. package/order/sc-order.module.d.ts +0 -18
  498. package/order/sc-payment-status/sc-payment-status.component.d.ts +0 -25
  499. package/pages/frequently-asked-questions/sc-faq-query-params.d.ts +0 -4
  500. package/pages/frequently-asked-questions/sc-faq-question-anchor.d.ts +0 -16
  501. package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +0 -84
  502. package/pages/frequently-asked-questions/sc-get-faq-group-query-params.d.ts +0 -10
  503. package/pages/frequently-asked-questions/sc-page-size-options.d.ts +0 -5
  504. package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +0 -47
  505. package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +0 -89
  506. package/pages/index.d.ts +0 -10
  507. package/pages/news-list/sc-news-list.component.d.ts +0 -57
  508. package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +0 -17
  509. package/pages/privacy-policy/sc-privacy-policy.component.d.ts +0 -17
  510. package/pages/public-offer/sc-public-offer.component.d.ts +0 -22
  511. package/pagination/index.d.ts +0 -1
  512. package/pagination/sc-pagination-links/sc-pagination-links.component.d.ts +0 -60
  513. package/pipes/index.d.ts +0 -2
  514. package/pipes/sc-format-date.d.ts +0 -20
  515. package/pipes/sc-phone-format.d.ts +0 -21
  516. package/profile/index.d.ts +0 -2
  517. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +0 -126
  518. package/profile/sc-profile.module.d.ts +0 -23
  519. package/providers/date-value-transformer/index.d.ts +0 -3
  520. package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +0 -9
  521. package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +0 -16
  522. package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +0 -22
  523. package/providers/index.d.ts +0 -16
  524. package/providers/sc-allow-select-terminated.d.ts +0 -5
  525. package/providers/sc-banner-duration.d.ts +0 -5
  526. package/providers/sc-block-incomplete-address.d.ts +0 -5
  527. package/providers/sc-country-ids.d.ts +0 -5
  528. package/providers/sc-date-formatter.d.ts +0 -6
  529. package/providers/sc-date-value-transformer.d.ts +0 -5
  530. package/providers/sc-debounce-time-default.d.ts +0 -5
  531. package/providers/sc-dialog-service.providers.d.ts +0 -45
  532. package/providers/sc-help-notification-close.d.ts +0 -6
  533. package/providers/sc-help-notification-limit.d.ts +0 -5
  534. package/providers/sc-hidden-print-elements.token.d.ts +0 -6
  535. package/providers/sc-max-files-in-form-input.d.ts +0 -5
  536. package/providers/sc-notify-when-in-stock-required-fields.d.ts +0 -5
  537. package/providers/sc-page-size-options.d.ts +0 -5
  538. package/providers/sc-user-providers.d.ts +0 -21
  539. package/providers/sc-verification-code-timeout.d.ts +0 -5
  540. package/public-api.d.ts +0 -36
  541. package/qrcode/index.d.ts +0 -2
  542. package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +0 -37
  543. package/qrcode/sc-qrcode.module.d.ts +0 -14
  544. package/samples/index.d.ts +0 -4
  545. package/samples/interfaces/index.d.ts +0 -2
  546. package/samples/interfaces/sc-i-preview-sample.d.ts +0 -56
  547. package/samples/interfaces/sc-preview-mosquito-config.d.ts +0 -62
  548. package/samples/preview-sample/sc-preview-sample.component.d.ts +0 -30
  549. package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +0 -50
  550. package/samples/sc-sample.module.d.ts +0 -18
  551. package/services/index.d.ts +0 -3
  552. package/services/print.service.d.ts +0 -31
  553. package/services/sc-help-notification.service.d.ts +0 -70
  554. package/services/sc-scripts.service.d.ts +0 -51
  555. package/share/index.d.ts +0 -5
  556. package/share/sc-share-dialog-data.d.ts +0 -13
  557. package/share/sc-share.service.d.ts +0 -19
  558. package/share/share-button/sc-share-button.component.d.ts +0 -78
  559. package/share/share-dialog/sc-share-dialog.component.d.ts +0 -87
  560. package/share/share-messengers-links/sc-share-messengers-links.component.d.ts +0 -49
  561. package/smart-captcha/index.d.ts +0 -4
  562. package/smart-captcha/interfaces/index.d.ts +0 -5
  563. package/smart-captcha/interfaces/sc-smart-captcha-api.d.ts +0 -36
  564. package/smart-captcha/interfaces/sc-smart-captcha-event.d.ts +0 -4
  565. package/smart-captcha/interfaces/sc-smart-captcha-language.d.ts +0 -4
  566. package/smart-captcha/interfaces/sc-smart-captcha-render-params.d.ts +0 -16
  567. package/smart-captcha/interfaces/sc-smart-captcha-settings.d.ts +0 -16
  568. package/smart-captcha/interfaces/sc-smart-captcha-window.d.ts +0 -14
  569. package/smart-captcha/sc-smart-captcha.component.d.ts +0 -92
  570. package/smart-captcha/services/index.d.ts +0 -1
  571. package/smart-captcha/services/sc-smart-captcha-loader.service.d.ts +0 -50
  572. package/smart-captcha/tokens/index.d.ts +0 -2
  573. package/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.d.ts +0 -5
  574. package/smart-captcha/tokens/sc-smart-captcha-settings.token.d.ts +0 -6
  575. package/user/index.d.ts +0 -5
  576. package/user/reset-user-password/sc-reset-user-password.component.d.ts +0 -46
  577. package/user/sc-user.module.d.ts +0 -24
  578. package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +0 -63
  579. package/user/user-managers/sc-user-managers.component.d.ts +0 -23
  580. package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +0 -53
  581. package/validators/index.d.ts +0 -6
  582. package/validators/sc-at-least-one-required-validator.d.ts +0 -10
  583. package/validators/sc-bic-validator.d.ts +0 -8
  584. package/validators/sc-correspondent-account-validator.d.ts +0 -8
  585. package/validators/sc-password-confirm-matching-validator.d.ts +0 -8
  586. package/validators/sc-phone-validator.d.ts +0 -5
  587. package/validators/step-validator.d.ts +0 -7
  588. package/verification/index.d.ts +0 -2
  589. package/verification/sc-verification.module.d.ts +0 -21
  590. package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +0 -145
@@ -1,86 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MaskitoDirective } from '@maskito/angular';
5
- import { TuiAutoFocus } from '@taiga-ui/cdk';
6
- import { TuiButton, TuiError, TuiIcon, TuiLabel, TuiLink, TuiLoader, TuiTextfield, TuiTitle } from '@taiga-ui/core';
7
- import { TuiInputPhoneInternational } from '@taiga-ui/experimental';
8
- import { TuiButtonLoading, TuiFieldErrorPipe, TuiPush, TuiSortCountriesPipe } from '@taiga-ui/kit';
9
- import { TuiInputModule, TuiInputPasswordModule, TuiInputPhoneModule, TuiTextfieldControllerModule } from '@taiga-ui/legacy';
10
- import { ScManagerCardComponent } from '../contacts/manager-card/sc-manager-card.component';
11
- import { ScVerificationPhoneCheckFormComponent } from './verification-phone-check-form/sc-verification-phone-check-form.component';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@taiga-ui/kit";
14
- import * as i2 from "@taiga-ui/cdk/directives/item";
15
- import * as i3 from "@taiga-ui/core/components/label";
16
- import * as i4 from "@taiga-ui/core";
17
- /**
18
- * Модуль отправки кодов подтверждения (номера телефона, адреса эл. почты и т.д.).
19
- */
20
- export class ScVerificationModule {
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScVerificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ScVerificationModule, declarations: [ScVerificationPhoneCheckFormComponent], imports: [CommonModule,
23
- FormsModule,
24
- ReactiveFormsModule,
25
- TuiInputPasswordModule,
26
- TuiInputModule,
27
- TuiTextfieldControllerModule,
28
- TuiLink,
29
- TuiButton,
30
- TuiLabel,
31
- TuiFieldErrorPipe,
32
- TuiError,
33
- TuiLoader,
34
- TuiInputPhoneModule,
35
- MaskitoDirective,
36
- TuiButtonLoading,
37
- ScManagerCardComponent,
38
- TuiTitle,
39
- TuiIcon, i1.TuiPushComponent, i1.TuiPushAlert, i1.TuiPushDirective, TuiInputPhoneInternational, i2.TuiItem, i3.TuiLabel, i4.TuiSelect, i4.TuiTextfieldComponent, i4.TuiTextfieldDirective, i4.TuiTextfieldOptionsDirective, i4.TuiTextfieldDropdownDirective, i4.TuiTextfieldMultiComponent, TuiSortCountriesPipe,
40
- TuiAutoFocus], exports: [ScVerificationPhoneCheckFormComponent] }); }
41
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScVerificationModule, imports: [CommonModule,
42
- FormsModule,
43
- ReactiveFormsModule,
44
- TuiInputPasswordModule,
45
- TuiInputModule,
46
- TuiTextfieldControllerModule,
47
- TuiError,
48
- TuiLoader,
49
- TuiInputPhoneModule,
50
- TuiButtonLoading,
51
- ScManagerCardComponent,
52
- TuiIcon, i1.TuiPushComponent, i1.TuiPushAlert, TuiInputPhoneInternational, i4.TuiSelect, i4.TuiTextfieldComponent, i4.TuiTextfieldMultiComponent] }); }
53
- }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScVerificationModule, decorators: [{
55
- type: NgModule,
56
- args: [{
57
- imports: [
58
- CommonModule,
59
- FormsModule,
60
- ReactiveFormsModule,
61
- TuiInputPasswordModule,
62
- TuiInputModule,
63
- TuiTextfieldControllerModule,
64
- TuiLink,
65
- TuiButton,
66
- TuiLabel,
67
- TuiFieldErrorPipe,
68
- TuiError,
69
- TuiLoader,
70
- TuiInputPhoneModule,
71
- MaskitoDirective,
72
- TuiButtonLoading,
73
- ScManagerCardComponent,
74
- TuiTitle,
75
- TuiIcon,
76
- ...TuiPush,
77
- TuiInputPhoneInternational,
78
- ...TuiTextfield,
79
- TuiSortCountriesPipe,
80
- TuiAutoFocus,
81
- ],
82
- exports: [ScVerificationPhoneCheckFormComponent],
83
- declarations: [ScVerificationPhoneCheckFormComponent],
84
- }]
85
- }] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdmVyaWZpY2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS92ZXJpZmljYXRpb24vc2MtdmVyaWZpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDRFQUE0RSxDQUFDOzs7Ozs7QUFFbkk7O0dBRUc7QUE4QkgsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsaUJBRmQscUNBQXFDLGFBekJoRCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLDRCQUE0QjtZQUM1QixPQUFPO1lBQ1AsU0FBUztZQUNULFFBQVE7WUFDUixpQkFBaUI7WUFDakIsUUFBUTtZQUNSLFNBQVM7WUFDVCxtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixzQkFBc0I7WUFDdEIsUUFBUTtZQUNSLE9BQU8sNkRBRVAsMEJBQTBCLCtMQUUxQixvQkFBb0I7WUFDcEIsWUFBWSxhQUVOLHFDQUFxQztnSEFHdEMsb0JBQW9CLFlBM0J6QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLDRCQUE0QjtZQUs1QixRQUFRO1lBQ1IsU0FBUztZQUNULG1CQUFtQjtZQUVuQixnQkFBZ0I7WUFDaEIsc0JBQXNCO1lBRXRCLE9BQU8sd0NBRVAsMEJBQTBCOzs0RkFRckIsb0JBQW9CO2tCQTdCaEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLDRCQUE0Qjt3QkFDNUIsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsaUJBQWlCO3dCQUNqQixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixRQUFRO3dCQUNSLE9BQU87d0JBQ1AsR0FBRyxPQUFPO3dCQUNWLDBCQUEwQjt3QkFDMUIsR0FBRyxZQUFZO3dCQUNmLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQztvQkFDaEQsWUFBWSxFQUFFLENBQUMscUNBQXFDLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hc2tpdG9EaXJlY3RpdmUgfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7IFR1aUF1dG9Gb2N1cyB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlFcnJvciwgVHVpSWNvbiwgVHVpTGFiZWwsIFR1aUxpbmssIFR1aUxvYWRlciwgVHVpVGV4dGZpZWxkLCBUdWlUaXRsZSB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsIH0gZnJvbSAnQHRhaWdhLXVpL2V4cGVyaW1lbnRhbCc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlGaWVsZEVycm9yUGlwZSwgVHVpUHVzaCwgVHVpU29ydENvdW50cmllc1BpcGUgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aUlucHV0TW9kdWxlLCBUdWlJbnB1dFBhc3N3b3JkTW9kdWxlLCBUdWlJbnB1dFBob25lTW9kdWxlLCBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeSc7XG5cbmltcG9ydCB7IFNjTWFuYWdlckNhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jb250YWN0cy9tYW5hZ2VyLWNhcmQvc2MtbWFuYWdlci1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY1ZlcmlmaWNhdGlvblBob25lQ2hlY2tGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi92ZXJpZmljYXRpb24tcGhvbmUtY2hlY2stZm9ybS9zYy12ZXJpZmljYXRpb24tcGhvbmUtY2hlY2stZm9ybS5jb21wb25lbnQnO1xuXG4vKipcbiAqINCc0L7QtNGD0LvRjCDQvtGC0L/RgNCw0LLQutC4INC60L7QtNC+0LIg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8gKNC90L7QvNC10YDQsCDRgtC10LvQtdGE0L7QvdCwLCDQsNC00YDQtdGB0LAg0Y3Quy4g0L/QvtGH0YLRiyDQuCDRgi7QtC4pLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRQYXNzd29yZE1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIFR1aUxpbmssXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpTGFiZWwsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlLFxuICAgICAgICBUdWlFcnJvcixcbiAgICAgICAgVHVpTG9hZGVyLFxuICAgICAgICBUdWlJbnB1dFBob25lTW9kdWxlLFxuICAgICAgICBNYXNraXRvRGlyZWN0aXZlLFxuICAgICAgICBUdWlCdXR0b25Mb2FkaW5nLFxuICAgICAgICBTY01hbmFnZXJDYXJkQ29tcG9uZW50LFxuICAgICAgICBUdWlUaXRsZSxcbiAgICAgICAgVHVpSWNvbixcbiAgICAgICAgLi4uVHVpUHVzaCxcbiAgICAgICAgVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWwsXG4gICAgICAgIC4uLlR1aVRleHRmaWVsZCxcbiAgICAgICAgVHVpU29ydENvdW50cmllc1BpcGUsXG4gICAgICAgIFR1aUF1dG9Gb2N1cyxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtTY1ZlcmlmaWNhdGlvblBob25lQ2hlY2tGb3JtQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTY1ZlcmlmaWNhdGlvblBob25lQ2hlY2tGb3JtQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2NWZXJpZmljYXRpb25Nb2R1bGUge31cbiJdfQ==
@@ -1,259 +0,0 @@
1
- /* eslint-disable no-underscore-dangle,lodash/prefer-constant */
2
- import { HttpClient, HttpErrorResponse } from '@angular/common/http';
3
- import { ChangeDetectionStrategy, Component, inject, Input, input, model, output } from '@angular/core';
4
- import { toSignal } from '@angular/core/rxjs-interop';
5
- import { FormGroupDirective } from '@angular/forms';
6
- import { ScVerificationService } from '@snabcentr/client-core';
7
- import { tuiControlValue } from '@taiga-ui/cdk';
8
- import { getCountries } from 'libphonenumber-js';
9
- import { isNil } from 'lodash-es';
10
- import { catchError, distinctUntilChanged, endWith, filter, finalize, map, of, scan, share, shareReplay, startWith, Subject, switchMap, takeWhile, tap, timer, } from 'rxjs';
11
- import { SC_SHOW_HELP_NOTIFICATION_IN_PHONE_INPUT } from '../../contacts/tokens/sc-show-help-notification-in-phone-input.token';
12
- import { scPhoneVerificationCodeMask } from '../../masks';
13
- import { SC_VERIFICATION_CODE_TIMEOUT } from '../../providers/sc-verification-code-timeout';
14
- import { ScHelpNotificationService } from '../../services';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@angular/forms";
17
- import * as i2 from "@taiga-ui/legacy/components/primitive-textfield";
18
- import * as i3 from "@taiga-ui/legacy";
19
- import * as i4 from "@taiga-ui/core";
20
- import * as i5 from "@taiga-ui/core/components/label";
21
- import * as i6 from "@maskito/angular";
22
- import * as i7 from "@taiga-ui/kit";
23
- import * as i8 from "../../contacts/manager-card/sc-manager-card.component";
24
- import * as i9 from "@taiga-ui/experimental";
25
- import * as i10 from "@taiga-ui/cdk";
26
- import * as i11 from "@angular/common";
27
- /**
28
- * Компонент формы проверки телефона и получения кода подтверждения.
29
- */
30
- export class ScVerificationPhoneCheckFormComponent {
31
- constructor() {
32
- /**
33
- * Сервис верификации.
34
- */
35
- this.verificationService = inject(ScVerificationService);
36
- /**
37
- * Директива c `FormGroup` из DOM.
38
- */
39
- this.formGroupDirective = inject(FormGroupDirective, { optional: true });
40
- /**
41
- * HTTP-клиент.
42
- */
43
- this.http = inject(HttpClient);
44
- /**
45
- * Признак, что поле ввода телефона только для чтения.
46
- */
47
- this.readOnly = input(false);
48
- /**
49
- * Признак, что поле ввода телефона псевдо-невалидное.
50
- */
51
- this.pseudoInvalid = input(false);
52
- /**
53
- * Признак, что поле ввода телефона и кода подтверждения обязательные.
54
- */
55
- this.required = input(false);
56
- /**
57
- * Текст подсказки.
58
- */
59
- this.subtitle = input('');
60
- /**
61
- * Признак, следует ли телефону быть в системе. От этого признака зависит, в каких случаях выдавать ошибку при проверке занятости телефона.
62
- */
63
- this.shouldBeBusy = input();
64
- /**
65
- * Признак, следует ли проверять, подтверждён ли телефон в системе. При `true` будет вызывать ошибку при наличии телефона в системе без подтверждения.
66
- */
67
- this.shouldBeConfirmed = input();
68
- /**
69
- * Список стран.
70
- */
71
- this.countries = getCountries();
72
- /**
73
- * Сервис для отображения Push-уведомлений с контактами для помощи клиенту.
74
- */
75
- this.helpNotificationService = inject(ScHelpNotificationService);
76
- /**
77
- * Список контактов для отправки push-уведомлений.
78
- */
79
- this.pushContacts = toSignal(this.helpNotificationService.getContactsShow$());
80
- /**
81
- * Наличие кода подтверждения у пользователя.
82
- */
83
- this.haveCode = model(false);
84
- /**
85
- * {@link OutputEmitter} события изменения признака занятости телефона.
86
- */
87
- this.isBusyChange = output();
88
- /**
89
- * {@link OutputEmitter} события изменения признака подтверждения телефона.
90
- */
91
- this.isConfirmedChange = output();
92
- /**
93
- * {@link Subject} события отправки кода подтверждения.
94
- */
95
- this.onSendCode = new Subject();
96
- /**
97
- * Таймаут отправки кода подтверждения.
98
- */
99
- this.codeTimeout = inject(SC_VERIFICATION_CODE_TIMEOUT);
100
- /**
101
- * {@link Observable} запроса данных получения кода подтверждения.
102
- */
103
- this.loadingApproveCode$ = this.onSendCode.pipe(map(() => this.phoneControl.value), filter((value) => this.phoneControl.valid), switchMap((value) => this.verificationService.sendPhoneApproveCode(value).pipe(tap(() => {
104
- this.reloadTimer$.next(this.codeTimeout);
105
- }), map(() => false), catchError((error) => {
106
- if (error instanceof HttpErrorResponse) {
107
- const errorResponse = error.error;
108
- const regex = /(\d{2}):\d{2}/;
109
- const match = regex.exec(errorResponse.message);
110
- if (match && match.length > 1) {
111
- const timeParts = match[0].split(':');
112
- const seconds = Number.parseInt(timeParts[1], 10);
113
- this.reloadTimer$.next(seconds);
114
- }
115
- else {
116
- this.phoneControl.setErrors({ serverResponse: errorResponse.errors?.['phone'] ?? [errorResponse.message] });
117
- }
118
- }
119
- return of(false);
120
- }), finalize(() => {
121
- this.setHaveCode(true);
122
- }), startWith(true), shareReplay({ refCount: true, bufferSize: 1 }))), startWith(false), share());
123
- /**
124
- * Маска поля ввода кода для подтверждения.
125
- */
126
- this.verificationCodeMask = scPhoneVerificationCodeMask;
127
- /**
128
- * {@link Subject} события запуска/остановки таймера.
129
- */
130
- this.reloadTimer$ = new Subject();
131
- /**
132
- * {@link Observable} Таймера.
133
- *
134
- * TODO: Вынести таймер в отдельную директиву TASK:[#9260].
135
- */
136
- this.timer$ = this.reloadTimer$.pipe(switchMap((sec) => timer(0, 1000).pipe(scan((total) => -1 + total, sec), takeWhile((total) => total >= 0), map((total) => {
137
- const minutes = Math.floor(total / 60);
138
- const seconds = total % 60;
139
- return `${Math.round(minutes).toString().padStart(2, '0')}:${Math.round(seconds).toString().padStart(2, '0')}`;
140
- }), endWith(null), startWith(null), distinctUntilChanged())));
141
- /**
142
- * Токен показа уведомления помощи.
143
- */
144
- this.showHelpNotification = inject(SC_SHOW_HELP_NOTIFICATION_IN_PHONE_INPUT);
145
- /**
146
- * Признак, следует ли отображать функционал кода подтверждения.
147
- */
148
- this._showCodeFields = true;
149
- }
150
- /**
151
- * Признак, следует ли отображать функционал кода подтверждения.
152
- */
153
- set showCodeFields(showCodeFields) {
154
- this._showCodeFields = showCodeFields;
155
- this.form.controls.verificationCode[showCodeFields ? 'enable' : 'disable']();
156
- }
157
- /**
158
- * Признак, следует ли отображать функционал кода подтверждения.
159
- */
160
- get showCodeFields() {
161
- return this._showCodeFields;
162
- }
163
- /**
164
- * Группа полей ввода для формы «Вход на сайт».
165
- */
166
- get form() {
167
- return this.formGroupDirective?.form;
168
- }
169
- /**
170
- * Поле ввода 'Номер телефона'.
171
- */
172
- get phoneControl() {
173
- return this.form.controls.phone;
174
- }
175
- /** @inheritDoc */
176
- ngOnInit() {
177
- this.phoneCheck$ = tuiControlValue(this.phoneControl).pipe(tap(() => {
178
- this.reloadTimer$.next(0);
179
- this.isBusyChange.emit(null);
180
- this.isConfirmedChange.emit(null);
181
- this.helpNotificationService.closeAllHelpNotification();
182
- if (this.form.controls.verificationCode.value) {
183
- this.form.controls.verificationCode.setValue(null);
184
- }
185
- }), switchMap((value) => {
186
- if (this.phoneControl.valid && !!value) {
187
- return this.verificationService.getPhoneCheck$(value).pipe(
188
- // eslint-disable-next-line sonarjs/cognitive-complexity
189
- map((result) => {
190
- if (this.shouldBeBusy() === undefined && !isNil(this.shouldBeConfirmed()) && result.isConfirmed !== null) {
191
- this.isBusyChange.emit(result.isBusy);
192
- if (!isNil(result.isConfirmed)) {
193
- this.isConfirmedChange.emit(result.isConfirmed);
194
- return this.shouldBeConfirmed() === result.isConfirmed;
195
- }
196
- return true;
197
- }
198
- if (this.shouldBeBusy() !== undefined && this.shouldBeBusy() !== result.isBusy) {
199
- this.phoneControl.setErrors({
200
- serverResponse: [
201
- result.isBusy ? 'Пользователь с таким номером телефона уже существует' : 'Пользователя с таким номером телефона не существует',
202
- ],
203
- });
204
- this.phoneControl.markAsTouched();
205
- return false;
206
- }
207
- if (this.shouldBeConfirmed() !== undefined && this.shouldBeConfirmed() !== result.isConfirmed) {
208
- this.phoneControl.setErrors({
209
- serverResponse: [
210
- result.isConfirmed
211
- ? 'Телефон уже подтверждён'
212
- : 'Номер телефона не подтверждён или вход по нему невозможен. Обратитесь к вашему персональному менеджеру или войдите с использованием e-mail и пароля.',
213
- ],
214
- });
215
- this.phoneControl.markAsTouched();
216
- return false;
217
- }
218
- return true;
219
- }), catchError((error) => {
220
- if (error instanceof HttpErrorResponse) {
221
- const errorResponse = error.error;
222
- this.phoneControl.setErrors({ serverResponse: errorResponse.errors?.['phone'] ?? [errorResponse.message] });
223
- }
224
- return of(false);
225
- }), tap((check) => {
226
- if (!check) {
227
- this.helpNotificationService.helpNotificationByPhone(value);
228
- }
229
- }), startWith(null));
230
- }
231
- this.setHaveCode(false);
232
- return of(false);
233
- }), share());
234
- this.setHaveCode(false);
235
- }
236
- /**
237
- * Устанавливает состояние наличия кода подтверждения у пользователя.
238
- *
239
- * @param haveCode Признак того есть ли код подтверждения или нет.
240
- */
241
- setHaveCode(haveCode) {
242
- this.haveCode.set(haveCode);
243
- }
244
- /**
245
- * Закрытие уведомления.
246
- */
247
- closeNotification() {
248
- this.helpNotificationService.closeAllHelpNotification();
249
- }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScVerificationPhoneCheckFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScVerificationPhoneCheckFormComponent, selector: "sc-verification-phone-check-form", inputs: { showCodeFields: { classPropertyName: "showCodeFields", publicName: "showCodeFields", isSignal: false, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, pseudoInvalid: { classPropertyName: "pseudoInvalid", publicName: "pseudoInvalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, shouldBeBusy: { classPropertyName: "shouldBeBusy", publicName: "shouldBeBusy", isSignal: true, isRequired: false, transformFunction: null }, shouldBeConfirmed: { classPropertyName: "shouldBeConfirmed", publicName: "shouldBeConfirmed", isSignal: true, isRequired: false, transformFunction: null }, haveCode: { classPropertyName: "haveCode", publicName: "haveCode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { haveCode: "haveCodeChange", isBusyChange: "isBusyChange", isConfirmedChange: "isConfirmedChange" }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0, template: "@let phoneCheck = phoneCheck$ | async;\n@let loadingApproveCode = loadingApproveCode$ | async;\n<form\n [formGroup]=\"form\"\n class=\"flex flex-col gap-3\"\n>\n <label tuiLabel>\n \u041D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430\n <tui-textfield>\n <input\n formControlName=\"phone\"\n tuiInputPhoneInternational\n [invalid]=\"pseudoInvalid() || null\"\n [countrySearch]=\"true\"\n [countries]=\"(countries | tuiSortCountries | async) || []\"\n autocomplete=\"phone\"\n />\n </tui-textfield>\n\n @if (subtitle()) {\n <p class=\"text-body-s text-tui-text-tertiary\">\n {{ subtitle() }}\n </p>\n }\n\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n @if (showCodeFields && form.enabled && phoneCheck) {\n @if (!loadingApproveCode && haveCode()) {\n <label tuiLabel>\n \u041A\u043E\u0434 \u0438\u0437 \u0421\u041C\u0421\n <tui-input\n formControlName=\"verificationCode\"\n [required]=\"required() || showCodeFields\"\n >\n \u041A\u043E\u0434 \u0438\u0437 \u0421\u041C\u0421\n <input\n tuiAutoFocus\n tuiTextfieldLegacy\n [maskito]=\"verificationCodeMask\"\n autocomplete=\"new-password\"\n />\n </tui-input>\n\n <tui-error\n formControlName=\"verificationCode\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n @let loadingApproveCodeBoolValue = !!loadingApproveCode;\n <div class=\"flex justify-center gap-4\">\n @if (!haveCode()) {\n <button\n tuiButton\n (click)=\"onSendCode.next()\"\n [disabled]=\"loadingApproveCodeBoolValue || !phoneCheck || phoneControl.invalid\"\n [loading]=\"loadingApproveCodeBoolValue\"\n iconStart=\"@tui.sc.send\"\n >\n \u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043A\u043E\u0434\n </button>\n }\n\n @if (!loadingApproveCodeBoolValue && !haveCode()) {\n <button\n tuiLink\n [pseudo]=\"true\"\n [disabled]=\"!phoneCheck || phoneControl.invalid\"\n (click)=\"setHaveCode(true)\"\n >\n \u0423 \u043C\u0435\u043D\u044F \u0435\u0441\u0442\u044C \u043A\u043E\u0434\n </button>\n }\n @let timer = timer$ | async;\n @if (haveCode()) {\n <tui-loader [showLoader]=\"loadingApproveCodeBoolValue\">\n <button\n tuiLink\n [pseudo]=\"true\"\n [disabled]=\"loadingApproveCodeBoolValue || timer\"\n (click)=\"onSendCode.next()\"\n >\n \u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u0434\n @if (timer) {\n <ng-container class=\"!text-tui-base-08\"> (\u0447\u0435\u0440\u0435\u0437 {{ timer }}) </ng-container>\n }\n </button>\n </tui-loader>\n }\n </div>\n }\n\n @if (showHelpNotification && pushContacts()) {\n @for (manager of pushContacts(); track manager.id) {\n <tui-push\n type=\"\u0421\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0434\u043B\u044F \u0440\u0435\u0448\u0435\u043D\u0438\u044F \u0432\u043E\u0437\u043D\u0438\u043A\u0448\u0438\u0445 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432\"\n (close)=\"closeNotification()\"\n class=\"!w-auto\"\n >\n <tui-icon icon=\"@tui.message-square\" />\n <sc-manager-card [manager]=\"manager\" />\n </tui-push>\n }\n }\n</form>\n\n<ng-template #checkingPhone>\n @if (!phoneCheck && phoneControl.valid) {\n <tui-loader class=\"size-4\" />\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i3.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i3.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i4.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i5.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i4.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i6.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i7.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "component", type: i8.ScManagerCardComponent, selector: "sc-manager-card", inputs: ["manager"] }, { kind: "component", type: i4.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: i7.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }, { kind: "component", type: i9.TuiInputPhoneInternational, selector: "input[tuiInputPhoneInternational]", inputs: ["countrySearch", "countries", "countryIsoCode"], outputs: ["countryIsoCodeChange"] }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i10.TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "pipe", type: i7.TuiSortCountriesPipe, name: "tuiSortCountries" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
252
- }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScVerificationPhoneCheckFormComponent, decorators: [{
254
- type: Component,
255
- args: [{ selector: 'sc-verification-phone-check-form', host: { ngSkipHydration: 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let phoneCheck = phoneCheck$ | async;\n@let loadingApproveCode = loadingApproveCode$ | async;\n<form\n [formGroup]=\"form\"\n class=\"flex flex-col gap-3\"\n>\n <label tuiLabel>\n \u041D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430\n <tui-textfield>\n <input\n formControlName=\"phone\"\n tuiInputPhoneInternational\n [invalid]=\"pseudoInvalid() || null\"\n [countrySearch]=\"true\"\n [countries]=\"(countries | tuiSortCountries | async) || []\"\n autocomplete=\"phone\"\n />\n </tui-textfield>\n\n @if (subtitle()) {\n <p class=\"text-body-s text-tui-text-tertiary\">\n {{ subtitle() }}\n </p>\n }\n\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n @if (showCodeFields && form.enabled && phoneCheck) {\n @if (!loadingApproveCode && haveCode()) {\n <label tuiLabel>\n \u041A\u043E\u0434 \u0438\u0437 \u0421\u041C\u0421\n <tui-input\n formControlName=\"verificationCode\"\n [required]=\"required() || showCodeFields\"\n >\n \u041A\u043E\u0434 \u0438\u0437 \u0421\u041C\u0421\n <input\n tuiAutoFocus\n tuiTextfieldLegacy\n [maskito]=\"verificationCodeMask\"\n autocomplete=\"new-password\"\n />\n </tui-input>\n\n <tui-error\n formControlName=\"verificationCode\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n @let loadingApproveCodeBoolValue = !!loadingApproveCode;\n <div class=\"flex justify-center gap-4\">\n @if (!haveCode()) {\n <button\n tuiButton\n (click)=\"onSendCode.next()\"\n [disabled]=\"loadingApproveCodeBoolValue || !phoneCheck || phoneControl.invalid\"\n [loading]=\"loadingApproveCodeBoolValue\"\n iconStart=\"@tui.sc.send\"\n >\n \u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043A\u043E\u0434\n </button>\n }\n\n @if (!loadingApproveCodeBoolValue && !haveCode()) {\n <button\n tuiLink\n [pseudo]=\"true\"\n [disabled]=\"!phoneCheck || phoneControl.invalid\"\n (click)=\"setHaveCode(true)\"\n >\n \u0423 \u043C\u0435\u043D\u044F \u0435\u0441\u0442\u044C \u043A\u043E\u0434\n </button>\n }\n @let timer = timer$ | async;\n @if (haveCode()) {\n <tui-loader [showLoader]=\"loadingApproveCodeBoolValue\">\n <button\n tuiLink\n [pseudo]=\"true\"\n [disabled]=\"loadingApproveCodeBoolValue || timer\"\n (click)=\"onSendCode.next()\"\n >\n \u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u0434\n @if (timer) {\n <ng-container class=\"!text-tui-base-08\"> (\u0447\u0435\u0440\u0435\u0437 {{ timer }}) </ng-container>\n }\n </button>\n </tui-loader>\n }\n </div>\n }\n\n @if (showHelpNotification && pushContacts()) {\n @for (manager of pushContacts(); track manager.id) {\n <tui-push\n type=\"\u0421\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0434\u043B\u044F \u0440\u0435\u0448\u0435\u043D\u0438\u044F \u0432\u043E\u0437\u043D\u0438\u043A\u0448\u0438\u0445 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432\"\n (close)=\"closeNotification()\"\n class=\"!w-auto\"\n >\n <tui-icon icon=\"@tui.message-square\" />\n <sc-manager-card [manager]=\"manager\" />\n </tui-push>\n }\n }\n</form>\n\n<ng-template #checkingPhone>\n @if (!phoneCheck && phoneControl.valid) {\n <tui-loader class=\"size-4\" />\n }\n</ng-template>\n" }]
256
- }], propDecorators: { showCodeFields: [{
257
- type: Input
258
- }] } });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdmVyaWZpY2F0aW9uLXBob25lLWNoZWNrLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3ZlcmlmaWNhdGlvbi92ZXJpZmljYXRpb24tcGhvbmUtY2hlY2stZm9ybS9zYy12ZXJpZmljYXRpb24tcGhvbmUtY2hlY2stZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvdmVyaWZpY2F0aW9uL3ZlcmlmaWNhdGlvbi1waG9uZS1jaGVjay1mb3JtL3NjLXZlcmlmaWNhdGlvbi1waG9uZS1jaGVjay1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxLQUFLLEVBQXVCLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBMEIsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQXNDLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQ0gsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixPQUFPLEVBQ1AsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBRUgsRUFBRSxFQUNGLElBQUksRUFD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QU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNWLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sV0FBVyxDQUFDLFFBQWlCO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUM1RCxDQUFDOytHQXJUUSxxQ0FBcUM7bUdBQXJDLHFDQUFxQyx5MENDOUNsRCxraUpBb0hBOzs0RkR0RWEscUNBQXFDO2tCQU5qRCxTQUFTOytCQUNJLGtDQUFrQyxRQUV0QyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsbUJBQ2hCLHVCQUF1QixDQUFDLE1BQU07OEJBT3BDLGNBQWM7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSxsb2Rhc2gvcHJlZmVyLWNvbnN0YW50ICovXG5cbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgaW5wdXQsIElucHV0U2lnbmFsLCBtb2RlbCwgTW9kZWxTaWduYWwsIE9uSW5pdCwgb3V0cHV0LCBPdXRwdXRFbWl0dGVyUmVmLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFza2l0b09wdGlvbnMgfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7IFNjSUFwaUVycm9yUmVzcG9uc2UsIFNjSU9yZ0NvbnRhY3QsIFNjVmVyaWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgdHVpQ29udHJvbFZhbHVlIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgdHlwZSB7IFR1aUNvdW50cnlJc29Db2RlIH0gZnJvbSAnQHRhaWdhLXVpL2kxOG4nO1xuaW1wb3J0IHsgZ2V0Q291bnRyaWVzIH0gZnJvbSAnbGlicGhvbmVudW1iZXItanMnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgICBjYXRjaEVycm9yLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGVuZFdpdGgsXG4gICAgZmlsdGVyLFxuICAgIGZpbmFsaXplLFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIHNjYW4sXG4gICAgc2hhcmUsXG4gICAgc2hhcmVSZXBsYXksXG4gICAgc3RhcnRXaXRoLFxuICAgIFN1YmplY3QsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRha2VXaGlsZSxcbiAgICB0YXAsXG4gICAgdGltZXIsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTQ19TSE9XX0hFTFBfTk9USUZJQ0FUSU9OX0lOX1BIT05FX0lOUFVUIH0gZnJvbSAnLi4vLi4vY29udGFjdHMvdG9rZW5zL3NjLXNob3ctaGVscC1ub3RpZmljYXRpb24taW4tcGhvbmUtaW5wdXQudG9rZW4nO1xuaW1wb3J0IHsgc2NQaG9uZVZlcmlmaWNhdGlvbkNvZGVNYXNrIH0gZnJvbSAnLi4vLi4vbWFza3MnO1xuaW1wb3J0IHsgU0NfVkVSSUZJQ0FUSU9OX0NPREVfVElNRU9VVCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zYy12ZXJpZmljYXRpb24tY29kZS10aW1lb3V0JztcbmltcG9ydCB7IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGE0L7RgNC80Ysg0L/RgNC+0LLQtdGA0LrQuCDRgtC10LvQtdGE0L7QvdCwINC4INC/0L7Qu9GD0YfQtdC90LjRjyDQutC+0LTQsCDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy12ZXJpZmljYXRpb24tcGhvbmUtY2hlY2stZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXZlcmlmaWNhdGlvbi1waG9uZS1jaGVjay1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjVmVyaWZpY2F0aW9uUGhvbmVDaGVja0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRgdC70LXQtNGD0LXRgiDQu9C4INC+0YLQvtCx0YDQsNC20LDRgtGMINGE0YPQvdC60YbQuNC+0L3QsNC7INC60L7QtNCwINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzaG93Q29kZUZpZWxkcyhzaG93Q29kZUZpZWxkczogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93Q29kZUZpZWxkcyA9IHNob3dDb2RlRmllbGRzO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudmVyaWZpY2F0aW9uQ29kZVtzaG93Q29kZUZpZWxkcyA/ICdlbmFibGUnIDogJ2Rpc2FibGUnXSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRgdC70LXQtNGD0LXRgiDQu9C4INC+0YLQvtCx0YDQsNC20LDRgtGMINGE0YPQvdC60YbQuNC+0L3QsNC7INC60L7QtNCwINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2hvd0NvZGVGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q29kZUZpZWxkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LLQtdGA0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmVyaWZpY2F0aW9uU2VydmljZSA9IGluamVjdChTY1ZlcmlmaWNhdGlvblNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JTQuNGA0LXQutGC0LjQstCwIGMgYEZvcm1Hcm91cGAg0LjQtyBET00uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1Hcm91cERpcmVjdGl2ZSA9IGluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L/QvtC70LUg0LLQstC+0LTQsCDRgtC10LvQtdGE0L7QvdCwINGC0L7Qu9GM0LrQviDQtNC70Y8g0YfRgtC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSByZWFkT25seTogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC/0L7Qu9C1INCy0LLQvtC00LAg0YLQtdC70LXRhNC+0L3QsCDQv9GB0LXQstC00L4t0L3QtdCy0LDQu9C40LTQvdC+0LUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHBzZXVkb0ludmFsaWQ6IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQv9C+0LvQtSDQstCy0L7QtNCwINGC0LXQu9C10YTQvtC90LAg0Lgg0LrQvtC00LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0L7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSByZXF1aXJlZDogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiDQotC10LrRgdGCINC/0L7QtNGB0LrQsNC30LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VidGl0bGU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dCgnJyk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YHQu9C10LTRg9C10YIg0LvQuCDRgtC10LvQtdGE0L7QvdGDINCx0YvRgtGMINCyINGB0LjRgdGC0LXQvNC1LiDQntGCINGN0YLQvtCz0L4g0L/RgNC40LfQvdCw0LrQsCDQt9Cw0LLQuNGB0LjRgiwg0LIg0LrQsNC60LjRhSDRgdC70YPRh9Cw0Y/RhSDQstGL0LTQsNCy0LDRgtGMINC+0YjQuNCx0LrRgyDQv9GA0Lgg0L/RgNC+0LLQtdGA0LrQtSDQt9Cw0L3Rj9GC0L7RgdGC0Lgg0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvdWxkQmVCdXN5OiBJbnB1dFNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YHQu9C10LTRg9C10YIg0LvQuCDQv9GA0L7QstC10YDRj9GC0YwsINC/0L7QtNGC0LLQtdGA0LbQtNGR0L0g0LvQuCDRgtC10LvQtdGE0L7QvSDQsiDRgdC40YHRgtC10LzQtS4g0J/RgNC4IGB0cnVlYCDQsdGD0LTQtdGCINCy0YvQt9GL0LLQsNGC0Ywg0L7RiNC40LHQutGDINC/0YDQuCDQvdCw0LvQuNGH0LjQuCDRgtC10LvQtdGE0L7QvdCwINCyINGB0LjRgdGC0LXQvNC1INCx0LXQtyDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvdWxkQmVDb25maXJtZWQ6IElucHV0U2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGC0YDQsNC9LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb3VudHJpZXM6IHJlYWRvbmx5IFR1aUNvdW50cnlJc29Db2RlW10gPSBnZXRDb3VudHJpZXMoKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyBQdXNoLdGD0LLQtdC00L7QvNC70LXQvdC40Lkg0YEg0LrQvtC90YLQsNC60YLQsNC80Lgg0LTQu9GPINC/0L7QvNC+0YnQuCDQutC70LjQtdC90YLRgy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVscE5vdGlmaWNhdGlvblNlcnZpY2U6IFNjSGVscE5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoU2NIZWxwTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LrQvtC90YLQsNC60YLQvtCyINC00LvRjyDQvtGC0L/RgNCw0LLQutC4IHB1c2gt0YPQstC10LTQvtC80LvQtdC90LjQuS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHVzaENvbnRhY3RzOiBTaWduYWw8U2NJT3JnQ29udGFjdFtdIHwgdW5kZWZpbmVkPiA9IHRvU2lnbmFsKHRoaXMuaGVscE5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Q29udGFjdHNTaG93JCgpKTtcblxuICAgIC8qKlxuICAgICAqINCd0LDQu9C40YfQuNC1INC60L7QtNCwINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPINGDINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaGF2ZUNvZGU6IE1vZGVsU2lnbmFsPGJvb2xlYW4+ID0gbW9kZWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC/0YDQvtCy0LXRgNC60Lgg0L3QvtC80LXRgNCwINGC0LXQu9C10YTQvtC90LAuXG4gICAgICovXG4gICAgcHVibGljIHBob25lQ2hlY2skPzogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT3V0cHV0RW1pdHRlcn0g0YHQvtCx0YvRgtC40Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0YDQuNC30L3QsNC60LAg0LfQsNC90Y/RgtC+0YHRgtC4INGC0LXQu9C10YTQvtC90LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzQnVzeUNoYW5nZTogT3V0cHV0RW1pdHRlclJlZjxib29sZWFuIHwgbnVsbD4gPSBvdXRwdXQ8Ym9vbGVhbiB8IG51bGw+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT3V0cHV0RW1pdHRlcn0g0YHQvtCx0YvRgtC40Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0YDQuNC30L3QsNC60LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YLQtdC70LXRhNC+0L3QsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNDb25maXJtZWRDaGFuZ2U6IE91dHB1dEVtaXR0ZXJSZWY8Ym9vbGVhbiB8IG51bGw+ID0gb3V0cHV0PGJvb2xlYW4gfCBudWxsPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFN1YmplY3R9INGB0L7QsdGL0YLQuNGPINC+0YLQv9GA0LDQstC60Lgg0LrQvtC00LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9uU2VuZENvZGU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KLQsNC50LzQsNGD0YIg0L7RgtC/0YDQsNCy0LrQuCDQutC+0LTQsCDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29kZVRpbWVvdXQ6IG51bWJlciA9IGluamVjdChTQ19WRVJJRklDQVRJT05fQ09ERV9USU1FT1VUKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQtNCw0L3QvdGL0YUg0L/QvtC70YPRh9C10L3QuNGPINC60L7QtNCwINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2FkaW5nQXBwcm92ZUNvZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5vblNlbmRDb2RlLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLnBob25lQ29udHJvbC52YWx1ZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBzdHJpbmcgPT4gdGhpcy5waG9uZUNvbnRyb2wudmFsaWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25TZXJ2aWNlLnNlbmRQaG9uZUFwcHJvdmVDb2RlKHZhbHVlKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkVGltZXIkLm5leHQodGhpcy5jb2RlVGltZW91dCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IGZhbHNlKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIFNjSUFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyhcXGR7Mn0pOlxcZHsyfS87XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMoZXJyb3JSZXNwb25zZS5tZXNzYWdlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lUGFydHMgPSBtYXRjaFswXS5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY29uZHMgPSBOdW1iZXIucGFyc2VJbnQodGltZVBhcnRzWzFdLCAxMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZFRpbWVyJC5uZXh0KHNlY29uZHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBob25lQ29udHJvbC5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogZXJyb3JSZXNwb25zZS5lcnJvcnM/LlsncGhvbmUnXSA/PyBbZXJyb3JSZXNwb25zZS5tZXNzYWdlXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEhhdmVDb2RlKHRydWUpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNGB0LrQsCDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7QtNCwINC00LvRjyDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmVyaWZpY2F0aW9uQ29kZU1hc2s6IE1hc2tpdG9PcHRpb25zID0gc2NQaG9uZVZlcmlmaWNhdGlvbkNvZGVNYXNrO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFN1YmplY3R9INGB0L7QsdGL0YLQuNGPINC30LDQv9GD0YHQutCwL9C+0YHRgtCw0L3QvtCy0LrQuCDRgtCw0LnQvNC10YDQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVsb2FkVGltZXIkOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0KLQsNC50LzQtdGA0LAuXG4gICAgICpcbiAgICAgKiBUT0RPOiDQktGL0L3QtdGB0YLQuCDRgtCw0LnQvNC10YAg0LIg0L7RgtC00LXQu9GM0L3Rg9GOINC00LjRgNC10LrRgtC40LLRgyBUQVNLOlsjOTI2MF0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpbWVyJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiA9IHRoaXMucmVsb2FkVGltZXIkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoc2VjKSA9PlxuICAgICAgICAgICAgdGltZXIoMCwgMTAwMCkucGlwZShcbiAgICAgICAgICAgICAgICBzY2FuKCh0b3RhbCkgPT4gLTEgKyB0b3RhbCwgc2VjKSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoKHRvdGFsKSA9PiB0b3RhbCA+PSAwKSxcbiAgICAgICAgICAgICAgICBtYXAoKHRvdGFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHRvdGFsIC8gNjApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWNvbmRzID0gdG90YWwgJSA2MDtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChtaW51dGVzKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7TWF0aC5yb3VuZChzZWNvbmRzKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBlbmRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KLQvtC60LXQvSDQv9C+0LrQsNC30LAg0YPQstC10LTQvtC80LvQtdC90LjRjyDQv9C+0LzQvtGJ0LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dIZWxwTm90aWZpY2F0aW9uID0gaW5qZWN0KFNDX1NIT1dfSEVMUF9OT1RJRklDQVRJT05fSU5fUEhPTkVfSU5QVVQpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGB0LvQtdC00YPQtdGCINC70Lgg0L7RgtC+0LHRgNCw0LbQsNGC0Ywg0YTRg9C90LrRhtC40L7QvdCw0Lsg0LrQvtC00LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvd0NvZGVGaWVsZHM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LLQstC+0LTQsCDQtNC70Y8g0YTQvtGA0LzRiyDCq9CS0YXQvtC0INC90LAg0YHQsNC50YLCuy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogRm9ybUdyb3VwPHtcbiAgICAgICAgcGhvbmU6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICB2ZXJpZmljYXRpb25Db2RlOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZT8uZm9ybSBhcyBGb3JtR3JvdXA8e1xuICAgICAgICAgICAgcGhvbmU6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICAgICAgdmVyaWZpY2F0aW9uQ29kZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIH0+O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9C1INCy0LLQvtC00LAgJ9Cd0L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCcuXG4gICAgICovXG4gICAgcHVibGljIGdldCBwaG9uZUNvbnRyb2woKTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzLnBob25lO1xuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waG9uZUNoZWNrJCA9IHR1aUNvbnRyb2xWYWx1ZTxzdHJpbmcgfCBudWxsPih0aGlzLnBob25lQ29udHJvbCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRUaW1lciQubmV4dCgwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQnVzeUNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDb25maXJtZWRDaGFuZ2UuZW1pdChudWxsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHBOb3RpZmljYXRpb25TZXJ2aWNlLmNsb3NlQWxsSGVscE5vdGlmaWNhdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy52ZXJpZmljYXRpb25Db2RlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy52ZXJpZmljYXRpb25Db2RlLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBob25lQ29udHJvbC52YWxpZCAmJiAhIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZlcmlmaWNhdGlvblNlcnZpY2UuZ2V0UGhvbmVDaGVjayQodmFsdWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zaG91bGRCZUJ1c3koKSA9PT0gdW5kZWZpbmVkICYmICFpc05pbCh0aGlzLnNob3VsZEJlQ29uZmlybWVkKCkpICYmIHJlc3VsdC5pc0NvbmZpcm1lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQnVzeUNoYW5nZS5lbWl0KHJlc3VsdC5pc0J1c3kpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNOaWwocmVzdWx0LmlzQ29uZmlybWVkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvbmZpcm1lZENoYW5nZS5lbWl0KHJlc3VsdC5pc0NvbmZpcm1lZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3VsZEJlQ29uZmlybWVkKCkgPT09IHJlc3VsdC5pc0NvbmZpcm1lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3VsZEJlQnVzeSgpICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zaG91bGRCZUJ1c3koKSAhPT0gcmVzdWx0LmlzQnVzeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBob25lQ29udHJvbC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUmVzcG9uc2U6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaXNCdXN5ID8gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRgSDRgtCw0LrQuNC8INC90L7QvNC10YDQvtC8INGC0LXQu9C10YTQvtC90LAg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJyA6ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YEg0YLQsNC60LjQvCDQvdC+0LzQtdGA0L7QvCDRgtC10LvQtdGE0L7QvdCwINC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGhvbmVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvdWxkQmVDb25maXJtZWQoKSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2hvdWxkQmVDb25maXJtZWQoKSAhPT0gcmVzdWx0LmlzQ29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGhvbmVDb250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJSZXNwb25zZTogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pc0NvbmZpcm1lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICfQotC10LvQtdGE0L7QvSDRg9C20LUg0L/QvtC00YLQstC10YDQttC00ZHQvSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAn0J3QvtC80LXRgCDRgtC10LvQtdGE0L7QvdCwINC90LUg0L/QvtC00YLQstC10YDQttC00ZHQvSDQuNC70Lgg0LLRhdC+0LQg0L/QviDQvdC10LzRgyDQvdC10LLQvtC30LzQvtC20LXQvS4g0J7QsdGA0LDRgtC40YLQtdGB0Ywg0Log0LLQsNGI0LXQvNGDINC/0LXRgNGB0L7QvdCw0LvRjNC90L7QvNGDINC80LXQvdC10LTQttC10YDRgyDQuNC70Lgg0LLQvtC50LTQuNGC0LUg0YEg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQvCBlLW1haWwg0Lgg0L/QsNGA0L7Qu9GPLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5waG9uZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvclJlc3BvbnNlID0gZXJyb3IuZXJyb3IgYXMgU2NJQXBpRXJyb3JSZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5waG9uZUNvbnRyb2wuc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IGVycm9yUmVzcG9uc2UuZXJyb3JzPy5bJ3Bob25lJ10gPz8gW2Vycm9yUmVzcG9uc2UubWVzc2FnZV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChjaGVjaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWxwTm90aWZpY2F0aW9uU2VydmljZS5oZWxwTm90aWZpY2F0aW9uQnlQaG9uZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldEhhdmVDb2RlKGZhbHNlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNldEhhdmVDb2RlKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC+0YHRgtC+0Y/QvdC40LUg0L3QsNC70LjRh9C40Y8g0LrQvtC00LAg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIGhhdmVDb2RlINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+INC10YHRgtGMINC70Lgg0LrQvtC0INC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPINC40LvQuCDQvdC10YIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNldEhhdmVDb2RlKGhhdmVDb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGF2ZUNvZGUuc2V0KGhhdmVDb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0LrRgNGL0YLQuNC1INGD0LLQtdC00L7QvNC70LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNsb3NlTm90aWZpY2F0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhlbHBOb3RpZmljYXRpb25TZXJ2aWNlLmNsb3NlQWxsSGVscE5vdGlmaWNhdGlvbigpO1xuICAgIH1cbn1cbiIsIkBsZXQgcGhvbmVDaGVjayA9IHBob25lQ2hlY2skIHwgYXN5bmM7XG5AbGV0IGxvYWRpbmdBcHByb3ZlQ29kZSA9IGxvYWRpbmdBcHByb3ZlQ29kZSQgfCBhc3luYztcbjxmb3JtXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIlxuPlxuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAg0J3QvtC80LXRgCDRgtC10LvQtdGE0L7QvdCwXG4gICAgICAgIDx0dWktdGV4dGZpZWxkPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIlxuICAgICAgICAgICAgICAgIHR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsXG4gICAgICAgICAgICAgICAgW2ludmFsaWRdPVwicHNldWRvSW52YWxpZCgpIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5U2VhcmNoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjb3VudHJpZXNdPVwiKGNvdW50cmllcyB8IHR1aVNvcnRDb3VudHJpZXMgfCBhc3luYykgfHwgW11cIlxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cInBob25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdHVpLXRleHRmaWVsZD5cblxuICAgICAgICBAaWYgKHN1YnRpdGxlKCkpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1ib2R5LXMgdGV4dC10dWktdGV4dC10ZXJ0aWFyeVwiPlxuICAgICAgICAgICAgICAgIHt7IHN1YnRpdGxlKCkgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgfVxuXG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBob25lXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIEBpZiAoc2hvd0NvZGVGaWVsZHMgJiYgZm9ybS5lbmFibGVkICYmIHBob25lQ2hlY2spIHtcbiAgICAgICAgQGlmICghbG9hZGluZ0FwcHJvdmVDb2RlICYmIGhhdmVDb2RlKCkpIHtcbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICDQmtC+0LQg0LjQtyDQodCc0KFcbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZlcmlmaWNhdGlvbkNvZGVcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWQoKSB8fCBzaG93Q29kZUZpZWxkc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDQmtC+0LQg0LjQtyDQodCc0KFcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwidmVyaWZpY2F0aW9uQ29kZU1hc2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cblxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmVyaWZpY2F0aW9uQ29kZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIH1cbiAgICAgICAgQGxldCBsb2FkaW5nQXBwcm92ZUNvZGVCb29sVmFsdWUgPSAhIWxvYWRpbmdBcHByb3ZlQ29kZTtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgIEBpZiAoIWhhdmVDb2RlKCkpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZW5kQ29kZS5uZXh0KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ0FwcHJvdmVDb2RlQm9vbFZhbHVlIHx8ICFwaG9uZUNoZWNrIHx8IHBob25lQ29udHJvbC5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ0FwcHJvdmVDb2RlQm9vbFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5zYy5zZW5kXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgINCf0L7Qu9GD0YfQuNGC0Ywg0LrQvtC0XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoIWxvYWRpbmdBcHByb3ZlQ29kZUJvb2xWYWx1ZSAmJiAhaGF2ZUNvZGUoKSkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBob25lQ2hlY2sgfHwgcGhvbmVDb250cm9sLmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0SGF2ZUNvZGUodHJ1ZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAg0KMg0LzQtdC90Y8g0LXRgdGC0Ywg0LrQvtC0XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbGV0IHRpbWVyID0gdGltZXIkIHwgYXN5bmM7XG4gICAgICAgICAgICBAaWYgKGhhdmVDb2RlKCkpIHtcbiAgICAgICAgICAgICAgICA8dHVpLWxvYWRlciBbc2hvd0xvYWRlcl09XCJsb2FkaW5nQXBwcm92ZUNvZGVCb29sVmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgW3BzZXVkb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nQXBwcm92ZUNvZGVCb29sVmFsdWUgfHwgdGltZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VuZENvZGUubmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAg0J/QvtCy0YLQvtGA0L3QviDQvtGC0L/RgNCw0LLQuNGC0Ywg0LrQvtC0XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRpbWVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cIiF0ZXh0LXR1aS1iYXNlLTA4XCI+ICjRh9C10YDQtdC3IHt7IHRpbWVyIH19KSA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90dWktbG9hZGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKHNob3dIZWxwTm90aWZpY2F0aW9uICYmIHB1c2hDb250YWN0cygpKSB7XG4gICAgICAgIEBmb3IgKG1hbmFnZXIgb2YgcHVzaENvbnRhY3RzKCk7IHRyYWNrIG1hbmFnZXIuaWQpIHtcbiAgICAgICAgICAgIDx0dWktcHVzaFxuICAgICAgICAgICAgICAgIHR5cGU9XCLQodCy0Y/QttC40YLQtdGB0Ywg0YEg0L3QsNC80Lgg0LTQu9GPINGA0LXRiNC10L3QuNGPINCy0L7Qt9C90LjQutGI0LjRhSDQstC+0L/RgNC+0YHQvtCyXCJcbiAgICAgICAgICAgICAgICAoY2xvc2UpPVwiY2xvc2VOb3RpZmljYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIhdy1hdXRvXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLWljb24gaWNvbj1cIkB0dWkubWVzc2FnZS1zcXVhcmVcIiAvPlxuICAgICAgICAgICAgICAgIDxzYy1tYW5hZ2VyLWNhcmQgW21hbmFnZXJdPVwibWFuYWdlclwiIC8+XG4gICAgICAgICAgICA8L3R1aS1wdXNoPlxuICAgICAgICB9XG4gICAgfVxuPC9mb3JtPlxuXG48bmctdGVtcGxhdGUgI2NoZWNraW5nUGhvbmU+XG4gICAgQGlmICghcGhvbmVDaGVjayAmJiBwaG9uZUNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgPHR1aS1sb2FkZXIgY2xhc3M9XCJzaXplLTRcIiAvPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,163 +0,0 @@
1
- import { InputSignal, OutputEmitterRef, Signal } from '@angular/core';
2
- import { FormControl, FormGroup } from '@angular/forms';
3
- import { ScFeedbackForms, ScISuggestionType, ScUploadedFile } from '@snabcentr/client-core';
4
- import { TuiLooseUnion } from '@taiga-ui/cdk';
5
- import { TuiDialogContext } from '@taiga-ui/core';
6
- import { TuiCountryIsoCode } from '@taiga-ui/i18n';
7
- import { TuiFileLike } from '@taiga-ui/kit';
8
- import { Observable, Subject } from 'rxjs';
9
- import { ScFeedbackFormConfig, ScFeedbackFormFieldType } from '../interfaces';
10
- import * as i0 from "@angular/core";
11
- /**
12
- * Компонент формы обратной связи.
13
- */
14
- export declare class ScFeedbackFormComponent {
15
- /**
16
- * Контекст диалогового окна, в котором открыт компонент.
17
- */
18
- protected readonly context: TuiDialogContext<void, {
19
- onClickOfferHandler: () => void;
20
- } & ScFeedbackFormConfig> | null;
21
- /**
22
- * Символьное обозначение (slug) формы.
23
- */
24
- readonly slugInput: InputSignal<TuiLooseUnion<ScFeedbackForms>>;
25
- /**
26
- * Список полей, доступных в данной форме.
27
- */
28
- readonly fieldsInput: InputSignal<ScFeedbackFormFieldType[]>;
29
- /**
30
- * Символьное обозначение (slug) формы.
31
- */
32
- protected readonly slug: Signal<TuiLooseUnion<ScFeedbackForms>>;
33
- /**
34
- * Список полей, доступных в данной форме.
35
- */
36
- protected readonly fields: Signal<ScFeedbackFormFieldType[]>;
37
- /**
38
- * Событие нажатия на кнопку договора оферты.
39
- */
40
- readonly clickOffer: OutputEmitterRef<void>;
41
- /**
42
- * Событие успешной отправки формы.
43
- */
44
- readonly sendSuccess: OutputEmitterRef<void>;
45
- /**
46
- * Сервис обратной связи.
47
- */
48
- private readonly feedbackService;
49
- /**
50
- * Сервис конвертации данных.
51
- */
52
- private readonly convertersService;
53
- /**
54
- * Максимальное количество файлов, отправляемых в форме.
55
- */
56
- private readonly maxFilesInForm;
57
- /**
58
- * Сервис данных о пользователе.
59
- */
60
- private readonly user$;
61
- /**
62
- * Поле ввода токена капчи, имя `recaptcha` задано API.
63
- */
64
- protected readonly recaptchaControl: FormControl<string | null>;
65
- /**
66
- * Группа полей ввода для формы «Пожелания и предложения по улучшению сайта».
67
- */
68
- protected readonly form: FormGroup<{
69
- name: FormControl<string | null>;
70
- phone: FormControl<string | null>;
71
- email: FormControl<string | null>;
72
- message: FormControl<string | null>;
73
- files: FormControl<ScUploadedFile[] | null>;
74
- isShouldUseMessenger: FormControl<boolean | null>;
75
- }>;
76
- /**
77
- * Перечисление типов подсказок.
78
- */
79
- protected readonly suggestionType: typeof ScISuggestionType;
80
- /**
81
- * {@link Subject} события отправки формы.
82
- */
83
- protected readonly onSubmit: Subject<void>;
84
- /**
85
- * {@link Observable} запроса на отправку данных.
86
- */
87
- protected readonly request$: Observable<undefined | null>;
88
- /**
89
- * {@link Observable} изменения состояния загрузки данных.
90
- */
91
- protected readonly loading$: Observable<boolean>;
92
- /**
93
- * Управляет состоянием загруженных файлов.
94
- */
95
- protected readonly loadedFile: FormControl<TuiFileLike[] | null>;
96
- /**
97
- * Observable, который отслеживает, приняты ли файлы в соответствии с требованиями по типу размеру и т.д.
98
- */
99
- protected readonly accepted$: Observable<File[]>;
100
- /**
101
- * Список файлов, которые были отклонены при загрузке.
102
- */
103
- protected rejected: readonly File[];
104
- /**
105
- * Список стран.
106
- */
107
- protected readonly countries: readonly TuiCountryIsoCode[];
108
- /**
109
- * Инициализирует экземпляр класса {@link ScFeedbackFormComponent}.
110
- */
111
- constructor();
112
- /**
113
- * Удаляет валидацию со всех полей ввода.
114
- */
115
- private clearAllValidators;
116
- /**
117
- * Устанавливает валидацию со для указанных полей ввода.
118
- *
119
- * @param fields Поля, для которых нужно установить валидацию.
120
- */
121
- private setAllValidators;
122
- /**
123
- * Обрабатывает отклоненные файлы.
124
- *
125
- * @param files Список файлов, которые были отклонены.
126
- */
127
- protected onReject(files: readonly File[]): void;
128
- /**
129
- * Удаляет файл из списка загруженных и отклоненных файлов.
130
- *
131
- * @param file Файл, который нужно удалить.
132
- */
133
- protected onRemove(file: File): void;
134
- /**
135
- * Очищает список файлов.
136
- */
137
- protected onRemoveAll(): void;
138
- /**
139
- * Загружает файл в форму обратной связи.
140
- *
141
- * @param files Набор файлов.
142
- */
143
- private onUploadFile;
144
- /**
145
- * Проверяет количество файлов загруженных пользователем.
146
- *
147
- * @param maxLength максимальное допустимое количество файлов для отправки.
148
- */
149
- private maxFilesLength;
150
- /**
151
- * Выполняет очистку полей формы.
152
- */
153
- private resetForm;
154
- /**
155
- * Проверяет, что номер телефона подходит для использования в мессенджерах.
156
- *
157
- * @param value Номер телефона, который необходимо проверить.
158
- * @returns Признак того, что номер телефона подходит для мессенджеров.
159
- */
160
- protected isValidPhoneNumberForMessenger(value: string): boolean;
161
- static ɵfac: i0.ɵɵFactoryDeclaration<ScFeedbackFormComponent, never>;
162
- static ɵcmp: i0.ɵɵComponentDeclaration<ScFeedbackFormComponent, "sc-feedback-form", never, { "slugInput": { "alias": "slug"; "required": false; "isSignal": true; }; "fieldsInput": { "alias": "fields"; "required": false; "isSignal": true; }; }, { "clickOffer": "clickOffer"; "sendSuccess": "sendSuccess"; }, never, never, true, never>;
163
- }
@@ -1,20 +0,0 @@
1
- import { TuiDialogContext } from '@taiga-ui/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Компонент «Спасибо!».
5
- */
6
- export declare class ScGratitudeComponent {
7
- /**
8
- * Контекст диалогового окна, в котором открыт компонент.
9
- */
10
- protected readonly context: TuiDialogContext<void, {
11
- autoClose: number;
12
- subTitle: string;
13
- }> | null;
14
- /**
15
- * Инициализирует экземпляр класса {@link ScGratitudeComponent}.
16
- */
17
- constructor();
18
- static ɵfac: i0.ɵɵFactoryDeclaration<ScGratitudeComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<ScGratitudeComponent, "sc-gratitude", never, {}, {}, never, never, true, never>;
20
- }