@snabcentr/client-ui 4.11.7 → 4.15.0

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 (174) hide show
  1. package/auth/sc-auth.module.d.ts +2 -1
  2. package/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.d.ts +19 -8
  3. package/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.d.ts +6 -7
  4. package/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.d.ts +9 -2
  5. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +14 -9
  6. package/cart/cart-item/sc-cart-item.component.d.ts +1 -1
  7. package/catalog/catalog-filters/index.d.ts +3 -0
  8. package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +99 -0
  9. package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +7 -0
  10. package/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.d.ts +5 -0
  11. package/catalog/index.d.ts +2 -0
  12. package/catalog/input-quantity/sc-input-quantity.component.d.ts +2 -2
  13. package/catalog/price-card/sc-price-card.component.d.ts +1 -1
  14. package/catalog/sc-catalog.module.d.ts +13 -13
  15. package/configurators/index.d.ts +2 -0
  16. package/configurators/models/index.d.ts +2 -0
  17. package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +22 -0
  18. package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +18 -0
  19. package/configurators/sandwich/index.d.ts +3 -0
  20. package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +8 -0
  21. package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +14 -0
  22. package/configurators/sandwich/sc-sandwich.component.d.ts +146 -0
  23. package/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.d.ts +21 -24
  24. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +12 -18
  25. package/directives/index.d.ts +3 -3
  26. package/directives/links/sc-links.d.ts +1 -1
  27. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +1 -1
  28. package/esm2022/accordion/sc-accordion-content.directive.mjs +3 -3
  29. package/esm2022/accordion/sc-accordion.component.mjs +3 -3
  30. package/esm2022/accordion/sc-accordion.module.mjs +4 -4
  31. package/esm2022/auth/sc-auth.module.mjs +15 -9
  32. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +38 -19
  33. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +21 -19
  34. package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +3 -3
  35. package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +22 -7
  36. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +38 -37
  37. package/esm2022/banner/sc-banner.component.mjs +3 -3
  38. package/esm2022/banner/sc-banner.module.mjs +4 -4
  39. package/esm2022/brands-list/sc-brands-list.component.mjs +3 -3
  40. package/esm2022/brands-list/sc-brands-list.module.mjs +4 -4
  41. package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +6 -6
  42. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +3 -3
  43. package/esm2022/cart/cart-item/sc-cart-item.component.mjs +9 -12
  44. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +3 -3
  45. package/esm2022/catalog/catalog-filters/index.mjs +4 -0
  46. package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +202 -0
  47. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +10 -0
  48. package/esm2022/catalog/catalog-filters/tokens/sc-catalog-show-products-recursively.mjs +6 -0
  49. package/esm2022/catalog/category-card/sc-category-card.component.mjs +5 -5
  50. package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +6 -5
  51. package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +3 -3
  52. package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +3 -3
  53. package/esm2022/catalog/index.mjs +3 -1
  54. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +21 -9
  55. package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +3 -3
  56. package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +3 -3
  57. package/esm2022/catalog/price-card/sc-price-card.component.mjs +34 -13
  58. package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +7 -7
  59. package/esm2022/catalog/price-history/sc-price-history.component.mjs +3 -3
  60. package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +3 -3
  61. package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +5 -5
  62. package/esm2022/catalog/sc-catalog.module.mjs +10 -7
  63. package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +3 -3
  64. package/esm2022/configurators/index.mjs +3 -0
  65. package/esm2022/configurators/models/index.mjs +3 -0
  66. package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +2 -0
  67. package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +2 -0
  68. package/esm2022/configurators/sandwich/index.mjs +4 -0
  69. package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +14 -0
  70. package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +2 -0
  71. package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +322 -0
  72. package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +3 -3
  73. package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +3 -3
  74. package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +3 -3
  75. package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +3 -3
  76. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +3 -3
  77. package/esm2022/contacts/sc-contacts.module.mjs +4 -4
  78. package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +3 -3
  79. package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +39 -51
  80. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +3 -3
  81. package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +3 -3
  82. package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +3 -3
  83. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +29 -47
  84. package/esm2022/contragents/sc-contragents.module.mjs +4 -4
  85. package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +3 -3
  86. package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +3 -3
  87. package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +3 -3
  88. package/esm2022/delivery-address/sc-delivery-address.module.mjs +4 -4
  89. package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +3 -3
  90. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +3 -3
  91. package/esm2022/directives/index.mjs +4 -4
  92. package/esm2022/directives/links/sc-email-link.directive.mjs +3 -3
  93. package/esm2022/directives/links/sc-links.mjs +2 -2
  94. package/esm2022/directives/links/sc-tel-link.directive.mjs +3 -3
  95. package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +3 -3
  96. package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +4 -4
  97. package/esm2022/directives/sc-date-value-transformer.directive.mjs +3 -3
  98. package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +3 -3
  99. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +5 -5
  100. package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +3 -3
  101. package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +3 -3
  102. package/esm2022/error-handler/sc-error-handler.component.mjs +3 -3
  103. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +3 -3
  104. package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +3 -3
  105. package/esm2022/files/directives/tree-top.directive.mjs +3 -3
  106. package/esm2022/files/directives/tree.directive.mjs +3 -3
  107. package/esm2022/files/file-tree-item/file-tree-item.component.mjs +3 -3
  108. package/esm2022/files/files-and-documents/files-and-documents.component.mjs +3 -3
  109. package/esm2022/files/files-and-documents.module.mjs +4 -4
  110. package/esm2022/files/services/tree-icon.service.mjs +3 -3
  111. package/esm2022/files/services/tree-loader.service.mjs +3 -3
  112. package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +3 -3
  113. package/esm2022/form-fields/form-fields.module.mjs +4 -4
  114. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +3 -3
  115. package/esm2022/helpers/sc-px-converter.mjs +3 -3
  116. package/esm2022/methods/index.mjs +2 -0
  117. package/esm2022/methods/sc-get-current-route.mjs +14 -0
  118. package/esm2022/news/news-card/sc-news-card.component.mjs +3 -3
  119. package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +3 -3
  120. package/esm2022/news/sc-news.module.mjs +4 -4
  121. package/esm2022/noindex-wrapper/directives/index.mjs +2 -0
  122. package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +58 -0
  123. package/esm2022/noindex-wrapper/index.mjs +3 -0
  124. package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +18 -0
  125. package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +3 -3
  126. package/esm2022/order/sc-order.module.mjs +4 -4
  127. package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +3 -3
  128. package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +3 -3
  129. package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +3 -3
  130. package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +6 -5
  131. package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +3 -3
  132. package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +3 -3
  133. package/esm2022/pages/public-offer/sc-public-offer.component.mjs +3 -3
  134. package/esm2022/pipes/sc-format-date.mjs +3 -3
  135. package/esm2022/pipes/sc-phone-format.mjs +3 -3
  136. package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +3 -3
  137. package/esm2022/profile/sc-profile.module.mjs +4 -4
  138. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +3 -3
  139. package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +3 -3
  140. package/esm2022/providers/index.mjs +3 -1
  141. package/esm2022/providers/sc-category.providers.mjs +43 -0
  142. package/esm2022/providers/sc-debounce-time-default.mjs +9 -0
  143. package/esm2022/public-api.mjs +4 -1
  144. package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +3 -3
  145. package/esm2022/qrcode/sc-qrcode.module.mjs +4 -4
  146. package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +5 -5
  147. package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +3 -3
  148. package/esm2022/samples/sc-sample.module.mjs +4 -4
  149. package/esm2022/schemas/sc-json-ld-category/sc-json-ld-category.component.mjs +3 -3
  150. package/esm2022/services/sc-help-notification.service.mjs +3 -3
  151. package/esm2022/share-button/sc-share-button.component.mjs +3 -3
  152. package/esm2022/share-button/sc-share-button.module.mjs +4 -4
  153. package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +3 -3
  154. package/esm2022/user/sc-user.module.mjs +4 -4
  155. package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +3 -3
  156. package/esm2022/user/user-managers/sc-user-managers.component.mjs +23 -25
  157. package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +3 -3
  158. package/esm2022/verification/sc-verification.module.mjs +4 -4
  159. package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +16 -16
  160. package/fesm2022/snabcentr-client-ui.mjs +2574 -1896
  161. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  162. package/methods/index.d.ts +1 -0
  163. package/methods/sc-get-current-route.d.ts +8 -0
  164. package/noindex-wrapper/directives/index.d.ts +1 -0
  165. package/noindex-wrapper/directives/sc-noindex.directive.d.ts +29 -0
  166. package/noindex-wrapper/index.d.ts +2 -0
  167. package/noindex-wrapper/sc-noindex-wrapper.component.d.ts +9 -0
  168. package/package.json +19 -19
  169. package/providers/index.d.ts +2 -0
  170. package/providers/sc-category.providers.d.ts +11 -0
  171. package/providers/sc-debounce-time-default.d.ts +5 -0
  172. package/public-api.d.ts +3 -0
  173. package/styles/tailwind/tailwind.scss +77 -173
  174. package/user/user-managers/sc-user-managers.component.d.ts +7 -10
