@snabcentr/client-ui 4.14.9 → 4.14.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/accordion/index.d.ts +3 -0
  2. package/accordion/sc-accordion-content.directive.d.ts +9 -0
  3. package/accordion/sc-accordion.component.d.ts +56 -0
  4. package/accordion/sc-accordion.module.d.ts +15 -0
  5. package/auth/enums/auth-method.d.ts +13 -0
  6. package/auth/index.d.ts +8 -0
  7. package/auth/interfaces/index.d.ts +2 -0
  8. package/auth/interfaces/sc-bank-account-form-group.d.ts +11 -0
  9. package/auth/interfaces/sc-contact-form-group.d.ts +10 -0
  10. package/auth/sc-auth.module.d.ts +27 -0
  11. package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +55 -0
  12. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +45 -0
  13. package/auth/sc-sign-in-form/sc-sign-in-form.component.d.ts +53 -0
  14. package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +113 -0
  15. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +172 -0
  16. package/banner/index.d.ts +2 -0
  17. package/banner/sc-banner.component.d.ts +108 -0
  18. package/banner/sc-banner.module.d.ts +17 -0
  19. package/brands-list/index.d.ts +3 -0
  20. package/brands-list/sc-brand-list-item.d.ts +25 -0
  21. package/brands-list/sc-brands-list.component.d.ts +13 -0
  22. package/brands-list/sc-brands-list.module.d.ts +12 -0
  23. package/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.d.ts +106 -0
  24. package/cart/add-or-editing-cart-item-dialog/index.d.ts +2 -0
  25. package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +49 -0
  26. package/cart/index.d.ts +2 -0
  27. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +62 -0
  28. package/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.d.ts +47 -0
  29. package/catalog/catalog-filters/index.d.ts +4 -0
  30. package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +199 -0
  31. package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +7 -0
  32. package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +5 -0
  33. package/catalog/category-card/sc-category-card.component.d.ts +76 -0
  34. package/catalog/cost-with-discount/cost-with-discount.component.d.ts +23 -0
  35. package/catalog/download-price-list/sc-download-price-list.component.d.ts +38 -0
  36. package/catalog/hover-image-carousel/sc-hover-image-carousel.component.d.ts +48 -0
  37. package/catalog/index.d.ts +15 -0
  38. package/catalog/input-quantity/sc-input-quantity.component.d.ts +82 -0
  39. package/catalog/notify-when-in-stock-dialog/index.d.ts +2 -0
  40. package/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.d.ts +90 -0
  41. package/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.d.ts +22 -0
  42. package/catalog/price-card/sc-price-card.component.d.ts +18 -0
  43. package/catalog/price-card-inline/sc-price-card-inline.component.d.ts +10 -0
  44. package/catalog/price-history/sc-price-history.component.d.ts +92 -0
  45. package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +40 -0
  46. package/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.d.ts +47 -0
  47. package/catalog/sc-catalog.module.d.ts +29 -0
  48. package/catalog/sc-favorite-button/sc-favorite-button.component.d.ts +25 -0
  49. package/catalog/seo-tags/sc-seo-tags.component.d.ts +20 -0
  50. package/configurators/index.d.ts +3 -0
  51. package/configurators/models/index.d.ts +3 -0
  52. package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +22 -0
  53. package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +18 -0
  54. package/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.d.ts +18 -0
  55. package/configurators/sandwich/index.d.ts +3 -0
  56. package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +8 -0
  57. package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +14 -0
  58. package/configurators/sandwich/sc-sandwich.component.d.ts +186 -0
  59. package/configurators/sandwich_m2/index.d.ts +4 -0
  60. package/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.d.ts +8 -0
  61. package/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.d.ts +23 -0
  62. package/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.d.ts +13 -0
  63. package/configurators/sandwich_m2/sc-sandwich-m2.component.d.ts +275 -0
  64. package/contacts/add-contact-dialog/sc-add-contact-dialog.component.d.ts +49 -0
  65. package/contacts/contacts-accordion/sc-contacts-accordion.component.d.ts +23 -0
  66. package/contacts/index.d.ts +7 -0
  67. package/contacts/manager-card/sc-manager-card.component.d.ts +22 -0
  68. package/contacts/manager-card-push/sc-manager-card-push.component.d.ts +18 -0
  69. package/contacts/new-contact-form/sc-new-contact-form.component.d.ts +28 -0
  70. package/contacts/sc-contacts.module.d.ts +27 -0
  71. package/contacts/tokens/index.d.ts +2 -0
  72. package/contacts/tokens/sc-manager-qr-handler.token.d.ts +6 -0
  73. package/contacts/tokens/sc-show-help-notification-in-phone-input.token.d.ts +5 -0
  74. package/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.d.ts +49 -0
  75. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +158 -0
  76. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +62 -0
  77. package/contragents/contragents-accordion/sc-contragents-accordion.component.d.ts +49 -0
  78. package/contragents/index.d.ts +7 -0
  79. package/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.d.ts +64 -0
  80. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +123 -0
  81. package/contragents/sc-contragents.module.d.ts +27 -0
  82. package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +148 -0
  83. package/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.d.ts +50 -0
  84. package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +49 -0
  85. package/delivery-address/index.d.ts +4 -0
  86. package/delivery-address/sc-delivery-address.module.d.ts +25 -0
  87. package/dialogs/index.d.ts +1 -0
  88. package/dialogs/sc-resource-preview/sc-resource-preview.component.d.ts +42 -0
  89. package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +136 -0
  90. package/directives/address-quality/sc-address-quality.directive.d.ts +23 -0
  91. package/directives/address-quality/sc-address-quality.service.d.ts +122 -0
  92. package/directives/address-quality/sc-i-address-quality-state.d.ts +14 -0
  93. package/directives/index.d.ts +11 -0
  94. package/directives/links/index.d.ts +4 -0
  95. package/directives/links/sc-email-link.directive.d.ts +25 -0
  96. package/directives/links/sc-link-location.d.ts +5 -0
  97. package/directives/links/sc-links.d.ts +7 -0
  98. package/directives/links/sc-tel-link.directive.d.ts +40 -0
  99. package/directives/next-input-focus/sc-next-input-focus.directive.d.ts +27 -0
  100. package/directives/next-input-focus/sc-next-input-focus.module.d.ts +10 -0
  101. package/directives/print/sc-print.directive.d.ts +21 -0
  102. package/directives/sc-date-value-transformer.directive.d.ts +8 -0
  103. package/directives/sc-focus-first-invalid-field.directive.d.ts +30 -0
  104. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +14 -0
  105. package/directives/terminal-link/sc-terminal-link.directive.d.ts +34 -0
  106. package/error-handler/consts/error-change-handler.providers.d.ts +6 -0
  107. package/error-handler/error-block-status/error-block-status.component.d.ts +55 -0
  108. package/error-handler/index.d.ts +4 -0
  109. package/error-handler/interfaces/i-block-error.d.ts +17 -0
  110. package/error-handler/sc-error-handler.component.d.ts +40 -0
  111. package/esm2022/accordion/index.mjs +4 -0
  112. package/esm2022/accordion/sc-accordion-content.directive.mjs +17 -0
  113. package/esm2022/accordion/sc-accordion.component.mjs +92 -0
  114. package/esm2022/accordion/sc-accordion.module.mjs +26 -0
  115. package/esm2022/auth/enums/auth-method.mjs +15 -0
  116. package/esm2022/auth/index.mjs +9 -0
  117. package/esm2022/auth/interfaces/index.mjs +3 -0
  118. package/esm2022/auth/interfaces/sc-bank-account-form-group.mjs +2 -0
  119. package/esm2022/auth/interfaces/sc-contact-form-group.mjs +2 -0
  120. package/esm2022/auth/sc-auth.module.mjs +103 -0
  121. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +100 -0
  122. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +81 -0
  123. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +89 -0
  124. package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +203 -0
  125. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +344 -0
  126. package/esm2022/banner/index.mjs +3 -0
  127. package/esm2022/banner/sc-banner.component.mjs +176 -0
  128. package/esm2022/banner/sc-banner.module.mjs +29 -0
  129. package/esm2022/brands-list/index.mjs +4 -0
  130. package/esm2022/brands-list/sc-brand-list-item.mjs +2 -0
  131. package/esm2022/brands-list/sc-brands-list.component.mjs +24 -0
  132. package/esm2022/brands-list/sc-brands-list.module.mjs +22 -0
  133. package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +233 -0
  134. package/esm2022/cart/add-or-editing-cart-item-dialog/index.mjs +3 -0
  135. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +75 -0
  136. package/esm2022/cart/index.mjs +3 -0
  137. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +110 -0
  138. package/esm2022/catalog/catalog-filters/collapsible/sc-catalog-filter-collapsible.component.mjs +59 -0
  139. package/esm2022/catalog/catalog-filters/index.mjs +5 -0
  140. package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +451 -0
  141. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +10 -0
  142. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +6 -0
  143. package/esm2022/catalog/category-card/sc-category-card.component.mjs +102 -0
  144. package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +38 -0
  145. package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +56 -0
  146. package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +76 -0
  147. package/esm2022/catalog/index.mjs +16 -0
  148. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +190 -0
  149. package/esm2022/catalog/notify-when-in-stock-dialog/index.mjs +3 -0
  150. package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +173 -0
  151. package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +35 -0
  152. package/esm2022/catalog/price-card/sc-price-card.component.mjs +71 -0
  153. package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +54 -0
  154. package/esm2022/catalog/price-history/sc-price-history.component.mjs +144 -0
  155. package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +65 -0
  156. package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +61 -0
  157. package/esm2022/catalog/sc-catalog.module.mjs +128 -0
  158. package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +42 -0
  159. package/esm2022/catalog/seo-tags/sc-seo-tags.component.mjs +25 -0
  160. package/esm2022/configurators/index.mjs +4 -0
  161. package/esm2022/configurators/models/index.mjs +4 -0
  162. package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +2 -0
  163. package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +2 -0
  164. package/esm2022/configurators/models/sandwich_m2/sc-i-sandwich-m2-settings.mjs +2 -0
  165. package/esm2022/configurators/sandwich/index.mjs +4 -0
  166. package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +14 -0
  167. package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +2 -0
  168. package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +387 -0
  169. package/esm2022/configurators/sandwich_m2/index.mjs +5 -0
  170. package/esm2022/configurators/sandwich_m2/sandwich-m2-skeleton/sc-sandwich-m2-skeleton.component.mjs +14 -0
  171. package/esm2022/configurators/sandwich_m2/sc-i-new-cart-item-sandwich-m2.mjs +2 -0
  172. package/esm2022/configurators/sandwich_m2/sc-sandwich-m2-item-submit-state.mjs +5 -0
  173. package/esm2022/configurators/sandwich_m2/sc-sandwich-m2.component.mjs +569 -0
  174. package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +91 -0
  175. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +37 -0
  176. package/esm2022/contacts/index.mjs +8 -0
  177. package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +58 -0
  178. package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +28 -0
  179. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +37 -0
  180. package/esm2022/contacts/sc-contacts.module.mjs +89 -0
  181. package/esm2022/contacts/tokens/index.mjs +3 -0
  182. package/esm2022/contacts/tokens/sc-manager-qr-handler.token.mjs +25 -0
  183. package/esm2022/contacts/tokens/sc-show-help-notification-in-phone-input.token.mjs +9 -0
  184. package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +81 -0
  185. package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +266 -0
  186. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +74 -0
  187. package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +68 -0
  188. package/esm2022/contragents/index.mjs +8 -0
  189. package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +72 -0
  190. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +230 -0
  191. package/esm2022/contragents/sc-contragents.module.mjs +118 -0
  192. package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +261 -0
  193. package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +60 -0
  194. package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +68 -0
  195. package/esm2022/delivery-address/index.mjs +5 -0
  196. package/esm2022/delivery-address/sc-delivery-address.module.mjs +96 -0
  197. package/esm2022/dialogs/index.mjs +2 -0
  198. package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +73 -0
  199. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +170 -0
  200. package/esm2022/directives/address-quality/sc-address-quality.directive.mjs +40 -0
  201. package/esm2022/directives/address-quality/sc-address-quality.service.mjs +214 -0
  202. package/esm2022/directives/address-quality/sc-i-address-quality-state.mjs +2 -0
  203. package/esm2022/directives/index.mjs +12 -0
  204. package/esm2022/directives/links/index.mjs +5 -0
  205. package/esm2022/directives/links/sc-email-link.directive.mjs +49 -0
  206. package/esm2022/directives/links/sc-link-location.mjs +2 -0
  207. package/esm2022/directives/links/sc-links.mjs +8 -0
  208. package/esm2022/directives/links/sc-tel-link.directive.mjs +79 -0
  209. package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +70 -0
  210. package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +19 -0
  211. package/esm2022/directives/print/sc-print.directive.mjs +36 -0
  212. package/esm2022/directives/sc-date-value-transformer.directive.mjs +30 -0
  213. package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +85 -0
  214. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +36 -0
  215. package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +69 -0
  216. package/esm2022/error-handler/consts/error-change-handler.providers.mjs +10 -0
  217. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +101 -0
  218. package/esm2022/error-handler/index.mjs +5 -0
  219. package/esm2022/error-handler/interfaces/i-block-error.mjs +2 -0
  220. package/esm2022/error-handler/sc-error-handler.component.mjs +58 -0
  221. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +344 -0
  222. package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +32 -0
  223. package/esm2022/feedback/index.mjs +4 -0
  224. package/esm2022/feedback/interfaces/index.mjs +2 -0
  225. package/esm2022/feedback/interfaces/sc-feedback-form-config.mjs +2 -0
  226. package/esm2022/files/directives/index.mjs +3 -0
  227. package/esm2022/files/directives/tree-top.directive.mjs +63 -0
  228. package/esm2022/files/directives/tree.directive.mjs +47 -0
  229. package/esm2022/files/file-tree-item/file-tree-item.component.mjs +18 -0
  230. package/esm2022/files/files-and-documents/files-and-documents.component.mjs +61 -0
  231. package/esm2022/files/files-and-documents.module.mjs +28 -0
  232. package/esm2022/files/index.mjs +6 -0
  233. package/esm2022/files/interfaces/tree-node.mjs +2 -0
  234. package/esm2022/files/services/index.mjs +3 -0
  235. package/esm2022/files/services/tree-icon.service.mjs +49 -0
  236. package/esm2022/files/services/tree-loader.service.mjs +62 -0
  237. package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +155 -0
  238. package/esm2022/form-fields/form-fields.module.mjs +66 -0
  239. package/esm2022/form-fields/index.mjs +4 -0
  240. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +234 -0
  241. package/esm2022/icons/index.mjs +2 -0
  242. package/esm2022/icons/sc-client-ui-icons-name.mjs +99 -0
  243. package/esm2022/loader/index.mjs +2 -0
  244. package/esm2022/loader/sc-i-loader.mjs +2 -0
  245. package/esm2022/masks/index.mjs +8 -0
  246. package/esm2022/masks/sc-account-number-mask.mjs +7 -0
  247. package/esm2022/masks/sc-bic-mask.mjs +7 -0
  248. package/esm2022/masks/sc-correspondent-account-mask.mjs +7 -0
  249. package/esm2022/masks/sc-inn-mask.mjs +13 -0
  250. package/esm2022/masks/sc-kpp-mask.mjs +7 -0
  251. package/esm2022/masks/sc-okpo-mask.mjs +13 -0
  252. package/esm2022/masks/sc-phone-verification-code-mask.mjs +7 -0
  253. package/esm2022/methods/index.mjs +2 -0
  254. package/esm2022/methods/sc-get-current-route.mjs +14 -0
  255. package/esm2022/models/i-sc-image.mjs +2 -0
  256. package/esm2022/models/index.mjs +2 -0
  257. package/esm2022/news/index.mjs +4 -0
  258. package/esm2022/news/news-card/sc-news-card.component.mjs +34 -0
  259. package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +31 -0
  260. package/esm2022/news/sc-news.module.mjs +25 -0
  261. package/esm2022/noindex-wrapper/directives/index.mjs +2 -0
  262. package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +58 -0
  263. package/esm2022/noindex-wrapper/index.mjs +3 -0
  264. package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +18 -0
  265. package/esm2022/order/directives/index.mjs +3 -0
  266. package/esm2022/order/directives/sc-order-accessor.directive.mjs +28 -0
  267. package/esm2022/order/directives/sc-order-options.mjs +11 -0
  268. package/esm2022/order/draft/sc-draft.component.mjs +118 -0
  269. package/esm2022/order/index.mjs +14 -0
  270. package/esm2022/order/models/i-new-order-form.mjs +2 -0
  271. package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +22 -0
  272. package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +39 -0
  273. package/esm2022/order/order-form/sc-order-form.component.mjs +565 -0
  274. package/esm2022/order/order-form/sc-order-form.config.mjs +7 -0
  275. package/esm2022/order/order-item/sc-order-item.component.mjs +112 -0
  276. package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +212 -0
  277. package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +75 -0
  278. package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +75 -0
  279. package/esm2022/order/sc-order.module.mjs +52 -0
  280. package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +35 -0
  281. package/esm2022/pages/frequently-asked-questions/sc-faq-query-params.mjs +5 -0
  282. package/esm2022/pages/frequently-asked-questions/sc-faq-question-anchor.mjs +23 -0
  283. package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +167 -0
  284. package/esm2022/pages/frequently-asked-questions/sc-get-faq-group-query-params.mjs +14 -0
  285. package/esm2022/pages/frequently-asked-questions/sc-page-size-options.mjs +8 -0
  286. package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +88 -0
  287. package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +123 -0
  288. package/esm2022/pages/index.mjs +11 -0
  289. package/esm2022/pages/news-list/sc-news-list.component.mjs +90 -0
  290. package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +46 -0
  291. package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +30 -0
  292. package/esm2022/pages/public-offer/sc-public-offer.component.mjs +50 -0
  293. package/esm2022/pagination/index.mjs +2 -0
  294. package/esm2022/pagination/sc-pagination-links/sc-pagination-links.component.mjs +99 -0
  295. package/esm2022/pipes/index.mjs +3 -0
  296. package/esm2022/pipes/sc-format-date.mjs +33 -0
  297. package/esm2022/pipes/sc-phone-format.mjs +44 -0
  298. package/esm2022/profile/index.mjs +3 -0
  299. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +174 -0
  300. package/esm2022/profile/sc-profile.module.mjs +73 -0
  301. package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +30 -0
  302. package/esm2022/providers/date-value-transformer/index.mjs +4 -0
  303. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +2 -0
  304. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +26 -0
  305. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +37 -0
  306. package/esm2022/providers/index.mjs +18 -0
  307. package/esm2022/providers/sc-allow-select-terminated.mjs +8 -0
  308. package/esm2022/providers/sc-banner-duration.mjs +8 -0
  309. package/esm2022/providers/sc-block-incomplete-address.mjs +8 -0
  310. package/esm2022/providers/sc-country-ids.mjs +8 -0
  311. package/esm2022/providers/sc-date-formatter.mjs +15 -0
  312. package/esm2022/providers/sc-date-value-transformer.mjs +12 -0
  313. package/esm2022/providers/sc-debounce-time-default.mjs +9 -0
  314. package/esm2022/providers/sc-dialog-service.providers.mjs +6 -0
  315. package/esm2022/providers/sc-help-notification-close.mjs +9 -0
  316. package/esm2022/providers/sc-help-notification-limit.mjs +8 -0
  317. package/esm2022/providers/sc-hidden-print-elements.token.mjs +10 -0
  318. package/esm2022/providers/sc-max-files-in-form-input.mjs +8 -0
  319. package/esm2022/providers/sc-notify-when-in-stock-required-fields.mjs +8 -0
  320. package/esm2022/providers/sc-page-size-options.mjs +8 -0
  321. package/esm2022/providers/sc-user-providers.mjs +38 -0
  322. package/esm2022/providers/sc-verification-code-timeout.mjs +8 -0
  323. package/esm2022/public-api.mjs +36 -0
  324. package/esm2022/qrcode/index.mjs +3 -0
  325. package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +58 -0
  326. package/esm2022/qrcode/sc-qrcode.module.mjs +25 -0
  327. package/esm2022/samples/index.mjs +5 -0
  328. package/esm2022/samples/interfaces/index.mjs +3 -0
  329. package/esm2022/samples/interfaces/sc-i-preview-sample.mjs +2 -0
  330. package/esm2022/samples/interfaces/sc-preview-mosquito-config.mjs +2 -0
  331. package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +42 -0
  332. package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +63 -0
  333. package/esm2022/samples/sc-sample.module.mjs +66 -0
  334. package/esm2022/services/index.mjs +3 -0
  335. package/esm2022/services/print.service.mjs +49 -0
  336. package/esm2022/services/sc-help-notification.service.mjs +100 -0
  337. package/esm2022/share/index.mjs +6 -0
  338. package/esm2022/share/sc-share-dialog-data.mjs +2 -0
  339. package/esm2022/share/sc-share.service.mjs +40 -0
  340. package/esm2022/share/share-button/sc-share-button.component.mjs +99 -0
  341. package/esm2022/share/share-dialog/sc-share-dialog.component.mjs +139 -0
  342. package/esm2022/share/share-messengers-links/sc-share-messengers-links.component.mjs +84 -0
  343. package/esm2022/snabcentr-client-ui.mjs +5 -0
  344. package/esm2022/user/index.mjs +6 -0
  345. package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +74 -0
  346. package/esm2022/user/sc-user.module.mjs +86 -0
  347. package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +121 -0
  348. package/esm2022/user/user-managers/sc-user-managers.component.mjs +40 -0
  349. package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +105 -0
  350. package/esm2022/validators/index.mjs +7 -0
  351. package/esm2022/validators/sc-at-least-one-required-validator.mjs +25 -0
  352. package/esm2022/validators/sc-bic-validator.mjs +10 -0
  353. package/esm2022/validators/sc-correspondent-account-validator.mjs +10 -0
  354. package/esm2022/validators/sc-password-confirm-matching-validator.mjs +17 -0
  355. package/esm2022/validators/sc-phone-validator.mjs +14 -0
  356. package/esm2022/validators/step-validator.mjs +18 -0
  357. package/esm2022/verification/index.mjs +3 -0
  358. package/esm2022/verification/sc-verification.module.mjs +86 -0
  359. package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +259 -0
  360. package/feedback/feedback-form/sc-feedback-form.component.d.ts +163 -0
  361. package/feedback/gratitude/sc-gratitude.component.d.ts +20 -0
  362. package/feedback/index.d.ts +3 -0
  363. package/feedback/interfaces/index.d.ts +1 -0
  364. package/feedback/interfaces/sc-feedback-form-config.d.ts +23 -0
  365. package/fesm2022/snabcentr-client-ui.mjs +5634 -4837
  366. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  367. package/files/directives/index.d.ts +2 -0
  368. package/files/directives/tree-top.directive.d.ts +33 -0
  369. package/files/directives/tree.directive.d.ts +35 -0
  370. package/files/file-tree-item/file-tree-item.component.d.ts +9 -0
  371. package/files/files-and-documents/files-and-documents.component.d.ts +27 -0
  372. package/files/files-and-documents.module.d.ts +17 -0
  373. package/files/index.d.ts +5 -0
  374. package/files/interfaces/tree-node.d.ts +29 -0
  375. package/files/services/index.d.ts +2 -0
  376. package/files/services/tree-icon.service.d.ts +23 -0
  377. package/files/services/tree-loader.service.d.ts +43 -0
  378. package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +80 -0
  379. package/form-fields/form-fields.module.d.ts +18 -0
  380. package/form-fields/index.d.ts +3 -0
  381. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +107 -0
  382. package/icons/index.d.ts +1 -0
  383. package/icons/sc-client-ui-icons-name.d.ts +4 -0
  384. package/icons/svg-pack/application.svg +1 -1
  385. package/icons/svg-pack/back.svg +1 -1
  386. package/icons/svg-pack/bag.svg +1 -1
  387. package/icons/svg-pack/banknote-arrow-in-top.svg +1 -1
  388. package/icons/svg-pack/catalog/aluminum-systems.svg +1 -1
  389. package/icons/svg-pack/catalog/arm-profile.svg +1 -1
  390. package/icons/svg-pack/catalog/batten.svg +1 -1
  391. package/icons/svg-pack/catalog/brusbox.svg +1 -1
  392. package/icons/svg-pack/catalog/canopy.svg +1 -1
  393. package/icons/svg-pack/catalog/configurator.svg +1 -1
  394. package/icons/svg-pack/catalog/covering-material.svg +1 -1
  395. package/icons/svg-pack/catalog/door-accessories.svg +1 -1
  396. package/icons/svg-pack/catalog/drainage-system.svg +1 -1
  397. package/icons/svg-pack/catalog/fastener.svg +1 -1
  398. package/icons/svg-pack/catalog/finishing-materials.svg +1 -1
  399. package/icons/svg-pack/catalog/fixing-impost.svg +1 -1
  400. package/icons/svg-pack/catalog/flask.svg +1 -1
  401. package/icons/svg-pack/catalog/foam-balloon.svg +1 -1
  402. package/icons/svg-pack/catalog/foam.svg +1 -1
  403. package/icons/svg-pack/catalog/glue.svg +1 -1
  404. package/icons/svg-pack/catalog/handle.svg +1 -1
  405. package/icons/svg-pack/catalog/instrument.svg +1 -1
  406. package/icons/svg-pack/catalog/kve-profile.svg +1 -1
  407. package/icons/svg-pack/catalog/lubricants.svg +1 -1
  408. package/icons/svg-pack/catalog/mosquito-net.svg +1 -1
  409. package/icons/svg-pack/catalog/mounting-accessories.svg +1 -1
  410. package/icons/svg-pack/catalog/net-order.svg +1 -1
  411. package/icons/svg-pack/catalog/panel-1.svg +1 -1
  412. package/icons/svg-pack/catalog/panel.svg +1 -1
  413. package/icons/svg-pack/catalog/polyethylene-film.svg +1 -1
  414. package/icons/svg-pack/catalog/profile-plastic.svg +1 -1
  415. package/icons/svg-pack/catalog/promo-materials.svg +1 -1
  416. package/icons/svg-pack/catalog/psul.svg +1 -1
  417. package/icons/svg-pack/catalog/rehau-profile.svg +1 -1
  418. package/icons/svg-pack/catalog/sandwich-plastic.svg +1 -1
  419. package/icons/svg-pack/catalog/sealer.svg +1 -1
  420. package/icons/svg-pack/catalog/siding-2.svg +1 -1
  421. package/icons/svg-pack/catalog/siding.svg +1 -1
  422. package/icons/svg-pack/catalog/start-finish-profile.svg +1 -1
  423. package/icons/svg-pack/catalog/steam-waterproofing.svg +1 -1
  424. package/icons/svg-pack/catalog/stiz.svg +1 -1
  425. package/icons/svg-pack/catalog/thermometer.svg +1 -1
  426. package/icons/svg-pack/catalog/windowsill.svg +1 -1
  427. package/icons/svg-pack/chart-column-plus.svg +1 -1
  428. package/icons/svg-pack/circle-arrow-in-right.svg +1 -1
  429. package/icons/svg-pack/contacts.svg +1 -1
  430. package/icons/svg-pack/deadline.svg +1 -1
  431. package/icons/svg-pack/file-p.svg +1 -1
  432. package/icons/svg-pack/file-search.svg +1 -1
  433. package/icons/svg-pack/file-w.svg +1 -1
  434. package/icons/svg-pack/file-x.svg +1 -1
  435. package/icons/svg-pack/grid-height-arrow.svg +1 -1
  436. package/icons/svg-pack/grid-width-arrow.svg +1 -1
  437. package/icons/svg-pack/layout-list-tree.svg +1 -1
  438. package/icons/svg-pack/list.svg +1 -1
  439. package/icons/svg-pack/puzzle.svg +1 -1
  440. package/icons/svg-pack/reclamation.svg +1 -1
  441. package/icons/svg-pack/retail-store.svg +1 -1
  442. package/icons/svg-pack/send.svg +1 -1
  443. package/index.d.ts +5 -0
  444. package/loader/index.d.ts +1 -0
  445. package/loader/sc-i-loader.d.ts +9 -0
  446. package/masks/index.d.ts +7 -0
  447. package/masks/sc-account-number-mask.d.ts +5 -0
  448. package/masks/sc-bic-mask.d.ts +5 -0
  449. package/masks/sc-correspondent-account-mask.d.ts +5 -0
  450. package/masks/sc-inn-mask.d.ts +9 -0
  451. package/masks/sc-kpp-mask.d.ts +5 -0
  452. package/masks/sc-okpo-mask.d.ts +9 -0
  453. package/masks/sc-phone-verification-code-mask.d.ts +5 -0
  454. package/methods/index.d.ts +1 -0
  455. package/methods/sc-get-current-route.d.ts +8 -0
  456. package/models/i-sc-image.d.ts +17 -0
  457. package/models/index.d.ts +1 -0
  458. package/news/index.d.ts +3 -0
  459. package/news/news-card/sc-news-card.component.d.ts +22 -0
  460. package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +16 -0
  461. package/news/sc-news.module.d.ts +15 -0
  462. package/noindex-wrapper/directives/index.d.ts +1 -0
  463. package/noindex-wrapper/directives/sc-noindex.directive.d.ts +29 -0
  464. package/noindex-wrapper/index.d.ts +2 -0
  465. package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +9 -0
  466. package/order/directives/index.d.ts +2 -0
  467. package/order/directives/sc-order-accessor.directive.d.ts +13 -0
  468. package/order/directives/sc-order-options.d.ts +14 -0
  469. package/order/draft/sc-draft.component.d.ts +63 -0
  470. package/order/index.d.ts +13 -0
  471. package/order/models/i-new-order-form.d.ts +39 -0
  472. package/order/models/sc-i-cart-items-by-direction.d.ts +25 -0
  473. package/order/order-direction-items/sc-order-direction-items.component.d.ts +29 -0
  474. package/order/order-form/sc-order-form.component.d.ts +283 -0
  475. package/order/order-form/sc-order-form.config.d.ts +20 -0
  476. package/order/order-item/sc-order-item.component.d.ts +43 -0
  477. package/order/order-items-list/sc-order-items-list.component.d.ts +113 -0
  478. package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +58 -0
  479. package/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.d.ts +55 -0
  480. package/order/sc-order.module.d.ts +18 -0
  481. package/order/sc-payment-status/sc-payment-status.component.d.ts +25 -0
  482. package/package.json +37 -35
  483. package/pages/frequently-asked-questions/sc-faq-query-params.d.ts +4 -0
  484. package/pages/frequently-asked-questions/sc-faq-question-anchor.d.ts +16 -0
  485. package/pages/frequently-asked-questions/sc-frequently-asked-questions.component.d.ts +84 -0
  486. package/pages/frequently-asked-questions/sc-get-faq-group-query-params.d.ts +10 -0
  487. package/pages/frequently-asked-questions/sc-page-size-options.d.ts +5 -0
  488. package/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.d.ts +47 -0
  489. package/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.d.ts +89 -0
  490. package/pages/index.d.ts +10 -0
  491. package/pages/news-list/sc-news-list.component.d.ts +57 -0
  492. package/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.d.ts +17 -0
  493. package/pages/privacy-policy/sc-privacy-policy.component.d.ts +17 -0
  494. package/pages/public-offer/sc-public-offer.component.d.ts +22 -0
  495. package/pagination/index.d.ts +1 -0
  496. package/pagination/sc-pagination-links/sc-pagination-links.component.d.ts +60 -0
  497. package/pipes/index.d.ts +2 -0
  498. package/pipes/sc-format-date.d.ts +20 -0
  499. package/pipes/sc-phone-format.d.ts +21 -0
  500. package/profile/index.d.ts +2 -0
  501. package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +126 -0
  502. package/profile/sc-profile.module.d.ts +23 -0
  503. package/providers/cleanup-recaptcha-artifacts.d.ts +7 -0
  504. package/providers/date-value-transformer/index.d.ts +3 -0
  505. package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +9 -0
  506. package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +16 -0
  507. package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +22 -0
  508. package/providers/index.d.ts +17 -0
  509. package/providers/sc-allow-select-terminated.d.ts +5 -0
  510. package/providers/sc-banner-duration.d.ts +5 -0
  511. package/providers/sc-block-incomplete-address.d.ts +5 -0
  512. package/providers/sc-country-ids.d.ts +5 -0
  513. package/providers/sc-date-formatter.d.ts +6 -0
  514. package/providers/sc-date-value-transformer.d.ts +5 -0
  515. package/providers/sc-debounce-time-default.d.ts +5 -0
  516. package/providers/sc-dialog-service.providers.d.ts +45 -0
  517. package/providers/sc-help-notification-close.d.ts +6 -0
  518. package/providers/sc-help-notification-limit.d.ts +5 -0
  519. package/providers/sc-hidden-print-elements.token.d.ts +6 -0
  520. package/providers/sc-max-files-in-form-input.d.ts +5 -0
  521. package/providers/sc-notify-when-in-stock-required-fields.d.ts +5 -0
  522. package/providers/sc-page-size-options.d.ts +5 -0
  523. package/providers/sc-user-providers.d.ts +21 -0
  524. package/providers/sc-verification-code-timeout.d.ts +5 -0
  525. package/public-api.d.ts +35 -0
  526. package/qrcode/index.d.ts +2 -0
  527. package/qrcode/qrcode-dialog/sc-qrcode-dialog.component.d.ts +37 -0
  528. package/qrcode/sc-qrcode.module.d.ts +14 -0
  529. package/release_notes.tmp +2 -16
  530. package/samples/index.d.ts +4 -0
  531. package/samples/interfaces/index.d.ts +2 -0
  532. package/samples/interfaces/sc-i-preview-sample.d.ts +56 -0
  533. package/samples/interfaces/sc-preview-mosquito-config.d.ts +62 -0
  534. package/samples/preview-sample/sc-preview-sample.component.d.ts +30 -0
  535. package/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.d.ts +50 -0
  536. package/samples/sc-sample.module.d.ts +19 -0
  537. package/services/index.d.ts +2 -0
  538. package/services/print.service.d.ts +31 -0
  539. package/services/sc-help-notification.service.d.ts +70 -0
  540. package/share/index.d.ts +5 -0
  541. package/share/sc-share-dialog-data.d.ts +13 -0
  542. package/share/sc-share.service.d.ts +19 -0
  543. package/share/share-button/sc-share-button.component.d.ts +78 -0
  544. package/share/share-dialog/sc-share-dialog.component.d.ts +87 -0
  545. package/share/share-messengers-links/sc-share-messengers-links.component.d.ts +49 -0
  546. package/styles/taiga/variables.less +17 -35
  547. package/styles/tailwind/tailwind.scss +14 -56
  548. package/user/index.d.ts +5 -0
  549. package/user/reset-user-password/sc-reset-user-password.component.d.ts +46 -0
  550. package/user/sc-user.module.d.ts +24 -0
  551. package/user/update-user-info-dialog/sc-update-user-info-dialog.component.d.ts +63 -0
  552. package/user/user-managers/sc-user-managers.component.d.ts +23 -0
  553. package/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.d.ts +53 -0
  554. package/validators/index.d.ts +6 -0
  555. package/validators/sc-at-least-one-required-validator.d.ts +10 -0
  556. package/validators/sc-bic-validator.d.ts +8 -0
  557. package/validators/sc-correspondent-account-validator.d.ts +8 -0
  558. package/validators/sc-password-confirm-matching-validator.d.ts +8 -0
  559. package/validators/sc-phone-validator.d.ts +5 -0
  560. package/validators/step-validator.d.ts +7 -0
  561. package/verification/index.d.ts +2 -0
  562. package/verification/sc-verification.module.d.ts +21 -0
  563. package/verification/verification-phone-check-form/sc-verification-phone-check-form.component.d.ts +145 -0
  564. package/types/snabcentr-client-ui.d.ts +0 -6787
