@snabcentr/client-ui 3.37.7 → 4.0.1

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 (391) hide show
  1. package/fesm2022/snabcentr-client-ui.mjs +3524 -3958
  2. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  3. package/index.d.ts +4298 -3
  4. package/package.json +1 -3
  5. package/release_notes.tmp +2 -5
  6. package/styles/tailwind/tailwind.scss +0 -176
  7. package/accordion/index.d.ts +0 -3
  8. package/accordion/sc-accordion-content.directive.d.ts +0 -9
  9. package/accordion/sc-accordion.component.d.ts +0 -56
  10. package/accordion/sc-accordion.module.d.ts +0 -15
  11. package/auth/enums/auth-method.d.ts +0 -13
  12. package/auth/index.d.ts +0 -8
  13. package/auth/interfaces/api-error-response.d.ts +0 -13
  14. package/auth/interfaces/index.d.ts +0 -3
  15. package/auth/interfaces/sc-bank-account-form-group.d.ts +0 -11
  16. package/auth/interfaces/sc-contact-form-group.d.ts +0 -10
  17. package/auth/sc-auth.module.d.ts +0 -26
  18. package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +0 -39
  19. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +0 -41
  20. package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +0 -53
  21. package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +0 -106
  22. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +0 -161
  23. package/banner/index.d.ts +0 -2
  24. package/banner/sc-banner.component.d.ts +0 -88
  25. package/banner/sc-banner.module.d.ts +0 -18
  26. package/brands-list/index.d.ts +0 -2
  27. package/brands-list/sc-brands-list.component.d.ts +0 -15
  28. package/brands-list/sc-brands-list.module.d.ts +0 -12
  29. package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +0 -102
  30. package/cart/add-or-editing-cart-item-dialog/index.d.ts +0 -2
  31. package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +0 -48
  32. package/cart/cart-item/sc-cart-item.component.d.ts +0 -25
  33. package/cart/index.d.ts +0 -3
  34. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +0 -62
  35. package/catalog/category-card/sc-category-card.component.d.ts +0 -76
  36. package/catalog/cost-with-discount/cost-with-discount.component.d.ts +0 -23
  37. package/catalog/download-price-list/sc-download-price-list.component.d.ts +0 -38
  38. package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +0 -48
  39. package/catalog/index.d.ts +0 -12
  40. package/catalog/input-quantity/sc-input-quantity.component.d.ts +0 -82
  41. package/catalog/notify-when-in-stock-dialog/index.d.ts +0 -2
  42. package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +0 -90
  43. package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +0 -22
  44. package/catalog/price-card/sc-price-card.component.d.ts +0 -18
  45. package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +0 -10
  46. package/catalog/price-history/sc-price-history.component.d.ts +0 -88
  47. package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +0 -40
  48. package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +0 -47
  49. package/catalog/sc-catalog.module.d.ts +0 -29
  50. package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +0 -25
  51. package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +0 -49
  52. package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +0 -23
  53. package/contacts/index.d.ts +0 -7
  54. package/contacts/manager-card/sc-manager-card.component.d.ts +0 -22
  55. package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +0 -18
  56. package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +0 -28
  57. package/contacts/sc-contacts.module.d.ts +0 -28
  58. package/contacts/tokens/index.d.ts +0 -2
  59. package/contacts/tokens/sc-manager-qr-handler.token.d.ts +0 -6
  60. package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +0 -5
  61. package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +0 -49
  62. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +0 -161
  63. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +0 -62
  64. package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +0 -49
  65. package/contragents/index.d.ts +0 -7
  66. package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +0 -64
  67. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +0 -125
  68. package/contragents/sc-contragents.module.d.ts +0 -27
  69. package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +0 -141
  70. package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +0 -50
  71. package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +0 -49
  72. package/delivery-address/index.d.ts +0 -4
  73. package/delivery-address/sc-delivery-address.module.d.ts +0 -26
  74. package/dialogs/index.d.ts +0 -1
  75. package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +0 -42
  76. package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +0 -136
  77. package/directives/index.d.ts +0 -7
  78. package/directives/links/index.d.ts +0 -4
  79. package/directives/links/sc-email-link.directive.d.ts +0 -25
  80. package/directives/links/sc-link-location.d.ts +0 -5
  81. package/directives/links/sc-links.d.ts +0 -7
  82. package/directives/links/sc-tel-link.directive.d.ts +0 -40
  83. package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +0 -18
  84. package/directives/next-input-focus/sc-next-input-focus.module.d.ts +0 -10
  85. package/directives/sc-date-value-transformer.directive.d.ts +0 -8
  86. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +0 -14
  87. package/directives/terminal-link/sc-terminal-link.directive.d.ts +0 -34
  88. package/error-handler/consts/error-change-handler.providers.d.ts +0 -5
  89. package/error-handler/error-block-status/error-block-status.component.d.ts +0 -37
  90. package/error-handler/index.d.ts +0 -4
  91. package/error-handler/interfaces/i-block-error.d.ts +0 -17
  92. package/error-handler/sc-error-handler.component.d.ts +0 -40
  93. package/esm2022/accordion/index.mjs +0 -4
  94. package/esm2022/accordion/sc-accordion-content.directive.mjs +0 -17
  95. package/esm2022/accordion/sc-accordion.component.mjs +0 -92
  96. package/esm2022/accordion/sc-accordion.module.mjs +0 -26
  97. package/esm2022/auth/enums/auth-method.mjs +0 -15
  98. package/esm2022/auth/index.mjs +0 -9
  99. package/esm2022/auth/interfaces/api-error-response.mjs +0 -2
  100. package/esm2022/auth/interfaces/index.mjs +0 -4
  101. package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +0 -2
  102. package/esm2022/auth/interfaces/sc-contact-form-group.mjs +0 -2
  103. package/esm2022/auth/sc-auth.module.mjs +0 -99
  104. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +0 -87
  105. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +0 -86
  106. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +0 -89
  107. package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +0 -187
  108. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +0 -333
  109. package/esm2022/banner/index.mjs +0 -3
  110. package/esm2022/banner/sc-banner.component.mjs +0 -143
  111. package/esm2022/banner/sc-banner.module.mjs +0 -30
  112. package/esm2022/brands-list/index.mjs +0 -3
  113. package/esm2022/brands-list/sc-brands-list.component.mjs +0 -24
  114. package/esm2022/brands-list/sc-brands-list.module.mjs +0 -22
  115. 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
  116. package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +0 -3
  117. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +0 -74
  118. package/esm2022/cart/cart-item/sc-cart-item.component.mjs +0 -74
  119. package/esm2022/cart/index.mjs +0 -4
  120. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +0 -110
  121. package/esm2022/catalog/category-card/sc-category-card.component.mjs +0 -102
  122. package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +0 -38
  123. package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +0 -56
  124. package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +0 -76
  125. package/esm2022/catalog/index.mjs +0 -13
  126. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +0 -177
  127. package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +0 -3
  128. package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +0 -173
  129. package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +0 -35
  130. package/esm2022/catalog/price-card/sc-price-card.component.mjs +0 -52
  131. package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +0 -56
  132. package/esm2022/catalog/price-history/sc-price-history.component.mjs +0 -140
  133. package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +0 -65
  134. package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +0 -54
  135. package/esm2022/catalog/sc-catalog.module.mjs +0 -125
  136. package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +0 -42
  137. package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +0 -91
  138. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +0 -38
  139. package/esm2022/contacts/index.mjs +0 -8
  140. package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +0 -58
  141. package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +0 -28
  142. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +0 -37
  143. package/esm2022/contacts/sc-contacts.module.mjs +0 -92
  144. package/esm2022/contacts/tokens/index.mjs +0 -3
  145. package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +0 -24
  146. package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +0 -7
  147. package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +0 -81
  148. package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +0 -278
  149. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +0 -75
  150. package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +0 -69
  151. package/esm2022/contragents/index.mjs +0 -8
  152. package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +0 -72
  153. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +0 -242
  154. package/esm2022/contragents/sc-contragents.module.mjs +0 -118
  155. package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +0 -250
  156. package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +0 -60
  157. package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +0 -69
  158. package/esm2022/delivery-address/index.mjs +0 -5
  159. package/esm2022/delivery-address/sc-delivery-address.module.mjs +0 -99
  160. package/esm2022/dialogs/index.mjs +0 -2
  161. package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +0 -68
  162. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +0 -170
  163. package/esm2022/directives/index.mjs +0 -8
  164. package/esm2022/directives/links/index.mjs +0 -5
  165. package/esm2022/directives/links/sc-email-link.directive.mjs +0 -49
  166. package/esm2022/directives/links/sc-link-location.mjs +0 -2
  167. package/esm2022/directives/links/sc-links.mjs +0 -8
  168. package/esm2022/directives/links/sc-tel-link.directive.mjs +0 -79
  169. package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +0 -43
  170. package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +0 -19
  171. package/esm2022/directives/sc-date-value-transformer.directive.mjs +0 -30
  172. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +0 -31
  173. package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +0 -69
  174. package/esm2022/error-handler/consts/error-change-handler.providers.mjs +0 -8
  175. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +0 -76
  176. package/esm2022/error-handler/index.mjs +0 -5
  177. package/esm2022/error-handler/interfaces/i-block-error.mjs +0 -2
  178. package/esm2022/error-handler/sc-error-handler.component.mjs +0 -58
  179. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +0 -336
  180. package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +0 -32
  181. package/esm2022/feedback/index.mjs +0 -4
  182. package/esm2022/feedback/interfaces/index.mjs +0 -2
  183. package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +0 -2
  184. package/esm2022/files/directives/index.mjs +0 -3
  185. package/esm2022/files/directives/tree-top.directive.mjs +0 -63
  186. package/esm2022/files/directives/tree.directive.mjs +0 -47
  187. package/esm2022/files/file-tree-item/file-tree-item.component.mjs +0 -18
  188. package/esm2022/files/files-and-documents/files-and-documents.component.mjs +0 -61
  189. package/esm2022/files/files-and-documents.module.mjs +0 -28
  190. package/esm2022/files/index.mjs +0 -6
  191. package/esm2022/files/interfaces/tree-node.mjs +0 -2
  192. package/esm2022/files/services/index.mjs +0 -3
  193. package/esm2022/files/services/tree-icon.service.mjs +0 -49
  194. package/esm2022/files/services/tree-loader.service.mjs +0 -62
  195. package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +0 -155
  196. package/esm2022/form-fields/form-fields.module.mjs +0 -69
  197. package/esm2022/form-fields/index.mjs +0 -4
  198. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +0 -175
  199. package/esm2022/helpers/index.mjs +0 -2
  200. package/esm2022/helpers/sc-px-converter.mjs +0 -27
  201. package/esm2022/icons/index.mjs +0 -2
  202. package/esm2022/icons/sc-client-ui-icons-name.mjs +0 -99
  203. package/esm2022/loader/index.mjs +0 -2
  204. package/esm2022/loader/sc-i-loader.mjs +0 -2
  205. package/esm2022/masks/index.mjs +0 -8
  206. package/esm2022/masks/sc-account-number-mask.mjs +0 -7
  207. package/esm2022/masks/sc-bic-mask.mjs +0 -7
  208. package/esm2022/masks/sc-correspondent-account-mask.mjs +0 -7
  209. package/esm2022/masks/sc-inn-mask.mjs +0 -13
  210. package/esm2022/masks/sc-kpp-mask.mjs +0 -7
  211. package/esm2022/masks/sc-okpo-mask.mjs +0 -13
  212. package/esm2022/masks/sc-phone-verification-code-mask.mjs +0 -7
  213. package/esm2022/models/i-sc-image.mjs +0 -2
  214. package/esm2022/models/index.mjs +0 -2
  215. package/esm2022/news/index.mjs +0 -4
  216. package/esm2022/news/news-card/sc-news-card.component.mjs +0 -34
  217. package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +0 -31
  218. package/esm2022/news/sc-news.module.mjs +0 -26
  219. package/esm2022/order/index.mjs +0 -4
  220. package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +0 -60
  221. package/esm2022/order/sc-order.module.mjs +0 -53
  222. package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +0 -35
  223. package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +0 -28
  224. package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +0 -6
  225. package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +0 -59
  226. package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +0 -106
  227. package/esm2022/pages/index.mjs +0 -4
  228. package/esm2022/pipes/index.mjs +0 -3
  229. package/esm2022/pipes/sc-format-date.mjs +0 -33
  230. package/esm2022/pipes/sc-phone-format.mjs +0 -44
  231. package/esm2022/profile/index.mjs +0 -3
  232. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +0 -175
  233. package/esm2022/profile/sc-profile.module.mjs +0 -76
  234. package/esm2022/providers/date-value-transformer/index.mjs +0 -4
  235. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +0 -2
  236. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +0 -26
  237. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +0 -37
  238. package/esm2022/providers/index.mjs +0 -12
  239. package/esm2022/providers/sc-allow-select-terminated.mjs +0 -6
  240. package/esm2022/providers/sc-country-ids.mjs +0 -6
  241. package/esm2022/providers/sc-date-formatter.mjs +0 -12
  242. package/esm2022/providers/sc-date-value-transformer.mjs +0 -12
  243. package/esm2022/providers/sc-help-notification-close.mjs +0 -7
  244. package/esm2022/providers/sc-help-notification-limit.mjs +0 -6
  245. package/esm2022/providers/sc-max-files-in-form-input.mjs +0 -6
  246. package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +0 -6
  247. package/esm2022/providers/sc-page-size-options.mjs +0 -6
  248. package/esm2022/providers/sc-user-providers.mjs +0 -33
  249. package/esm2022/providers/sc-verification-code-timeout.mjs +0 -6
  250. package/esm2022/public-api.mjs +0 -35
  251. package/esm2022/qrcode/index.mjs +0 -3
  252. package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +0 -58
  253. package/esm2022/qrcode/sc-qrcode.module.mjs +0 -25
  254. package/esm2022/samples/index.mjs +0 -5
  255. package/esm2022/samples/interfaces/index.mjs +0 -3
  256. package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +0 -2
  257. package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +0 -2
  258. package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +0 -42
  259. package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +0 -63
  260. package/esm2022/samples/sc-sample.module.mjs +0 -68
  261. package/esm2022/services/index.mjs +0 -2
  262. package/esm2022/services/sc-help-notification.service.mjs +0 -90
  263. package/esm2022/share-button/index.mjs +0 -3
  264. package/esm2022/share-button/sc-share-button.component.mjs +0 -35
  265. package/esm2022/share-button/sc-share-button.module.mjs +0 -22
  266. package/esm2022/snabcentr-client-ui.mjs +0 -5
  267. package/esm2022/user/index.mjs +0 -6
  268. package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +0 -75
  269. package/esm2022/user/sc-user.module.mjs +0 -89
  270. package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +0 -122
  271. package/esm2022/user/user-managers/sc-user-managers.component.mjs +0 -42
  272. package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +0 -106
  273. package/esm2022/validators/index.mjs +0 -7
  274. package/esm2022/validators/sc-at-least-one-required-validator.mjs +0 -25
  275. package/esm2022/validators/sc-bic-validator.mjs +0 -10
  276. package/esm2022/validators/sc-correspondent-account-validator.mjs +0 -10
  277. package/esm2022/validators/sc-password-confirm-matching-validator.mjs +0 -17
  278. package/esm2022/validators/sc-phone-validator.mjs +0 -14
  279. package/esm2022/validators/step-validator.mjs +0 -18
  280. package/esm2022/verification/index.mjs +0 -4
  281. package/esm2022/verification/providers/index.mjs +0 -3
  282. package/esm2022/verification/providers/sc-phone-approve-code-sender.provider.mjs +0 -12
  283. package/esm2022/verification/providers/sc-phone-approve-code-sender.token.mjs +0 -7
  284. package/esm2022/verification/sc-verification.module.mjs +0 -88
  285. package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +0 -277
  286. package/feedback/feedback-form/sc-feedback-form.component.d.ts +0 -159
  287. package/feedback/gratitude/sc-gratitude.component.d.ts +0 -20
  288. package/feedback/index.d.ts +0 -3
  289. package/feedback/interfaces/index.d.ts +0 -1
  290. package/feedback/interfaces/sc-feedback-form-config.d.ts +0 -23
  291. package/files/directives/index.d.ts +0 -2
  292. package/files/directives/tree-top.directive.d.ts +0 -33
  293. package/files/directives/tree.directive.d.ts +0 -35
  294. package/files/file-tree-item/file-tree-item.component.d.ts +0 -9
  295. package/files/files-and-documents/files-and-documents.component.d.ts +0 -27
  296. package/files/files-and-documents.module.d.ts +0 -17
  297. package/files/index.d.ts +0 -5
  298. package/files/interfaces/tree-node.d.ts +0 -29
  299. package/files/services/index.d.ts +0 -2
  300. package/files/services/tree-icon.service.d.ts +0 -23
  301. package/files/services/tree-loader.service.d.ts +0 -43
  302. package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +0 -78
  303. package/form-fields/form-fields.module.d.ts +0 -19
  304. package/form-fields/index.d.ts +0 -3
  305. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +0 -73
  306. package/helpers/index.d.ts +0 -1
  307. package/helpers/sc-px-converter.d.ts +0 -15
  308. package/icons/index.d.ts +0 -1
  309. package/icons/sc-client-ui-icons-name.d.ts +0 -4
  310. package/loader/index.d.ts +0 -1
  311. package/loader/sc-i-loader.d.ts +0 -9
  312. package/masks/index.d.ts +0 -7
  313. package/masks/sc-account-number-mask.d.ts +0 -5
  314. package/masks/sc-bic-mask.d.ts +0 -5
  315. package/masks/sc-correspondent-account-mask.d.ts +0 -5
  316. package/masks/sc-inn-mask.d.ts +0 -9
  317. package/masks/sc-kpp-mask.d.ts +0 -5
  318. package/masks/sc-okpo-mask.d.ts +0 -9
  319. package/masks/sc-phone-verification-code-mask.d.ts +0 -5
  320. package/models/i-sc-image.d.ts +0 -17
  321. package/models/index.d.ts +0 -1
  322. package/news/index.d.ts +0 -3
  323. package/news/news-card/sc-news-card.component.d.ts +0 -22
  324. package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +0 -16
  325. package/news/sc-news.module.d.ts +0 -16
  326. package/order/index.d.ts +0 -3
  327. package/order/order-item-mobile/sc-order-item-mobile.component.d.ts +0 -39
  328. package/order/sc-order.module.d.ts +0 -19
  329. package/order/sc-payment-status/sc-payment-status.component.d.ts +0 -25
  330. package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +0 -18
  331. package/pages/frequently-asked-questions/sc-page-size-options.d.ts +0 -5
  332. package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +0 -28
  333. package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +0 -79
  334. package/pages/index.d.ts +0 -3
  335. package/pipes/index.d.ts +0 -2
  336. package/pipes/sc-format-date.d.ts +0 -20
  337. package/pipes/sc-phone-format.d.ts +0 -21
  338. package/profile/index.d.ts +0 -2
  339. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +0 -126
  340. package/profile/sc-profile.module.d.ts +0 -24
  341. package/providers/date-value-transformer/index.d.ts +0 -3
  342. package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +0 -9
  343. package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +0 -16
  344. package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +0 -22
  345. package/providers/index.d.ts +0 -11
  346. package/providers/sc-allow-select-terminated.d.ts +0 -5
  347. package/providers/sc-country-ids.d.ts +0 -5
  348. package/providers/sc-date-formatter.d.ts +0 -6
  349. package/providers/sc-date-value-transformer.d.ts +0 -5
  350. package/providers/sc-help-notification-close.d.ts +0 -6
  351. package/providers/sc-help-notification-limit.d.ts +0 -5
  352. package/providers/sc-max-files-in-form-input.d.ts +0 -5
  353. package/providers/sc-notify-when-in-stock-required-fields.d.ts +0 -5
  354. package/providers/sc-page-size-options.d.ts +0 -5
  355. package/providers/sc-user-providers.d.ts +0 -21
  356. package/providers/sc-verification-code-timeout.d.ts +0 -5
  357. package/public-api.d.ts +0 -31
  358. package/qrcode/index.d.ts +0 -2
  359. package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +0 -37
  360. package/qrcode/sc-qrcode.module.d.ts +0 -14
  361. package/samples/index.d.ts +0 -4
  362. package/samples/interfaces/index.d.ts +0 -2
  363. package/samples/interfaces/sc-i-preview-sample.d.ts +0 -56
  364. package/samples/interfaces/sc-preview-mosquito-config.d.ts +0 -62
  365. package/samples/preview-sample/sc-preview-sample.component.d.ts +0 -30
  366. package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +0 -50
  367. package/samples/sc-sample.module.d.ts +0 -19
  368. package/services/index.d.ts +0 -1
  369. package/services/sc-help-notification.service.d.ts +0 -64
  370. package/share-button/index.d.ts +0 -2
  371. package/share-button/sc-share-button.component.d.ts +0 -22
  372. package/share-button/sc-share-button.module.d.ts +0 -12
  373. package/user/index.d.ts +0 -5
  374. package/user/reset-user-password/sc-reset-user-password.component.d.ts +0 -46
  375. package/user/sc-user.module.d.ts +0 -25
  376. package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +0 -63
  377. package/user/user-managers/sc-user-managers.component.d.ts +0 -26
  378. package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +0 -53
  379. package/validators/index.d.ts +0 -6
  380. package/validators/sc-at-least-one-required-validator.d.ts +0 -10
  381. package/validators/sc-bic-validator.d.ts +0 -8
  382. package/validators/sc-correspondent-account-validator.d.ts +0 -8
  383. package/validators/sc-password-confirm-matching-validator.d.ts +0 -8
  384. package/validators/sc-phone-validator.d.ts +0 -5
  385. package/validators/step-validator.d.ts +0 -8
  386. package/verification/index.d.ts +0 -3
  387. package/verification/providers/index.d.ts +0 -2
  388. package/verification/providers/sc-phone-approve-code-sender.provider.d.ts +0 -6
  389. package/verification/providers/sc-phone-approve-code-sender.token.d.ts +0 -7
  390. package/verification/sc-verification.module.d.ts +0 -21
  391. package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +0 -149