@@ -0,0 +1,18 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { ScNoindexDirective } from './directives';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Компонент-обертка для автоматического добавления тегов noindex вокруг контента.
6
+ * Автоматически добавляет открывающий `<!-- noindex -->` и закрывающий `<!-- /noindex -->` комментарии.
7
+ */
8
+ export class ScNoindexWrapperComponent {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNoindexWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScNoindexWrapperComponent, isStandalone: true, selector: "sc-noindex-wrapper", host: { styleAttribute: "display: contents" }, ngImport: i0, template: "<div\n style=\"display: none\"\n data-noindex=\"true\"\n></div>\n<ng-content />\n<div\n style=\"display: none\"\n data-noindex=\"false\"\n></div>\n", dependencies: [{ kind: "directive", type: ScNoindexDirective, selector: "[data-noindex]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNoindexWrapperComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ standalone: true, selector: 'sc-noindex-wrapper', imports: [ScNoindexDirective], host: {
15
+ style: 'display: contents',
16
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n style=\"display: none\"\n data-noindex=\"true\"\n></div>\n<ng-content />\n<div\n style=\"display: none\"\n data-noindex=\"false\"\n></div>\n" }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtbm9pbmRleC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9ub2luZGV4LXdyYXBwZXIvc2Mtbm9pbmRleC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9ub2luZGV4LXdyYXBwZXIvc2Mtbm9pbmRleC13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUVsRDs7O0dBR0c7QUFXSCxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7bUdBQXpCLHlCQUF5Qiw2SENsQnRDLGlLQVNBLDRDREdjLGtCQUFrQjs7NEZBTW5CLHlCQUF5QjtrQkFWckMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sb0JBQW9CLFdBRXJCLENBQUMsa0JBQWtCLENBQUMsUUFDdkI7d0JBQ0YsS0FBSyxFQUFFLG1CQUFtQjtxQkFDN0IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNjTm9pbmRleERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCLdC+0LHQtdGA0YLQutCwINC00LvRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtCz0L4g0LTQvtCx0LDQstC70LXQvdC40Y8g0YLQtdCz0L7QsiBub2luZGV4INCy0L7QutGA0YPQsyDQutC+0L3RgtC10L3RgtCwLlxuICog0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0LTQvtCx0LDQstC70Y/QtdGCINC+0YLQutGA0YvQstCw0Y7RidC40LkgYDwhLS0gbm9pbmRleCAtLT5gINC4INC30LDQutGA0YvQstCw0Y7RidC40LkgYDwhLS0gL25vaW5kZXggLS0+YCDQutC+0LzQvNC10L3RgtCw0YDQuNC4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2Mtbm9pbmRleC13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtbm9pbmRleC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbU2NOb2luZGV4RGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHN0eWxlOiAnZGlzcGxheTogY29udGVudHMnLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjTm9pbmRleFdyYXBwZXJDb21wb25lbnQge31cbiIsIjxkaXZcbiAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIlxuICAgIGRhdGEtbm9pbmRleD1cInRydWVcIlxuPjwvZGl2PlxuPG5nLWNvbnRlbnQgLz5cbjxkaXZcbiAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIlxuICAgIGRhdGEtbm9pbmRleD1cImZhbHNlXCJcbj48L2Rpdj5cbiJdfQ==
@@ -42,10 +42,10 @@ export class ScOrderItemMobileComponent extends AbstractScPriceCard {
42
42
  showSpecification() {
43
43
  this.previewDialogService.open(this.specificationPreviewRef ?? '').subscribe();
44
44
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScOrderItemMobileComponent, deps: [{ token: TuiPreviewDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScOrderItemMobileComponent, selector: "sc-order-item-mobile", inputs: { orderItem: { classPropertyName: "orderItem", publicName: "orderItem", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickActionsEvent: "clickActionsEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let orderItemData = orderItem();\n@let product = orderItemData?.product;\n@let cartImageData = cartImage();\n\n<div\n [style.opacity]=\"product?.isHidden ? 'var(--tui-disabled-opacity)' : ''\"\n class=\"relative flex flex-wrap gap-x-4 gap-y-2 rounded-xl border border-tui-base-04 bg-white p-4 shadow-sc-2\"\n>\n <ng-container *ngIf=\"orderItemData && product; else skeleton\">\n <button\n tuiIconButton\n (click)=\"product.isHidden ? null : clickActionsEvent.emit()\"\n size=\"m\"\n iconStart=\"@tui.ellipsis-vertical\"\n appearance=\"float\"\n class=\"!absolute right-0 top-0 !hidden\"\n ></button>\n <div class=\"flex grow gap-2\">\n <div class=\"flex size-20 shrink-0 items-center justify-center overflow-hidden\">\n <picture *ngIf=\"cartImageData\">\n @if (cartImageData.imageWebp) {\n <source\n type=\"image/webp\"\n [srcset]=\"cartImageData.imageWebp\"\n />\n }\n @if (cartImageData.image) {\n <img\n (click)=\"product.isHidden ? null : clickCardEvent.emit()\"\n [src]=\"cartImageData.image\"\n [alt]=\"product.name\"\n [class.p-5]=\"!product.images?.length\"\n class=\"cursor-pointer\"\n />\n }\n </picture>\n </div>\n\n <div class=\"flex grow flex-wrap gap-x-8 self-center\">\n <div class=\"flex grow basis-min-content flex-col\">\n <a\n [attr.href]=\"href ?? null\"\n [class.disabled]=\"product.isHidden\"\n tuiLink\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n >\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"flex flex-col gap-y-0.5 text-tui-text-02\">\n <span *ngIf=\"product.supplierSku\"> \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }} </span>\n <div class=\"flex flex-wrap\">\n <p class=\"w-40\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p\n class=\"w-40\"\n *ngIf=\"product.pack\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n </p>\n </div>\n <a\n tuiLink\n *ngIf=\"orderItemData.specificationImgUrl\"\n (click)=\"showSpecification()\"\n [class.disabled]=\"product.isHidden\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"orderItemData.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"orderItemData.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n\n <sc-cost-with-discount [product]=\"product\" />\n </div>\n <div class=\"flex flex-wrap content-center\">\n <div class=\"w-50 flex flex-col gap-x-8 gap-y-0.5\">\n <ng-container *ngIf=\"orderItemData.height; else length\">\n <p>\u0412\u044B\u0441\u043E\u0442\u0430: {{ orderItemData.height }} \u043C.</p>\n </ng-container>\n <ng-template #length>\n <p *ngIf=\"orderItemData.length\">\u0414\u043B\u0438\u043D\u0430: {{ orderItemData.length }} \u043C.</p>\n </ng-template>\n <p *ngIf=\"orderItemData.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ orderItemData.width }} \u043C.</p>\n <p class=\"flex flex-col items-baseline gap-x-2\">\n <span class=\"whitespace-nowrap text-body-m-bold\">\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E: <span class=\"whitespace-nowrap\">{{ orderItemData.quantity }}</span>\n </span>\n </p>\n </div>\n\n <div class=\"w-50 flex flex-col gap-y-0.5\">\n <p class=\"whitespace-nowrap text-body-m-bold\">\n \u0421\u0443\u043C\u043C\u0430: <span class=\"whitespace-nowrap\"> {{ orderItemData.getCostRubStr() }} </span>\n </p>\n <sc-price-warehouse-stock\n [product]=\"product\"\n [fromMain]=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex w-full gap-2\">\n <div class=\"size-20 rounded-xl bg-tui-base-02\"></div>\n <div class=\"flex grow flex-col gap-2.5 bg-white\">\n <div class=\"h-4 w-full rounded-xl bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded-xl bg-tui-base-02\"></div>\n <div class=\"h-4 w-4/5 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: ["a[tuilink].disabled{pointer-events:none!important;cursor:default;opacity:var(--tui-disabled-opacity)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i2.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i3.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i3.TuiPreviewAction, selector: "[tuiPreviewAction]" }, { kind: "directive", type: i4.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i5.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "component", type: i6.CostWithDiscountComponent, selector: "sc-cost-with-discount", inputs: ["product", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemMobileComponent, deps: [{ token: TuiPreviewDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScOrderItemMobileComponent, selector: "sc-order-item-mobile", inputs: { orderItem: { classPropertyName: "orderItem", publicName: "orderItem", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickActionsEvent: "clickActionsEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let orderItemData = orderItem();\n@let product = orderItemData?.product;\n@let cartImageData = cartImage();\n\n<div\n [style.opacity]=\"product?.isHidden ? 'var(--tui-disabled-opacity)' : ''\"\n class=\"relative flex flex-wrap gap-x-4 gap-y-2 rounded-xl border border-tui-base-04 bg-white p-4 shadow-sc-2\"\n>\n <ng-container *ngIf=\"orderItemData && product; else skeleton\">\n <button\n tuiIconButton\n (click)=\"product.isHidden ? null : clickActionsEvent.emit()\"\n size=\"m\"\n iconStart=\"@tui.ellipsis-vertical\"\n appearance=\"float\"\n class=\"!absolute right-0 top-0 !hidden\"\n ></button>\n <div class=\"flex grow gap-2\">\n <div class=\"flex size-20 shrink-0 items-center justify-center overflow-hidden\">\n <picture *ngIf=\"cartImageData\">\n @if (cartImageData.imageWebp) {\n <source\n type=\"image/webp\"\n [srcset]=\"cartImageData.imageWebp\"\n />\n }\n @if (cartImageData.image) {\n <img\n (click)=\"product.isHidden ? null : clickCardEvent.emit()\"\n [src]=\"cartImageData.image\"\n [alt]=\"product.name\"\n [class.p-5]=\"!product.images?.length\"\n class=\"cursor-pointer\"\n />\n }\n </picture>\n </div>\n\n <div class=\"flex grow flex-wrap gap-x-8 self-center\">\n <div class=\"flex grow basis-min-content flex-col\">\n <a\n [attr.href]=\"href ?? null\"\n [class.disabled]=\"product.isHidden\"\n tuiLink\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n >\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"flex flex-col gap-y-0.5 text-tui-text-02\">\n <span *ngIf=\"product.supplierSku\"> \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }} </span>\n <div class=\"flex flex-wrap\">\n <p class=\"w-40\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p\n class=\"w-40\"\n *ngIf=\"product.pack\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n </p>\n </div>\n <a\n tuiLink\n *ngIf=\"orderItemData.specificationImgUrl\"\n (click)=\"showSpecification()\"\n [class.disabled]=\"product.isHidden\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"orderItemData.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"orderItemData.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n\n <sc-cost-with-discount [product]=\"product\" />\n </div>\n <div class=\"flex flex-wrap content-center\">\n <div class=\"w-50 flex flex-col gap-x-8 gap-y-0.5\">\n <ng-container *ngIf=\"orderItemData.height; else length\">\n <p>\u0412\u044B\u0441\u043E\u0442\u0430: {{ orderItemData.height }} \u043C.</p>\n </ng-container>\n <ng-template #length>\n <p *ngIf=\"orderItemData.length\">\u0414\u043B\u0438\u043D\u0430: {{ orderItemData.length }} \u043C.</p>\n </ng-template>\n <p *ngIf=\"orderItemData.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ orderItemData.width }} \u043C.</p>\n <p class=\"flex flex-col items-baseline gap-x-2\">\n <span class=\"whitespace-nowrap text-body-m-bold\">\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E: <span class=\"whitespace-nowrap\">{{ orderItemData.quantity }}</span>\n </span>\n </p>\n </div>\n\n <div class=\"w-50 flex flex-col gap-y-0.5\">\n <p class=\"whitespace-nowrap text-body-m-bold\">\n \u0421\u0443\u043C\u043C\u0430: <span class=\"whitespace-nowrap\"> {{ orderItemData.getCostRubStr() }} </span>\n </p>\n <sc-price-warehouse-stock\n [product]=\"product\"\n [fromMain]=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex w-full gap-2\">\n <div class=\"size-20 rounded-xl bg-tui-base-02\"></div>\n <div class=\"flex grow flex-col gap-2.5 bg-white\">\n <div class=\"h-4 w-full rounded-xl bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded-xl bg-tui-base-02\"></div>\n <div class=\"h-4 w-4/5 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: ["a[tuilink].disabled{pointer-events:none!important;cursor:default;opacity:var(--tui-disabled-opacity)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i2.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i3.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable", "initialScale"] }, { kind: "directive", type: i3.TuiPreviewAction, selector: "[tuiPreviewAction]" }, { kind: "directive", type: i4.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i5.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "component", type: i6.CostWithDiscountComponent, selector: "sc-cost-with-discount", inputs: ["product", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScOrderItemMobileComponent, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemMobileComponent, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'sc-order-item-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let orderItemData = orderItem();\n@let product = orderItemData?.product;\n@let cartImageData = cartImage();\n\n<div\n [style.opacity]=\"product?.isHidden ? 'var(--tui-disabled-opacity)' : ''\"\n class=\"relative flex flex-wrap gap-x-4 gap-y-2 rounded-xl border border-tui-base-04 bg-white p-4 shadow-sc-2\"\n>\n <ng-container *ngIf=\"orderItemData && product; else skeleton\">\n <button\n tuiIconButton\n (click)=\"product.isHidden ? null : clickActionsEvent.emit()\"\n size=\"m\"\n iconStart=\"@tui.ellipsis-vertical\"\n appearance=\"float\"\n class=\"!absolute right-0 top-0 !hidden\"\n ></button>\n <div class=\"flex grow gap-2\">\n <div class=\"flex size-20 shrink-0 items-center justify-center overflow-hidden\">\n <picture *ngIf=\"cartImageData\">\n @if (cartImageData.imageWebp) {\n <source\n type=\"image/webp\"\n [srcset]=\"cartImageData.imageWebp\"\n />\n }\n @if (cartImageData.image) {\n <img\n (click)=\"product.isHidden ? null : clickCardEvent.emit()\"\n [src]=\"cartImageData.image\"\n [alt]=\"product.name\"\n [class.p-5]=\"!product.images?.length\"\n class=\"cursor-pointer\"\n />\n }\n </picture>\n </div>\n\n <div class=\"flex grow flex-wrap gap-x-8 self-center\">\n <div class=\"flex grow basis-min-content flex-col\">\n <a\n [attr.href]=\"href ?? null\"\n [class.disabled]=\"product.isHidden\"\n tuiLink\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n >\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"flex flex-col gap-y-0.5 text-tui-text-02\">\n <span *ngIf=\"product.supplierSku\"> \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }} </span>\n <div class=\"flex flex-wrap\">\n <p class=\"w-40\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p\n class=\"w-40\"\n *ngIf=\"product.pack\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n </p>\n </div>\n <a\n tuiLink\n *ngIf=\"orderItemData.specificationImgUrl\"\n (click)=\"showSpecification()\"\n [class.disabled]=\"product.isHidden\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"orderItemData.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"orderItemData.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n\n <sc-cost-with-discount [product]=\"product\" />\n </div>\n <div class=\"flex flex-wrap content-center\">\n <div class=\"w-50 flex flex-col gap-x-8 gap-y-0.5\">\n <ng-container *ngIf=\"orderItemData.height; else length\">\n <p>\u0412\u044B\u0441\u043E\u0442\u0430: {{ orderItemData.height }} \u043C.</p>\n </ng-container>\n <ng-template #length>\n <p *ngIf=\"orderItemData.length\">\u0414\u043B\u0438\u043D\u0430: {{ orderItemData.length }} \u043C.</p>\n </ng-template>\n <p *ngIf=\"orderItemData.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ orderItemData.width }} \u043C.</p>\n <p class=\"flex flex-col items-baseline gap-x-2\">\n <span class=\"whitespace-nowrap text-body-m-bold\">\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E: <span class=\"whitespace-nowrap\">{{ orderItemData.quantity }}</span>\n </span>\n </p>\n </div>\n\n <div class=\"w-50 flex flex-col gap-y-0.5\">\n <p class=\"whitespace-nowrap text-body-m-bold\">\n \u0421\u0443\u043C\u043C\u0430: <span class=\"whitespace-nowrap\"> {{ orderItemData.getCostRubStr() }} </span>\n </p>\n <sc-price-warehouse-stock\n [product]=\"product\"\n [fromMain]=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex w-full gap-2\">\n <div class=\"size-20 rounded-xl bg-tui-base-02\"></div>\n <div class=\"flex grow flex-col gap-2.5 bg-white\">\n <div class=\"h-4 w-full rounded-xl bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded-xl bg-tui-base-02\"></div>\n <div class=\"h-4 w-4/5 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: ["a[tuilink].disabled{pointer-events:none!important;cursor:default;opacity:var(--tui-disabled-opacity)}\n"] }]
51
51
  }], ctorParameters: () => [{ type: i3.TuiPreviewDialogService, decorators: [{
@@ -16,8 +16,8 @@ import * as i2 from "@taiga-ui/kit";
16
16
  * Модуль заказов.
17
17
  */
18
18
  export class ScOrderModule {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScOrderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ScOrderModule, declarations: [ScOrderItemMobileComponent, ScPaymentStatusComponent], imports: [CommonModule,
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ScOrderModule, declarations: [ScOrderItemMobileComponent, ScPaymentStatusComponent], imports: [CommonModule,
21
21
  TuiLink,
22
22
  TuiButton,
23
23
  TuiIcon, i1.TuiBlockStatusComponent, i1.TuiBlockStatusDirective, i2.TuiPreviewComponent, i2.TuiPreviewTitle, i2.TuiPreviewPagination, i2.TuiPreviewAction, i2.TuiPreviewZoom, ScCatalogModule,
@@ -25,12 +25,12 @@ export class ScOrderModule {
25
25
  PolymorpheusOutlet,
26
26
  ScPriceWarehouseStockComponent,
27
27
  CostWithDiscountComponent], exports: [ScOrderItemMobileComponent, ScPaymentStatusComponent] }); }
28
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScOrderModule, imports: [CommonModule,
28
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderModule, imports: [CommonModule,
29
29
  TuiIcon, i1.TuiBlockStatusComponent, i2.TuiPreviewComponent, i2.TuiPreviewTitle, i2.TuiPreviewPagination, i2.TuiPreviewZoom, ScCatalogModule,
30
30
  ScPriceWarehouseStockComponent,
31
31
  CostWithDiscountComponent] }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScOrderModule, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderModule, decorators: [{
34
34
  type: NgModule,
35
35
  args: [{
36
36
  declarations: [ScOrderItemMobileComponent, ScPaymentStatusComponent],
@@ -17,10 +17,10 @@ export class ScPaymentStatusComponent {
17
17
  */
18
18
  this.backToOrderClick = new EventEmitter();
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScPaymentStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScPaymentStatusComponent, selector: "sc-payment-status", inputs: { status: "status", orderId: "orderId" }, outputs: { backToOrdersClick: "backToOrdersClick", backToOrderClick: "backToOrderClick" }, ngImport: i0, template: "<ng-container *ngIf=\"status && orderId; else failed\">\n <ng-container [ngSwitch]=\"status\">\n <tui-block-status *ngSwitchCase=\"'success'\">\n <tui-icon\n icon=\"@tui.circle-check\"\n tuiSlot=\"top\"\n class=\"!h-20 scale-[3] !text-green-500\"\n ></tui-icon>\n <h4>\u0421\u043F\u0430\u0441\u0438\u0431\u043E!</h4>\n <br />\n <div class=\"font-bold\">\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u043F\u043B\u0430\u0447\u0435\u043D. \u041C\u044B \u0441\u0432\u044F\u0436\u0435\u043C\u0441\u044F \u0441 \u0432\u0430\u043C\u0438 \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F.</div>\n <br />\n <div class=\"font-bold\">\n \u041D\u043E\u043C\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043E \u0437\u0430\u043A\u0430\u0437\u0430:\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"backToOrderClick.emit()\"\n >{{ orderId }}</a\n >\n </div>\n\n <button\n tuiButton\n (click)=\"backToOrdersClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C\n </button>\n </tui-block-status>\n <tui-block-status *ngSwitchCase=\"'error'\">\n <tui-icon\n icon=\"@tui.circle-x\"\n class=\"!h-20 scale-[3] !text-red-500\"\n tuiSlot=\"top\"\n ></tui-icon>\n <h4>\u041E\u043F\u043B\u0430\u0442\u0430 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0430!</h4>\n <br />\n <div class=\"font-bold\">\u041F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u043F\u043B\u0430\u0442\u0435\u0436\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430.</div>\n <button\n tuiButton\n tuiItem\n (click)=\"backToOrderClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0443\n </button>\n </tui-block-status>\n </ng-container>\n</ng-container>\n\n<ng-template #failed>\n <tui-block-status>\n <tui-icon\n icon=\"@tui.info\"\n class=\"!h-20 scale-[3] !text-yellow-500\"\n tuiSlot=\"top\"\n ></tui-icon>\n <h4>\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A!</h4>\n <button\n tuiButton\n tuiItem\n (click)=\"backToOrdersClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C\n </button>\n </tui-block-status>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i2.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i2.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: i3.TuiBlockStatusComponent, selector: "tui-block-status", inputs: ["card", "size"] }, { kind: "directive", type: i3.TuiBlockStatusDirective, selector: "[tuiSlot]", inputs: ["tuiSlot"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScPaymentStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScPaymentStatusComponent, selector: "sc-payment-status", inputs: { status: "status", orderId: "orderId" }, outputs: { backToOrdersClick: "backToOrdersClick", backToOrderClick: "backToOrderClick" }, ngImport: i0, template: "<ng-container *ngIf=\"status && orderId; else failed\">\n <ng-container [ngSwitch]=\"status\">\n <tui-block-status *ngSwitchCase=\"'success'\">\n <tui-icon\n icon=\"@tui.circle-check\"\n tuiSlot=\"top\"\n class=\"!h-20 scale-[3] !text-green-500\"\n ></tui-icon>\n <h4>\u0421\u043F\u0430\u0441\u0438\u0431\u043E!</h4>\n <br />\n <div class=\"font-bold\">\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u043F\u043B\u0430\u0447\u0435\u043D. \u041C\u044B \u0441\u0432\u044F\u0436\u0435\u043C\u0441\u044F \u0441 \u0432\u0430\u043C\u0438 \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F.</div>\n <br />\n <div class=\"font-bold\">\n \u041D\u043E\u043C\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043E \u0437\u0430\u043A\u0430\u0437\u0430:\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"backToOrderClick.emit()\"\n >{{ orderId }}</a\n >\n </div>\n\n <button\n tuiButton\n (click)=\"backToOrdersClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C\n </button>\n </tui-block-status>\n <tui-block-status *ngSwitchCase=\"'error'\">\n <tui-icon\n icon=\"@tui.circle-x\"\n class=\"!h-20 scale-[3] !text-red-500\"\n tuiSlot=\"top\"\n ></tui-icon>\n <h4>\u041E\u043F\u043B\u0430\u0442\u0430 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0430!</h4>\n <br />\n <div class=\"font-bold\">\u041F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u043F\u043B\u0430\u0442\u0435\u0436\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430.</div>\n <button\n tuiButton\n tuiItem\n (click)=\"backToOrderClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0443\n </button>\n </tui-block-status>\n </ng-container>\n</ng-container>\n\n<ng-template #failed>\n <tui-block-status>\n <tui-icon\n icon=\"@tui.info\"\n class=\"!h-20 scale-[3] !text-yellow-500\"\n tuiSlot=\"top\"\n ></tui-icon>\n <h4>\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A!</h4>\n <button\n tuiButton\n tuiItem\n (click)=\"backToOrdersClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C\n </button>\n </tui-block-status>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: i2.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i2.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: i3.TuiBlockStatusComponent, selector: "tui-block-status", inputs: ["card", "size"] }, { kind: "directive", type: i3.TuiBlockStatusDirective, selector: "[tuiSlot]", inputs: ["tuiSlot"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScPaymentStatusComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScPaymentStatusComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'sc-payment-status', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"status && orderId; else failed\">\n <ng-container [ngSwitch]=\"status\">\n <tui-block-status *ngSwitchCase=\"'success'\">\n <tui-icon\n icon=\"@tui.circle-check\"\n tuiSlot=\"top\"\n class=\"!h-20 scale-[3] !text-green-500\"\n ></tui-icon>\n <h4>\u0421\u043F\u0430\u0441\u0438\u0431\u043E!</h4>\n <br />\n <div class=\"font-bold\">\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u043F\u043B\u0430\u0447\u0435\u043D. \u041C\u044B \u0441\u0432\u044F\u0436\u0435\u043C\u0441\u044F \u0441 \u0432\u0430\u043C\u0438 \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F.</div>\n <br />\n <div class=\"font-bold\">\n \u041D\u043E\u043C\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043E \u0437\u0430\u043A\u0430\u0437\u0430:\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"backToOrderClick.emit()\"\n >{{ orderId }}</a\n >\n </div>\n\n <button\n tuiButton\n (click)=\"backToOrdersClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C\n </button>\n </tui-block-status>\n <tui-block-status *ngSwitchCase=\"'error'\">\n <tui-icon\n icon=\"@tui.circle-x\"\n class=\"!h-20 scale-[3] !text-red-500\"\n tuiSlot=\"top\"\n ></tui-icon>\n <h4>\u041E\u043F\u043B\u0430\u0442\u0430 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0430!</h4>\n <br />\n <div class=\"font-bold\">\u041F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u043F\u043B\u0430\u0442\u0435\u0436\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430.</div>\n <button\n tuiButton\n tuiItem\n (click)=\"backToOrderClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0443\n </button>\n </tui-block-status>\n </ng-container>\n</ng-container>\n\n<ng-template #failed>\n <tui-block-status>\n <tui-icon\n icon=\"@tui.info\"\n class=\"!h-20 scale-[3] !text-yellow-500\"\n tuiSlot=\"top\"\n ></tui-icon>\n <h4>\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A!</h4>\n <button\n tuiButton\n tuiItem\n (click)=\"backToOrdersClick.emit()\"\n >\n \u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C\n </button>\n </tui-block-status>\n</ng-template>\n" }]
26
26
  }], propDecorators: { status: [{
@@ -23,8 +23,8 @@ export class ScFrequentlyAskedQuestionsComponent {
23
23
  */
24
24
  this.isServer = inject(IS_SERVER);
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScFrequentlyAskedQuestionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScFrequentlyAskedQuestionsComponent, isStandalone: true, selector: "sc-frequently-asked-questions", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, showLoading: { classPropertyName: "showLoading", publicName: "showLoading", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScFrequentlyAskedQuestionsComponent, isStandalone: true, selector: "sc-frequently-asked-questions", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, showLoading: { classPropertyName: "showLoading", publicName: "showLoading", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
28
28
  {
29
29
  provide: TUI_BUTTON_OPTIONS,
30
30
  useValue: {
@@ -34,7 +34,7 @@ export class ScFrequentlyAskedQuestionsComponent {
34
34
  },
35
35
  ], ngImport: i0, template: "<tui-loader\n [showLoader]=\"showLoading()\"\n [overlay]=\"true\"\n>\n <tui-accordion\n class=\"accordion\"\n [closeOthers]=\"false\"\n >\n @for (item of items(); track item.id) {\n <button\n [tuiAccordion]=\"isServer\"\n class=\"!whitespace-normal !text-body-m-bold\"\n >\n {{ item.question }}\n </button>\n <tui-expand>\n <div [innerHTML]=\"item.answer\"></div>\n </tui-expand>\n }\n </tui-accordion>\n</tui-loader>\n", styles: [".accordion{border-radius:0}.accordion,.accordion[data-size=s],.accordion[data-size=m],.accordion[data-size=l],.accordion .tui-list{font:inherit}.accordion [tuiAccordion]{border-block:1px solid var(--tui-border-normal);border-block-end-color:#fff!important;font-weight:400;border-color:var(--tui-border-normal);mask:none;block-size:auto;padding-block:.5rem;min-block-size:var(--t-size)}.accordion [tuiAccordion]._open{border-block-end-color:var(--tui-border-normal)!important}.accordion tui-expand,.accordion [tuiAccordion]{box-shadow:none;white-space:normal}\n"], dependencies: [{ kind: "component", type: i1.TuiAccordionComponent, selector: "tui-accordion", inputs: ["closeOthers", "size"] }, { kind: "directive", type: i1.TuiAccordionDirective, selector: "button[tuiAccordion]", inputs: ["tuiAccordion"], outputs: ["tuiAccordionChange"] }, { kind: "component", type: i2.TuiExpand, selector: "tui-expand", inputs: ["expanded"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScFrequentlyAskedQuestionsComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ standalone: true, selector: 'sc-frequently-asked-questions', imports: [TuiAccordion, TuiLoader], providers: [
40
40
  {
@@ -41,14 +41,14 @@ export class ScFrequentlyAskedQuestionsGroupSelectorComponent {
41
41
  */
42
42
  this.viewMode = input('list');
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScFrequentlyAskedQuestionsGroupSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScFrequentlyAskedQuestionsGroupSelectorComponent, isStandalone: true, selector: "sc-frequently-asked-questions-group-selector", inputs: { viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { groupIdChange: "groupIdChange" }, providers: [
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsGroupSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScFrequentlyAskedQuestionsGroupSelectorComponent, isStandalone: true, selector: "sc-frequently-asked-questions-group-selector", inputs: { viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { groupIdChange: "groupIdChange" }, providers: [
46
46
  tuiItemsHandlersProvider({
47
47
  stringify: (item) => item.name,
48
48
  }),
49
49
  ], ngImport: i0, template: "@let groups = groups$ | async;\n\n@if (groups && groups.length) {\n @switch (viewMode()) {\n @case ('list') {\n <div class=\"flex flex-col items-center gap-3 rounded-xl p-4 shadow-sc\">\n <div class=\"flex w-full flex-col gap-2\">\n @for (item of groups; track $index) {\n <button\n tuiButton\n size=\"xs\"\n [tuiAppearanceState]=\"groupControl.value === item ? 'hover' : null\"\n [disabled]=\"groupControl.value === item\"\n (click)=\"groupControl.patchValue(item)\"\n appearance=\"flat-grayscale\"\n class=\"!justify-start !text-body-s-bold\"\n >\n {{ item.name }}\n </button>\n }\n </div>\n </div>\n }\n\n @case ('select') {\n <form>\n <tui-select\n [formControl]=\"groupControl\"\n [tuiTextfieldLabelOutside]=\"true\"\n >\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"groups\"\n />\n </tui-select>\n </form>\n }\n }\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TuiSelectModule }, { kind: "component", type: i1.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i1.TuiSelectDirective, selector: "tui-select" }, { kind: "directive", type: i2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i1.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScFrequentlyAskedQuestionsGroupSelectorComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsGroupSelectorComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{ standalone: true, selector: 'sc-frequently-asked-questions-group-selector', imports: [AsyncPipe, TuiSelectModule, TuiTextfieldControllerModule, ReactiveFormsModule, TuiDataList, TuiDataListWrapper, NgIf, TuiButton, FormsModule], providers: [
54
54
  tuiItemsHandlersProvider({
@@ -5,7 +5,7 @@ import { ScConvertersService, ScFrequentlyAskedQuestionsService } from '@snabcen
5
5
  import { TUI_WINDOW_SIZE, tuiIsFalsy, tuiIsPresent } from '@taiga-ui/cdk';
6
6
  import { TuiButton } from '@taiga-ui/core';
7
7
  import { TuiPagination } from '@taiga-ui/kit';
8
- import { BehaviorSubject, combineLatest, debounceTime, filter, map, shareReplay, startWith, Subject, switchMap } from 'rxjs';
8
+ import { BehaviorSubject, combineLatest, debounceTime, filter, map, of, shareReplay, startWith, Subject, switchMap } from 'rxjs';
9
9
  import { ScFrequentlyAskedQuestionsComponent, ScFrequentlyAskedQuestionsGroupSelectorComponent } from '..';
10
10
  import { SC_PAGE_SIZE_OPTIONS } from '../frequently-asked-questions/sc-page-size-options';
11
11
  import * as i0 from "@angular/core";
@@ -53,6 +53,7 @@ export class ScFrequentlyAskedQuestionsWithGroupsComponent {
53
53
  page: this.page$,
54
54
  perPage: this.perPage$,
55
55
  group: this.groupId$,
56
+ paginate: of(true),
56
57
  }).pipe(
57
58
  // Нулевой debounceTime для случая, когда меняются направление и поле сортировки одновременно.
58
59
  debounceTime(0), switchMap((value) => this.frequentlyAskedQuestionsService
@@ -96,11 +97,11 @@ export class ScFrequentlyAskedQuestionsWithGroupsComponent {
96
97
  this.groupId$.next(id);
97
98
  this.paginationChange(0);
98
99
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScFrequentlyAskedQuestionsWithGroupsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScFrequentlyAskedQuestionsWithGroupsComponent, isStandalone: true, selector: "sc-frequently-asked-questions-with-groups", outputs: { clickSendQuestion: "clickSendQuestion" }, ngImport: i0, template: "@let items = data$ | async;\n@let pageCount = pageCount$ | async;\n@let viewMode = viewMode$ | async;\n\n<div\n *ngIf=\"viewMode\"\n class=\"flex gap-6\"\n [class.flex-col]=\"viewMode === 'select'\"\n>\n <div class=\"flex flex-col gap-7\">\n <sc-frequently-asked-questions-group-selector\n (groupIdChange)=\"groupIdChange($event)\"\n [viewMode]=\"viewMode\"\n class=\"shrink-0\"\n [class.w-64]=\"viewMode !== 'select'\"\n />\n\n <button\n *ngIf=\"viewMode === 'list'\"\n tuiButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.circle-help\"\n appearance=\"secondary\"\n (click)=\"clickSendQuestion.emit()\"\n class=\"self-center\"\n >\n \u0417\u0430\u0434\u0430\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\n </button>\n </div>\n\n <div class=\"grow\">\n @if (items && items.length) {\n <sc-frequently-asked-questions\n [items]=\"items\"\n [showLoading]=\"isLoading()\"\n />\n\n <tui-pagination\n *ngIf=\"pageCount && pageCount > 1\"\n [length]=\"pageCount\"\n [index]=\"(currentPage$ | async) ?? 0\"\n (indexChange)=\"paginationChange($event)\"\n class=\"mt-4 !justify-items-center\"\n />\n } @else {\n <p class=\"text-body-s-bold\">\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0443\u0441\u0442</p>\n }\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ScFrequentlyAskedQuestionsGroupSelectorComponent, selector: "sc-frequently-asked-questions-group-selector", inputs: ["viewMode"], outputs: ["groupIdChange"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: ScFrequentlyAskedQuestionsComponent, selector: "sc-frequently-asked-questions", inputs: ["items", "showLoading"] }, { kind: "component", type: TuiPagination, selector: "tui-pagination", inputs: ["length", "focusable", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsWithGroupsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScFrequentlyAskedQuestionsWithGroupsComponent, isStandalone: true, selector: "sc-frequently-asked-questions-with-groups", outputs: { clickSendQuestion: "clickSendQuestion" }, ngImport: i0, template: "@let items = data$ | async;\n@let pageCount = pageCount$ | async;\n@let viewMode = viewMode$ | async;\n\n<div\n *ngIf=\"viewMode\"\n class=\"flex gap-6\"\n [class.flex-col]=\"viewMode === 'select'\"\n>\n <div class=\"flex flex-col gap-7\">\n <sc-frequently-asked-questions-group-selector\n (groupIdChange)=\"groupIdChange($event)\"\n [viewMode]=\"viewMode\"\n class=\"shrink-0\"\n [class.w-64]=\"viewMode !== 'select'\"\n />\n\n <button\n *ngIf=\"viewMode === 'list'\"\n tuiButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.circle-help\"\n appearance=\"secondary\"\n (click)=\"clickSendQuestion.emit()\"\n class=\"self-center\"\n >\n \u0417\u0430\u0434\u0430\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\n </button>\n </div>\n\n <div class=\"grow\">\n @if (items && items.length) {\n <sc-frequently-asked-questions\n [items]=\"items\"\n [showLoading]=\"isLoading()\"\n />\n\n <tui-pagination\n *ngIf=\"pageCount && pageCount > 1\"\n [length]=\"pageCount\"\n [index]=\"(currentPage$ | async) ?? 0\"\n (indexChange)=\"paginationChange($event)\"\n class=\"mt-4 !justify-items-center\"\n />\n } @else {\n <p class=\"text-body-s-bold\">\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0443\u0441\u0442</p>\n }\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ScFrequentlyAskedQuestionsGroupSelectorComponent, selector: "sc-frequently-asked-questions-group-selector", inputs: ["viewMode"], outputs: ["groupIdChange"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: ScFrequentlyAskedQuestionsComponent, selector: "sc-frequently-asked-questions", inputs: ["items", "showLoading"] }, { kind: "component", type: TuiPagination, selector: "tui-pagination", inputs: ["length", "focusable", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
101
102
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScFrequentlyAskedQuestionsWithGroupsComponent, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsWithGroupsComponent, decorators: [{
103
104
  type: Component,
104
105
  args: [{ standalone: true, selector: 'sc-frequently-asked-questions-with-groups', imports: [AsyncPipe, NgIf, ScFrequentlyAskedQuestionsGroupSelectorComponent, TuiButton, ScFrequentlyAskedQuestionsComponent, TuiPagination], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let items = data$ | async;\n@let pageCount = pageCount$ | async;\n@let viewMode = viewMode$ | async;\n\n<div\n *ngIf=\"viewMode\"\n class=\"flex gap-6\"\n [class.flex-col]=\"viewMode === 'select'\"\n>\n <div class=\"flex flex-col gap-7\">\n <sc-frequently-asked-questions-group-selector\n (groupIdChange)=\"groupIdChange($event)\"\n [viewMode]=\"viewMode\"\n class=\"shrink-0\"\n [class.w-64]=\"viewMode !== 'select'\"\n />\n\n <button\n *ngIf=\"viewMode === 'list'\"\n tuiButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.circle-help\"\n appearance=\"secondary\"\n (click)=\"clickSendQuestion.emit()\"\n class=\"self-center\"\n >\n \u0417\u0430\u0434\u0430\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\n </button>\n </div>\n\n <div class=\"grow\">\n @if (items && items.length) {\n <sc-frequently-asked-questions\n [items]=\"items\"\n [showLoading]=\"isLoading()\"\n />\n\n <tui-pagination\n *ngIf=\"pageCount && pageCount > 1\"\n [length]=\"pageCount\"\n [index]=\"(currentPage$ | async) ?? 0\"\n (indexChange)=\"paginationChange($event)\"\n class=\"mt-4 !justify-items-center\"\n />\n } @else {\n <p class=\"text-body-s-bold\">\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0443\u0441\u0442</p>\n }\n </div>\n</div>\n" }]
105
106
  }] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtd2l0aC1ncm91cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3BhZ2VzL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBYSxpQ0FBaUMsRUFBNEQsTUFBTSx3QkFBd0IsQ0FBQztBQUNySyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpJ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QyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FvQnJKO0lBbEJHOzs7O09BSUc7SUFDTyxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxhQUFhLENBQUMsRUFBVTtRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQzsrR0EvR1EsNkNBQTZDO21HQUE3Qyw2Q0FBNkMsMEpDdEIxRCw2bkRBa0RBLHVDRC9CYyxTQUFTLDhDQUFFLElBQUksNkZBQUUsZ0RBQWdELDJJQUFFLFNBQVMsb0lBQUUsbUNBQW1DLDRHQUFFLGFBQWE7OzRGQUdqSSw2Q0FBNkM7a0JBUHpELFNBQVM7aUNBQ00sSUFBSSxZQUNOLDJDQUEyQyxXQUU1QyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0RBQWdELEVBQUUsU0FBUyxFQUFFLG1DQUFtQyxFQUFFLGFBQWEsQ0FBQyxtQkFDMUgsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIG91dHB1dCwgT3V0cHV0RW1pdHRlclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTY0NvbnZlcnRlcnNTZXJ2aWNlLCBTY0ZhcUl0ZW0sIFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZSwgU2NJRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zUGFnaW5hdGlvblBhcmFtcywgU2NJUGFnaW5hdGUgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9XSU5ET1dfU0laRSwgdHVpSXNGYWxzeSwgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUdWlCdXR0b24gfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlQYWdpbmF0aW9uIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0NvbXBvbmVudCwgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNHcm91cFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgU0NfUEFHRV9TSVpFX09QVElPTlMgfSBmcm9tICcuLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1wYWdlLXNpemUtb3B0aW9ucyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGH0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0YUg0LLQvtC/0YDQvtGB0L7QsiDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0LLRi9Cx0L7RgNCwINCz0YDRg9C/0L/RiyDQstC+0L/RgNC+0YHQvtCyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtd2l0aC1ncm91cHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdJZiwgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNHcm91cFNlbGVjdG9yQ29tcG9uZW50LCBUdWlCdXR0b24sIFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zQ29tcG9uZW50LCBUdWlQYWdpbmF0aW9uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNXaXRoR3JvdXBzQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPIEVtYWlsINC00LvRjyDRgdCy0Y/Qt9C4INC/0L4g0LLQvtC/0YDQvtGB0LDQvCDRgNC10LrQu9Cw0LzQsNGG0LjQuS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZTogU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlID0gaW5qZWN0KFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZSA9IGluamVjdChTY0NvbnZlcnRlcnNTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QtNC10LrRgSDQv9C10YDQstC+0Lkg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpcnN0UGFnZUluZGV4OiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog0JrQvtC70LjRh9C10YHRgtCy0L4g0LfQsNC/0LjRgdC10Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBpbmplY3QoU0NfUEFHRV9TSVpFX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINC30LDQv9C40YHQtdC5INC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlclBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLnBhZ2VTaXplT3B0aW9uc1swXSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSDQuNC30LzQtdC90LXQvdC40Y8g0L3QvtC80LXRgNCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odGhpcy5maXJzdFBhZ2VJbmRleCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSDQuNC30LzQtdC90LXQvdC40Y8g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQsCDQs9GA0YPQv9C/0YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGdyb3VwSWQkOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LPQvdCw0Lsg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQl9Cw0LTQsNGC0Ywg0LLQvtC/0YDQvtGBXCIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrU2VuZFF1ZXN0aW9uOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINGB0L/QuNGB0LrQsCDQt9Cw0LrQsNC30L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjRmFxSXRlbT4gfCBudWxsPiA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICBwYWdlOiB0aGlzLnBhZ2UkLFxuICAgICAgICBwZXJQYWdlOiB0aGlzLnBlclBhZ2UkLFxuICAgICAgICBncm91cDogdGhpcy5ncm91cElkJCxcbiAgICB9KS5waXBlKFxuICAgICAgICAvLyDQndGD0LvQtdCy0L7QuSBkZWJvdW5jZVRpbWUg0LTQu9GPINGB0LvRg9GH0LDRjywg0LrQvtCz0LTQsCDQvNC10L3Rj9GO0YLRgdGPINC90LDQv9GA0LDQstC70LXQvdC40LUg0Lgg0L/QvtC70LUg0YHQvtGA0YLQuNGA0L7QstC60Lgg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+LlxuICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWU6IFNjSUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1BhZ2luYXRpb25QYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJCh0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnJlbW92ZU51bGw8U2NJRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zUGFnaW5hdGlvblBhcmFtcz4odmFsdWUpKVxuICAgICAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aChudWxsKSlcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC+0LHRidC10LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgdGC0YDQsNC90LjRhiDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2VDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMucmVxdWVzdCQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIG1hcCgoeyBtZXRhIH0pID0+IG1ldGEubGFzdFBhZ2UpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0L3QvtC80LXRgNCwINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4INC40Lcg0LTQsNC90L3Ri9GFINC/0LDQs9C40L3QsNGG0LjQuCDQt9Cw0L/RgNC+0YHQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2UkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKHsgbWV0YSB9KSA9PiBtZXRhLmN1cnJlbnRQYWdlIC0gMSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNCz0YDRg9C30LrQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHRvU2lnbmFsKHRoaXMucmVxdWVzdCQucGlwZShtYXAodHVpSXNGYWxzeSkpLCB7IGluaXRpYWxWYWx1ZTogZmFsc2UgfSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDQt9Cw0LrQsNC30L7QsiDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8U2NGYXFJdGVtW10gfCBudWxsPiA9IHRoaXMucmVxdWVzdCQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YS5kYXRhKSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YTQvtGA0LzQsNGC0LAg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDRhNC40LvRjNGC0YDQsCDQs9GA0YPQv9C/LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB2aWV3TW9kZSQ6IE9ic2VydmFibGU8J2xpc3QnIHwgJ3NlbGVjdCc+ID0gaW5qZWN0KFRVSV9XSU5ET1dfU0laRSkucGlwZShtYXAoKHJlY3QpID0+IChyZWN0LndpZHRoID4gNzY4ID8gJ2xpc3QnIDogJ3NlbGVjdCcpKSk7XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQtNCw0L3QvdGL0LUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2VJbmRleCDQmNC90LTQtdC60YEg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGFnaW5hdGlvbkNoYW5nZShwYWdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQocGFnZUluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LPRgNGD0L/Qv9GLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCz0YDRg9C/0L/Riy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBJZENoYW5nZShpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBJZCQubmV4dChpZCk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNoYW5nZSgwKTtcbiAgICB9XG59XG4iLCJAbGV0IGl0ZW1zID0gZGF0YSQgfCBhc3luYztcbkBsZXQgcGFnZUNvdW50ID0gcGFnZUNvdW50JCB8IGFzeW5jO1xuQGxldCB2aWV3TW9kZSA9IHZpZXdNb2RlJCB8IGFzeW5jO1xuXG48ZGl2XG4gICAgKm5nSWY9XCJ2aWV3TW9kZVwiXG4gICAgY2xhc3M9XCJmbGV4IGdhcC02XCJcbiAgICBbY2xhc3MuZmxleC1jb2xdPVwidmlld01vZGUgPT09ICdzZWxlY3QnXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtN1wiPlxuICAgICAgICA8c2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtZ3JvdXAtc2VsZWN0b3JcbiAgICAgICAgICAgIChncm91cElkQ2hhbmdlKT1cImdyb3VwSWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmlld01vZGVdPVwidmlld01vZGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJzaHJpbmstMFwiXG4gICAgICAgICAgICBbY2xhc3Mudy02NF09XCJ2aWV3TW9kZSAhPT0gJ3NlbGVjdCdcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidmlld01vZGUgPT09ICdsaXN0J1wiXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5jaXJjbGUtaGVscFwiXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja1NlbmRRdWVzdGlvbi5lbWl0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCX0LDQtNCw0YLRjCDQstC+0L/RgNC+0YFcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ3Jvd1wiPlxuICAgICAgICBAaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgPHNjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgICAgICBbc2hvd0xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPHR1aS1wYWdpbmF0aW9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlQ291bnQgJiYgcGFnZUNvdW50ID4gMVwiXG4gICAgICAgICAgICAgICAgW2xlbmd0aF09XCJwYWdlQ291bnRcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCIoY3VycmVudFBhZ2UkIHwgYXN5bmMpID8/IDBcIlxuICAgICAgICAgICAgICAgIChpbmRleENoYW5nZSk9XCJwYWdpbmF0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtNCAhanVzdGlmeS1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtYm9keS1zLWJvbGRcIj7QodC/0LjRgdC+0Log0LLQvtC/0YDQvtGB0L7QsiDQv9GD0YHRgjwvcD5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtd2l0aC1ncm91cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3BhZ2VzL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBYSxpQ0FBaUMsRUFBNEQsTUFBTSx3QkFBd0IsQ0FBQztBQUNySyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0s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QUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBb0JySjtJQWxCRzs7OztPQUlHO0lBQ08sZ0JBQWdCLENBQUMsU0FBaUI7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sYUFBYSxDQUFDLEVBQVU7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7K0dBaEhRLDZDQUE2QzttR0FBN0MsNkNBQTZDLDBKQ3RCMUQsNm5EQWtEQSx1Q0QvQmMsU0FBUyw4Q0FBRSxJQUFJLDZGQUFFLGdEQUFnRCwySUFBRSxTQUFTLG9JQUFFLG1DQUFtQyw0R0FBRSxhQUFhOzs0RkFHakksNkNBQTZDO2tCQVB6RCxTQUFTO2lDQUNNLElBQUksWUFDTiwyQ0FBMkMsV0FFNUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGdEQUFnRCxFQUFFLFNBQVMsRUFBRSxtQ0FBbUMsRUFBRSxhQUFhLENBQUMsbUJBQzFILHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBvdXRwdXQsIE91dHB1dEVtaXR0ZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2NDb252ZXJ0ZXJzU2VydmljZSwgU2NGYXFJdGVtLCBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2UsIFNjSUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1BhZ2luYXRpb25QYXJhbXMsIFNjSVBhZ2luYXRlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBUVUlfV0lORE9XX1NJWkUsIHR1aUlzRmFsc3ksIHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVHVpUGFnaW5hdGlvbiB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zQ29tcG9uZW50LCBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0dyb3VwU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBTQ19QQUdFX1NJWkVfT1BUSU9OUyB9IGZyb20gJy4uL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zL3NjLXBhZ2Utc2l6ZS1vcHRpb25zJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YfQsNGB0YLQviDQt9Cw0LTQsNCy0LDQtdC80YvRhSDQstC+0L/RgNC+0YHQvtCyINGBINCy0L7Qt9C80L7QttC90L7RgdGC0YzRjiDQstGL0LHQvtGA0LAg0LPRgNGD0L/Qv9GLINCy0L7Qv9GA0L7RgdC+0LIuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3VwcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ0lmLCBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0dyb3VwU2VsZWN0b3JDb21wb25lbnQsIFR1aUJ1dHRvbiwgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNDb21wb25lbnQsIFR1aVBhZ2luYXRpb25dLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1dpdGhHcm91cHNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8gRW1haWwg0LTQu9GPINGB0LLRj9C30Lgg0L/QviDQstC+0L/RgNC+0YHQsNC8INGA0LXQutC70LDQvNCw0YbQuNC5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlOiBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2UgPSBpbmplY3QoU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlID0gaW5qZWN0KFNjQ29udmVydGVyc1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC00LXQutGBINC/0LXRgNCy0L7QuSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlyc3RQYWdlSW5kZXg6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDQt9Cw0L/QuNGB0LXQuSDQvdCwINGB0YLRgNCw0L3QuNGG0LUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IGluamVjdChTQ19QQUdFX1NJWkVfT1BUSU9OUyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSDQuNC30LzQtdC90LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0LfQsNC/0LjRgdC10Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGVyUGFnZSQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KHRoaXMucGFnZVNpemVPcHRpb25zWzBdKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC40LfQvNC10L3QtdC90LjRjyDQvdC+0LzQtdGA0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLmZpcnN0UGFnZUluZGV4KTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC40LfQvNC10L3QtdC90LjRjyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNCwINCz0YDRg9C/0L/Riy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JvdXBJZCQ6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0LjQs9C90LDQuyDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCX0LDQtNCw0YLRjCDQstC+0L/RgNC+0YFcIi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xpY2tTZW5kUXVlc3Rpb246IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQtNCw0L3QvdGL0YUg0YHQv9C40YHQutCwINC30LDQutCw0LfQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdCQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NGYXFJdGVtPiB8IG51bGw+ID0gY29tYmluZUxhdGVzdCh7XG4gICAgICAgIHBhZ2U6IHRoaXMucGFnZSQsXG4gICAgICAgIHBlclBhZ2U6IHRoaXMucGVyUGFnZSQsXG4gICAgICAgIGdyb3VwOiB0aGlzLmdyb3VwSWQkLFxuICAgICAgICBwYWdpbmF0ZTogb2YodHJ1ZSksXG4gICAgfSkucGlwZShcbiAgICAgICAgLy8g0J3Rg9C70LXQstC+0LkgZGVib3VuY2VUaW1lINC00LvRjyDRgdC70YPRh9Cw0Y8sINC60L7Qs9C00LAg0LzQtdC90Y/RjtGC0YHRjyDQvdCw0L/RgNCw0LLQu9C10L3QuNC1INC4INC/0L7Qu9C1INGB0L7RgNGC0LjRgNC+0LLQutC4INC+0LTQvdC+0LLRgNC10LzQtdC90L3Qvi5cbiAgICAgICAgZGVib3VuY2VUaW1lKDApLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlOiBTY0lGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNQYWdpbmF0aW9uUGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5mcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyQodGhpcy5jb252ZXJ0ZXJzU2VydmljZS5yZW1vdmVOdWxsPFNjSUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1BhZ2luYXRpb25QYXJhbXM+KHZhbHVlKSlcbiAgICAgICAgICAgICAgICAucGlwZShzdGFydFdpdGgobnVsbCkpXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQvtCx0YnQtdCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0YHRgtGA0LDQvdC40YYg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwYWdlQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKHsgbWV0YSB9KSA9PiBtZXRhLmxhc3RQYWdlKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC90L7QvNC10YDQsCDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCDQuNC3INC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0LfQsNC/0YDQvtGB0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKFxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgbWFwKCh7IG1ldGEgfSkgPT4gbWV0YS5jdXJyZW50UGFnZSAtIDEpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0xvYWRpbmcgPSB0b1NpZ25hbCh0aGlzLnJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKSwgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH0pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LfQsNC60LDQt9C+0LIg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPFNjRmFxSXRlbVtdIHwgbnVsbD4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZGF0YSksXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGE0L7RgNC80LDRgtCwINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0YTQuNC70YzRgtGA0LAg0LPRgNGD0L/Qvy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld01vZGUkOiBPYnNlcnZhYmxlPCdsaXN0JyB8ICdzZWxlY3QnPiA9IGluamVjdChUVUlfV0lORE9XX1NJWkUpLnBpcGUobWFwKChyZWN0KSA9PiAocmVjdC53aWR0aCA+IDc2OCA/ICdsaXN0JyA6ICdzZWxlY3QnKSkpO1xuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LTQsNC90L3Ri9C1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlSW5kZXgg0JjQvdC00LXQutGBINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHBhZ2luYXRpb25DaGFuZ2UocGFnZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHBhZ2VJbmRleCArIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCz0YDRg9C/0L/Riy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQs9GA0YPQv9C/0YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdyb3VwSWRDaGFuZ2UoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdyb3VwSWQkLm5leHQoaWQpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25DaGFuZ2UoMCk7XG4gICAgfVxufVxuIiwiQGxldCBpdGVtcyA9IGRhdGEkIHwgYXN5bmM7XG5AbGV0IHBhZ2VDb3VudCA9IHBhZ2VDb3VudCQgfCBhc3luYztcbkBsZXQgdmlld01vZGUgPSB2aWV3TW9kZSQgfCBhc3luYztcblxuPGRpdlxuICAgICpuZ0lmPVwidmlld01vZGVcIlxuICAgIGNsYXNzPVwiZmxleCBnYXAtNlwiXG4gICAgW2NsYXNzLmZsZXgtY29sXT1cInZpZXdNb2RlID09PSAnc2VsZWN0J1wiXG4+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTdcIj5cbiAgICAgICAgPHNjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLWdyb3VwLXNlbGVjdG9yXG4gICAgICAgICAgICAoZ3JvdXBJZENoYW5nZSk9XCJncm91cElkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW3ZpZXdNb2RlXT1cInZpZXdNb2RlXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2hyaW5rLTBcIlxuICAgICAgICAgICAgW2NsYXNzLnctNjRdPVwidmlld01vZGUgIT09ICdzZWxlY3QnXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIlxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkuY2lyY2xlLWhlbHBcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tTZW5kUXVlc3Rpb24uZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VsZi1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICDQl9Cw0LTQsNGC0Ywg0LLQvtC/0YDQvtGBXG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdyb3dcIj5cbiAgICAgICAgQGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxzYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkaW5nXT1cImlzTG9hZGluZygpXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDx0dWktcGFnaW5hdGlvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwicGFnZUNvdW50ICYmIHBhZ2VDb3VudCA+IDFcIlxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwicGFnZUNvdW50XCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiKGN1cnJlbnRQYWdlJCB8IGFzeW5jKSA/PyAwXCJcbiAgICAgICAgICAgICAgICAoaW5kZXhDaGFuZ2UpPVwicGFnaW5hdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTQgIWp1c3RpZnktaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJvZHktcy1ib2xkXCI+0KHQv9C40YHQvtC6INCy0L7Qv9GA0L7RgdC+0LIg0L/Rg9GB0YI8L3A+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19