@@ -0,0 +1,47 @@
1
+ import { Directive } from '@angular/core';
2
+ import { TuiTreeService } from '@taiga-ui/kit';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@taiga-ui/kit";
5
+ /**
6
+ * Директива отвечающая за обработку действий над элементами дерева.
7
+ */
8
+ export class TreeDirective {
9
+ /**
10
+ * Инициализирует экземпляр класса {@link TreeDirective}.
11
+ *
12
+ * @param service Сервис для работы с деревом.
13
+ */
14
+ constructor(service) {
15
+ this.service = service;
16
+ /**
17
+ * Карта данных дерева.
18
+ */
19
+ this.map = new Map();
20
+ /**
21
+ * Проверяет указанный элемент дерева на наличие дочерних элементов и возвращает массив дочерних элементов, если они есть, либо пустой массив.
22
+ *
23
+ * @param node Элемент дерева.
24
+ * @returns Возвращает массив типа TreeNode[].
25
+ */
26
+ this.childrenHandler = (node) => (node.hasChildren ? this.service.getChildren(node) : []);
27
+ }
28
+ /**
29
+ * Обрабатывает нажатие на указанный элемент дерева.
30
+ *
31
+ * @param node Элемент дерева.
32
+ */
33
+ onToggled(node) {
34
+ this.service.loadChildren(node);
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeDirective, deps: [{ token: i1.TuiTreeService }], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TreeDirective, selector: "[scTree]", providers: [TuiTreeService], exportAs: ["scTree"], ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeDirective, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: '[scTree]',
43
+ exportAs: 'scTree',
44
+ providers: [TuiTreeService],
45
+ }]
46
+ }], ctorParameters: () => [{ type: i1.TuiTreeService }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvZGlyZWN0aXZlcy90cmVlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUkvQzs7R0FFRztBQU1ILE1BQU0sT0FBTyxhQUFhO0lBY3RCOzs7O09BSUc7SUFDSCxZQUFtQyxPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQWxCcEU7O1dBRUc7UUFDSSxRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFFMUM7Ozs7O1dBS0c7UUFDSSxvQkFBZSxHQUE4QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFPaEUsQ0FBQztJQUV4RTs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLElBQWM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0E1QlEsYUFBYTttR0FBYixhQUFhLG1DQUZYLENBQUMsY0FBYyxDQUFDOzs0RkFFbEIsYUFBYTtrQkFMekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR1aUhhbmRsZXIgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aVRyZWVTZXJ2aWNlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5cbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90cmVlLW5vZGUnO1xuXG4vKipcbiAqINCU0LjRgNC10LrRgtC40LLQsCDQvtGC0LLQtdGH0LDRjtGJ0LDRjyDQt9CwINC+0LHRgNCw0LHQvtGC0LrRgyDQtNC10LnRgdGC0LLQuNC5INC90LDQtCDRjdC70LXQvNC10L3RgtCw0LzQuCDQtNC10YDQtdCy0LAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3NjVHJlZV0nLFxuICAgIGV4cG9ydEFzOiAnc2NUcmVlJyxcbiAgICBwcm92aWRlcnM6IFtUdWlUcmVlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqINCa0LDRgNGC0LAg0LTQsNC90L3Ri9GFINC00LXRgNC10LLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwID0gbmV3IE1hcDxUcmVlTm9kZSwgYm9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDRg9C60LDQt9Cw0L3QvdGL0Lkg0Y3Qu9C10LzQtdC90YIg0LTQtdGA0LXQstCwINC90LAg0L3QsNC70LjRh9C40LUg0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtC+0LIg0Lgg0LLQvtC30LLRgNCw0YnQsNC10YIg0LzQsNGB0YHQuNCyINC00L7Rh9C10YDQvdC40YUg0Y3Qu9C10LzQtdC90YLQvtCyLCDQtdGB0LvQuCDQvtC90Lgg0LXRgdGC0YwsINC70LjQsdC+INC/0YPRgdGC0L7QuSDQvNCw0YHRgdC40LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSDQrdC70LXQvNC10L3RgiDQtNC10YDQtdCy0LAuXG4gICAgICogQHJldHVybnMg0JLQvtC30LLRgNCw0YnQsNC10YIg0LzQsNGB0YHQuNCyINGC0LjQv9CwIFRyZWVOb2RlW10uXG4gICAgICovXG4gICAgcHVibGljIGNoaWxkcmVuSGFuZGxlcjogVHVpSGFuZGxlcjxUcmVlTm9kZSwgcmVhZG9ubHkgVHJlZU5vZGVbXT4gPSAobm9kZSkgPT4gKG5vZGUuaGFzQ2hpbGRyZW4gPyB0aGlzLnNlcnZpY2UuZ2V0Q2hpbGRyZW4obm9kZSkgOiBbXSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFRyZWVEaXJlY3RpdmV9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LTQtdGA0LXQstC+0LwuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBUdWlUcmVlU2VydmljZTxUcmVlTm9kZT4pIHt9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0LDRgtGL0LLQsNC10YIg0L3QsNC20LDRgtC40LUg0L3QsCDRg9C60LDQt9Cw0L3QvdGL0Lkg0Y3Qu9C10LzQtdC90YIg0LTQtdGA0LXQstCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUg0K3Qu9C10LzQtdC90YIg0LTQtdGA0LXQstCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvZ2dsZWQobm9kZTogVHJlZU5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmxvYWRDaGlsZHJlbihub2RlKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { TuiTreeItemContent } from '@taiga-ui/kit';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ /**
6
+ * Компонент для удаления стандартного значка элемента дерева.
7
+ */
8
+ export class FileTreeItemComponent extends TuiTreeItemContent {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileTreeItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileTreeItemComponent, selector: "sc-file-tree-item", host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"context.template\"></ng-container>\n", styles: [":host{position:relative;min-height:var(--tui-height-s);display:flex;align-items:center;padding:.5rem;margin:.5rem 0;border-radius:12px;background:var(--tui-background-neutral-1)}:host._expandable:hover{cursor:pointer;background:var(--tui-background-neutral-1-hover)}tui-svg{position:relative;background:inherit;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileTreeItemComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'sc-file-tree-item', changeDetection: ChangeDetectionStrategy.OnPush, host: {
15
+ '(click)': 'onClick()',
16
+ }, template: "<ng-container [ngTemplateOutlet]=\"context.template\"></ng-container>\n", styles: [":host{position:relative;min-height:var(--tui-height-s);display:flex;align-items:center;padding:.5rem;margin:.5rem 0;border-radius:12px;background:var(--tui-background-neutral-1)}:host._expandable:hover{cursor:pointer;background:var(--tui-background-neutral-1-hover)}tui-svg{position:relative;background:inherit;z-index:1}\n"] }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10cmVlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2ZpbGVzL2ZpbGUtdHJlZS1pdGVtL2ZpbGUtdHJlZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9maWxlcy9maWxlLXRyZWUtaXRlbS9maWxlLXRyZWUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRW5EOztHQUVHO0FBVUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtCQUFrQjsrR0FBaEQscUJBQXFCO21HQUFyQixxQkFBcUIsK0hDZmxDLHlFQUNBOzs0RkRjYSxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsU0FBUyxFQUFFLFdBQVc7cUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHVpVHJlZUl0ZW1Db250ZW50IH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC00LvRjyDRg9C00LDQu9C10L3QuNGPINGB0YLQsNC90LTQsNGA0YLQvdC+0LPQviDQt9C90LDRh9C60LAg0Y3Qu9C10LzQtdC90YLQsCDQtNC10YDQtdCy0LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtZmlsZS10cmVlLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXRyZWUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS10cmVlLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVRyZWVJdGVtQ29tcG9uZW50IGV4dGVuZHMgVHVpVHJlZUl0ZW1Db250ZW50IHt9XG4iLCI8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRleHQudGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
+ import { TUI_TREE_LOADER, TUI_TREE_LOADING } from '@taiga-ui/kit';
3
+ import { map } from 'rxjs';
4
+ import { TreeLoaderService } from '../services/tree-loader.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/tree-icon.service";
7
+ import * as i2 from "@snabcentr/client-core";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@taiga-ui/kit";
10
+ import * as i5 from "@taiga-ui/core";
11
+ import * as i6 from "../directives/tree.directive";
12
+ import * as i7 from "../directives/tree-top.directive";
13
+ import * as i8 from "../../pipes/sc-format-date";
14
+ /**
15
+ * Компонент файлов и документов.
16
+ */
17
+ export class FilesAndDocumentsComponent {
18
+ /**
19
+ * Инициализирует экземпляр класса {@link FilesAndDocumentsComponent}.
20
+ *
21
+ * @param loading Объект отвечающий за значок загрузки, в момент раскрытия элемента дерева.
22
+ * @param iconService Сервис для определения и назначения значка элементу дерева.
23
+ * @param filesService Сервис для загрузки файлов.
24
+ */
25
+ constructor(loading, iconService, filesService) {
26
+ this.loading = loading;
27
+ this.iconService = iconService;
28
+ this.filesService = filesService;
29
+ /**
30
+ * Данные визуализации и их начальное получение.
31
+ */
32
+ this.data$ = this.filesService.getFiles().pipe(map((data) => data.map((item) => ({
33
+ text: item.name,
34
+ icon: this.iconService.getIconName(item),
35
+ hasChildren: this.iconService.hasChildren(item),
36
+ createdAt: item.createdAt,
37
+ id: item.id,
38
+ link: item.link,
39
+ }))));
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilesAndDocumentsComponent, deps: [{ token: TUI_TREE_LOADING }, { token: i1.TreeIconService }, { token: i2.ScFilesService }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FilesAndDocumentsComponent, selector: "sc-files-and-documents", providers: [
43
+ {
44
+ provide: TUI_TREE_LOADER,
45
+ useClass: TreeLoaderService,
46
+ },
47
+ ], ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n <tui-tree\n *ngFor=\"let node of data\"\n #tree=\"scTree\"\n scTree\n [scTopNodeText]=\"node.text\"\n [scTopNodeIcon]=\"node.icon\"\n [scTopNodeLink]=\"node.link\"\n [scTopNodeChilds]=\"node.hasChildren\"\n [scTopNodeParent]=\"node.id\"\n [scTopNodeDate]=\"node.createdAt\"\n [childrenHandler]=\"tree.childrenHandler\"\n [content]=\"content\"\n [map]=\"tree.map\"\n [tuiTreeController]=\"false\"\n [value]=\"tree.service.data$ | async\"\n (toggled)=\"tree.onToggled($event)\"\n class=\"overflow-hidden\"\n ></tui-tree>\n</ng-container>\n\n<ng-template\n #content\n let-item\n>\n <tui-loader\n *ngIf=\"item === loading; else text\"\n class=\"my-4 w-8\"\n ></tui-loader>\n <ng-template #text>\n <tui-icon\n [icon]=\"item.icon\"\n class=\"tui-space_right-2\"\n ></tui-icon>\n <a\n tuiLink\n [pseudo]=\"true\"\n *ngIf=\"item.link\"\n href=\"{{ item.link }}\"\n class=\"grow\"\n >{{ item.text }}</a\n >\n <p\n *ngIf=\"!item.link\"\n class=\"grow\"\n >\n {{ item.text }}\n </p>\n <p>{{ item.createdAt | scFormatDate }}</p>\n </ng-template>\n</ng-template>\n\n<ng-template #skeleton>\n <div class=\"flex flex-col gap-2\">\n <div\n *ngFor=\"let _ of [].constructor(7)\"\n class=\"flex items-center gap-2\"\n >\n <div class=\"tui-skeleton size-6\"></div>\n <div class=\"tui-skeleton h-4 w-40\"></div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiTreeComponent, selector: "tui-tree", inputs: ["value", "trackBy", "content"] }, { kind: "directive", type: i4.TuiTreeChildren, selector: "tui-tree[childrenHandler]", inputs: ["childrenHandler"] }, { kind: "directive", type: i4.TuiTreeControllerDirective, selector: "[tuiTreeController][map]", inputs: ["tuiTreeController", "map"], outputs: ["toggled"], exportAs: ["tuiTreeController"] }, { kind: "component", type: i5.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: i5.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i5.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i6.TreeDirective, selector: "[scTree]", exportAs: ["scTree"] }, { kind: "directive", type: i7.TreeTopDirective, selector: "[scTopNodeText]", inputs: ["scTopNodeText", "scTopNodeIcon", "scTopNodeLink", "scTopNodeChilds", "scTopNodeParent", "scTopNodeDate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.ScFormatDatePipe, name: "scFormatDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilesAndDocumentsComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'sc-files-and-documents', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
52
+ {
53
+ provide: TUI_TREE_LOADER,
54
+ useClass: TreeLoaderService,
55
+ },
56
+ ], template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n <tui-tree\n *ngFor=\"let node of data\"\n #tree=\"scTree\"\n scTree\n [scTopNodeText]=\"node.text\"\n [scTopNodeIcon]=\"node.icon\"\n [scTopNodeLink]=\"node.link\"\n [scTopNodeChilds]=\"node.hasChildren\"\n [scTopNodeParent]=\"node.id\"\n [scTopNodeDate]=\"node.createdAt\"\n [childrenHandler]=\"tree.childrenHandler\"\n [content]=\"content\"\n [map]=\"tree.map\"\n [tuiTreeController]=\"false\"\n [value]=\"tree.service.data$ | async\"\n (toggled)=\"tree.onToggled($event)\"\n class=\"overflow-hidden\"\n ></tui-tree>\n</ng-container>\n\n<ng-template\n #content\n let-item\n>\n <tui-loader\n *ngIf=\"item === loading; else text\"\n class=\"my-4 w-8\"\n ></tui-loader>\n <ng-template #text>\n <tui-icon\n [icon]=\"item.icon\"\n class=\"tui-space_right-2\"\n ></tui-icon>\n <a\n tuiLink\n [pseudo]=\"true\"\n *ngIf=\"item.link\"\n href=\"{{ item.link }}\"\n class=\"grow\"\n >{{ item.text }}</a\n >\n <p\n *ngIf=\"!item.link\"\n class=\"grow\"\n >\n {{ item.text }}\n </p>\n <p>{{ item.createdAt | scFormatDate }}</p>\n </ng-template>\n</ng-template>\n\n<ng-template #skeleton>\n <div class=\"flex flex-col gap-2\">\n <div\n *ngFor=\"let _ of [].constructor(7)\"\n class=\"flex items-center gap-2\"\n >\n <div class=\"tui-skeleton size-6\"></div>\n <div class=\"tui-skeleton h-4 w-40\"></div>\n </div>\n </div>\n</ng-template>\n" }]
57
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
58
+ type: Inject,
59
+ args: [TUI_TREE_LOADING]
60
+ }] }, { type: i1.TreeIconService }, { type: i2.ScFilesService }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtYW5kLWRvY3VtZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvZmlsZXMtYW5kLWRvY3VtZW50cy9maWxlcy1hbmQtZG9jdW1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9maWxlcy9maWxlcy1hbmQtZG9jdW1lbnRzL2ZpbGVzLWFuZC1kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBSXZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0FBRXBFOztHQUVHO0FBWUgsTUFBTSxPQUFPLDBCQUEwQjtJQWlCbkM7Ozs7OztPQU1HO0lBQ0gsWUFDOEMsT0FBZ0IsRUFDMUMsV0FBNEIsRUFDM0IsWUFBNEI7UUFGSCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQzFDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUExQmpEOztXQUVHO1FBQ0ksVUFBSyxHQUEyQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQy9DLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEIsQ0FBQyxDQUFDLENBQ04sQ0FDSixDQUFDO0lBYUMsQ0FBQzsrR0E1QkssMEJBQTBCLGtCQXlCdkIsZ0JBQWdCO21HQXpCbkIsMEJBQTBCLGlEQVB4QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixRQUFRLEVBQUUsaUJBQWlCO2FBQzlCO1NBQ0osMEJDckJMLCt2REErREE7OzRGRHhDYSwwQkFBMEI7a0JBWHRDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUVqQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixRQUFRLEVBQUUsaUJBQWlCO3lCQUM5QjtxQkFDSjs7MEJBMkJJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0RvY3VtZW50SW5mbywgU2NGaWxlc1NlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9UUkVFX0xPQURFUiwgVFVJX1RSRUVfTE9BRElORyB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90cmVlLW5vZGUnO1xuaW1wb3J0IHsgVHJlZUljb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJlZS1pY29uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmVlLWxvYWRlci5zZXJ2aWNlJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YTQsNC50LvQvtCyINC4INC00L7QutGD0LzQtdC90YLQvtCyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWZpbGVzLWFuZC1kb2N1bWVudHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlcy1hbmQtZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RSRUVfTE9BREVSLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IFRyZWVMb2FkZXJTZXJ2aWNlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVzQW5kRG9jdW1lbnRzQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0LLQuNC30YPQsNC70LjQt9Cw0YbQuNC4INC4INC40YUg0L3QsNGH0LDQu9GM0L3QvtC1INC/0L7Qu9GD0YfQtdC90LjQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8VHJlZU5vZGVbXT4gPSB0aGlzLmZpbGVzU2VydmljZS5nZXRGaWxlcygpLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YTogU2NEb2N1bWVudEluZm9bXSkgPT5cbiAgICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICBpY29uOiB0aGlzLmljb25TZXJ2aWNlLmdldEljb25OYW1lKGl0ZW0pLFxuICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuOiB0aGlzLmljb25TZXJ2aWNlLmhhc0NoaWxkcmVuKGl0ZW0pLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogaXRlbS5jcmVhdGVkQXQsXG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgbGluazogaXRlbS5saW5rLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBGaWxlc0FuZERvY3VtZW50c0NvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9hZGluZyDQntCx0YrQtdC60YIg0L7RgtCy0LXRh9Cw0Y7RidC40Lkg0LfQsCDQt9C90LDRh9C+0Log0LfQsNCz0YDRg9C30LrQuCwg0LIg0LzQvtC80LXQvdGCINGA0LDRgdC60YDRi9GC0LjRjyDRjdC70LXQvNC10L3RgtCwINC00LXRgNC10LLQsC5cbiAgICAgKiBAcGFyYW0gaWNvblNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QuNGPINC4INC90LDQt9C90LDRh9C10L3QuNGPINC30L3QsNGH0LrQsCDRjdC70LXQvNC10L3RgtGDINC00LXRgNC10LLQsC5cbiAgICAgKiBAcGFyYW0gZmlsZXNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0LfQsNCz0YDRg9C30LrQuCDRhNCw0LnQu9C+0LIuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9UUkVFX0xPQURJTkcpIHB1YmxpYyByZWFkb25seSBsb2FkaW5nOiB1bmtub3duLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaWNvblNlcnZpY2U6IFRyZWVJY29uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmaWxlc1NlcnZpY2U6IFNjRmlsZXNTZXJ2aWNlXG4gICAgKSB7fVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEkIHwgYXN5bmMgYXMgZGF0YTsgZWxzZSBza2VsZXRvblwiPlxuICAgIDx0dWktdHJlZVxuICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBkYXRhXCJcbiAgICAgICAgI3RyZWU9XCJzY1RyZWVcIlxuICAgICAgICBzY1RyZWVcbiAgICAgICAgW3NjVG9wTm9kZVRleHRdPVwibm9kZS50ZXh0XCJcbiAgICAgICAgW3NjVG9wTm9kZUljb25dPVwibm9kZS5pY29uXCJcbiAgICAgICAgW3NjVG9wTm9kZUxpbmtdPVwibm9kZS5saW5rXCJcbiAgICAgICAgW3NjVG9wTm9kZUNoaWxkc109XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAgICAgW3NjVG9wTm9kZVBhcmVudF09XCJub2RlLmlkXCJcbiAgICAgICAgW3NjVG9wTm9kZURhdGVdPVwibm9kZS5jcmVhdGVkQXRcIlxuICAgICAgICBbY2hpbGRyZW5IYW5kbGVyXT1cInRyZWUuY2hpbGRyZW5IYW5kbGVyXCJcbiAgICAgICAgW2NvbnRlbnRdPVwiY29udGVudFwiXG4gICAgICAgIFttYXBdPVwidHJlZS5tYXBcIlxuICAgICAgICBbdHVpVHJlZUNvbnRyb2xsZXJdPVwiZmFsc2VcIlxuICAgICAgICBbdmFsdWVdPVwidHJlZS5zZXJ2aWNlLmRhdGEkIHwgYXN5bmNcIlxuICAgICAgICAodG9nZ2xlZCk9XCJ0cmVlLm9uVG9nZ2xlZCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIlxuICAgID48L3R1aS10cmVlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb250ZW50XG4gICAgbGV0LWl0ZW1cbj5cbiAgICA8dHVpLWxvYWRlclxuICAgICAgICAqbmdJZj1cIml0ZW0gPT09IGxvYWRpbmc7IGVsc2UgdGV4dFwiXG4gICAgICAgIGNsYXNzPVwibXktNCB3LThcIlxuICAgID48L3R1aS1sb2FkZXI+XG4gICAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICBjbGFzcz1cInR1aS1zcGFjZV9yaWdodC0yXCJcbiAgICAgICAgPjwvdHVpLWljb24+XG4gICAgICAgIDxhXG4gICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmxpbmtcIlxuICAgICAgICAgICAgaHJlZj1cInt7IGl0ZW0ubGluayB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImdyb3dcIlxuICAgICAgICAgICAgPnt7IGl0ZW0udGV4dCB9fTwvYVxuICAgICAgICA+XG4gICAgICAgIDxwXG4gICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmxpbmtcIlxuICAgICAgICAgICAgY2xhc3M9XCJncm93XCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS50ZXh0IH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+e3sgaXRlbS5jcmVhdGVkQXQgfCBzY0Zvcm1hdERhdGUgfX08L3A+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IF8gb2YgW10uY29uc3RydWN0b3IoNylcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dWktc2tlbGV0b24gc2l6ZS02XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHVpLXNrZWxldG9uIGgtNCB3LTQwXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { TuiIcon, TuiLink, TuiLoader } from '@taiga-ui/core';
4
+ import { TuiTree } from '@taiga-ui/kit';
5
+ import { ScFormatDatePipe } from '../pipes';
6
+ import { TreeTopDirective } from './directives';
7
+ import { TreeDirective } from './directives/tree.directive';
8
+ import { FileTreeItemComponent } from './file-tree-item/file-tree-item.component';
9
+ import { FilesAndDocumentsComponent } from './files-and-documents/files-and-documents.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@taiga-ui/kit";
12
+ /**
13
+ * Модуль файлов и документов.
14
+ */
15
+ export class FilesAndDocumentsModule {
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilesAndDocumentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FilesAndDocumentsModule, declarations: [FilesAndDocumentsComponent, TreeDirective, TreeTopDirective, FileTreeItemComponent], imports: [CommonModule, i1.TuiTreeComponent, i1.TuiTreeItem, i1.TuiTreeItemContent, i1.TuiTreeChildren, i1.TuiTreeItemController, i1.TuiTreeControllerDirective, i1.TuiTreeNode, TuiIcon, TuiLoader, TuiLink, ScFormatDatePipe], exports: [FilesAndDocumentsComponent] }); }
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilesAndDocumentsModule, imports: [CommonModule, i1.TuiTreeComponent, i1.TuiTreeItem, i1.TuiTreeItemContent, TuiIcon, TuiLoader] }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilesAndDocumentsModule, decorators: [{
21
+ type: NgModule,
22
+ args: [{
23
+ imports: [CommonModule, ...TuiTree, TuiIcon, TuiLoader, TuiLink, ScFormatDatePipe],
24
+ declarations: [FilesAndDocumentsComponent, TreeDirective, TreeTopDirective, FileTreeItemComponent],
25
+ exports: [FilesAndDocumentsComponent],
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtYW5kLWRvY3VtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvZmlsZXMtYW5kLWRvY3VtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7O0FBRWpHOztHQUVHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO2dIQUF2Qix1QkFBdUIsaUJBSGpCLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsYUFEdkYsWUFBWSwySkFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsYUFFdkUsMEJBQTBCO2dIQUUzQix1QkFBdUIsWUFKdEIsWUFBWSw4REFBYyxPQUFPLEVBQUUsU0FBUzs7NEZBSTdDLHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ2xGLFlBQVksRUFBRSxDQUFDLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQztvQkFDbEcsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUdWlJY29uLCBUdWlMaW5rLCBUdWlMb2FkZXIgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlUcmVlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5cbmltcG9ydCB7IFNjRm9ybWF0RGF0ZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQgeyBUcmVlVG9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFRyZWVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdHJlZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmlsZVRyZWVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXRyZWUtaXRlbS9maWxlLXRyZWUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZXNBbmREb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2ZpbGVzLWFuZC1kb2N1bWVudHMvZmlsZXMtYW5kLWRvY3VtZW50cy5jb21wb25lbnQnO1xuXG4vKipcbiAqINCc0L7QtNGD0LvRjCDRhNCw0LnQu9C+0LIg0Lgg0LTQvtC60YPQvNC10L3RgtC+0LIuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgLi4uVHVpVHJlZSwgVHVpSWNvbiwgVHVpTG9hZGVyLCBUdWlMaW5rLCBTY0Zvcm1hdERhdGVQaXBlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtGaWxlc0FuZERvY3VtZW50c0NvbXBvbmVudCwgVHJlZURpcmVjdGl2ZSwgVHJlZVRvcERpcmVjdGl2ZSwgRmlsZVRyZWVJdGVtQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbRmlsZXNBbmREb2N1bWVudHNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlc0FuZERvY3VtZW50c01vZHVsZSB7fVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './files-and-documents/files-and-documents.component';
2
+ export * from './services';
3
+ export * from './directives';
4
+ export * from './interfaces/tree-node';
5
+ export * from './files-and-documents.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGVzLWFuZC1kb2N1bWVudHMvZmlsZXMtYW5kLWRvY3VtZW50cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RyZWUtbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzLWFuZC1kb2N1bWVudHMubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2ZpbGVzL2ludGVyZmFjZXMvdHJlZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCY0L3RgtC10YDRhNC10LnRgSDQtNC70Y8g0YDQtdCw0LvQuNC30LDRhtC40Lgg0LrQvtC80L/QvtC90LXQvdGC0LDQvNC4LCDQvtGC0L7QsdGA0LDQttCw0Y7RidC40LzQuCDRjdC70LXQvNC10L3RgiDQtNC10YDQtdCy0LAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGUge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC90LDQu9C40YfQuNGPINC00L7Rh9C10YDQvdC40YUg0Y3Qu9C10LzQtdC90YLQvtCyLlxuICAgICAqL1xuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0J7RgtC+0LHRgNCw0LbQsNC10LzQvtC1INC40LzRjyDRjdC70LXQvNC10L3RgtCwINC00LXRgNC10LLQsC5cbiAgICAgKi9cbiAgICB0ZXh0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQntGC0L7QsdGA0LDQttCw0LXQvNGL0Lkg0LfQvdCw0YfQvtC6INGN0LvQtdC80LXQvdGC0LAg0LTQtdGA0LXQstCwLlxuICAgICAqL1xuICAgIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGN0LvQtdC80LXQvdGC0LAg0LTQtdGA0LXQstCwLlxuICAgICAqL1xuICAgIGlkPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINGN0LvQtdC80LXQvdGC0LAg0LTQtdGA0LXQstCwLlxuICAgICAqL1xuICAgIGxpbms/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0YLQsCDRgdC+0LfQtNCw0L3QuNGPINGN0LvQtdC80LXQvdGC0LAg0LTQtdGA0LXQstCwLlxuICAgICAqL1xuICAgIGNyZWF0ZWRBdD86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './tree-icon.service';
2
+ export * from './tree-loader.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmVlLWljb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUtbG9hZGVyLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,49 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ import { Injectable } from '@angular/core';
3
+ import { ScDocumentInfoTypesEnum, ScIconTypesEnum } from '@snabcentr/client-core';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Сервис работающий с значками элементов дерева.
7
+ */
8
+ export class TreeIconService {
9
+ /**
10
+ * Назначает значок элементу дерева в зависимости от типа файла.
11
+ *
12
+ * @param info Объект пришедших данных о файле.
13
+ * @returns Возвращает название значка в виде строки.
14
+ */
15
+ getIconName(info) {
16
+ switch (info.icon) {
17
+ case ScIconTypesEnum.iconImage:
18
+ return '@tui.image';
19
+ case ScIconTypesEnum.iconPdfFile:
20
+ return '@tui.sc.file-p';
21
+ case ScIconTypesEnum.iconWordFile:
22
+ return '@tui.sc.file-w';
23
+ case ScIconTypesEnum.iconExcelFile:
24
+ return '@tui.sc.file-x';
25
+ case ScIconTypesEnum.iconFolder:
26
+ return '@tui.folder';
27
+ default:
28
+ return '@tui.file';
29
+ }
30
+ }
31
+ /**
32
+ * Проверяет на признак наличия дочерних элементов.
33
+ *
34
+ * @param info Объект пришедших данных о файле.
35
+ * @returns Возвращает true при наличии дочерних элементов и false при их отсутствии.
36
+ */
37
+ hasChildren(info) {
38
+ return info.type === ScDocumentInfoTypesEnum.dir;
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeIconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
41
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeIconService, providedIn: 'root' }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeIconService, decorators: [{
44
+ type: Injectable,
45
+ args: [{
46
+ providedIn: 'root',
47
+ }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pY29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvc2VydmljZXMvdHJlZS1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFrQix1QkFBdUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFbEc7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQUN4Qjs7Ozs7T0FLRztJQUNJLFdBQVcsQ0FBQyxJQUFvQjtRQUNuQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixLQUFLLGVBQWUsQ0FBQyxTQUFTO2dCQUMxQixPQUFPLFlBQVksQ0FBQztZQUN4QixLQUFLLGVBQWUsQ0FBQyxXQUFXO2dCQUM1QixPQUFPLGdCQUFnQixDQUFDO1lBQzVCLEtBQUssZUFBZSxDQUFDLFlBQVk7Z0JBQzdCLE9BQU8sZ0JBQWdCLENBQUM7WUFDNUIsS0FBSyxlQUFlLENBQUMsYUFBYTtnQkFDOUIsT0FBTyxnQkFBZ0IsQ0FBQztZQUM1QixLQUFLLGVBQWUsQ0FBQyxVQUFVO2dCQUMzQixPQUFPLGFBQWEsQ0FBQztZQUN6QjtnQkFDSSxPQUFPLFdBQVcsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLElBQW9CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7SUFDckQsQ0FBQzsrR0FoQ1EsZUFBZTttSEFBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjRG9jdW1lbnRJbmZvLCBTY0RvY3VtZW50SW5mb1R5cGVzRW51bSwgU2NJY29uVHlwZXNFbnVtIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLQsNGO0YnQuNC5INGBINC30L3QsNGH0LrQsNC80Lgg0Y3Qu9C10LzQtdC90YLQvtCyINC00LXRgNC10LLQsC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZUljb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQndCw0LfQvdCw0YfQsNC10YIg0LfQvdCw0YfQvtC6INGN0LvQtdC80LXQvdGC0YMg0LTQtdGA0LXQstCwINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDRgtC40L/QsCDRhNCw0LnQu9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGluZm8g0J7QsdGK0LXQutGCINC/0YDQuNGI0LXQtNGI0LjRhSDQtNCw0L3QvdGL0YUg0L4g0YTQsNC50LvQtS5cbiAgICAgKiBAcmV0dXJucyDQktC+0LfQstGA0LDRidCw0LXRgiDQvdCw0LfQstCw0L3QuNC1INC30L3QsNGH0LrQsCDQsiDQstC40LTQtSDRgdGC0YDQvtC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldEljb25OYW1lKGluZm86IFNjRG9jdW1lbnRJbmZvKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChpbmZvLmljb24pIHtcbiAgICAgICAgICAgIGNhc2UgU2NJY29uVHlwZXNFbnVtLmljb25JbWFnZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0B0dWkuaW1hZ2UnO1xuICAgICAgICAgICAgY2FzZSBTY0ljb25UeXBlc0VudW0uaWNvblBkZkZpbGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdAdHVpLnNjLmZpbGUtcCc7XG4gICAgICAgICAgICBjYXNlIFNjSWNvblR5cGVzRW51bS5pY29uV29yZEZpbGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdAdHVpLnNjLmZpbGUtdyc7XG4gICAgICAgICAgICBjYXNlIFNjSWNvblR5cGVzRW51bS5pY29uRXhjZWxGaWxlOlxuICAgICAgICAgICAgICAgIHJldHVybiAnQHR1aS5zYy5maWxlLXgnO1xuICAgICAgICAgICAgY2FzZSBTY0ljb25UeXBlc0VudW0uaWNvbkZvbGRlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ0B0dWkuZm9sZGVyJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdAdHVpLmZpbGUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC90LAg0L/RgNC40LfQvdCw0Log0L3QsNC70LjRh9C40Y8g0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5mbyDQntCx0YrQtdC60YIg0L/RgNC40YjQtdC00YjQuNGFINC00LDQvdC90YvRhSDQviDRhNCw0LnQu9C1LlxuICAgICAqIEByZXR1cm5zINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHRydWUg0L/RgNC4INC90LDQu9C40YfQuNC4INC00L7Rh9C10YDQvdC40YUg0Y3Qu9C10LzQtdC90YLQvtCyINC4IGZhbHNlINC/0YDQuCDQuNGFINC+0YLRgdGD0YLRgdGC0LLQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNDaGlsZHJlbihpbmZvOiBTY0RvY3VtZW50SW5mbyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaW5mby50eXBlID09PSBTY0RvY3VtZW50SW5mb1R5cGVzRW51bS5kaXI7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,62 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@snabcentr/client-core";
5
+ import * as i2 from "./tree-icon.service";
6
+ /**
7
+ * Сервис для асинхронного раскрытия вложенности.
8
+ */
9
+ export class TreeLoaderService {
10
+ /**
11
+ * Инициализирует экземпляр класса {@link TreeLoaderService}
12
+ *
13
+ * @param filesService Сервис для получения файлов директории.
14
+ * @param iconService Сервис для определения и назначения значка элементу дерева.
15
+ */
16
+ constructor(filesService, iconService) {
17
+ this.filesService = filesService;
18
+ this.iconService = iconService;
19
+ }
20
+ /**
21
+ * Загружает дочерние элементы дерева.
22
+ *
23
+ * @param item Элемент дерева.
24
+ * @returns Массив дочерних элементов.
25
+ */
26
+ loadChildren(item) {
27
+ // eslint-disable-next-line unicorn/no-useless-undefined
28
+ return item.id ? this.initData(item.id) : this.initData(undefined);
29
+ }
30
+ /**
31
+ * Проверяет указанный элемент дерева на наличие дочерних элементов и возвращает массив дочерних элементов, если они есть, либо пустой массив.
32
+ *
33
+ * @param node Элемент дерева.
34
+ * @returns Возвращает массив типа TreeNode[].
35
+ */
36
+ // eslint-disable-next-line class-methods-use-this
37
+ hasChildren(node) {
38
+ return node.hasChildren && !!node.id;
39
+ }
40
+ /**
41
+ * Загружает и заполняет массив дочерних элементов.
42
+ *
43
+ * @param id Идентификатор директории, чьи дочернии элементы загружаются.
44
+ * @returns Возвращает массив дочерних элементов.
45
+ */
46
+ initData(id) {
47
+ return this.filesService.getFiles(id).pipe(map((data) => data.map((item) => ({
48
+ text: item.name,
49
+ icon: this.iconService.getIconName(item),
50
+ hasChildren: this.iconService.hasChildren(item),
51
+ createdAt: item.createdAt,
52
+ id: item.id,
53
+ link: item.link,
54
+ }))));
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeLoaderService, deps: [{ token: i1.ScFilesService }, { token: i2.TreeIconService }], target: i0.ɵɵFactoryTarget.Injectable }); }
57
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeLoaderService }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeLoaderService, decorators: [{
60
+ type: Injectable
61
+ }], ctorParameters: () => [{ type: i1.ScFilesService }, { type: i2.TreeIconService }] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9maWxlcy9zZXJ2aWNlcy90cmVlLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7OztBQUt2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDMUI7Ozs7O09BS0c7SUFDSCxZQUNxQixZQUE0QixFQUM1QixXQUE0QjtRQUQ1QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO0lBQzlDLENBQUM7SUFFSjs7Ozs7T0FLRztJQUNJLFlBQVksQ0FBQyxJQUFjO1FBQzlCLHdEQUF3RDtRQUN4RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtEQUFrRDtJQUMzQyxXQUFXLENBQUMsSUFBYztRQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssUUFBUSxDQUFDLEVBQXNCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNsQixDQUFDLENBQUMsQ0FDTixDQUNKLENBQUM7SUFDTixDQUFDOytHQXJEUSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjRG9jdW1lbnRJbmZvLCBTY0ZpbGVzU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpVHJlZUxvYWRlciB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90cmVlLW5vZGUnO1xuaW1wb3J0IHsgVHJlZUljb25TZXJ2aWNlIH0gZnJvbSAnLi90cmVlLWljb24uc2VydmljZSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDQsNGB0LjQvdGF0YDQvtC90L3QvtCz0L4g0YDQsNGB0LrRgNGL0YLQuNGPINCy0LvQvtC20LXQvdC90L7RgdGC0LguXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlTG9hZGVyU2VydmljZSBpbXBsZW1lbnRzIFR1aVRyZWVMb2FkZXI8VHJlZU5vZGU+IHtcbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFRyZWVMb2FkZXJTZXJ2aWNlfVxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGVzU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDRhNCw0LnQu9C+0LIg0LTQuNGA0LXQutGC0L7RgNC40LguXG4gICAgICogQHBhcmFtIGljb25TZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0L7Qv9GA0LXQtNC10LvQtdC90LjRjyDQuCDQvdCw0LfQvdCw0YfQtdC90LjRjyDQt9C90LDRh9C60LAg0Y3Qu9C10LzQtdC90YLRgyDQtNC10YDQtdCy0LAuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzU2VydmljZTogU2NGaWxlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IFRyZWVJY29uU2VydmljZVxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqINCX0LDQs9GA0YPQttCw0LXRgiDQtNC+0YfQtdGA0L3QuNC1INGN0LvQtdC80LXQvdGC0Ysg0LTQtdGA0LXQstCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW0g0K3Qu9C10LzQtdC90YIg0LTQtdGA0LXQstCwLlxuICAgICAqIEByZXR1cm5zINCc0LDRgdGB0LjQsiDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZENoaWxkcmVuKGl0ZW06IFRyZWVOb2RlKTogT2JzZXJ2YWJsZTxUcmVlTm9kZVtdPiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLXVzZWxlc3MtdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiBpdGVtLmlkID8gdGhpcy5pbml0RGF0YShpdGVtLmlkKSA6IHRoaXMuaW5pdERhdGEodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIg0YPQutCw0LfQsNC90L3Ri9C5INGN0LvQtdC80LXQvdGCINC00LXRgNC10LLQsCDQvdCwINC90LDQu9C40YfQuNC1INC00L7Rh9C10YDQvdC40YUg0Y3Qu9C10LzQtdC90YLQvtCyINC4INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0L7Qsiwg0LXRgdC70Lgg0L7QvdC4INC10YHRgtGMLCDQu9C40LHQviDQv9GD0YHRgtC+0Lkg0LzQsNGB0YHQuNCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUg0K3Qu9C10LzQtdC90YIg0LTQtdGA0LXQstCwLlxuICAgICAqIEByZXR1cm5zINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiDRgtC40L/QsCBUcmVlTm9kZVtdLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gICAgcHVibGljIGhhc0NoaWxkcmVuKG5vZGU6IFRyZWVOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBub2RlLmhhc0NoaWxkcmVuICYmICEhbm9kZS5pZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0LPRgNGD0LbQsNC10YIg0Lgg0LfQsNC/0L7Qu9C90Y/QtdGCINC80LDRgdGB0LjQsiDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQtNC40YDQtdC60YLQvtGA0LjQuCwg0YfRjNC4INC00L7Rh9C10YDQvdC40Lgg0Y3Qu9C10LzQtdC90YLRiyDQt9Cw0LPRgNGD0LbQsNGO0YLRgdGPLlxuICAgICAqIEByZXR1cm5zINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXREYXRhKGlkOiBudW1iZXIgfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPFRyZWVOb2RlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXNTZXJ2aWNlLmdldEZpbGVzKGlkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChkYXRhOiBTY0RvY3VtZW50SW5mb1tdKSA9PlxuICAgICAgICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGljb246IHRoaXMuaWNvblNlcnZpY2UuZ2V0SWNvbk5hbWUoaXRlbSksXG4gICAgICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuOiB0aGlzLmljb25TZXJ2aWNlLmhhc0NoaWxkcmVuKGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IGl0ZW0uY3JlYXRlZEF0LFxuICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogaXRlbS5saW5rLFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,155 @@
1
+ /* eslint-disable no-unused-expressions,class-methods-use-this,@typescript-eslint/unbound-method */
2
+ import { ChangeDetectionStrategy, Component, DestroyRef, effect, Inject, inject, model, SkipSelf } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { FormControl, FormGroupDirective, Validators } from '@angular/forms';
5
+ import { tuiControlValue, tuiIsPresent, tuiMarkControlAsTouchedAndValidate } from '@taiga-ui/cdk';
6
+ import { combineLatest, debounceTime, filter, of, share, startWith, switchMap } from 'rxjs';
7
+ import { CURRENT_COUNTRY_ID } from '../../providers/sc-country-ids';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@snabcentr/client-core";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/forms";
12
+ import * as i4 from "@taiga-ui/legacy/components/primitive-textfield";
13
+ import * as i5 from "@taiga-ui/core";
14
+ import * as i6 from "@taiga-ui/core/components/data-list";
15
+ import * as i7 from "@taiga-ui/legacy";
16
+ import * as i8 from "@taiga-ui/kit";
17
+ /**
18
+ * Компонент поля ввода страны/региона/города.
19
+ */
20
+ export class ScAddressesSelectionFieldComponent {
21
+ /**
22
+ * Инициализирует экземпляр класса {@link ScAddressesSelectionFieldComponent}.
23
+ * Включение выбора страны сохраняет выбранные страну, регион и город. При выключении выбора страна
24
+ * фиксируется на текущей стране системы, поэтому регион и город сбрасываются, только если была выбрана другая страна.
25
+ *
26
+ * @param formGroupDirective Директива c `FormGroup` из DOM.
27
+ * @param locationsService Сервис для получения списков стран, регионов, городов.
28
+ */
29
+ constructor(formGroupDirective, locationsService) {
30
+ this.formGroupDirective = formGroupDirective;
31
+ this.locationsService = locationsService;
32
+ /**
33
+ * Флаг возможности выбора страны.
34
+ */
35
+ this.canSelectCountry = model(false);
36
+ /**
37
+ * Идентификатор текущей страны системы.
38
+ */
39
+ this.russiaCountryId = inject(CURRENT_COUNTRY_ID);
40
+ /**
41
+ * FormControl для поля страны.
42
+ */
43
+ this.countryControl = new FormControl(null, Validators.required);
44
+ /**
45
+ * FormControl для поля региона.
46
+ */
47
+ this.regionControl = new FormControl(null, Validators.required);
48
+ /**
49
+ * FormControl для поля города.
50
+ */
51
+ this.cityControl = new FormControl(null, Validators.required);
52
+ /**
53
+ * {@link Observable} изменения списка стран.
54
+ */
55
+ this.countries$ = this.locationsService.getCountries$().pipe(share(), startWith(null));
56
+ /**
57
+ * {@link Observable} изменения списка регионов.
58
+ */
59
+ this.regions$ = tuiControlValue(this.countryControl).pipe(filter(tuiIsPresent), switchMap((country) => this.locationsService.getRegions$(country.id).pipe(startWith(null))), share());
60
+ /**
61
+ * {@link Observable} изменения списка городов.
62
+ */
63
+ this.cities$ = combineLatest({
64
+ country: tuiControlValue(this.countryControl),
65
+ region: tuiControlValue(this.regionControl),
66
+ }).pipe(debounceTime(0), switchMap(({ country, region }) => country && region ? this.locationsService.getCities$(country.id, region.id).pipe(startWith(null)) : of([])), share());
67
+ /**
68
+ * Ссылка для автоматического управления уничтожением зависимостей.
69
+ */
70
+ this.destroyRef = inject(DestroyRef);
71
+ /**
72
+ * Функция преобразования объекта сортировки в значение, отображаемое в поле ввода.
73
+ *
74
+ * @param item Выбранный объект выпадающего списка.
75
+ * @param item.name Название страны/региона/города, которое будет отображено в поле.
76
+ */
77
+ this.stringify = (item) => item.name;
78
+ effect(() => {
79
+ if (!this.canSelectCountry() && this.countryControl.value?.id !== this.russiaCountryId) {
80
+ this.countryControl.setValue({
81
+ id: this.russiaCountryId,
82
+ name: 'Россия',
83
+ });
84
+ }
85
+ });
86
+ }
87
+ /**
88
+ * `FormControl` поля идентификатора города.
89
+ */
90
+ get cityIdControl() {
91
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
92
+ return this.formGroupDirective.form.get('cityId');
93
+ }
94
+ /** @inheritDoc */
95
+ ngOnInit() {
96
+ if (this.cityIdControl.valid) {
97
+ this.locationsService
98
+ .getCityById$(Number(this.cityIdControl.value))
99
+ .pipe(takeUntilDestroyed(this.destroyRef))
100
+ .subscribe((city) => {
101
+ this.canSelectCountry.set(city.region.country.id !== this.russiaCountryId);
102
+ setTimeout(() => {
103
+ this.countryControl.patchValue(city.region.country);
104
+ this.regionControl.patchValue(city.region);
105
+ this.cityControl.patchValue(city);
106
+ });
107
+ });
108
+ }
109
+ this.countryControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((country) => {
110
+ this.regionControl.reset(null);
111
+ this.cityControl.reset(null);
112
+ if (country) {
113
+ this.regionControl.enable();
114
+ }
115
+ else {
116
+ this.regionControl.disable();
117
+ }
118
+ this.cityControl.disable();
119
+ });
120
+ this.regionControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((region) => {
121
+ this.cityControl.reset(null);
122
+ this.cityIdControl.reset(null);
123
+ if (region) {
124
+ this.cityControl.enable();
125
+ }
126
+ else {
127
+ this.cityControl.disable();
128
+ }
129
+ });
130
+ }
131
+ /**
132
+ * Заполнение полей банковских реквизитов на основе выбранной подсказки.
133
+ *
134
+ * @param city Идентификатор записи города.
135
+ */
136
+ onSelectedCity(city) {
137
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
138
+ if (this.cityIdControl) {
139
+ this.cityIdControl.setValue(city?.id.toString() ?? null);
140
+ tuiMarkControlAsTouchedAndValidate(this.cityIdControl);
141
+ }
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddressesSelectionFieldComponent, deps: [{ token: FormGroupDirective, skipSelf: true }, { token: i1.ScLocationsService }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScAddressesSelectionFieldComponent, selector: "sc-addresses-selection-field", inputs: { canSelectCountry: { classPropertyName: "canSelectCountry", publicName: "canSelectCountry", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { canSelectCountry: "canSelectCountryChange" }, ngImport: i0, template: "<label\n *ngIf=\"canSelectCountry()\"\n tuiLabel\n class=\"mb-2\"\n>\n \u0421\u0442\u0440\u0430\u043D\u0430\n @let countries = (countries$ | async) ?? [];\n <tui-combo-box\n [formControl]=\"countryControl\"\n [stringify]=\"stringify\"\n >\n \u0421\u0442\u0440\u0430\u043D\u0430\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"countries | tuiFilterByInput\"\n ></tui-data-list-wrapper>\n </tui-combo-box>\n <tui-error\n [formControl]=\"countryControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n</label>\n<div class=\"grid items-start gap-4 sm:grid-cols-2\">\n <label tuiLabel>\n \u0420\u0435\u0433\u0438\u043E\u043D\n @let regions = (regions$ | async) ?? [];\n <tui-combo-box\n [formControl]=\"regionControl\"\n [stringify]=\"stringify\"\n >\n \u0420\u0435\u0433\u0438\u043E\u043D\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"regions | tuiFilterByInput\"\n ></tui-data-list-wrapper>\n </tui-combo-box>\n <tui-error\n [formControl]=\"regionControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel>\n \u0413\u043E\u0440\u043E\u0434\n @let cities = (cities$ | async) ?? [];\n <tui-combo-box\n [formControl]=\"cityControl\"\n [stringify]=\"stringify\"\n (ngModelChange)=\"onSelectedCity($event)\"\n >\n \u0413\u043E\u0440\u043E\u0434\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"cities | tuiFilterByInput\"\n ></tui-data-list-wrapper>\n </tui-combo-box>\n <tui-error\n [formControl]=\"cityIdControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n <tui-error\n *ngIf=\"cityIdControl.untouched\"\n [formControl]=\"cityControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "directive", type: i5.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i5.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "directive", type: i6.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i7.TuiComboBoxComponent, selector: "tui-combo-box", inputs: ["stringify", "strictMatcher", "identityMatcher", "valueContent", "strict", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i7.TuiComboBoxDirective, selector: "tui-combo-box" }, { kind: "component", type: i8.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "pipe", type: i8.TuiFilterByInputPipe, name: "tuiFilterByInput" }, { kind: "pipe", type: i8.TuiStringifyContentPipe, name: "tuiStringifyContent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddressesSelectionFieldComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ selector: 'sc-addresses-selection-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n *ngIf=\"canSelectCountry()\"\n tuiLabel\n class=\"mb-2\"\n>\n \u0421\u0442\u0440\u0430\u043D\u0430\n @let countries = (countries$ | async) ?? [];\n <tui-combo-box\n [formControl]=\"countryControl\"\n [stringify]=\"stringify\"\n >\n \u0421\u0442\u0440\u0430\u043D\u0430\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"countries | tuiFilterByInput\"\n ></tui-data-list-wrapper>\n </tui-combo-box>\n <tui-error\n [formControl]=\"countryControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n</label>\n<div class=\"grid items-start gap-4 sm:grid-cols-2\">\n <label tuiLabel>\n \u0420\u0435\u0433\u0438\u043E\u043D\n @let regions = (regions$ | async) ?? [];\n <tui-combo-box\n [formControl]=\"regionControl\"\n [stringify]=\"stringify\"\n >\n \u0420\u0435\u0433\u0438\u043E\u043D\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"regions | tuiFilterByInput\"\n ></tui-data-list-wrapper>\n </tui-combo-box>\n <tui-error\n [formControl]=\"regionControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel>\n \u0413\u043E\u0440\u043E\u0434\n @let cities = (cities$ | async) ?? [];\n <tui-combo-box\n [formControl]=\"cityControl\"\n [stringify]=\"stringify\"\n (ngModelChange)=\"onSelectedCity($event)\"\n >\n \u0413\u043E\u0440\u043E\u0434\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify | tuiStringifyContent\"\n [items]=\"cities | tuiFilterByInput\"\n ></tui-data-list-wrapper>\n </tui-combo-box>\n <tui-error\n [formControl]=\"cityIdControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n <tui-error\n *ngIf=\"cityIdControl.untouched\"\n [formControl]=\"cityControl\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n</div>\n" }]
149
+ }], ctorParameters: () => [{ type: i3.FormGroupDirective, decorators: [{
150
+ type: SkipSelf
151
+ }, {
152
+ type: Inject,
153
+ args: [FormGroupDirective]
154
+ }] }, { type: i1.ScLocationsService }] });
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkcmVzc2VzLXNlbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvYWRkcmVzc2VzLXNlbGVjdGlvbi1maWVsZC9zYy1hZGRyZXNzZXMtc2VsZWN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9hZGRyZXNzZXMtc2VsZWN0aW9uLWZpZWxkL3NjLWFkZHJlc3Nlcy1zZWxlY3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUdBQW1HO0FBRW5HLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRXBFOztHQUVHO0FBTUgsTUFBTSxPQUFPLGtDQUFrQztJQW1FM0M7Ozs7Ozs7T0FPRztJQUNILFlBQzZELGtCQUFzQyxFQUM5RSxnQkFBb0M7UUFESSx1QkFBa0IsR0FB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aW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zLGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMsQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGVmZmVjdCwgSW5qZWN0LCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2NJQ2l0eSwgU2NJQ2l0eVdpdGhSZWdpb25BbmRDb3VudHJ5LCBTY0lDb3VudHJ5LCBTY0lSZWdpb24sIFNjTG9jYXRpb25zU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgdHVpQ29udHJvbFZhbHVlLCB0dWlJc1ByZXNlbnQsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENVUlJFTlRfQ09VTlRSWV9JRCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zYy1jb3VudHJ5LWlkcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC/0L7Qu9GPINCy0LLQvtC00LAg0YHRgtGA0LDQvdGLL9GA0LXQs9C40L7QvdCwL9Cz0L7RgNC+0LTQsC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1hZGRyZXNzZXMtc2VsZWN0aW9uLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYWRkcmVzc2VzLXNlbGVjdGlvbi1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQWRkcmVzc2VzU2VsZWN0aW9uRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCk0LvQsNCzINCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0LLRi9Cx0L7RgNCwINGB0YLRgNCw0L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FuU2VsZWN0Q291bnRyeSA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3RiyDRgdC40YHRgtC10LzRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJ1c3NpYUNvdW50cnlJZDogbnVtYmVyID0gaW5qZWN0KENVUlJFTlRfQ09VTlRSWV9JRCk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtQ29udHJvbCDQtNC70Y8g0L/QvtC70Y8g0YHRgtGA0LDQvdGLLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb3VudHJ5Q29udHJvbDogRm9ybUNvbnRyb2w8U2NJQ291bnRyeSB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPFNjSUNvdW50cnkgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm1Db250cm9sINC00LvRjyDQv9C+0LvRjyDRgNC10LPQuNC+0L3QsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVnaW9uQ29udHJvbDogRm9ybUNvbnRyb2w8U2NJUmVnaW9uIHwgbnVsbD4gPSBuZXcgRm9ybUNvbnRyb2w8U2NJUmVnaW9uIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtQ29udHJvbCDQtNC70Y8g0L/QvtC70Y8g0LPQvtGA0L7QtNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjaXR5Q29udHJvbDogRm9ybUNvbnRyb2w8U2NJQ2l0eSB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPFNjSUNvdW50cnkgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQv9C40YHQutCwINGB0YLRgNCw0L0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvdW50cmllcyQ6IE9ic2VydmFibGU8U2NJQ291bnRyeVtdIHwgbnVsbD4gPSB0aGlzLmxvY2F0aW9uc1NlcnZpY2UuZ2V0Q291bnRyaWVzJCgpLnBpcGUoc2hhcmUoKSwgc3RhcnRXaXRoKG51bGwpKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQv9C40YHQutCwINGA0LXQs9C40L7QvdC+0LIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlZ2lvbnMkOiBPYnNlcnZhYmxlPFNjSVJlZ2lvbltdIHwgbnVsbD4gPSB0dWlDb250cm9sVmFsdWU8U2NJUmVnaW9uIHwgbnVsbD4odGhpcy5jb3VudHJ5Q29udHJvbCkucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgoY291bnRyeTogU2NJQ291bnRyeSkgPT4gdGhpcy5sb2NhdGlvbnNTZXJ2aWNlLmdldFJlZ2lvbnMkKGNvdW50cnkuaWQpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LPQvtGA0L7QtNC+0LIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNpdGllcyQ6IE9ic2VydmFibGU8U2NJQ2l0eVtdIHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KHtcbiAgICAgICAgY291bnRyeTogdHVpQ29udHJvbFZhbHVlPFNjSVJlZ2lvbiB8IG51bGw+KHRoaXMuY291bnRyeUNvbnRyb2wpLFxuICAgICAgICByZWdpb246IHR1aUNvbnRyb2xWYWx1ZTxTY0lDaXR5IHwgbnVsbD4odGhpcy5yZWdpb25Db250cm9sKSxcbiAgICB9KS5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgIHN3aXRjaE1hcCgoeyBjb3VudHJ5LCByZWdpb24gfTogeyBjb3VudHJ5OiBTY0lSZWdpb24gfCBudWxsOyByZWdpb246IFNjSUNpdHkgfCBudWxsIH0pID0+XG4gICAgICAgICAgICBjb3VudHJ5ICYmIHJlZ2lvbiA/IHRoaXMubG9jYXRpb25zU2VydmljZS5nZXRDaXRpZXMkKGNvdW50cnkuaWQsIHJlZ2lvbi5pZCkucGlwZShzdGFydFdpdGgobnVsbCkpIDogb2YoW10pXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINC00LvRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtCz0L4g0YPQv9GA0LDQstC70LXQvdC40Y8g0YPQvdC40YfRgtC+0LbQtdC90LjQtdC8INC30LDQstC40YHQuNC80L7RgdGC0LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiDQpNGD0L3QutGG0LjRjyDQv9GA0LXQvtCx0YDQsNC30L7QstCw0L3QuNGPINC+0LHRitC10LrRgtCwINGB0L7RgNGC0LjRgNC+0LLQutC4INCyINC30L3QsNGH0LXQvdC40LUsINC+0YLQvtCx0YDQsNC20LDQtdC80L7QtSDQsiDQv9C+0LvQtSDQstCy0L7QtNCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW0g0JLRi9Cx0YDQsNC90L3Ri9C5INC+0LHRitC10LrRgiDQstGL0L/QsNC00LDRjtGJ0LXQs9C+INGB0L/QuNGB0LrQsC5cbiAgICAgKiBAcGFyYW0gaXRlbS5uYW1lINCd0LDQt9Cy0LDQvdC40LUg0YHRgtGA0LDQvdGLL9GA0LXQs9C40L7QvdCwL9Cz0L7RgNC+0LTQsCwg0LrQvtGC0L7RgNC+0LUg0LHRg9C00LXRgiDQvtGC0L7QsdGA0LDQttC10L3QviDQsiDQv9C+0LvQtS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RyaW5naWZ5ID0gKGl0ZW06IHsgbmFtZTogc3RyaW5nIH0pOiBzdHJpbmcgPT4gaXRlbS5uYW1lO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0FkZHJlc3Nlc1NlbGVjdGlvbkZpZWxkQ29tcG9uZW50fS5cbiAgICAgKiDQktC60LvRjtGH0LXQvdC40LUg0LLRi9Cx0L7RgNCwINGB0YLRgNCw0L3RiyDRgdC+0YXRgNCw0L3Rj9C10YIg0LLRi9Cx0YDQsNC90L3Ri9C1INGB0YLRgNCw0L3Rgywg0YDQtdCz0LjQvtC9INC4INCz0L7RgNC+0LQuINCf0YDQuCDQstGL0LrQu9GO0YfQtdC90LjQuCDQstGL0LHQvtGA0LAg0YHRgtGA0LDQvdCwXG4gICAgICog0YTQuNC60YHQuNGA0YPQtdGC0YHRjyDQvdCwINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3QtSDRgdC40YHRgtC10LzRiywg0L/QvtGN0YLQvtC80YMg0YDQtdCz0LjQvtC9INC4INCz0L7RgNC+0LQg0YHQsdGA0LDRgdGL0LLQsNGO0YLRgdGPLCDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0LHRi9C70LAg0LLRi9Cx0YDQsNC90LAg0LTRgNGD0LPQsNGPINGB0YLRgNCw0L3QsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JtR3JvdXBEaXJlY3RpdmUg0JTQuNGA0LXQutGC0LjQstCwIGMgYEZvcm1Hcm91cGAg0LjQtyBET00uXG4gICAgICogQHBhcmFtIGxvY2F0aW9uc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQv9C40YHQutC+0LIg0YHRgtGA0LDQvSwg0YDQtdCz0LjQvtC90L7Qsiwg0LPQvtGA0L7QtNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAU2tpcFNlbGYoKSBASW5qZWN0KEZvcm1Hcm91cERpcmVjdGl2ZSkgcHJpdmF0ZSByZWFkb25seSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvbnNTZXJ2aWNlOiBTY0xvY2F0aW9uc1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jYW5TZWxlY3RDb3VudHJ5KCkgJiYgdGhpcy5jb3VudHJ5Q29udHJvbC52YWx1ZT8uaWQgIT09IHRoaXMucnVzc2lhQ291bnRyeUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29udHJvbC5zZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLnJ1c3NpYUNvdW50cnlJZCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ9Cg0L7RgdGB0LjRjycsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGBGb3JtQ29udHJvbGAg0L/QvtC70Y8g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQsCDQs9C+0YDQvtC00LAuXG4gICAgICovXG4gICAgcHVibGljIGdldCBjaXR5SWRDb250cm9sKCk6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0uZ2V0KCdjaXR5SWQnKSEgYXMgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaXR5SWRDb250cm9sLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0Q2l0eUJ5SWQkKE51bWJlcih0aGlzLmNpdHlJZENvbnRyb2wudmFsdWUpKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNpdHk6IFNjSUNpdHlXaXRoUmVnaW9uQW5kQ291bnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhblNlbGVjdENvdW50cnkuc2V0KGNpdHkucmVnaW9uLmNvdW50cnkuaWQgIT09IHRoaXMucnVzc2lhQ291bnRyeUlkKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlDb250cm9sLnBhdGNoVmFsdWUoY2l0eS5yZWdpb24uY291bnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lvbkNvbnRyb2wucGF0Y2hWYWx1ZShjaXR5LnJlZ2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNpdHlDb250cm9sLnBhdGNoVmFsdWUoY2l0eSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb3VudHJ5Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChjb3VudHJ5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lvbkNvbnRyb2wucmVzZXQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLmNpdHlDb250cm9sLnJlc2V0KG51bGwpO1xuXG4gICAgICAgICAgICBpZiAoY291bnRyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVnaW9uQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWdpb25Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jaXR5Q29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVnaW9uQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChyZWdpb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2l0eUNvbnRyb2wucmVzZXQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLmNpdHlJZENvbnRyb2wucmVzZXQobnVsbCk7XG5cbiAgICAgICAgICAgIGlmIChyZWdpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpdHlDb250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpdHlDb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0L7Qu9C90LXQvdC40LUg0L/QvtC70LXQuSDQsdCw0L3QutC+0LLRgdC60LjRhSDRgNC10LrQstC40LfQuNGC0L7QsiDQvdCwINC+0YHQvdC+0LLQtSDQstGL0LHRgNCw0L3QvdC+0Lkg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNpdHkg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4INCz0L7RgNC+0LTQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25TZWxlY3RlZENpdHkoY2l0eTogU2NJQ2l0eSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICAgICAgaWYgKHRoaXMuY2l0eUlkQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jaXR5SWRDb250cm9sLnNldFZhbHVlKGNpdHk/LmlkLnRvU3RyaW5nKCkgPz8gbnVsbCk7XG4gICAgICAgICAgICB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlKHRoaXMuY2l0eUlkQ29udHJvbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bGFiZWxcbiAgICAqbmdJZj1cImNhblNlbGVjdENvdW50cnkoKVwiXG4gICAgdHVpTGFiZWxcbiAgICBjbGFzcz1cIm1iLTJcIlxuPlxuICAgINCh0YLRgNCw0L3QsFxuICAgIEBsZXQgY291bnRyaWVzID0gKGNvdW50cmllcyQgfCBhc3luYykgPz8gW107XG4gICAgPHR1aS1jb21iby1ib3hcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvdW50cnlDb250cm9sXCJcbiAgICAgICAgW3N0cmluZ2lmeV09XCJzdHJpbmdpZnlcIlxuICAgID5cbiAgICAgICAg0KHRgtGA0LDQvdCwXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICBbaXRlbUNvbnRlbnRdPVwic3RyaW5naWZ5IHwgdHVpU3RyaW5naWZ5Q29udGVudFwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiY291bnRyaWVzIHwgdHVpRmlsdGVyQnlJbnB1dFwiXG4gICAgICAgID48L3R1aS1kYXRhLWxpc3Qtd3JhcHBlcj5cbiAgICA8L3R1aS1jb21iby1ib3g+XG4gICAgPHR1aS1lcnJvclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY291bnRyeUNvbnRyb2xcIlxuICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgID48L3R1aS1lcnJvcj5cbjwvbGFiZWw+XG48ZGl2IGNsYXNzPVwiZ3JpZCBpdGVtcy1zdGFydCBnYXAtNCBzbTpncmlkLWNvbHMtMlwiPlxuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAg0KDQtdCz0LjQvtC9XG4gICAgICAgIEBsZXQgcmVnaW9ucyA9IChyZWdpb25zJCB8IGFzeW5jKSA/PyBbXTtcbiAgICAgICAgPHR1aS1jb21iby1ib3hcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWdpb25Db250cm9sXCJcbiAgICAgICAgICAgIFtzdHJpbmdpZnldPVwic3RyaW5naWZ5XCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0KDQtdCz0LjQvtC9XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dHVpLWRhdGEtbGlzdC13cmFwcGVyXG4gICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1Db250ZW50XT1cInN0cmluZ2lmeSB8IHR1aVN0cmluZ2lmeUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJyZWdpb25zIHwgdHVpRmlsdGVyQnlJbnB1dFwiXG4gICAgICAgICAgICA+PC90dWktZGF0YS1saXN0LXdyYXBwZXI+XG4gICAgICAgIDwvdHVpLWNvbWJvLWJveD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlZ2lvbkNvbnRyb2xcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICDQk9C+0YDQvtC0XG4gICAgICAgIEBsZXQgY2l0aWVzID0gKGNpdGllcyQgfCBhc3luYykgPz8gW107XG4gICAgICAgIDx0dWktY29tYm8tYm94XG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY2l0eUNvbnRyb2xcIlxuICAgICAgICAgICAgW3N0cmluZ2lmeV09XCJzdHJpbmdpZnlcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RlZENpdHkoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCT0L7RgNC+0LRcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICBbaXRlbUNvbnRlbnRdPVwic3RyaW5naWZ5IHwgdHVpU3RyaW5naWZ5Q29udGVudFwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cImNpdGllcyB8IHR1aUZpbHRlckJ5SW5wdXRcIlxuICAgICAgICAgICAgPjwvdHVpLWRhdGEtbGlzdC13cmFwcGVyPlxuICAgICAgICA8L3R1aS1jb21iby1ib3g+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjaXR5SWRDb250cm9sXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgKm5nSWY9XCJjaXR5SWRDb250cm9sLnVudG91Y2hlZFwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY2l0eUNvbnRyb2xcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cbiJdfQ==