@@ -1,278 +0,0 @@
1
- /* eslint-disable class-methods-use-this,@typescript-eslint/unbound-method,no-restricted-syntax */
2
- import { HttpErrorResponse } from '@angular/common/http';
3
- import { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';
4
- import { FormControl, FormGroup, Validators } from '@angular/forms';
5
- import { ScOpfList, ScUserMetrikaGoalsEnum, } from '@snabcentr/client-core';
6
- import { tuiIsFalsy, tuiMarkControlAsTouchedAndValidate } from '@taiga-ui/cdk';
7
- import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus';
8
- import { catchError, filter, map, of, share, startWith, Subject, switchMap, tap } from 'rxjs';
9
- import { scBicValidator, scCorrespondentAccountValidator } from '../../validators';
10
- import { phoneValidator } from '../../validators/sc-phone-validator';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@snabcentr/client-core";
13
- import * as i2 from "@angular/forms";
14
- import * as i3 from "@angular/common";
15
- import * as i4 from "@taiga-ui/core";
16
- import * as i5 from "../../contacts/new-contact-form/sc-new-contact-form.component";
17
- import * as i6 from "@taiga-ui/kit";
18
- import * as i7 from "../new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component";
19
- import * as i8 from "../new-contragent-form/sc-new-contragent-form.component";
20
- /**
21
- * Компотен добавления контрагента.
22
- */
23
- export class ScAddContragentDialogComponent {
24
- /**
25
- * Инициализирует экземпляр класса {@link ScAddContragentDialogComponent}.
26
- *
27
- * @param referencesService Сервис справочников.
28
- * @param contragentService Сервис работы с контрагентами.
29
- * @param convertersService Сервис конвертации данных.
30
- * @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
31
- * @param locationsService Сервис для получения списков стран, регионов, городов.
32
- * @param context Контекст диалогового окна, в котором открыт компонент.
33
- */
34
- constructor(referencesService, contragentService, convertersService, userMetrikaService, locationsService, context) {
35
- this.referencesService = referencesService;
36
- this.contragentService = contragentService;
37
- this.convertersService = convertersService;
38
- this.userMetrikaService = userMetrikaService;
39
- this.locationsService = locationsService;
40
- this.context = context;
41
- /**
42
- * Перечисление организационно-правовых форм.
43
- */
44
- this.opfListEnum = ScOpfList;
45
- /**
46
- * Индекс этапа.
47
- */
48
- this.stepIndex = 0;
49
- /**
50
- * Список этапов создания контрагента.
51
- */
52
- this.steps = ['Общие данные контрагента', 'Контакты контрагента', 'Банковские реквизиты контрагента'];
53
- /**
54
- * Родительская `FormGroup`.
55
- */
56
- this.form = new FormGroup({
57
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
- contragent: new FormGroup({}),
59
- });
60
- /**
61
- * {@link Subject} события отправки формы.
62
- */
63
- this.onSubmit = new Subject();
64
- /**
65
- * {@link Observable} запроса добавления контрагента.
66
- */
67
- this.request$ = this.onSubmit.pipe(map(() => this.form.value.contragent), filter((value) => this.form.valid), switchMap((value) => {
68
- return this.contragentService.createContragent$(this.convertersService.removeNullRecursive(value)).pipe(tap((contragent) => {
69
- this.context.completeWith(contragent);
70
- }), catchError((error) => {
71
- tuiMarkControlAsTouchedAndValidate(this.form);
72
- if (error instanceof HttpErrorResponse) {
73
- const { errors, message } = error.error;
74
- for (const key in errors) {
75
- if (Object.hasOwn(errors, key)) {
76
- // eslint-disable-next-line security/detect-object-injection
77
- this.form.controls.contragent.get(key)?.setErrors({ serverResponse: errors[key] });
78
- }
79
- }
80
- if (!errors && message) {
81
- this.form.setErrors({ serverResponse: [message] });
82
- }
83
- this.stepIndex = this.steps.findIndex((_, index) => !this.canNextStep(index));
84
- }
85
- return of({});
86
- }), startWith(null));
87
- }), share());
88
- /**
89
- * {@link Observable} изменения состояния загрузки данных аутентификации по номеру телефона.
90
- */
91
- this.loading$ = this.request$.pipe(map(tuiIsFalsy));
92
- }
93
- /** @inheritdoc */
94
- ngAfterViewInit() {
95
- this.userMetrikaService.emitUserMetrikaEvent({
96
- target: ScUserMetrikaGoalsEnum.userProfileContragentAddShow,
97
- });
98
- }
99
- /**
100
- * Текущий выбранный ОПФ.
101
- */
102
- get selectOpf() {
103
- return this.opfListEnum[this.form.controls.contragent.controls['opf'].value];
104
- }
105
- /**
106
- * Список групп полей банковских реквизитов.
107
- */
108
- get bankAccounts() {
109
- return this.form.controls.contragent.get('bankAccounts');
110
- }
111
- /**
112
- * Список групп полей контактных лиц.
113
- */
114
- get contacts() {
115
- return this.form.controls.contragent.get('contacts');
116
- }
117
- /**
118
- * Выполняет навигацию по форме создания контрагента.
119
- *
120
- * @param delta Значение, на которое необходимо выполнить навигацию.
121
- */
122
- navigate(delta) {
123
- this.stepIndex = (this.stepIndex + delta) % 3;
124
- }
125
- /**
126
- * Проверяет, может ли пользователь перейти к следующему шагу создания контрагента.
127
- * При проверке каждого этапа последовательно проверяется корректность заполнения данных на предыдущих этапах.
128
- *
129
- * @param index Индекс этапа для которого нужно проверить валидность.
130
- * @returns Выводит значение `boolean` на основании {@link index}.
131
- */
132
- canNextStep(index) {
133
- switch (index) {
134
- case 0:
135
- for (const key in this.form.controls.contragent.controls) {
136
- if (Object.prototype.hasOwnProperty.call(this.form.controls.contragent.controls, key) &&
137
- // eslint-disable-next-line security/detect-object-injection
138
- !Array.isArray(this.form.controls.contragent.controls[key].value) &&
139
- // eslint-disable-next-line security/detect-object-injection
140
- this.form.controls.contragent.controls[key].invalid) {
141
- return false;
142
- }
143
- }
144
- return true;
145
- case 1: {
146
- const { contacts } = this.form.controls.contragent.controls;
147
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
148
- return contacts?.valid ?? false;
149
- }
150
- case 2: {
151
- const { bankAccounts } = this.form.controls.contragent.controls;
152
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
153
- return bankAccounts?.valid ?? false;
154
- }
155
- default:
156
- return true;
157
- }
158
- }
159
- /**
160
- * Возвращает {@link Observable} списка направлений продаж.
161
- */
162
- getSalesDirections$() {
163
- return this.referencesService.directions$;
164
- }
165
- /**
166
- * Возвращает {@link Observable} списка направлений продаж.
167
- *
168
- * @param directionId Идентификатор направления продаж.
169
- */
170
- getDirectionById$(directionId) {
171
- return this.referencesService.getDirectionById$(directionId);
172
- }
173
- /**
174
- * Возвращает {@link Observable} список организационно-правовых форм.
175
- */
176
- getOpf$() {
177
- return this.referencesService.opf$;
178
- }
179
- /**
180
- * Возвращает {@link Observable} организационно-правовой формы, соответствующий символьному обозначению (slug) на входе.
181
- *
182
- * @param slug Символьное обозначение (slug).
183
- */
184
- getOpfBySlug$(slug) {
185
- return this.referencesService.getOpfBySlug$(slug);
186
- }
187
- /**
188
- * Возвращает {@link Observable} списка валют.
189
- */
190
- getCurrencies$() {
191
- return this.referencesService.currencies$;
192
- }
193
- /**
194
- * Возвращает {@link Observable} валюты, соответствующий идентификатору на входе.
195
- *
196
- * @param currencyId — Идентификатор валюты.
197
- */
198
- getCurrencyById$(currencyId) {
199
- return this.referencesService.getCurrencyById$(currencyId);
200
- }
201
- /**
202
- * Возвращает {@link Observable} списка стран.
203
- */
204
- getCountries$() {
205
- return this.locationsService.getCountries$();
206
- }
207
- /**
208
- * Возвращает {@link Observable} страны, соответствующий идентификатору на входе.
209
- *
210
- * @param countryId — Идентификатор страны.
211
- */
212
- getCountriesById$(countryId) {
213
- return this.locationsService.getCountries$().pipe(map((countries) => countries.find((country) => country.id === countryId)));
214
- }
215
- /**
216
- * Создаёт группу полей банковских реквизитов.
217
- */
218
- createBankAccountGroup() {
219
- return new FormGroup({
220
- bankName: new FormControl(null, Validators.required),
221
- bic: new FormControl(null, [Validators.required, Validators.minLength(9), scBicValidator]),
222
- accountNumber: new FormControl(null, [Validators.required, Validators.minLength(20)]),
223
- correspondentAccount: new FormControl(null, [Validators.required, Validators.minLength(20), scCorrespondentAccountValidator]),
224
- currencyId: new FormControl(null, Validators.required),
225
- });
226
- }
227
- /**
228
- * Добавляет Банковские реквизиты.
229
- */
230
- addBankAccountGroup() {
231
- this.bankAccounts.push(this.createBankAccountGroup());
232
- }
233
- /**
234
- * Удаляет банковские реквизиты.
235
- *
236
- * @param index Индекс банковских реквизитов.
237
- */
238
- removeBankAccountGroup(index) {
239
- this.bankAccounts.removeAt(index);
240
- }
241
- /**
242
- * Создаёт группу полей контактного лица.
243
- */
244
- createContactGroup() {
245
- return new FormGroup({
246
- name: new FormControl(null, Validators.required),
247
- phone: new FormControl(null, [Validators.required, phoneValidator()]),
248
- email: new FormControl(null, Validators.email),
249
- position: new FormControl(null, Validators.required),
250
- });
251
- }
252
- /**
253
- * Добавляет контактное лицо контрагента.
254
- */
255
- addContactGroup() {
256
- this.contacts.push(this.createContactGroup());
257
- }
258
- /**
259
- * Удаляет контактное лицо контрагента.
260
- *
261
- * @param index Индекс контактного лица.
262
- */
263
- removeContactGroup(index) {
264
- this.contacts.removeAt(index);
265
- }
266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAddContragentDialogComponent, deps: [{ token: i1.ScReferencesService }, { token: i1.ScContragentService }, { token: i1.ScConvertersService }, { token: i1.ScUserMetrikaService }, { token: i1.ScLocationsService }, { token: POLYMORPHEUS_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScAddContragentDialogComponent, selector: "sc-add-contragent-dialog", ngImport: i0, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4\"\n>\n <tui-stepper [(activeItemIndex)]=\"stepIndex\">\n @for (step of steps; track $index) {\n <button\n *ngIf=\"$index !== 2 || form.controls.contragent.controls['bankAccounts']\"\n [stepState]=\"!canNextStep($index) ? 'error' : 'pass'\"\n [attr.disabled]=\"$index && !canNextStep($index - 1) ? '' : null\"\n type=\"button\"\n tuiStep\n >\n {{ step }}\n </button>\n }\n </tui-stepper>\n <tui-elastic-container>\n <sc-new-contragent-form [class.!hidden]=\"stepIndex !== 0\" />\n\n <div [class.!hidden]=\"stepIndex !== 1\">\n <div\n *ngIf=\"contacts\"\n class=\"flex flex-col gap-5 pb-1\"\n >\n <p class=\"text-lg font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B</p>\n <div\n *ngFor=\"let contact of contacts.controls; let index = index; let count = count; let last = last\"\n class=\"flex flex-col gap-3\"\n >\n <div class=\"flex h-10 items-center justify-between\">\n <p class=\"font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442 \u2116{{ index + 1 }}:</p>\n <button\n *ngIf=\"count - 1\"\n tuiIconButton\n appearance=\"secondary\"\n (click)=\"removeContactGroup(index)\"\n iconStart=\"@tui.trash-2\"\n ></button>\n </div>\n <sc-new-contact-form [form]=\"contact\"></sc-new-contact-form>\n <hr\n *ngIf=\"!last\"\n class=\"h-px w-full bg-tui-base-04\"\n />\n </div>\n <button\n tuiButton\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"addContactGroup()\"\n type=\"button\"\n class=\"self-center\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0442\u0430\u043A\u0442\n </button>\n </div>\n </div>\n\n <div [class.!hidden]=\"stepIndex !== 2\">\n <div\n *ngIf=\"bankAccounts\"\n class=\"flex flex-col gap-5 pb-1\"\n >\n <p class=\"text-lg font-bold\">\u0411\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B</p>\n <div\n *ngFor=\"let bankAccount of bankAccounts.controls; let index = index; let count = count; let last = last\"\n class=\"flex flex-col gap-3\"\n >\n <div class=\"flex h-12 items-center justify-between\">\n <p class=\"font-bold\">\u0411\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B \u2116{{ index + 1 }}:</p>\n <button\n *ngIf=\"count - 1\"\n tuiIconButton\n appearance=\"secondary\"\n (click)=\"removeBankAccountGroup(index)\"\n iconStart=\"@tui.trash-2\"\n ></button>\n </div>\n <sc-new-contragent-bank-account-form\n *ngIf=\"form.controls.contragent.controls['opf'].value as opf\"\n [form]=\"bankAccount\"\n [opf]=\"opf\"\n />\n <hr\n *ngIf=\"!last\"\n class=\"h-px w-full bg-tui-base-04\"\n />\n </div>\n <button\n tuiButton\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"addBankAccountGroup()\"\n type=\"button\"\n class=\"self-center\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B\n </button>\n </div>\n </div>\n </tui-elastic-container>\n <div class=\"flex justify-center gap-2\">\n <button\n *ngIf=\"stepIndex > 0\"\n tuiButton\n appearance=\"secondary\"\n type=\"button\"\n (click)=\"stepIndex = (stepIndex - 1) % 3\"\n >\n \u041D\u0430\u0437\u0430\u0434\n </button>\n <button\n *ngIf=\"stepIndex === 0\"\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n *ngIf=\"stepIndex === 2 || (stepIndex === 1 && !form.controls.contragent.controls['bankAccounts']); else nextIndexBtn\"\n tuiButton\n [disabled]=\"form.invalid\"\n [loading]=\"!!(loading$ | async)\"\n type=\"submit\"\n class=\"self-center\"\n >\n \u0421\u043E\u0437\u0434\u0430\u0442\u044C\n </button>\n <ng-template #nextIndexBtn>\n <button\n tuiButton\n [disabled]=\"!canNextStep(stepIndex)\"\n type=\"button\"\n (click)=\"navigate(1)\"\n >\n \u0414\u0430\u043B\u0435\u0435\n </button>\n </ng-template>\n </div>\n</form>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i5.ScNewContactFormComponent, selector: "sc-new-contact-form", inputs: ["form"] }, { kind: "component", type: i6.TuiElasticContainer, selector: "tui-elastic-container" }, { kind: "component", type: i6.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "component", type: i6.TuiStepperComponent, selector: "tui-stepper, nav[tuiStepper]", inputs: ["activeItemIndex", "orientation"], outputs: ["activeItemIndexChange"] }, { kind: "component", type: i6.TuiStep, selector: "button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]", inputs: ["stepState", "icon"] }, { kind: "component", type: i7.ScNewContragentBankAccountsFormComponent, selector: "sc-new-contragent-bank-account-form", inputs: ["form", "opf"] }, { kind: "component", type: i8.ScNewContragentFormComponent, selector: "sc-new-contragent-form", inputs: ["opfControl"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
268
- }
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAddContragentDialogComponent, decorators: [{
270
- type: Component,
271
- args: [{ selector: 'sc-add-contragent-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4\"\n>\n <tui-stepper [(activeItemIndex)]=\"stepIndex\">\n @for (step of steps; track $index) {\n <button\n *ngIf=\"$index !== 2 || form.controls.contragent.controls['bankAccounts']\"\n [stepState]=\"!canNextStep($index) ? 'error' : 'pass'\"\n [attr.disabled]=\"$index && !canNextStep($index - 1) ? '' : null\"\n type=\"button\"\n tuiStep\n >\n {{ step }}\n </button>\n }\n </tui-stepper>\n <tui-elastic-container>\n <sc-new-contragent-form [class.!hidden]=\"stepIndex !== 0\" />\n\n <div [class.!hidden]=\"stepIndex !== 1\">\n <div\n *ngIf=\"contacts\"\n class=\"flex flex-col gap-5 pb-1\"\n >\n <p class=\"text-lg font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B</p>\n <div\n *ngFor=\"let contact of contacts.controls; let index = index; let count = count; let last = last\"\n class=\"flex flex-col gap-3\"\n >\n <div class=\"flex h-10 items-center justify-between\">\n <p class=\"font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442 \u2116{{ index + 1 }}:</p>\n <button\n *ngIf=\"count - 1\"\n tuiIconButton\n appearance=\"secondary\"\n (click)=\"removeContactGroup(index)\"\n iconStart=\"@tui.trash-2\"\n ></button>\n </div>\n <sc-new-contact-form [form]=\"contact\"></sc-new-contact-form>\n <hr\n *ngIf=\"!last\"\n class=\"h-px w-full bg-tui-base-04\"\n />\n </div>\n <button\n tuiButton\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"addContactGroup()\"\n type=\"button\"\n class=\"self-center\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0442\u0430\u043A\u0442\n </button>\n </div>\n </div>\n\n <div [class.!hidden]=\"stepIndex !== 2\">\n <div\n *ngIf=\"bankAccounts\"\n class=\"flex flex-col gap-5 pb-1\"\n >\n <p class=\"text-lg font-bold\">\u0411\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B</p>\n <div\n *ngFor=\"let bankAccount of bankAccounts.controls; let index = index; let count = count; let last = last\"\n class=\"flex flex-col gap-3\"\n >\n <div class=\"flex h-12 items-center justify-between\">\n <p class=\"font-bold\">\u0411\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B \u2116{{ index + 1 }}:</p>\n <button\n *ngIf=\"count - 1\"\n tuiIconButton\n appearance=\"secondary\"\n (click)=\"removeBankAccountGroup(index)\"\n iconStart=\"@tui.trash-2\"\n ></button>\n </div>\n <sc-new-contragent-bank-account-form\n *ngIf=\"form.controls.contragent.controls['opf'].value as opf\"\n [form]=\"bankAccount\"\n [opf]=\"opf\"\n />\n <hr\n *ngIf=\"!last\"\n class=\"h-px w-full bg-tui-base-04\"\n />\n </div>\n <button\n tuiButton\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"addBankAccountGroup()\"\n type=\"button\"\n class=\"self-center\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B\n </button>\n </div>\n </div>\n </tui-elastic-container>\n <div class=\"flex justify-center gap-2\">\n <button\n *ngIf=\"stepIndex > 0\"\n tuiButton\n appearance=\"secondary\"\n type=\"button\"\n (click)=\"stepIndex = (stepIndex - 1) % 3\"\n >\n \u041D\u0430\u0437\u0430\u0434\n </button>\n <button\n *ngIf=\"stepIndex === 0\"\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n *ngIf=\"stepIndex === 2 || (stepIndex === 1 && !form.controls.contragent.controls['bankAccounts']); else nextIndexBtn\"\n tuiButton\n [disabled]=\"form.invalid\"\n [loading]=\"!!(loading$ | async)\"\n type=\"submit\"\n class=\"self-center\"\n >\n \u0421\u043E\u0437\u0434\u0430\u0442\u044C\n </button>\n <ng-template #nextIndexBtn>\n <button\n tuiButton\n [disabled]=\"!canNextStep(stepIndex)\"\n type=\"button\"\n (click)=\"navigate(1)\"\n >\n \u0414\u0430\u043B\u0435\u0435\n </button>\n </ng-template>\n </div>\n</form>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"] }]
272
- }], ctorParameters: () => [{ type: i1.ScReferencesService }, { type: i1.ScContragentService }, { type: i1.ScConvertersService }, { type: i1.ScUserMetrikaService }, { type: i1.ScLocationsService }, { type: undefined, decorators: [{
273
- type: Optional
274
- }, {
275
- type: Inject,
276
- args: [POLYMORPHEUS_CONTEXT]
277
- }] }] });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWNvbnRyYWdlbnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9hZGQtY29udHJhZ2VudC1kaWFsb2cvc2MtYWRkLWNvbnRyYWdlbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9hZGQtY29udHJhZ2VudC1kaWFsb2cvc2MtYWRkLWNvbnRyYWdlbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtHQUFrRztBQUVsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBYSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFXSCxTQUFTLEVBRVQsc0JBQXNCLEdBRXpCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7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RUFBRSxDQUFDLENBQUM7WUFDcEYsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUM3RCxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3RFLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0ExU1EsOEJBQThCLGlNQXlGM0Isb0JBQW9CO21HQXpGdkIsOEJBQThCLGdFQ3ZDM0MsNDhMQWdKQTs7NEZEekdhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OzBCQTBGMUMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzLEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCxuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgU2NDb250cmFnZW50LFxuICAgIFNjQ29udHJhZ2VudE9uRGF0YUNyZWF0ZSxcbiAgICBTY0NvbnRyYWdlbnRTZXJ2aWNlLFxuICAgIFNjQ29udmVydGVyc1NlcnZpY2UsXG4gICAgU2NJQmFua0FjY291bnQsXG4gICAgU2NJQ291bnRyeSxcbiAgICBTY0lDdXJyZW5jeSxcbiAgICBTY0lSZWZlcmVuY2VzVHlwZXMsXG4gICAgU2NJU2FsZXNEaXJlY3Rpb24sXG4gICAgU2NMb2NhdGlvbnNTZXJ2aWNlLFxuICAgIFNjT3BmTGlzdCxcbiAgICBTY1JlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sXG4gICAgU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG59IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgdHVpSXNGYWxzeSwgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpRGlhbG9nQ29udGV4dCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFBPTFlNT1JQSEVVU19DT05URVhUIH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMvYXBpLWVycm9yLXJlc3BvbnNlJztcbmltcG9ydCB7IHNjQmljVmFsaWRhdG9yLCBzY0NvcnJlc3BvbmRlbnRBY2NvdW50VmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBwaG9uZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMvc2MtcGhvbmUtdmFsaWRhdG9yJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0YLQtdC9INC00L7QsdCw0LLQu9C10L3QuNGPINC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtYWRkLWNvbnRyYWdlbnQtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYWRkLWNvbnRyYWdlbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1hZGQtY29udHJhZ2VudC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NBZGRDb250cmFnZW50RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0YvRhSDRhNC+0YDQvC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BmTGlzdEVudW06IHR5cGVvZiBTY09wZkxpc3QgPSBTY09wZkxpc3Q7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LTQtdC60YEg0Y3RgtCw0L/QsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RlcEluZGV4ID0gMDtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRjdGC0LDQv9C+0LIg0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0ZXBzOiBzdHJpbmdbXSA9IFsn0J7QsdGJ0LjQtSDQtNCw0L3QvdGL0LUg0LrQvtC90YLRgNCw0LPQtdC90YLQsCcsICfQmtC+0L3RgtCw0LrRgtGLINC60L7QvdGC0YDQsNCz0LXQvdGC0LAnLCAn0JHQsNC90LrQvtCy0YHQutC40LUg0YDQtdC60LLQuNC30LjRgtGLINC60L7QvdGC0YDQsNCz0LXQvdGC0LAnXTtcblxuICAgIC8qKlxuICAgICAqINCg0L7QtNC40YLQtdC70YzRgdC60LDRjyBgRm9ybUdyb3VwYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb250cmFnZW50OiBuZXcgRm9ybUdyb3VwPGFueT4oe30pLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFN1YmplY3R9INGB0L7QsdGL0YLQuNGPINC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb25TdWJtaXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC00L7QsdCw0LLQu9C10L3QuNGPINC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JCA9IHRoaXMub25TdWJtaXQucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuZm9ybS52YWx1ZS5jb250cmFnZW50IGFzIFNjQ29udHJhZ2VudE9uRGF0YUNyZWF0ZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBTY0NvbnRyYWdlbnRPbkRhdGFDcmVhdGUgPT4gdGhpcy5mb3JtLnZhbGlkKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJhZ2VudFNlcnZpY2UuY3JlYXRlQ29udHJhZ2VudCQodGhpcy5jb252ZXJ0ZXJzU2VydmljZS5yZW1vdmVOdWxsUmVjdXJzaXZlKHZhbHVlKSkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGNvbnRyYWdlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmNvbXBsZXRlV2l0aChjb250cmFnZW50KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycywgbWVzc2FnZSB9ID0gZXJyb3IuZXJyb3IgYXMgQXBpRXJyb3JSZXNwb25zZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oZXJyb3JzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuY29udHJhZ2VudC5nZXQoa2V5KT8uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IGVycm9yc1trZXldIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnJvcnMgJiYgbWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogW21lc3NhZ2VdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBJbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChfLCBpbmRleCkgPT4gIXRoaXMuY2FuTmV4dFN0ZXAoaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBTY0lCYW5rQWNjb3VudCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L4g0L3QvtC80LXRgNGDINGC0LXQu9C10YTQvtC90LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKG1hcCh0dWlJc0ZhbHN5KSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQWRkQ29udHJhZ2VudERpYWxvZ0NvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINGB0L/RgNCw0LLQvtGH0L3QuNC60L7Qsi5cbiAgICAgKiBAcGFyYW0gY29udHJhZ2VudFNlcnZpY2Ug0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSDQutC+0L3RgtGA0LDQs9C10L3RgtCw0LzQuC5cbiAgICAgKiBAcGFyYW0gY29udmVydGVyc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICogQHBhcmFtIGxvY2F0aW9uc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQv9C40YHQutC+0LIg0YHRgtGA0LDQvSwg0YDQtdCz0LjQvtC90L7Qsiwg0LPQvtGA0L7QtNC+0LIuXG4gICAgICogQHBhcmFtIGNvbnRleHQg0JrQvtC90YLQtdC60YHRgiDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0LrRgNGL0YIg0LrQvtC80L/QvtC90LXQvdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZWZlcmVuY2VzU2VydmljZTogU2NSZWZlcmVuY2VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250cmFnZW50U2VydmljZTogU2NDb250cmFnZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uc1NlcnZpY2U6IFNjTG9jYXRpb25zU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChQT0xZTU9SUEhFVVNfQ09OVEVYVClcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRleHQ6IFR1aURpYWxvZ0NvbnRleHQ8U2NDb250cmFnZW50LCB2b2lkPlxuICAgICkge31cblxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS51c2VyUHJvZmlsZUNvbnRyYWdlbnRBZGRTaG93LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQotC10LrRg9GJ0LjQuSDQstGL0LHRgNCw0L3QvdGL0Lkg0J7Qn9CkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2VsZWN0T3BmKCk6IFNjT3BmTGlzdCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZkxpc3RFbnVtW3RoaXMuZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzWydvcGYnXS52YWx1ZSBhcyBrZXlvZiB0eXBlb2YgU2NPcGZMaXN0XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LPRgNGD0L/QvyDQv9C+0LvQtdC5INCx0LDQvdC60L7QstGB0LrQuNGFINGA0LXQutCy0LjQt9C40YLQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYmFua0FjY291bnRzKCk6IEZvcm1BcnJheTxSZXR1cm5UeXBlPFNjQWRkQ29udHJhZ2VudERpYWxvZ0NvbXBvbmVudFsnY3JlYXRlQmFua0FjY291bnRHcm91cCddPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzLmNvbnRyYWdlbnQuZ2V0KCdiYW5rQWNjb3VudHMnKSBhcyBGb3JtQXJyYXk8UmV0dXJuVHlwZTxTY0FkZENvbnRyYWdlbnREaWFsb2dDb21wb25lbnRbJ2NyZWF0ZUJhbmtBY2NvdW50R3JvdXAnXT4+O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQs9GA0YPQv9C/INC/0L7Qu9C10Lkg0LrQvtC90YLQsNC60YLQvdGL0YUg0LvQuNGGLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29udGFjdHMoKTogRm9ybUFycmF5PFJldHVyblR5cGU8U2NBZGRDb250cmFnZW50RGlhbG9nQ29tcG9uZW50WydjcmVhdGVDb250YWN0R3JvdXAnXT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scy5jb250cmFnZW50LmdldCgnY29udGFjdHMnKSBhcyBGb3JtQXJyYXk8UmV0dXJuVHlwZTxTY0FkZENvbnRyYWdlbnREaWFsb2dDb21wb25lbnRbJ2NyZWF0ZUNvbnRhY3RHcm91cCddPj47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C/0L7Qu9C90Y/QtdGCINC90LDQstC40LPQsNGG0LjRjiDQv9C+INGE0L7RgNC80LUg0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlbHRhINCX0L3QsNGH0LXQvdC40LUsINC90LAg0LrQvtGC0L7RgNC+0LUg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LLRi9C/0L7Qu9C90LjRgtGMINC90LDQstC40LPQsNGG0LjRji5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmF2aWdhdGUoZGVsdGE6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbmRleCA9ICh0aGlzLnN0ZXBJbmRleCArIGRlbHRhKSAlIDM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCLCDQvNC+0LbQtdGCINC70Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC/0LXRgNC10LnRgtC4INC6INGB0LvQtdC00YPRjtGJ0LXQvNGDINGI0LDQs9GDINGB0L7Qt9C00LDQvdC40Y8g0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKiDQn9GA0Lgg0L/RgNC+0LLQtdGA0LrQtSDQutCw0LbQtNC+0LPQviDRjdGC0LDQv9CwINC/0L7RgdC70LXQtNC+0LLQsNGC0LXQu9GM0L3QviDQv9GA0L7QstC10YDRj9C10YLRgdGPINC60L7RgNGA0LXQutGC0L3QvtGB0YLRjCDQt9Cw0L/QvtC70L3QtdC90LjRjyDQtNCw0L3QvdGL0YUg0L3QsCDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDRjdGC0LDQv9Cw0YUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5kZXgg0JjQvdC00LXQutGBINGN0YLQsNC/0LAg0LTQu9GPINC60L7RgtC+0YDQvtCz0L4g0L3Rg9C20L3QviDQv9GA0L7QstC10YDQuNGC0Ywg0LLQsNC70LjQtNC90L7RgdGC0YwuXG4gICAgICogQHJldHVybnMg0JLRi9Cy0L7QtNC40YIg0LfQvdCw0YfQtdC90LjQtSBgYm9vbGVhbmAg0L3QsCDQvtGB0L3QvtCy0LDQvdC40Lgge0BsaW5rIGluZGV4fS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FuTmV4dFN0ZXAoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5mb3JtLmNvbnRyb2xzLmNvbnRyYWdlbnQuY29udHJvbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzLCBrZXkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHRoaXMuZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzW2tleV0udmFsdWUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzW2tleV0uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgY2FzZSAxOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjb250YWN0cyB9ID0gdGhpcy5mb3JtLmNvbnRyb2xzLmNvbnRyYWdlbnQuY29udHJvbHM7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGFjdHM/LnZhbGlkID8/IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAyOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBiYW5rQWNjb3VudHMgfSA9IHRoaXMuZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhbmtBY2NvdW50cz8udmFsaWQgPz8gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDQvdCw0L/RgNCw0LLQu9C10L3QuNC5INC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U2FsZXNEaXJlY3Rpb25zJCgpOiBPYnNlcnZhYmxlPFNjSVNhbGVzRGlyZWN0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuZGlyZWN0aW9ucyQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDQvdCw0L/RgNCw0LLQu9C10L3QuNC5INC/0YDQvtC00LDQti5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXJlY3Rpb25JZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvdCw0L/RgNCw0LLQu9C10L3QuNGPINC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGlyZWN0aW9uQnlJZCQoZGlyZWN0aW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NJU2FsZXNEaXJlY3Rpb24gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuZ2V0RGlyZWN0aW9uQnlJZCQoZGlyZWN0aW9uSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC+0Log0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLRi9GFINGE0L7RgNC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPcGYkKCk6IE9ic2VydmFibGU8QXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3BmTGlzdCwgdHlwZW9mIFNjT3BmTGlzdD4+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZXNTZXJ2aWNlLm9wZiQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0L7QuSDRhNC+0YDQvNGLLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0YHQuNC80LLQvtC70YzQvdC+0LzRgyDQvtCx0L7Qt9C90LDRh9C10L3QuNGOIChzbHVnKSDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2x1ZyDQodC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0T3BmQnlTbHVnJChzbHVnOiBrZXlvZiB0eXBlb2YgU2NPcGZMaXN0KTogT2JzZXJ2YWJsZTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NPcGZMaXN0LCB0eXBlb2YgU2NPcGZMaXN0PiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VzU2VydmljZS5nZXRPcGZCeVNsdWckKHNsdWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0LLQsNC70Y7Rgi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q3VycmVuY2llcyQoKTogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZXNTZXJ2aWNlLmN1cnJlbmNpZXMkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstCw0LvRjtGC0YssINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjdXJyZW5jeUlkIOKAlCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstCw0LvRjtGC0YsuXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbmN5QnlJZCQoY3VycmVuY3lJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VzU2VydmljZS5nZXRDdXJyZW5jeUJ5SWQkKGN1cnJlbmN5SWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q291bnRyaWVzJCgpOiBPYnNlcnZhYmxlPFNjSUNvdW50cnlbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbnNTZXJ2aWNlLmdldENvdW50cmllcyQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHRgtGA0LDQvdGLLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY291bnRyeUlkIOKAlCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdGC0YDQsNC90YsuXG4gICAgICovXG4gICAgcHVibGljIGdldENvdW50cmllc0J5SWQkKGNvdW50cnlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lDb3VudHJ5IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uc1NlcnZpY2UuZ2V0Q291bnRyaWVzJCgpLnBpcGUobWFwKChjb3VudHJpZXMpID0+IGNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiBjb3VudHJ5LmlkID09PSBjb3VudHJ5SWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LPRgNGD0L/Qv9GDINC/0L7Qu9C10Lkg0LHQsNC90LrQvtCy0YHQutC40YUg0YDQtdC60LLQuNC30LjRgtC+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVCYW5rQWNjb3VudEdyb3VwKCk6IEZvcm1Hcm91cDx7XG4gICAgICAgIGJhbmtOYW1lOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgYmljOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgYWNjb3VudE51bWJlcjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIGNvcnJlc3BvbmRlbnRBY2NvdW50OiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgY3VycmVuY3lJZDogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgfT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBiYW5rTmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgYmljOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDkpLCBzY0JpY1ZhbGlkYXRvcl0pLFxuICAgICAgICAgICAgYWNjb3VudE51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyMCldKSxcbiAgICAgICAgICAgIGNvcnJlc3BvbmRlbnRBY2NvdW50OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIwKSwgc2NDb3JyZXNwb25kZW50QWNjb3VudFZhbGlkYXRvcl0pLFxuICAgICAgICAgICAgY3VycmVuY3lJZDogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0JHQsNC90LrQvtCy0YHQutC40LUg0YDQtdC60LLQuNC30LjRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRCYW5rQWNjb3VudEdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJhbmtBY2NvdW50cy5wdXNoKHRoaXMuY3JlYXRlQmFua0FjY291bnRHcm91cCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQsdCw0L3QutC+0LLRgdC60LjQtSDRgNC10LrQstC40LfQuNGC0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5kZXgg0JjQvdC00LXQutGBINCx0LDQvdC60L7QstGB0LrQuNGFINGA0LXQutCy0LjQt9C40YLQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVCYW5rQWNjb3VudEdyb3VwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5iYW5rQWNjb3VudHMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINCz0YDRg9C/0L/RgyDQv9C+0LvQtdC5INC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUNvbnRhY3RHcm91cCgpOiBGb3JtR3JvdXA8e1xuICAgICAgICBuYW1lOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICAgICAgcGhvbmU6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgICAgICBlbWFpbDogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgICAgIHBvc2l0aW9uOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICB9PiB7XG4gICAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHBob25lVmFsaWRhdG9yKCldKSxcbiAgICAgICAgICAgIGVtYWlsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5lbWFpbCksXG4gICAgICAgICAgICBwb3NpdGlvbjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0LrQvtC90YLQsNC60YLQvdC+0LUg0LvQuNGG0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkQ29udGFjdEdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhY3RzLnB1c2godGhpcy5jcmVhdGVDb250YWN0R3JvdXAoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LrQvtC90YLQsNC60YLQvdC+0LUg0LvQuNGG0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmRleCDQmNC90LTQtdC60YEg0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlQ29udGFjdEdyb3VwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250YWN0cy5yZW1vdmVBdChpbmRleCk7XG4gICAgfVxufVxuIiwiPGZvcm1cbiAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdC5uZXh0KClcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiXG4+XG4gICAgPHR1aS1zdGVwcGVyIFsoYWN0aXZlSXRlbUluZGV4KV09XCJzdGVwSW5kZXhcIj5cbiAgICAgICAgQGZvciAoc3RlcCBvZiBzdGVwczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIkaW5kZXggIT09IDIgfHwgZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzWydiYW5rQWNjb3VudHMnXVwiXG4gICAgICAgICAgICAgICAgW3N0ZXBTdGF0ZV09XCIhY2FuTmV4dFN0ZXAoJGluZGV4KSA/ICdlcnJvcicgOiAncGFzcydcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIiRpbmRleCAmJiAhY2FuTmV4dFN0ZXAoJGluZGV4IC0gMSkgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHR1aVN0ZXBcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBzdGVwIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvdHVpLXN0ZXBwZXI+XG4gICAgPHR1aS1lbGFzdGljLWNvbnRhaW5lcj5cbiAgICAgICAgPHNjLW5ldy1jb250cmFnZW50LWZvcm0gW2NsYXNzLiFoaWRkZW5dPVwic3RlcEluZGV4ICE9PSAwXCIgLz5cblxuICAgICAgICA8ZGl2IFtjbGFzcy4haGlkZGVuXT1cInN0ZXBJbmRleCAhPT0gMVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdHNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNSBwYi0xXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCI+0JrQvtC90YLQsNC60YLRizwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb250YWN0IG9mIGNvbnRhY3RzLmNvbnRyb2xzOyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGNvdW50ID0gY291bnQ7IGxldCBsYXN0ID0gbGFzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLTEwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+0JrQvtC90YLQsNC60YIg4oSWe3sgaW5kZXggKyAxIH19OjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvdW50IC0gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVDb250YWN0R3JvdXAoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnRyYXNoLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNjLW5ldy1jb250YWN0LWZvcm0gW2Zvcm1dPVwiY29udGFjdFwiPjwvc2MtbmV3LWNvbnRhY3QtZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPGhyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC1weCB3LWZ1bGwgYmctdHVpLWJhc2UtMDRcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkucGx1c1wiXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ29udGFjdEdyb3VwKClcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDQlNC+0LHQsNCy0LjRgtGMINC60L7QvdGC0LDQutGCXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBbY2xhc3MuIWhpZGRlbl09XCJzdGVwSW5kZXggIT09IDJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImJhbmtBY2NvdW50c1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01IHBiLTFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIj7QkdCw0L3QutC+0LLRgdC60LjQtSDRgNC10LrQstC40LfQuNGC0Ys8L3A+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYmFua0FjY291bnQgb2YgYmFua0FjY291bnRzLmNvbnRyb2xzOyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGNvdW50ID0gY291bnQ7IGxldCBsYXN0ID0gbGFzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLTEyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+0JHQsNC90LrQvtCy0YHQutC40LUg0YDQtdC60LLQuNC30LjRgtGLIOKElnt7IGluZGV4ICsgMSB9fTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb3VudCAtIDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQmFua0FjY291bnRHcm91cChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkudHJhc2gtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5jb250cm9scy5jb250cmFnZW50LmNvbnRyb2xzWydvcGYnXS52YWx1ZSBhcyBvcGZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiYmFua0FjY291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wZl09XCJvcGZcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8aHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWxhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLXB4IHctZnVsbCBiZy10dWktYmFzZS0wNFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5wbHVzXCJcbiAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRCYW5rQWNjb3VudEdyb3VwKClcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDQlNC+0LHQsNCy0LjRgtGMINCx0LDQvdC60L7QstGB0LrQuNC1INGA0LXQutCy0LjQt9C40YLRi1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvdHVpLWVsYXN0aWMtY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic3RlcEluZGV4ID4gMFwiXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwic3RlcEluZGV4ID0gKHN0ZXBJbmRleCAtIDEpICUgM1wiXG4gICAgICAgID5cbiAgICAgICAgICAgINCd0LDQt9Cw0LRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic3RlcEluZGV4ID09PSAwXCJcbiAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0J7RgtC80LXQvdCwXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInN0ZXBJbmRleCA9PT0gMiB8fCAoc3RlcEluZGV4ID09PSAxICYmICFmb3JtLmNvbnRyb2xzLmNvbnRyYWdlbnQuY29udHJvbHNbJ2JhbmtBY2NvdW50cyddKTsgZWxzZSBuZXh0SW5kZXhCdG5cIlxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCh0L7Qt9C00LDRgtGMXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25leHRJbmRleEJ0bj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbk5leHRTdGVwKHN0ZXBJbmRleClcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZSgxKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg0JTQsNC70LXQtVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -1,75 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@snabcentr/client-core";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../../../accordion/sc-accordion.component";
6
- import * as i4 from "../../../accordion/sc-accordion-content.directive";
7
- import * as i5 from "@taiga-ui/core";
8
- import * as i6 from "@taiga-ui/cdk";
9
- import * as i7 from "../../../contacts/contacts-accordion/sc-contacts-accordion.component";
10
- /**
11
- * Компонент контрагента пользователя.
12
- */
13
- export class ScContragentsAccordionItemComponent {
14
- /**
15
- * Инициализирует экземпляр класса {@link ScContragentsAccordionItemComponent}.
16
- *
17
- * @param contragentService Сервис работы с контрагентами.
18
- */
19
- constructor(contragentService) {
20
- this.contragentService = contragentService;
21
- /**
22
- * Событие нажатия на кнопку удаления контрагента.
23
- */
24
- this.deleteContragentClick = new EventEmitter();
25
- /**
26
- * Событие нажатия на кнопку добавления банковского счёта контрагенту.
27
- */
28
- this.addContragentBankAccountClick = new EventEmitter();
29
- /**
30
- * Событие нажатия на кнопку удаления банковского счёта контрагента.
31
- */
32
- this.deleteContragentBankAccountClick = new EventEmitter();
33
- /**
34
- * Событие нажатия на кнопку добавления контактного лица контрагенту.
35
- */
36
- this.addContragentContactClick = new EventEmitter();
37
- /**
38
- * Событие нажатия на кнопку удаления контактного лица у контрагента.
39
- */
40
- this.deleteContragentContactClick = new EventEmitter();
41
- }
42
- /** @inheritDoc */
43
- ngOnInit() {
44
- this.bankAccounts$ = this.contragentService.getContragentBankAccounts$(this.contragent.id);
45
- this.contacts$ = this.contragentService.getContragentContacts$(this.contragent.id);
46
- }
47
- /**
48
- * Обработчик нажатия на кнопку удаления контактного лица у контрагента.
49
- *
50
- * @param contact Контактное лицо.
51
- * @param contragent Контрагент.
52
- */
53
- onDeleteContragentContactClick(contact, contragent) {
54
- this.deleteContragentContactClick.emit({ contact: contact, contragent: contragent });
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsAccordionItemComponent, deps: [{ token: i1.ScContragentService }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScContragentsAccordionItemComponent, selector: "sc-contragents-accordion-item", inputs: { contragent: "contragent" }, outputs: { deleteContragentClick: "deleteContragentClick", addContragentBankAccountClick: "addContragentBankAccountClick", deleteContragentBankAccountClick: "deleteContragentBankAccountClick", addContragentContactClick: "addContragentContactClick", deleteContragentContactClick: "deleteContragentContactClick" }, ngImport: i0, template: "<sc-accordion [showAddButton]=\"false\">\n {{ contragent.name }}\n <span *ngIf=\"$any(contragent).inn as inn\">\u0418\u041D\u041D: {{ inn }}</span>\n\n <ng-template scAccordionContent>\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex gap-2\">\n <div class=\"flex grow flex-col gap-2\">\n {{ contragent.name }}\n <span *ngIf=\"$any(contragent).inn as inn\">\u0418\u041D\u041D: {{ inn }}</span>\n <span *ngIf=\"$any(contragent).kpp as kpp\">\u041A\u041F\u041F: {{ kpp }}</span>\n </div>\n <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n <!-- <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.pencil\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); editContragentClick.emit(contragent.id)\"\n ></button>\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteContragentClick.emit(contragent)\"\n ></button> -->\n </div>\n\n <sc-accordion (addButtonClick)=\"addContragentBankAccountClick.emit(contragent)\">\n \u0411\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"bankAccounts$ | async as bankAccounts\"\n [overlay]=\"true\"\n [showLoader]=\"bankAccounts === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!bankAccounts || bankAccounts.length; else bankAccountsNotExist\">\n <div\n *ngFor=\"let bankAccount of bankAccounts\"\n class=\"flex gap-2 border-b border-tui-base-03\"\n >\n <div class=\"flex grow flex-col gap-2\">\n <span>\u0411\u0430\u043D\u043A: {{ bankAccount.bankName }}</span>\n <span>\u0411\u0418\u041A: {{ bankAccount.bic }}</span>\n <span>\u0420/\u0441\u0447\u0451\u0442: {{ bankAccount.accountNumber }}</span>\n <span>\u041A\u043E\u0440/\u0441\u0447\u0451\u0442: {{ bankAccount.correspondentAccount }}</span>\n <span>\u0412\u0430\u043B\u044E\u0442\u0430: {{ bankAccount.currency.name }}</span>\n </div>\n <!-- <div class=\"flex flex-col md:flex-row gap-4\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.pencil\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); editBankAccountsContragentClick.emit(bankAccount.id)\"\n ></button>\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteContragentBankAccountClick.emit(bankAccount)\"\n ></button>\n </div> -->\n </div>\n </ng-container>\n\n <ng-template #bankAccountsNotExist>\n <tui-notification size=\"l\"\n ><div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\n \u0423 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 <span class=\"font-bold\">{{ contragent.name }}</span> \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B.\n </div>\n </div></tui-notification\n >\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n </sc-accordion>\n <sc-contacts-accordion\n *ngIf=\"contacts$\"\n [contacts$]=\"contacts$\"\n (addContactClick)=\"addContragentContactClick.emit(contragent)\"\n (deleteButtonClick)=\"onDeleteContragentContactClick($event, contragent)\"\n ></sc-contacts-accordion>\n </div>\n </ng-template>\n</sc-accordion>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ScAccordionComponent, selector: "sc-accordion", inputs: ["showAddButton", "showDeleteButton", "showArrow", "open", "size", "disabledButtons"], outputs: ["addButtonClick", "deleteButtonClick"] }, { kind: "directive", type: i4.ScAccordionContentDirective, selector: "ng-template[scAccordionContent]" }, { kind: "component", type: i5.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i6.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i5.TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "component", type: i7.ScContactsAccordionComponent, selector: "sc-contacts-accordion", inputs: ["contacts$"], outputs: ["addContactClick", "deleteButtonClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsAccordionItemComponent, decorators: [{
60
- type: Component,
61
- args: [{ selector: 'sc-contragents-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sc-accordion [showAddButton]=\"false\">\n {{ contragent.name }}\n <span *ngIf=\"$any(contragent).inn as inn\">\u0418\u041D\u041D: {{ inn }}</span>\n\n <ng-template scAccordionContent>\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex gap-2\">\n <div class=\"flex grow flex-col gap-2\">\n {{ contragent.name }}\n <span *ngIf=\"$any(contragent).inn as inn\">\u0418\u041D\u041D: {{ inn }}</span>\n <span *ngIf=\"$any(contragent).kpp as kpp\">\u041A\u041F\u041F: {{ kpp }}</span>\n </div>\n <!-- \u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. -->\n <!-- <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.pencil\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); editContragentClick.emit(contragent.id)\"\n ></button>\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteContragentClick.emit(contragent)\"\n ></button> -->\n </div>\n\n <sc-accordion (addButtonClick)=\"addContragentBankAccountClick.emit(contragent)\">\n \u0411\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"bankAccounts$ | async as bankAccounts\"\n [overlay]=\"true\"\n [showLoader]=\"bankAccounts === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!bankAccounts || bankAccounts.length; else bankAccountsNotExist\">\n <div\n *ngFor=\"let bankAccount of bankAccounts\"\n class=\"flex gap-2 border-b border-tui-base-03\"\n >\n <div class=\"flex grow flex-col gap-2\">\n <span>\u0411\u0430\u043D\u043A: {{ bankAccount.bankName }}</span>\n <span>\u0411\u0418\u041A: {{ bankAccount.bic }}</span>\n <span>\u0420/\u0441\u0447\u0451\u0442: {{ bankAccount.accountNumber }}</span>\n <span>\u041A\u043E\u0440/\u0441\u0447\u0451\u0442: {{ bankAccount.correspondentAccount }}</span>\n <span>\u0412\u0430\u043B\u044E\u0442\u0430: {{ bankAccount.currency.name }}</span>\n </div>\n <!-- <div class=\"flex flex-col md:flex-row gap-4\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.pencil\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); editBankAccountsContragentClick.emit(bankAccount.id)\"\n ></button>\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n icon=\"@tui.trash-2\"\n appearance=\"flat\"\n (click)=\"$event.stopPropagation(); deleteContragentBankAccountClick.emit(bankAccount)\"\n ></button>\n </div> -->\n </div>\n </ng-container>\n\n <ng-template #bankAccountsNotExist>\n <tui-notification size=\"l\"\n ><div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\n \u0423 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 <span class=\"font-bold\">{{ contragent.name }}</span> \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0435 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B.\n </div>\n </div></tui-notification\n >\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n </sc-accordion>\n <sc-contacts-accordion\n *ngIf=\"contacts$\"\n [contacts$]=\"contacts$\"\n (addContactClick)=\"addContragentContactClick.emit(contragent)\"\n (deleteButtonClick)=\"onDeleteContragentContactClick($event, contragent)\"\n ></sc-contacts-accordion>\n </div>\n </ng-template>\n</sc-accordion>\n" }]
62
- }], ctorParameters: () => [{ type: i1.ScContragentService }], propDecorators: { contragent: [{
63
- type: Input
64
- }], deleteContragentClick: [{
65
- type: Output
66
- }], addContragentBankAccountClick: [{
67
- type: Output
68
- }], deleteContragentBankAccountClick: [{
69
- type: Output
70
- }], addContragentContactClick: [{
71
- type: Output
72
- }], deleteContragentContactClick: [{
73
- type: Output
74
- }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRyYWdlbnRzL2NvbnRyYWdlbnRzLWFjY29yZGlvbi9jb250cmFnZW50cy1hY2NvcmRpb24taXRlbS9zYy1jb250cmFnZW50cy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29udHJhZ2VudHMvY29udHJhZ2VudHMtYWNjb3JkaW9uL2NvbnRyYWdlbnRzLWFjY29yZGlvbi1pdGVtL3NjLWNvbnRyYWdlbnRzLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUl4Rzs7R0FFRztBQU1ILE1BQU0sT0FBTyxtQ0FBbUM7SUErQzVDOzs7O09BSUc7SUFDSCxZQUFvQyxpQkFBc0M7UUFBdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQTdDMUU7O1dBRUc7UUFFSSwwQkFBcUIsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFNUY7O1dBRUc7UUFFSSxrQ0FBNkIsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFcEc7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFM0c7O1dBRUc7UUFFSSw4QkFBeUIsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFaEc7O1dBRUc7UUFFSSxpQ0FBNEIsR0FBb0UsSUFBSSxZQUFZLEVBQXFELENBQUM7SUFpQmhHLENBQUM7SUFFOUUsa0JBQWtCO0lBQ1gsUUFBUTtRQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSw4QkFBOEIsQ0FBQyxPQUFtQixFQUFFLFVBQXdCO1FBQy9FLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7K0dBcEVRLG1DQUFtQzttR0FBbkMsbUNBQW1DLG9hQ1poRCwwMkxBK0ZBOzs0RkRuRmEsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNJLCtCQUErQixtQkFFeEIsdUJBQXVCLENBQUMsTUFBTTt3RkFPeEMsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxxQkFBcUI7c0JBRDNCLE1BQU07Z0JBT0EsNkJBQTZCO3NCQURuQyxNQUFNO2dCQU9BLGdDQUFnQztzQkFEdEMsTUFBTTtnQkFPQSx5QkFBeUI7c0JBRC9CLE1BQU07Z0JBT0EsNEJBQTRCO3NCQURsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjQ29udHJhZ2VudCwgU2NDb250cmFnZW50U2VydmljZSwgU2NJQmFua0FjY291bnQsIFNjSUNvbnRhY3QgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LrQvtC90YLRgNCw0LPQtdC90YLQsCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1jb250cmFnZW50cy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udHJhZ2VudHNBY2NvcmRpb25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQmtC+0L3RgtGA0LDQs9C10L3RgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udHJhZ2VudDogU2NDb250cmFnZW50O1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZWxldGVDb250cmFnZW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxTY0NvbnRyYWdlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0NvbnRyYWdlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDQtNC+0LHQsNCy0LvQtdC90LjRjyDQsdCw0L3QutC+0LLRgdC60L7Qs9C+INGB0YfRkdGC0LAg0LrQvtC90YLRgNCw0LPQtdC90YLRgy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWRkQ29udHJhZ2VudEJhbmtBY2NvdW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxTY0NvbnRyYWdlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0NvbnRyYWdlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDRg9C00LDQu9C10L3QuNGPINCx0LDQvdC60L7QstGB0LrQvtCz0L4g0YHRh9GR0YLQsCDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZWxldGVDb250cmFnZW50QmFua0FjY291bnRDbGljazogRXZlbnRFbWl0dGVyPFNjSUJhbmtBY2NvdW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NJQmFua0FjY291bnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDQtNC+0LHQsNCy0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINC60L7QvdGC0YDQsNCz0LXQvdGC0YMuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFkZENvbnRyYWdlbnRDb250YWN0Q2xpY2s6IEV2ZW50RW1pdHRlcjxTY0NvbnRyYWdlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0NvbnRyYWdlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDRg9C00LDQu9C10L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0YMg0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZGVsZXRlQ29udHJhZ2VudENvbnRhY3RDbGljazogRXZlbnRFbWl0dGVyPHsgY29udGFjdDogU2NJQ29udGFjdDsgY29udHJhZ2VudDogU2NDb250cmFnZW50IH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGNvbnRhY3Q6IFNjSUNvbnRhY3Q7IGNvbnRyYWdlbnQ6IFNjQ29udHJhZ2VudCB9PigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INCx0LDQvdC60L7QstGB0LrQuNGFINGB0YfQtdGC0L7QsiDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBiYW5rQWNjb3VudHMkPzogT2JzZXJ2YWJsZTxTY0lCYW5rQWNjb3VudFtdIHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LHQsNC90LrQvtCy0YHQutC40YUg0YHRh9C10YLQvtCyINC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gICAgICovXG4gICAgcHVibGljIGNvbnRhY3RzJD86IE9ic2VydmFibGU8U2NJQ29udGFjdFtdIHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQ29udHJhZ2VudHNBY2NvcmRpb25JdGVtQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250cmFnZW50U2VydmljZSDQodC10YDQstC40YEg0YDQsNCx0L7RgtGLINGBINC60L7QvdGC0YDQsNCz0LXQvdGC0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbnRyYWdlbnRTZXJ2aWNlOiBTY0NvbnRyYWdlbnRTZXJ2aWNlKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJhbmtBY2NvdW50cyQgPSB0aGlzLmNvbnRyYWdlbnRTZXJ2aWNlLmdldENvbnRyYWdlbnRCYW5rQWNjb3VudHMkKHRoaXMuY29udHJhZ2VudC5pZCk7XG4gICAgICAgIHRoaXMuY29udGFjdHMkID0gdGhpcy5jb250cmFnZW50U2VydmljZS5nZXRDb250cmFnZW50Q29udGFjdHMkKHRoaXMuY29udHJhZ2VudC5pZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YPQtNCw0LvQtdC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINGDINC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGFjdCDQmtC+0L3RgtCw0LrRgtC90L7QtSDQu9C40YbQvi5cbiAgICAgKiBAcGFyYW0gY29udHJhZ2VudCDQmtC+0L3RgtGA0LDQs9C10L3Rgi5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25EZWxldGVDb250cmFnZW50Q29udGFjdENsaWNrKGNvbnRhY3Q6IFNjSUNvbnRhY3QsIGNvbnRyYWdlbnQ6IFNjQ29udHJhZ2VudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlbGV0ZUNvbnRyYWdlbnRDb250YWN0Q2xpY2suZW1pdCh7IGNvbnRhY3Q6IGNvbnRhY3QsIGNvbnRyYWdlbnQ6IGNvbnRyYWdlbnQgfSk7XG4gICAgfVxufVxuIiwiPHNjLWFjY29yZGlvbiBbc2hvd0FkZEJ1dHRvbl09XCJmYWxzZVwiPlxuICAgIHt7IGNvbnRyYWdlbnQubmFtZSB9fVxuICAgIDxzcGFuICpuZ0lmPVwiJGFueShjb250cmFnZW50KS5pbm4gYXMgaW5uXCI+0JjQndCdOiB7eyBpbm4gfX08L3NwYW4+XG5cbiAgICA8bmctdGVtcGxhdGUgc2NBY2NvcmRpb25Db250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbnRyYWdlbnQubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiRhbnkoY29udHJhZ2VudCkuaW5uIGFzIGlublwiPtCY0J3QnToge3sgaW5uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiRhbnkoY29udHJhZ2VudCkua3BwIGFzIGtwcFwiPtCa0J/Qnzoge3sga3BwIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0g0KTRg9C90LrRhtC40L7QvdCw0Lsg0YPQtNCw0LvQtdC90LjRjyDQuCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINCy0YDQtdC80LXQvdC90L4g0L3QtSDQtNC+0YHRgtGD0L/QtdC9INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRji4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkucGVuY2lsXCJcbiAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBlZGl0Q29udHJhZ2VudENsaWNrLmVtaXQoY29udHJhZ2VudC5pZClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkudHJhc2gtMlwiXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZGVsZXRlQ29udHJhZ2VudENsaWNrLmVtaXQoY29udHJhZ2VudClcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPHNjLWFjY29yZGlvbiAoYWRkQnV0dG9uQ2xpY2spPVwiYWRkQ29udHJhZ2VudEJhbmtBY2NvdW50Q2xpY2suZW1pdChjb250cmFnZW50KVwiPlxuICAgICAgICAgICAgICAgINCR0LDQvdC60L7QstGB0LrQuNC1INGA0LXQutCy0LjQt9C40YLRi1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBzY0FjY29yZGlvbkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktbG9hZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpTGV0PVwiYmFua0FjY291bnRzJCB8IGFzeW5jIGFzIGJhbmtBY2NvdW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3ZlcmxheV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cImJhbmtBY2NvdW50cyA9PT0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFiYW5rQWNjb3VudHMgfHwgYmFua0FjY291bnRzLmxlbmd0aDsgZWxzZSBiYW5rQWNjb3VudHNOb3RFeGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYmFua0FjY291bnQgb2YgYmFua0FjY291bnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBnYXAtMiBib3JkZXItYiBib3JkZXItdHVpLWJhc2UtMDNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+0JHQsNC90Lo6IHt7IGJhbmtBY2NvdW50LmJhbmtOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPtCR0JjQmjoge3sgYmFua0FjY291bnQuYmljIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPtCgL9GB0YfRkdGCOiB7eyBiYW5rQWNjb3VudC5hY2NvdW50TnVtYmVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPtCa0L7RgC/RgdGH0ZHRgjoge3sgYmFua0FjY291bnQuY29ycmVzcG9uZGVudEFjY291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+0JLQsNC70Y7RgtCwOiB7eyBiYW5rQWNjb3VudC5jdXJyZW5jeS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJAdHVpLnBlbmNpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZWRpdEJhbmtBY2NvdW50c0NvbnRyYWdlbnRDbGljay5lbWl0KGJhbmtBY2NvdW50LmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiQHR1aS50cmFzaC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZWxldGVDb250cmFnZW50QmFua0FjY291bnRDbGljay5lbWl0KGJhbmtBY2NvdW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYmFua0FjY291bnRzTm90RXhpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktbm90aWZpY2F0aW9uIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMiBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQoyDQutC+0L3RgtGA0LDQs9C10L3RgtCwIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgY29udHJhZ2VudC5uYW1lIH19PC9zcGFuPiDQvdC1INGD0LrQsNC30LDQvdGLINCx0LDQvdC60L7QstGB0LrQuNC1INGA0LXQutCy0LjQt9C40YLRiy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvdHVpLW5vdGlmaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3R1aS1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvc2MtYWNjb3JkaW9uPlxuICAgICAgICAgICAgPHNjLWNvbnRhY3RzLWFjY29yZGlvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdHMkXCJcbiAgICAgICAgICAgICAgICBbY29udGFjdHMkXT1cImNvbnRhY3RzJFwiXG4gICAgICAgICAgICAgICAgKGFkZENvbnRhY3RDbGljayk9XCJhZGRDb250cmFnZW50Q29udGFjdENsaWNrLmVtaXQoY29udHJhZ2VudClcIlxuICAgICAgICAgICAgICAgIChkZWxldGVCdXR0b25DbGljayk9XCJvbkRlbGV0ZUNvbnRyYWdlbnRDb250YWN0Q2xpY2soJGV2ZW50LCBjb250cmFnZW50KVwiXG4gICAgICAgICAgICA+PC9zYy1jb250YWN0cy1hY2NvcmRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3NjLWFjY29yZGlvbj5cbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@snabcentr/client-core";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../../accordion/sc-accordion.component";
6
- import * as i4 from "../../accordion/sc-accordion-content.directive";
7
- import * as i5 from "@taiga-ui/core";
8
- import * as i6 from "@taiga-ui/cdk";
9
- import * as i7 from "./contragents-accordion-item/sc-contragents-accordion-item.component";
10
- /**
11
- * Компонент контрагента пользователя.
12
- */
13
- export class ScContragentsAccordionComponent {
14
- /**
15
- * Инициализирует экземпляр класса {@link ScContragentsAccordionComponent}.
16
- *
17
- * @param contragentService Сервис работы с контрагентами.
18
- */
19
- constructor(contragentService) {
20
- this.contragentService = contragentService;
21
- /**
22
- * {@link Observable} данных о контрагентах пользователя.
23
- */
24
- this.contragents$ = this.contragentService.contragents$;
25
- /**
26
- * Событие нажатия на кнопку удаления контрагента.
27
- */
28
- this.addContragentClick = new EventEmitter();
29
- /**
30
- * Событие нажатия на кнопку удаления контрагента.
31
- */
32
- this.deleteContragentClick = new EventEmitter();
33
- /**
34
- * Событие нажатия на кнопку добавления банковского счёта контрагенту.
35
- */
36
- this.addContragentBankAccountClick = new EventEmitter();
37
- /**
38
- * Событие нажатия на кнопку удаления банковского счёта контрагента.
39
- */
40
- this.deleteContragentBankAccountClick = new EventEmitter();
41
- /**
42
- * Событие нажатия на кнопку добавления контактного лица контрагенту.
43
- */
44
- this.addContragentContactClick = new EventEmitter();
45
- /**
46
- * Событие нажатия на кнопку удаления контактного лица у контрагента.
47
- */
48
- this.deleteContragentContactClick = new EventEmitter();
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsAccordionComponent, deps: [{ token: i1.ScContragentService }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScContragentsAccordionComponent, selector: "sc-contragents-accordion", outputs: { addContragentClick: "addContragentClick", deleteContragentClick: "deleteContragentClick", addContragentBankAccountClick: "addContragentBankAccountClick", deleteContragentBankAccountClick: "deleteContragentBankAccountClick", addContragentContactClick: "addContragentContactClick", deleteContragentContactClick: "deleteContragentContactClick" }, ngImport: i0, template: "<sc-accordion (addButtonClick)=\"addContragentClick.emit()\">\n \u041A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"contragents$ | async as contragents\"\n [overlay]=\"true\"\n [showLoader]=\"contragents === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!contragents || contragents.length; else contragentsNotExist\">\n <sc-contragents-accordion-item\n *ngFor=\"let contragent of contragents\"\n [contragent]=\"contragent\"\n (deleteContragentClick)=\"deleteContragentClick.emit($event)\"\n (addContragentBankAccountClick)=\"addContragentBankAccountClick.emit($event)\"\n (deleteContragentBankAccountClick)=\"deleteContragentBankAccountClick.emit($event)\"\n (addContragentContactClick)=\"addContragentContactClick.emit($event)\"\n (deleteContragentContactClick)=\"deleteContragentContactClick.emit($event)\"\n ></sc-contragents-accordion-item>\n </ng-container>\n\n <ng-template #contragentsNotExist>\n <tui-notification size=\"l\">\n <div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\u041A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u044B \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B.</div>\n </div>\n </tui-notification>\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n</sc-accordion>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ScAccordionComponent, selector: "sc-accordion", inputs: ["showAddButton", "showDeleteButton", "showArrow", "open", "size", "disabledButtons"], outputs: ["addButtonClick", "deleteButtonClick"] }, { kind: "directive", type: i4.ScAccordionContentDirective, selector: "ng-template[scAccordionContent]" }, { kind: "component", type: i5.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i6.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i5.TuiNotification, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: ["appearance", "icon", "size"] }, { kind: "component", type: i7.ScContragentsAccordionItemComponent, selector: "sc-contragents-accordion-item", inputs: ["contragent"], outputs: ["deleteContragentClick", "addContragentBankAccountClick", "deleteContragentBankAccountClick", "addContragentContactClick", "deleteContragentContactClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScContragentsAccordionComponent, decorators: [{
54
- type: Component,
55
- args: [{ selector: 'sc-contragents-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sc-accordion (addButtonClick)=\"addContragentClick.emit()\">\n \u041A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u044B\n <ng-template scAccordionContent>\n <tui-loader\n *tuiLet=\"contragents$ | async as contragents\"\n [overlay]=\"true\"\n [showLoader]=\"contragents === null\"\n >\n <div class=\"flex flex-col gap-2\">\n <ng-container *ngIf=\"!contragents || contragents.length; else contragentsNotExist\">\n <sc-contragents-accordion-item\n *ngFor=\"let contragent of contragents\"\n [contragent]=\"contragent\"\n (deleteContragentClick)=\"deleteContragentClick.emit($event)\"\n (addContragentBankAccountClick)=\"addContragentBankAccountClick.emit($event)\"\n (deleteContragentBankAccountClick)=\"deleteContragentBankAccountClick.emit($event)\"\n (addContragentContactClick)=\"addContragentContactClick.emit($event)\"\n (deleteContragentContactClick)=\"deleteContragentContactClick.emit($event)\"\n ></sc-contragents-accordion-item>\n </ng-container>\n\n <ng-template #contragentsNotExist>\n <tui-notification size=\"l\">\n <div>\n <div class=\"flex flex-wrap gap-2 font-medium\">\u041A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u044B \u043D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B.</div>\n </div>\n </tui-notification>\n </ng-template>\n </div>\n </tui-loader>\n </ng-template>\n</sc-accordion>\n" }]
56
- }], ctorParameters: () => [{ type: i1.ScContragentService }], propDecorators: { addContragentClick: [{
57
- type: Output
58
- }], deleteContragentClick: [{
59
- type: Output
60
- }], addContragentBankAccountClick: [{
61
- type: Output
62
- }], deleteContragentBankAccountClick: [{
63
- type: Output
64
- }], addContragentContactClick: [{
65
- type: Output
66
- }], deleteContragentContactClick: [{
67
- type: Output
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9jb250cmFnZW50cy1hY2NvcmRpb24vc2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9jb250cmFnZW50cy1hY2NvcmRpb24vc2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBSXpGOztHQUVHO0FBTUgsTUFBTSxPQUFPLCtCQUErQjtJQTBDeEM7Ozs7T0FJRztJQUNILFlBQW9DLGlCQUFzQztRQUF0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBOUMxRTs7V0FFRztRQUNJLGlCQUFZLEdBQXNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7UUFFN0Y7O1dBRUc7UUFFSSx1QkFBa0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RTs7V0FFRztRQUVJLDBCQUFxQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUU1Rjs7V0FFRztRQUVJLGtDQUE2QixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVwRzs7V0FFRztRQUVJLHFDQUFnQyxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUUzRzs7V0FFRztRQUVJLDhCQUF5QixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVoRzs7V0FFRztRQUVJLGlDQUE0QixHQUFvRSxJQUFJLFlBQVksRUFBcUQsQ0FBQztJQU9oRyxDQUFDOytHQS9DckUsK0JBQStCO21HQUEvQiwrQkFBK0IsbWFDWjVDLDh2REFnQ0E7OzRGRHBCYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUVuQix1QkFBdUIsQ0FBQyxNQUFNO3dGQVl4QyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBT0EscUJBQXFCO3NCQUQzQixNQUFNO2dCQU9BLDZCQUE2QjtzQkFEbkMsTUFBTTtnQkFPQSxnQ0FBZ0M7c0JBRHRDLE1BQU07Z0JBT0EseUJBQXlCO3NCQUQvQixNQUFNO2dCQU9BLDRCQUE0QjtzQkFEbEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0NvbnRyYWdlbnQsIFNjQ29udHJhZ2VudFNlcnZpY2UsIFNjSUJhbmtBY2NvdW50LCBTY0lDb250YWN0IH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC60L7QvdGC0YDQsNCz0LXQvdGC0LAg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWNvbnRyYWdlbnRzLWFjY29yZGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWNvbnRyYWdlbnRzLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udHJhZ2VudHNBY2NvcmRpb25Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQtNCw0L3QvdGL0YUg0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQsNGFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29udHJhZ2VudHMkOiBPYnNlcnZhYmxlPFNjQ29udHJhZ2VudFtdIHwgbnVsbD4gPSB0aGlzLmNvbnRyYWdlbnRTZXJ2aWNlLmNvbnRyYWdlbnRzJDtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINGD0LTQsNC70LXQvdC40Y8g0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWRkQ29udHJhZ2VudENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDRg9C00LDQu9C10L3QuNGPINC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbGV0ZUNvbnRyYWdlbnRDbGljazogRXZlbnRFbWl0dGVyPFNjQ29udHJhZ2VudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjQ29udHJhZ2VudD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC00L7QsdCw0LLQu9C10L3QuNGPINCx0LDQvdC60L7QstGB0LrQvtCz0L4g0YHRh9GR0YLQsCDQutC+0L3RgtGA0LDQs9C10L3RgtGDLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBhZGRDb250cmFnZW50QmFua0FjY291bnRDbGljazogRXZlbnRFbWl0dGVyPFNjQ29udHJhZ2VudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjQ29udHJhZ2VudD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINGD0LTQsNC70LXQvdC40Y8g0LHQsNC90LrQvtCy0YHQutC+0LPQviDRgdGH0ZHRgtCwINC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbGV0ZUNvbnRyYWdlbnRCYW5rQWNjb3VudENsaWNrOiBFdmVudEVtaXR0ZXI8U2NJQmFua0FjY291bnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY0lCYW5rQWNjb3VudD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC00L7QsdCw0LLQu9C10L3QuNGPINC60L7QvdGC0LDQutGC0L3QvtCz0L4g0LvQuNGG0LAg0LrQvtC90YLRgNCw0LPQtdC90YLRgy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWRkQ29udHJhZ2VudENvbnRhY3RDbGljazogRXZlbnRFbWl0dGVyPFNjQ29udHJhZ2VudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjQ29udHJhZ2VudD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINGD0LTQsNC70LXQvdC40Y8g0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsCDRgyDQutC+0L3RgtGA0LDQs9C10L3RgtCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZWxldGVDb250cmFnZW50Q29udGFjdENsaWNrOiBFdmVudEVtaXR0ZXI8eyBjb250YWN0OiBTY0lDb250YWN0OyBjb250cmFnZW50OiBTY0NvbnRyYWdlbnQgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgY29udGFjdDogU2NJQ29udGFjdDsgY29udHJhZ2VudDogU2NDb250cmFnZW50IH0+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQ29udHJhZ2VudHNBY2NvcmRpb25Db21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRyYWdlbnRTZXJ2aWNlINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LrQvtC90YLRgNCw0LPQtdC90YLQsNC80LguXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29udHJhZ2VudFNlcnZpY2U6IFNjQ29udHJhZ2VudFNlcnZpY2UpIHt9XG59XG4iLCI8c2MtYWNjb3JkaW9uIChhZGRCdXR0b25DbGljayk9XCJhZGRDb250cmFnZW50Q2xpY2suZW1pdCgpXCI+XG4gICAg0JrQvtC90YLRgNCw0LPQtdC90YLRi1xuICAgIDxuZy10ZW1wbGF0ZSBzY0FjY29yZGlvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktbG9hZGVyXG4gICAgICAgICAgICAqdHVpTGV0PVwiY29udHJhZ2VudHMkIHwgYXN5bmMgYXMgY29udHJhZ2VudHNcIlxuICAgICAgICAgICAgW292ZXJsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJjb250cmFnZW50cyA9PT0gbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250cmFnZW50cyB8fCBjb250cmFnZW50cy5sZW5ndGg7IGVsc2UgY29udHJhZ2VudHNOb3RFeGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8c2MtY29udHJhZ2VudHMtYWNjb3JkaW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb250cmFnZW50IG9mIGNvbnRyYWdlbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cmFnZW50XT1cImNvbnRyYWdlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZUNvbnRyYWdlbnRDbGljayk9XCJkZWxldGVDb250cmFnZW50Q2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChhZGRDb250cmFnZW50QmFua0FjY291bnRDbGljayk9XCJhZGRDb250cmFnZW50QmFua0FjY291bnRDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZUNvbnRyYWdlbnRCYW5rQWNjb3VudENsaWNrKT1cImRlbGV0ZUNvbnRyYWdlbnRCYW5rQWNjb3VudENsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYWRkQ29udHJhZ2VudENvbnRhY3RDbGljayk9XCJhZGRDb250cmFnZW50Q29udGFjdENsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlQ29udHJhZ2VudENvbnRhY3RDbGljayk9XCJkZWxldGVDb250cmFnZW50Q29udGFjdENsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3NjLWNvbnRyYWdlbnRzLWFjY29yZGlvbi1pdGVtPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250cmFnZW50c05vdEV4aXN0PlxuICAgICAgICAgICAgICAgICAgICA8dHVpLW5vdGlmaWNhdGlvbiBzaXplPVwibFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgZm9udC1tZWRpdW1cIj7QmtC+0L3RgtGA0LDQs9C10L3RgtGLINC90LUg0YPQutCw0LfQsNC90YsuPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC90dWktbm90aWZpY2F0aW9uPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90dWktbG9hZGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3NjLWFjY29yZGlvbj5cbiJdfQ==