@snabcentr/client-core 3.5.6 → 4.0.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 (897) hide show
  1. package/fesm2022/snabcentr-client-core.mjs +540 -503
  2. package/fesm2022/snabcentr-client-core.mjs.map +1 -1
  3. package/package.json +23 -24
  4. package/release_notes.tmp +0 -6
  5. package/types/snabcentr-client-core.d.ts +10138 -0
  6. package/auth/index.d.ts +0 -3
  7. package/auth/interfaces/index.d.ts +0 -5
  8. package/auth/interfaces/sc-i-api-error-response.d.ts +0 -13
  9. package/auth/interfaces/sc-i-auth-token.d.ts +0 -14
  10. package/auth/interfaces/sc-i-login.d.ts +0 -13
  11. package/auth/interfaces/sc-i-phone-login.d.ts +0 -13
  12. package/auth/interfaces/sc-i-token.d.ts +0 -13
  13. package/auth/services/index.d.ts +0 -2
  14. package/auth/services/sc-auth.service.d.ts +0 -78
  15. package/auth/services/sc-token.service.d.ts +0 -79
  16. package/auth/tokens/index.d.ts +0 -3
  17. package/auth/tokens/sc-access-auth-token-storage-key.d.ts +0 -5
  18. package/auth/tokens/sc-guest-token-storage-key.d.ts +0 -5
  19. package/auth/tokens/sc-refresh-auth-token-storage-key.d.ts +0 -5
  20. package/banners/dto/index.d.ts +0 -2
  21. package/banners/dto/sc-banner.d.ts +0 -56
  22. package/banners/dto/sc-i-banner.d.ts +0 -41
  23. package/banners/index.d.ts +0 -2
  24. package/banners/services/sc-banner.service.d.ts +0 -22
  25. package/cart/classes/index.d.ts +0 -2
  26. package/cart/classes/sc-cart.d.ts +0 -26
  27. package/cart/classes/sc-sum.d.ts +0 -12
  28. package/cart/constants/index.d.ts +0 -1
  29. package/cart/constants/sc-empty-cart.d.ts +0 -7
  30. package/cart/index.d.ts +0 -4
  31. package/cart/internal/index.d.ts +0 -1
  32. package/cart/internal/sc-i-cart.d.ts +0 -19
  33. package/cart/services/index.d.ts +0 -1
  34. package/cart/services/sc-cart.service.d.ts +0 -113
  35. package/catalog/classes/index.d.ts +0 -3
  36. package/catalog/classes/sc-cached-data.d.ts +0 -25
  37. package/catalog/classes/sc-cached-item.d.ts +0 -53
  38. package/catalog/classes/sc-catalog-item.d.ts +0 -31
  39. package/catalog/dto/index.d.ts +0 -7
  40. package/catalog/dto/sc-category.d.ts +0 -133
  41. package/catalog/dto/sc-i-discount.d.ts +0 -21
  42. package/catalog/dto/sc-i-product-images.d.ts +0 -25
  43. package/catalog/dto/sc-i-product-notify-when-in-stock.d.ts +0 -21
  44. package/catalog/dto/sc-i-properties.d.ts +0 -88
  45. package/catalog/dto/sc-product.d.ts +0 -177
  46. package/catalog/dto/sc-virtual-category.d.ts +0 -27
  47. package/catalog/enums/index.d.ts +0 -3
  48. package/catalog/enums/sc-catalog-format.d.ts +0 -13
  49. package/catalog/enums/sc-mime-types.d.ts +0 -77
  50. package/catalog/enums/sc-product-tile-type.d.ts +0 -13
  51. package/catalog/index.d.ts +0 -8
  52. package/catalog/interfaces/index.d.ts +0 -13
  53. package/catalog/interfaces/sc-catalog-filter.d.ts +0 -7
  54. package/catalog/interfaces/sc-i-base-catalog-filter.d.ts +0 -17
  55. package/catalog/interfaces/sc-i-catalog-item.d.ts +0 -16
  56. package/catalog/interfaces/sc-i-category-product-params.d.ts +0 -45
  57. package/catalog/interfaces/sc-i-category-products-pagination-params.d.ts +0 -19
  58. package/catalog/interfaces/sc-i-category.d.ts +0 -29
  59. package/catalog/interfaces/sc-i-checkbox-filter.d.ts +0 -31
  60. package/catalog/interfaces/sc-i-product.d.ts +0 -78
  61. package/catalog/interfaces/sc-i-range-filter.d.ts +0 -26
  62. package/catalog/interfaces/sc-i-toggle-filter.d.ts +0 -14
  63. package/catalog/interfaces/sc-i-virtual-category.d.ts +0 -20
  64. package/catalog/interfaces/sc-property-filters.d.ts +0 -5
  65. package/catalog/interfaces/sc-t-product-sort-field.d.ts +0 -4
  66. package/catalog/internal/index.d.ts +0 -1
  67. package/catalog/internal/sc-i-filter-tree-category.d.ts +0 -15
  68. package/catalog/services/index.d.ts +0 -4
  69. package/catalog/services/sc-catalog-filter.service.d.ts +0 -33
  70. package/catalog/services/sc-catalog.service.d.ts +0 -191
  71. package/catalog/services/sc-favorite.service.d.ts +0 -62
  72. package/catalog/services/sc-recommendation.service.d.ts +0 -60
  73. package/catalog/tokens/index.d.ts +0 -1
  74. package/catalog/tokens/sc-count-first-discounted-products.d.ts +0 -5
  75. package/catalog/types/index.d.ts +0 -2
  76. package/catalog/types/sc-filters-tree-catalog.d.ts +0 -5
  77. package/catalog/types/sc-price-history.d.ts +0 -13
  78. package/common/classes/index.d.ts +0 -10
  79. package/common/classes/sc-catalogable-item.d.ts +0 -17
  80. package/common/classes/sc-coded-identity.d.ts +0 -17
  81. package/common/classes/sc-deletable-named-identity.d.ts +0 -17
  82. package/common/classes/sc-hidden-catalogable-item.d.ts +0 -17
  83. package/common/classes/sc-identity.d.ts +0 -25
  84. package/common/classes/sc-image.d.ts +0 -24
  85. package/common/classes/sc-named-identity.d.ts +0 -17
  86. package/common/classes/sc-primary-catalogable-item.d.ts +0 -17
  87. package/common/classes/sc-reference.d.ts +0 -21
  88. package/common/classes/sc-updatable-named-identity.d.ts +0 -17
  89. package/common/enums/index.d.ts +0 -1
  90. package/common/enums/request-state-status-enum.d.ts +0 -17
  91. package/common/index.d.ts +0 -3
  92. package/common/interfaces/index.d.ts +0 -18
  93. package/common/interfaces/sc-i-catalogable-item.d.ts +0 -10
  94. package/common/interfaces/sc-i-coded-identity.d.ts +0 -10
  95. package/common/interfaces/sc-i-created-at.d.ts +0 -9
  96. package/common/interfaces/sc-i-date-period.d.ts +0 -6
  97. package/common/interfaces/sc-i-deletable-named-identity.d.ts +0 -7
  98. package/common/interfaces/sc-i-deleted-at.d.ts +0 -9
  99. package/common/interfaces/sc-i-file.d.ts +0 -13
  100. package/common/interfaces/sc-i-hidden-catalogable-item.d.ts +0 -10
  101. package/common/interfaces/sc-i-identity.d.ts +0 -13
  102. package/common/interfaces/sc-i-image.d.ts +0 -17
  103. package/common/interfaces/sc-i-named-identity.d.ts +0 -7
  104. package/common/interfaces/sc-i-named.d.ts +0 -9
  105. package/common/interfaces/sc-i-primary-catalogable-item.d.ts +0 -10
  106. package/common/interfaces/sc-i-reference.d.ts +0 -14
  107. package/common/interfaces/sc-i-request-state.d.ts +0 -35
  108. package/common/interfaces/sc-i-typed-nullable-range.d.ts +0 -13
  109. package/common/interfaces/sc-i-updatable-named-identity.d.ts +0 -7
  110. package/common/interfaces/sc-i-updated-at.d.ts +0 -9
  111. package/config/index.d.ts +0 -11
  112. package/config/sc-i-api-keys.d.ts +0 -13
  113. package/config/sc-i-app-release.d.ts +0 -17
  114. package/config/sc-i-cache-lifetime.d.ts +0 -27
  115. package/config/sc-i-company-base-info.d.ts +0 -54
  116. package/config/sc-i-date-format.d.ts +0 -17
  117. package/config/sc-i-feedback-api.d.ts +0 -17
  118. package/config/sc-i-maps-default-options.d.ts +0 -13
  119. package/config/sc-i-update-interval.d.ts +0 -13
  120. package/config/sc-i-urls.d.ts +0 -44
  121. package/config/sc-i-user-configs.d.ts +0 -9
  122. package/config/sc-route-keys.d.ts +0 -153
  123. package/configurator/dto/index.d.ts +0 -7
  124. package/configurator/dto/sc-i-configurator-base.d.ts +0 -5
  125. package/configurator/dto/sc-i-configurator-calculate-result.d.ts +0 -18
  126. package/configurator/dto/sc-i-configurator-calculate-sheet.d.ts +0 -9
  127. package/configurator/dto/sc-i-configurator-search-product-base.d.ts +0 -5
  128. package/configurator/dto/sc-i-configurator-settings-base.d.ts +0 -5
  129. package/configurator/dto/sc-i-sandwich-calculate-item.d.ts +0 -17
  130. package/configurator/dto/sc-i-sandwich-calculate.d.ts +0 -14
  131. package/configurator/index.d.ts +0 -3
  132. package/configurator/services/index.d.ts +0 -1
  133. package/configurator/services/sc-configurator.service.d.ts +0 -81
  134. package/configurator/types/index.d.ts +0 -1
  135. package/configurator/types/sc-type-by-key.d.ts +0 -5
  136. package/contacts/dto/index.d.ts +0 -9
  137. package/contacts/dto/sc-i-contact-and-media.d.ts +0 -23
  138. package/contacts/dto/sc-i-direction-manager-contact.d.ts +0 -42
  139. package/contacts/dto/sc-i-feedback-message.d.ts +0 -35
  140. package/contacts/dto/sc-i-org-contact.d.ts +0 -46
  141. package/contacts/dto/sc-i-requisites-with-label.d.ts +0 -13
  142. package/contacts/dto/sc-i-requisites.d.ts +0 -58
  143. package/contacts/dto/sc-i-retail-contact.d.ts +0 -47
  144. package/contacts/dto/sc-i-social-media.d.ts +0 -18
  145. package/contacts/dto/sc-uploaded-file.d.ts +0 -14
  146. package/contacts/enums/index.d.ts +0 -2
  147. package/contacts/enums/sc-feedback-forms.d.ts +0 -29
  148. package/contacts/enums/sc-social-type.d.ts +0 -21
  149. package/contacts/index.d.ts +0 -3
  150. package/contacts/services/index.d.ts +0 -3
  151. package/contacts/services/sc-contacts.service.d.ts +0 -79
  152. package/contacts/services/sc-feedback.service.d.ts +0 -41
  153. package/contacts/services/sc-requisites.service.d.ts +0 -90
  154. package/contragent/dto/index.d.ts +0 -13
  155. package/contragent/dto/sc-contragent-on-data-create.d.ts +0 -8
  156. package/contragent/dto/sc-contragent.d.ts +0 -8
  157. package/contragent/dto/sc-i-bank-account-on-data-create.d.ts +0 -25
  158. package/contragent/dto/sc-i-bank-account.d.ts +0 -15
  159. package/contragent/dto/sc-i-contragent-entrepreneur-on-data-create.d.ts +0 -43
  160. package/contragent/dto/sc-i-contragent-entrepreneur.d.ts +0 -38
  161. package/contragent/dto/sc-i-contragent-individual-on-data-create.d.ts +0 -23
  162. package/contragent/dto/sc-i-contragent-individual.d.ts +0 -18
  163. package/contragent/dto/sc-i-contragent-legal-on-data-create.d.ts +0 -10
  164. package/contragent/dto/sc-i-contragent-legal.d.ts +0 -10
  165. package/contragent/dto/sc-i-contragent-non-resident-legal-on-data-create.d.ts +0 -18
  166. package/contragent/dto/sc-i-contragent-non-resident-legal.d.ts +0 -19
  167. package/contragent/dto/sc-i-opf.d.ts +0 -21
  168. package/contragent/index.d.ts +0 -2
  169. package/contragent/services/index.d.ts +0 -1
  170. package/contragent/services/sc-contragent.service.d.ts +0 -105
  171. package/converters/index.d.ts +0 -2
  172. package/converters/services/sc-converters.service.d.ts +0 -61
  173. package/converters/types/index.d.ts +0 -1
  174. package/converters/types/sc-date-to-string.d.ts +0 -6
  175. package/delivery-address/dto/index.d.ts +0 -2
  176. package/delivery-address/dto/sc-i-delivery-addresses-on-data-create.d.ts +0 -44
  177. package/delivery-address/dto/sc-i-delivery-addresses.d.ts +0 -10
  178. package/delivery-address/index.d.ts +0 -2
  179. package/delivery-address/services/index.d.ts +0 -1
  180. package/delivery-address/services/sc-delivery-address.service.d.ts +0 -73
  181. package/esm2022/auth/index.mjs +0 -4
  182. package/esm2022/auth/interfaces/index.mjs +0 -6
  183. package/esm2022/auth/interfaces/sc-i-api-error-response.mjs +0 -2
  184. package/esm2022/auth/interfaces/sc-i-auth-token.mjs +0 -2
  185. package/esm2022/auth/interfaces/sc-i-login.mjs +0 -2
  186. package/esm2022/auth/interfaces/sc-i-phone-login.mjs +0 -2
  187. package/esm2022/auth/interfaces/sc-i-token.mjs +0 -2
  188. package/esm2022/auth/services/index.mjs +0 -3
  189. package/esm2022/auth/services/sc-auth.service.mjs +0 -162
  190. package/esm2022/auth/services/sc-token.service.mjs +0 -158
  191. package/esm2022/auth/tokens/index.mjs +0 -4
  192. package/esm2022/auth/tokens/sc-access-auth-token-storage-key.mjs +0 -9
  193. package/esm2022/auth/tokens/sc-guest-token-storage-key.mjs +0 -9
  194. package/esm2022/auth/tokens/sc-refresh-auth-token-storage-key.mjs +0 -9
  195. package/esm2022/banners/dto/index.mjs +0 -3
  196. package/esm2022/banners/dto/sc-banner.mjs +0 -34
  197. package/esm2022/banners/dto/sc-i-banner.mjs +0 -2
  198. package/esm2022/banners/index.mjs +0 -3
  199. package/esm2022/banners/services/sc-banner.service.mjs +0 -35
  200. package/esm2022/cart/classes/index.mjs +0 -3
  201. package/esm2022/cart/classes/sc-cart.mjs +0 -18
  202. package/esm2022/cart/classes/sc-sum.mjs +0 -14
  203. package/esm2022/cart/constants/index.mjs +0 -2
  204. package/esm2022/cart/constants/sc-empty-cart.mjs +0 -2
  205. package/esm2022/cart/index.mjs +0 -5
  206. package/esm2022/cart/internal/index.mjs +0 -2
  207. package/esm2022/cart/internal/sc-i-cart.mjs +0 -2
  208. package/esm2022/cart/services/index.mjs +0 -2
  209. package/esm2022/cart/services/sc-cart.service.mjs +0 -203
  210. package/esm2022/catalog/classes/index.mjs +0 -4
  211. package/esm2022/catalog/classes/sc-cached-data.mjs +0 -23
  212. package/esm2022/catalog/classes/sc-cached-item.mjs +0 -60
  213. package/esm2022/catalog/classes/sc-catalog-item.mjs +0 -19
  214. package/esm2022/catalog/dto/index.mjs +0 -8
  215. package/esm2022/catalog/dto/sc-category.mjs +0 -180
  216. package/esm2022/catalog/dto/sc-i-discount.mjs +0 -2
  217. package/esm2022/catalog/dto/sc-i-product-images.mjs +0 -2
  218. package/esm2022/catalog/dto/sc-i-product-notify-when-in-stock.mjs +0 -2
  219. package/esm2022/catalog/dto/sc-i-properties.mjs +0 -2
  220. package/esm2022/catalog/dto/sc-product.mjs +0 -159
  221. package/esm2022/catalog/dto/sc-virtual-category.mjs +0 -22
  222. package/esm2022/catalog/enums/index.mjs +0 -4
  223. package/esm2022/catalog/enums/sc-catalog-format.mjs +0 -16
  224. package/esm2022/catalog/enums/sc-mime-types.mjs +0 -81
  225. package/esm2022/catalog/enums/sc-product-tile-type.mjs +0 -16
  226. package/esm2022/catalog/index.mjs +0 -9
  227. package/esm2022/catalog/interfaces/index.mjs +0 -14
  228. package/esm2022/catalog/interfaces/sc-catalog-filter.mjs +0 -2
  229. package/esm2022/catalog/interfaces/sc-i-base-catalog-filter.mjs +0 -2
  230. package/esm2022/catalog/interfaces/sc-i-catalog-item.mjs +0 -2
  231. package/esm2022/catalog/interfaces/sc-i-category-product-params.mjs +0 -2
  232. package/esm2022/catalog/interfaces/sc-i-category-products-pagination-params.mjs +0 -2
  233. package/esm2022/catalog/interfaces/sc-i-category.mjs +0 -3
  234. package/esm2022/catalog/interfaces/sc-i-checkbox-filter.mjs +0 -2
  235. package/esm2022/catalog/interfaces/sc-i-product.mjs +0 -3
  236. package/esm2022/catalog/interfaces/sc-i-range-filter.mjs +0 -2
  237. package/esm2022/catalog/interfaces/sc-i-toggle-filter.mjs +0 -2
  238. package/esm2022/catalog/interfaces/sc-i-virtual-category.mjs +0 -2
  239. package/esm2022/catalog/interfaces/sc-property-filters.mjs +0 -2
  240. package/esm2022/catalog/interfaces/sc-t-product-sort-field.mjs +0 -2
  241. package/esm2022/catalog/internal/index.mjs +0 -2
  242. package/esm2022/catalog/internal/sc-i-filter-tree-category.mjs +0 -2
  243. package/esm2022/catalog/services/index.mjs +0 -5
  244. package/esm2022/catalog/services/sc-catalog-filter.service.mjs +0 -62
  245. package/esm2022/catalog/services/sc-catalog.service.mjs +0 -341
  246. package/esm2022/catalog/services/sc-favorite.service.mjs +0 -91
  247. package/esm2022/catalog/services/sc-recommendation.service.mjs +0 -126
  248. package/esm2022/catalog/tokens/index.mjs +0 -2
  249. package/esm2022/catalog/tokens/sc-count-first-discounted-products.mjs +0 -8
  250. package/esm2022/catalog/types/index.mjs +0 -3
  251. package/esm2022/catalog/types/sc-filters-tree-catalog.mjs +0 -2
  252. package/esm2022/catalog/types/sc-price-history.mjs +0 -2
  253. package/esm2022/common/classes/index.mjs +0 -11
  254. package/esm2022/common/classes/sc-catalogable-item.mjs +0 -16
  255. package/esm2022/common/classes/sc-coded-identity.mjs +0 -21
  256. package/esm2022/common/classes/sc-deletable-named-identity.mjs +0 -18
  257. package/esm2022/common/classes/sc-hidden-catalogable-item.mjs +0 -16
  258. package/esm2022/common/classes/sc-identity.mjs +0 -23
  259. package/esm2022/common/classes/sc-image.mjs +0 -16
  260. package/esm2022/common/classes/sc-named-identity.mjs +0 -21
  261. package/esm2022/common/classes/sc-primary-catalogable-item.mjs +0 -16
  262. package/esm2022/common/classes/sc-reference.mjs +0 -17
  263. package/esm2022/common/classes/sc-updatable-named-identity.mjs +0 -18
  264. package/esm2022/common/enums/index.mjs +0 -2
  265. package/esm2022/common/enums/request-state-status-enum.mjs +0 -19
  266. package/esm2022/common/index.mjs +0 -4
  267. package/esm2022/common/interfaces/index.mjs +0 -19
  268. package/esm2022/common/interfaces/sc-i-catalogable-item.mjs +0 -2
  269. package/esm2022/common/interfaces/sc-i-coded-identity.mjs +0 -2
  270. package/esm2022/common/interfaces/sc-i-created-at.mjs +0 -2
  271. package/esm2022/common/interfaces/sc-i-date-period.mjs +0 -2
  272. package/esm2022/common/interfaces/sc-i-deletable-named-identity.mjs +0 -2
  273. package/esm2022/common/interfaces/sc-i-deleted-at.mjs +0 -2
  274. package/esm2022/common/interfaces/sc-i-file.mjs +0 -2
  275. package/esm2022/common/interfaces/sc-i-hidden-catalogable-item.mjs +0 -2
  276. package/esm2022/common/interfaces/sc-i-identity.mjs +0 -2
  277. package/esm2022/common/interfaces/sc-i-image.mjs +0 -2
  278. package/esm2022/common/interfaces/sc-i-named-identity.mjs +0 -2
  279. package/esm2022/common/interfaces/sc-i-named.mjs +0 -2
  280. package/esm2022/common/interfaces/sc-i-primary-catalogable-item.mjs +0 -2
  281. package/esm2022/common/interfaces/sc-i-reference.mjs +0 -2
  282. package/esm2022/common/interfaces/sc-i-request-state.mjs +0 -26
  283. package/esm2022/common/interfaces/sc-i-typed-nullable-range.mjs +0 -2
  284. package/esm2022/common/interfaces/sc-i-updatable-named-identity.mjs +0 -2
  285. package/esm2022/common/interfaces/sc-i-updated-at.mjs +0 -2
  286. package/esm2022/config/index.mjs +0 -12
  287. package/esm2022/config/sc-i-api-keys.mjs +0 -2
  288. package/esm2022/config/sc-i-app-release.mjs +0 -2
  289. package/esm2022/config/sc-i-cache-lifetime.mjs +0 -2
  290. package/esm2022/config/sc-i-company-base-info.mjs +0 -2
  291. package/esm2022/config/sc-i-date-format.mjs +0 -2
  292. package/esm2022/config/sc-i-feedback-api.mjs +0 -2
  293. package/esm2022/config/sc-i-maps-default-options.mjs +0 -2
  294. package/esm2022/config/sc-i-update-interval.mjs +0 -2
  295. package/esm2022/config/sc-i-urls.mjs +0 -2
  296. package/esm2022/config/sc-i-user-configs.mjs +0 -2
  297. package/esm2022/config/sc-route-keys.mjs +0 -155
  298. package/esm2022/configurator/dto/index.mjs +0 -8
  299. package/esm2022/configurator/dto/sc-i-configurator-base.mjs +0 -2
  300. package/esm2022/configurator/dto/sc-i-configurator-calculate-result.mjs +0 -2
  301. package/esm2022/configurator/dto/sc-i-configurator-calculate-sheet.mjs +0 -2
  302. package/esm2022/configurator/dto/sc-i-configurator-search-product-base.mjs +0 -2
  303. package/esm2022/configurator/dto/sc-i-configurator-settings-base.mjs +0 -2
  304. package/esm2022/configurator/dto/sc-i-sandwich-calculate-item.mjs +0 -2
  305. package/esm2022/configurator/dto/sc-i-sandwich-calculate.mjs +0 -2
  306. package/esm2022/configurator/index.mjs +0 -4
  307. package/esm2022/configurator/services/index.mjs +0 -2
  308. package/esm2022/configurator/services/sc-configurator.service.mjs +0 -119
  309. package/esm2022/configurator/types/index.mjs +0 -2
  310. package/esm2022/configurator/types/sc-type-by-key.mjs +0 -2
  311. package/esm2022/contacts/dto/index.mjs +0 -10
  312. package/esm2022/contacts/dto/sc-i-contact-and-media.mjs +0 -2
  313. package/esm2022/contacts/dto/sc-i-direction-manager-contact.mjs +0 -2
  314. package/esm2022/contacts/dto/sc-i-feedback-message.mjs +0 -2
  315. package/esm2022/contacts/dto/sc-i-org-contact.mjs +0 -2
  316. package/esm2022/contacts/dto/sc-i-requisites-with-label.mjs +0 -2
  317. package/esm2022/contacts/dto/sc-i-requisites.mjs +0 -2
  318. package/esm2022/contacts/dto/sc-i-retail-contact.mjs +0 -2
  319. package/esm2022/contacts/dto/sc-i-social-media.mjs +0 -2
  320. package/esm2022/contacts/dto/sc-uploaded-file.mjs +0 -16
  321. package/esm2022/contacts/enums/index.mjs +0 -3
  322. package/esm2022/contacts/enums/sc-feedback-forms.mjs +0 -31
  323. package/esm2022/contacts/enums/sc-social-type.mjs +0 -24
  324. package/esm2022/contacts/index.mjs +0 -4
  325. package/esm2022/contacts/services/index.mjs +0 -4
  326. package/esm2022/contacts/services/sc-contacts.service.mjs +0 -110
  327. package/esm2022/contacts/services/sc-feedback.service.mjs +0 -73
  328. package/esm2022/contacts/services/sc-requisites.service.mjs +0 -141
  329. package/esm2022/contragent/dto/index.mjs +0 -14
  330. package/esm2022/contragent/dto/sc-contragent-on-data-create.mjs +0 -2
  331. package/esm2022/contragent/dto/sc-contragent.mjs +0 -2
  332. package/esm2022/contragent/dto/sc-i-bank-account-on-data-create.mjs +0 -2
  333. package/esm2022/contragent/dto/sc-i-bank-account.mjs +0 -2
  334. package/esm2022/contragent/dto/sc-i-contragent-entrepreneur-on-data-create.mjs +0 -2
  335. package/esm2022/contragent/dto/sc-i-contragent-entrepreneur.mjs +0 -2
  336. package/esm2022/contragent/dto/sc-i-contragent-individual-on-data-create.mjs +0 -2
  337. package/esm2022/contragent/dto/sc-i-contragent-individual.mjs +0 -2
  338. package/esm2022/contragent/dto/sc-i-contragent-legal-on-data-create.mjs +0 -2
  339. package/esm2022/contragent/dto/sc-i-contragent-legal.mjs +0 -2
  340. package/esm2022/contragent/dto/sc-i-contragent-non-resident-legal-on-data-create.mjs +0 -2
  341. package/esm2022/contragent/dto/sc-i-contragent-non-resident-legal.mjs +0 -2
  342. package/esm2022/contragent/dto/sc-i-opf.mjs +0 -2
  343. package/esm2022/contragent/index.mjs +0 -3
  344. package/esm2022/contragent/services/index.mjs +0 -2
  345. package/esm2022/contragent/services/sc-contragent.service.mjs +0 -166
  346. package/esm2022/converters/index.mjs +0 -3
  347. package/esm2022/converters/services/sc-converters.service.mjs +0 -136
  348. package/esm2022/converters/types/index.mjs +0 -2
  349. package/esm2022/converters/types/sc-date-to-string.mjs +0 -2
  350. package/esm2022/delivery-address/dto/index.mjs +0 -3
  351. package/esm2022/delivery-address/dto/sc-i-delivery-addresses-on-data-create.mjs +0 -2
  352. package/esm2022/delivery-address/dto/sc-i-delivery-addresses.mjs +0 -2
  353. package/esm2022/delivery-address/index.mjs +0 -3
  354. package/esm2022/delivery-address/services/index.mjs +0 -2
  355. package/esm2022/delivery-address/services/sc-delivery-address.service.mjs +0 -120
  356. package/esm2022/files/classes/sc-document-info-node.mjs +0 -16
  357. package/esm2022/files/classes/sc-document-info.mjs +0 -2
  358. package/esm2022/files/enums/sc-document-info-types-enum.mjs +0 -21
  359. package/esm2022/files/enums/sc-icon-types-enum.mjs +0 -36
  360. package/esm2022/files/index.mjs +0 -6
  361. package/esm2022/files/services/sc-files.service.mjs +0 -92
  362. package/esm2022/frequently-asked-questions/index.mjs +0 -3
  363. package/esm2022/frequently-asked-questions/interfaces/index.mjs +0 -4
  364. package/esm2022/frequently-asked-questions/interfaces/sc-i-faq-group.mjs +0 -2
  365. package/esm2022/frequently-asked-questions/interfaces/sc-i-faq-item.mjs +0 -2
  366. package/esm2022/frequently-asked-questions/interfaces/sc-i-frequently-asked-questions-pagination-params.mjs +0 -2
  367. package/esm2022/frequently-asked-questions/services/index.mjs +0 -2
  368. package/esm2022/frequently-asked-questions/services/sc-frequently-asked-questions.service.mjs +0 -50
  369. package/esm2022/guards/index.mjs +0 -3
  370. package/esm2022/guards/sc-auth-as-client.guard.mjs +0 -56
  371. package/esm2022/guards/sc-id-or-slug.guard.mjs +0 -35
  372. package/esm2022/helpers/index.mjs +0 -4
  373. package/esm2022/helpers/sc-get-current-route.mjs +0 -14
  374. package/esm2022/helpers/sc-image-helper.mjs +0 -91
  375. package/esm2022/helpers/sc-units-helper.mjs +0 -33
  376. package/esm2022/httpInterceptors/classes/index.mjs +0 -2
  377. package/esm2022/httpInterceptors/classes/sc-cache-settings.mjs +0 -16
  378. package/esm2022/httpInterceptors/index.mjs +0 -10
  379. package/esm2022/httpInterceptors/internal/classes/sc-cached-response.mjs +0 -17
  380. package/esm2022/httpInterceptors/sc-auth.interceptor.mjs +0 -31
  381. package/esm2022/httpInterceptors/sc-cache.interceptor.mjs +0 -40
  382. package/esm2022/httpInterceptors/sc-convert.interceptor.mjs +0 -64
  383. package/esm2022/httpInterceptors/sc-date-format.interceptor.mjs +0 -80
  384. package/esm2022/httpInterceptors/sc-errors.interceptor.mjs +0 -89
  385. package/esm2022/httpInterceptors/sc-guest.interceptor.mjs +0 -38
  386. package/esm2022/httpInterceptors/sc-options.interceptor.mjs +0 -42
  387. package/esm2022/httpInterceptors/tokens/index.mjs +0 -8
  388. package/esm2022/httpInterceptors/tokens/sc-auth-add-header-required.mjs +0 -10
  389. package/esm2022/httpInterceptors/tokens/sc-cache-settings.mjs +0 -7
  390. package/esm2022/httpInterceptors/tokens/sc-guest-endpoints.mjs +0 -8
  391. package/esm2022/httpInterceptors/tokens/sc-guest-parameter-name.mjs +0 -8
  392. package/esm2022/httpInterceptors/tokens/sc-is-header-required.mjs +0 -6
  393. package/esm2022/httpInterceptors/tokens/sc-is-logout-request.mjs +0 -6
  394. package/esm2022/httpInterceptors/tokens/sc-is-refresh-token-required.mjs +0 -6
  395. package/esm2022/locations/dto/index.mjs +0 -4
  396. package/esm2022/locations/dto/sc-i-city.mjs +0 -2
  397. package/esm2022/locations/dto/sc-i-country.mjs +0 -2
  398. package/esm2022/locations/dto/sc-i-region.mjs +0 -2
  399. package/esm2022/locations/index.mjs +0 -3
  400. package/esm2022/locations/services/sc-location.service.mjs +0 -116
  401. package/esm2022/news/classes/index.mjs +0 -2
  402. package/esm2022/news/classes/sc-news.mjs +0 -22
  403. package/esm2022/news/index.mjs +0 -5
  404. package/esm2022/news/interfaces/index.mjs +0 -3
  405. package/esm2022/news/interfaces/sc-i-news-tile.mjs +0 -2
  406. package/esm2022/news/interfaces/sc-i-news.mjs +0 -2
  407. package/esm2022/news/services/index.mjs +0 -2
  408. package/esm2022/news/services/sc-news.service.mjs +0 -68
  409. package/esm2022/news/tokens/index.mjs +0 -2
  410. package/esm2022/news/tokens/sc-count-last-news.mjs +0 -9
  411. package/esm2022/notifications/dto/index.mjs +0 -3
  412. package/esm2022/notifications/dto/sc-i-notifications-count.mjs +0 -2
  413. package/esm2022/notifications/dto/sc-i-user-notification.mjs +0 -2
  414. package/esm2022/notifications/enums/index.mjs +0 -3
  415. package/esm2022/notifications/enums/sc-notification-action-types.mjs +0 -28
  416. package/esm2022/notifications/enums/sc-notification-level-names.mjs +0 -20
  417. package/esm2022/notifications/index.mjs +0 -4
  418. package/esm2022/notifications/services/sc-notifications.service.mjs +0 -163
  419. package/esm2022/order/classes/index.mjs +0 -12
  420. package/esm2022/order/classes/sc-delivery-cost.mjs +0 -19
  421. package/esm2022/order/classes/sc-i-order-history.mjs +0 -2
  422. package/esm2022/order/classes/sc-order-base.mjs +0 -28
  423. package/esm2022/order/classes/sc-order-delivery.mjs +0 -2
  424. package/esm2022/order/classes/sc-order-draft-short.mjs +0 -17
  425. package/esm2022/order/classes/sc-order-draft.mjs +0 -59
  426. package/esm2022/order/classes/sc-order-history-user.mjs +0 -2
  427. package/esm2022/order/classes/sc-order-item.mjs +0 -60
  428. package/esm2022/order/classes/sc-order-payment.mjs +0 -2
  429. package/esm2022/order/classes/sc-order-short.mjs +0 -31
  430. package/esm2022/order/classes/sc-order.mjs +0 -102
  431. package/esm2022/order/enums/index.mjs +0 -4
  432. package/esm2022/order/enums/sc-delivery-type.mjs +0 -16
  433. package/esm2022/order/enums/sc-order-draft-type.mjs +0 -16
  434. package/esm2022/order/enums/sc-payment-type.mjs +0 -32
  435. package/esm2022/order/index.mjs +0 -6
  436. package/esm2022/order/internal/index.mjs +0 -15
  437. package/esm2022/order/internal/sc-i-delivery-cost-dto.mjs +0 -2
  438. package/esm2022/order/internal/sc-i-new-order-draft-request.mjs +0 -2
  439. package/esm2022/order/internal/sc-i-new-order-item-base.mjs +0 -2
  440. package/esm2022/order/internal/sc-i-new-order-item-measured.mjs +0 -2
  441. package/esm2022/order/internal/sc-i-new-order.mjs +0 -2
  442. package/esm2022/order/internal/sc-i-order-base.mjs +0 -2
  443. package/esm2022/order/internal/sc-i-order-draft-list-params.mjs +0 -2
  444. package/esm2022/order/internal/sc-i-order-draft-short.mjs +0 -2
  445. package/esm2022/order/internal/sc-i-order-draft.mjs +0 -2
  446. package/esm2022/order/internal/sc-i-order-item.mjs +0 -2
  447. package/esm2022/order/internal/sc-i-order-loader.mjs +0 -2
  448. package/esm2022/order/internal/sc-i-order-short.mjs +0 -2
  449. package/esm2022/order/internal/sc-i-order.mjs +0 -2
  450. package/esm2022/order/internal/sc-i-update-order-order-request.mjs +0 -2
  451. package/esm2022/order/services/index.mjs +0 -3
  452. package/esm2022/order/services/sc-order-drafts.service.mjs +0 -202
  453. package/esm2022/order/services/sc-orders.service.mjs +0 -219
  454. package/esm2022/order/tokens/index.mjs +0 -2
  455. package/esm2022/order/tokens/sc-order-loader.token.mjs +0 -25
  456. package/esm2022/pagination/dto/index.mjs +0 -7
  457. package/esm2022/pagination/dto/sc-i-paginate.mjs +0 -2
  458. package/esm2022/pagination/dto/sc-i-pagination-links.mjs +0 -2
  459. package/esm2022/pagination/dto/sc-i-pagination-meta.mjs +0 -2
  460. package/esm2022/pagination/dto/sc-i-pagination-params.mjs +0 -2
  461. package/esm2022/pagination/dto/sc-i-range-filter.mjs +0 -2
  462. package/esm2022/pagination/dto/sc-i-sort-order.mjs +0 -2
  463. package/esm2022/pagination/index.mjs +0 -3
  464. package/esm2022/pagination/services/sc-pagination.service.mjs +0 -157
  465. package/esm2022/pipes/index.mjs +0 -3
  466. package/esm2022/pipes/sc-id-or-slug.pipe.mjs +0 -41
  467. package/esm2022/pipes/sc-media-image-transformer.pipe.mjs +0 -34
  468. package/esm2022/providers/index.mjs +0 -8
  469. package/esm2022/providers/interfaces/index.mjs +0 -4
  470. package/esm2022/providers/interfaces/sc-i-terminal-provider.mjs +0 -2
  471. package/esm2022/providers/interfaces/sc-i-typed-class-provider.mjs +0 -2
  472. package/esm2022/providers/interfaces/sc-i-typed-value-provider.mjs +0 -2
  473. package/esm2022/providers/sc-category.providers.mjs +0 -37
  474. package/esm2022/providers/search-term.providers.mjs +0 -38
  475. package/esm2022/providers/ssr.providers.mjs +0 -19
  476. package/esm2022/providers/terminal.providers.mjs +0 -43
  477. package/esm2022/providers/types/sc-provider.mjs +0 -2
  478. package/esm2022/providers/virtual-category.providers.mjs +0 -33
  479. package/esm2022/public-api.mjs +0 -40
  480. package/esm2022/questionnaire/dto/index.mjs +0 -5
  481. package/esm2022/questionnaire/dto/sc-i-question-answer.mjs +0 -2
  482. package/esm2022/questionnaire/dto/sc-i-questionnaire.mjs +0 -2
  483. package/esm2022/questionnaire/dto/sc-question-possible-answer.mjs +0 -2
  484. package/esm2022/questionnaire/dto/sc-questionnaire-question.mjs +0 -2
  485. package/esm2022/questionnaire/enums/sc-questionnaire-status-enum.mjs +0 -24
  486. package/esm2022/questionnaire/index.mjs +0 -4
  487. package/esm2022/questionnaire/services/sc-questionnaire.service.mjs +0 -81
  488. package/esm2022/reclamation/dto/index.mjs +0 -6
  489. package/esm2022/reclamation/dto/sc-i-reclamation-on-data-create-item.mjs +0 -2
  490. package/esm2022/reclamation/dto/sc-i-reclamation-on-data-create.mjs +0 -2
  491. package/esm2022/reclamation/dto/sc-i-reclamation.mjs +0 -2
  492. package/esm2022/reclamation/dto/sc-reclamation-item.mjs +0 -2
  493. package/esm2022/reclamation/dto/sc-reclamation-short.mjs +0 -2
  494. package/esm2022/reclamation/index.mjs +0 -4
  495. package/esm2022/reclamation/interfaces/sc-i-pagination-params.mjs +0 -2
  496. package/esm2022/reclamation/services/sc-reclamation.service.mjs +0 -83
  497. package/esm2022/references/dto/index.mjs +0 -5
  498. package/esm2022/references/dto/sc-i-currency.mjs +0 -2
  499. package/esm2022/references/dto/sc-i-product-unit.mjs +0 -2
  500. package/esm2022/references/dto/sc-i-references-types.mjs +0 -2
  501. package/esm2022/references/dto/sc-i-sales-direction.mjs +0 -2
  502. package/esm2022/references/enums/index.mjs +0 -6
  503. package/esm2022/references/enums/sc-opf-list.mjs +0 -24
  504. package/esm2022/references/enums/sc-order-state-status.mjs +0 -45
  505. package/esm2022/references/enums/sc-payment-status.mjs +0 -65
  506. package/esm2022/references/enums/sc-reclamation-status.mjs +0 -25
  507. package/esm2022/references/enums/sc-reference-name.mjs +0 -76
  508. package/esm2022/references/index.mjs +0 -4
  509. package/esm2022/references/services/index.mjs +0 -2
  510. package/esm2022/references/services/sc-references.service.mjs +0 -188
  511. package/esm2022/search/dto/sc-i-simple-search.mjs +0 -2
  512. package/esm2022/search/index.mjs +0 -3
  513. package/esm2022/search/services/sc-search.service.mjs +0 -122
  514. package/esm2022/seo/classes/index.mjs +0 -2
  515. package/esm2022/seo/classes/schema-org-factory.mjs +0 -308
  516. package/esm2022/seo/index.mjs +0 -5
  517. package/esm2022/seo/interfaces/index.mjs +0 -5
  518. package/esm2022/seo/interfaces/sc-i-breadcrumb-item.mjs +0 -12
  519. package/esm2022/seo/interfaces/sc-i-default-page-meta.mjs +0 -2
  520. package/esm2022/seo/interfaces/sc-i-seo-resource.mjs +0 -2
  521. package/esm2022/seo/interfaces/sc-i-seo.mjs +0 -2
  522. package/esm2022/seo/services/index.mjs +0 -2
  523. package/esm2022/seo/services/sc-seo.service.mjs +0 -230
  524. package/esm2022/seo/types/index.mjs +0 -2
  525. package/esm2022/seo/types/robots-tag-type.mjs +0 -2
  526. package/esm2022/snabcentr-client-core.mjs +0 -5
  527. package/esm2022/suggestion/dto/index.mjs +0 -7
  528. package/esm2022/suggestion/dto/sc-i-suggestion-address.mjs +0 -2
  529. package/esm2022/suggestion/dto/sc-i-suggestion-bank.mjs +0 -2
  530. package/esm2022/suggestion/dto/sc-i-suggestion-email.mjs +0 -2
  531. package/esm2022/suggestion/dto/sc-i-suggestion-fio.mjs +0 -2
  532. package/esm2022/suggestion/dto/sc-i-suggestion-organization.mjs +0 -2
  533. package/esm2022/suggestion/dto/sc-suggestion.mjs +0 -2
  534. package/esm2022/suggestion/enums/sc-i-suggestion-type.mjs +0 -28
  535. package/esm2022/suggestion/index.mjs +0 -4
  536. package/esm2022/suggestion/services/sc-suggestion.service.mjs +0 -42
  537. package/esm2022/tokens/index.mjs +0 -19
  538. package/esm2022/tokens/notification-options.mjs +0 -15
  539. package/esm2022/tokens/sc-api-keys.mjs +0 -6
  540. package/esm2022/tokens/sc-cache-lifetime.mjs +0 -6
  541. package/esm2022/tokens/sc-company-info.mjs +0 -6
  542. package/esm2022/tokens/sc-company-name.mjs +0 -6
  543. package/esm2022/tokens/sc-configurator-components.mjs +0 -6
  544. package/esm2022/tokens/sc-configurator-settings.mjs +0 -6
  545. package/esm2022/tokens/sc-date-format.mjs +0 -6
  546. package/esm2022/tokens/sc-default-page-meta.mjs +0 -14
  547. package/esm2022/tokens/sc-feedback-api.mjs +0 -6
  548. package/esm2022/tokens/sc-id-or-slug-in-route.mjs +0 -8
  549. package/esm2022/tokens/sc-is-hidden-error-alert.mjs +0 -10
  550. package/esm2022/tokens/sc-linear-values-token.mjs +0 -12
  551. package/esm2022/tokens/sc-path-image-not-found.mjs +0 -6
  552. package/esm2022/tokens/sc-product-pagination-options.mjs +0 -22
  553. package/esm2022/tokens/sc-release.mjs +0 -6
  554. package/esm2022/tokens/sc-update-interval.mjs +0 -6
  555. package/esm2022/tokens/sc-urls.mjs +0 -6
  556. package/esm2022/ui/index.mjs +0 -3
  557. package/esm2022/ui/services/sc-ui.service.mjs +0 -195
  558. package/esm2022/ui/utils/filter-changed-by-key.mjs +0 -12
  559. package/esm2022/user/dto/index.mjs +0 -18
  560. package/esm2022/user/dto/sc-approved-data.mjs +0 -2
  561. package/esm2022/user/dto/sc-i-bank.mjs +0 -2
  562. package/esm2022/user/dto/sc-i-change-password.mjs +0 -2
  563. package/esm2022/user/dto/sc-i-contact-base.mjs +0 -2
  564. package/esm2022/user/dto/sc-i-contact-on-data-create.mjs +0 -2
  565. package/esm2022/user/dto/sc-i-contact-relation-on-data-create.mjs +0 -2
  566. package/esm2022/user/dto/sc-i-contact-relation.mjs +0 -2
  567. package/esm2022/user/dto/sc-i-contact-with-relations.mjs +0 -2
  568. package/esm2022/user/dto/sc-i-contact.mjs +0 -2
  569. package/esm2022/user/dto/sc-i-manager.mjs +0 -2
  570. package/esm2022/user/dto/sc-i-password-on-data-create.mjs +0 -2
  571. package/esm2022/user/dto/sc-i-phone-on-data-approve.mjs +0 -2
  572. package/esm2022/user/dto/sc-i-simple-user-on-data-create.mjs +0 -2
  573. package/esm2022/user/dto/sc-i-user-on-data-create.mjs +0 -2
  574. package/esm2022/user/dto/sc-i-user-on-data-update.mjs +0 -2
  575. package/esm2022/user/dto/sc-user-metadata.mjs +0 -32
  576. package/esm2022/user/dto/sc-user.mjs +0 -58
  577. package/esm2022/user/enums/index.mjs +0 -3
  578. package/esm2022/user/enums/sc-client-type.mjs +0 -20
  579. package/esm2022/user/enums/sc-user-type.mjs +0 -16
  580. package/esm2022/user/index.mjs +0 -6
  581. package/esm2022/user/internal/dto/index.mjs +0 -2
  582. package/esm2022/user/internal/dto/sc-i-user-dto.mjs +0 -2
  583. package/esm2022/user/services/sc-user.service.mjs +0 -184
  584. package/esm2022/user/tokens/index.mjs +0 -2
  585. package/esm2022/user/tokens/sc-user-providers.mjs +0 -13
  586. package/esm2022/user-metrika/dto/index.mjs +0 -2
  587. package/esm2022/user-metrika/dto/sc-i-user-metrika-event.mjs +0 -2
  588. package/esm2022/user-metrika/enums/index.mjs +0 -2
  589. package/esm2022/user-metrika/enums/sc-user-metrika-goals-enum.mjs +0 -337
  590. package/esm2022/user-metrika/index.mjs +0 -4
  591. package/esm2022/user-metrika/services/index.mjs +0 -2
  592. package/esm2022/user-metrika/services/sc-user-metrika.service.mjs +0 -72
  593. package/esm2022/utils/phone-fotmatter/index.mjs +0 -2
  594. package/esm2022/utils/phone-fotmatter/sc-phone.service.mjs +0 -63
  595. package/esm2022/utm/index.mjs +0 -3
  596. package/esm2022/utm/interfaces/index.mjs +0 -3
  597. package/esm2022/utm/interfaces/sc-utm-params.mjs +0 -2
  598. package/esm2022/utm/interfaces/sc-utm.mjs +0 -2
  599. package/esm2022/utm/services/index.mjs +0 -2
  600. package/esm2022/utm/services/sc-utm.service.mjs +0 -157
  601. package/esm2022/vCard/index.mjs +0 -2
  602. package/esm2022/vCard/sc-v-card.service.mjs +0 -103
  603. package/esm2022/vacancies/classes/index.mjs +0 -3
  604. package/esm2022/vacancies/classes/sc-vacancies-list.mjs +0 -18
  605. package/esm2022/vacancies/classes/sc-vacancy.mjs +0 -19
  606. package/esm2022/vacancies/index.mjs +0 -5
  607. package/esm2022/vacancies/interfaces/index.mjs +0 -5
  608. package/esm2022/vacancies/interfaces/sc-i-employment.mjs +0 -2
  609. package/esm2022/vacancies/interfaces/sc-i-experience.mjs +0 -2
  610. package/esm2022/vacancies/interfaces/sc-i-salary.mjs +0 -2
  611. package/esm2022/vacancies/interfaces/sc-i-vacancies-data-source.mjs +0 -2
  612. package/esm2022/vacancies/internal/dto/index.mjs +0 -3
  613. package/esm2022/vacancies/internal/dto/sc-i-vacancies-list.mjs +0 -2
  614. package/esm2022/vacancies/internal/dto/sc-i-vacancy.mjs +0 -2
  615. package/esm2022/vacancies/services/index.mjs +0 -2
  616. package/esm2022/vacancies/services/sc-vacancies.service.mjs +0 -55
  617. package/esm2022/vacancies/tokens/index.mjs +0 -2
  618. package/esm2022/vacancies/tokens/sc-vacancies-datasource.mjs +0 -6
  619. package/esm2022/verification/index.mjs +0 -3
  620. package/esm2022/verification/interfaces/sc-i-phone-check.mjs +0 -2
  621. package/esm2022/verification/services/sc-verification.service.mjs +0 -68
  622. package/esm2022/warehouse/dto/index.mjs +0 -3
  623. package/esm2022/warehouse/dto/sc-i-warehouse-stock-count.mjs +0 -2
  624. package/esm2022/warehouse/dto/sc-warehouse.mjs +0 -2
  625. package/esm2022/warehouse/index.mjs +0 -3
  626. package/esm2022/warehouse/services/sc-warehouse.service.mjs +0 -119
  627. package/files/classes/sc-document-info-node.d.ts +0 -24
  628. package/files/classes/sc-document-info.d.ts +0 -42
  629. package/files/enums/sc-document-info-types-enum.d.ts +0 -17
  630. package/files/enums/sc-icon-types-enum.d.ts +0 -33
  631. package/files/index.d.ts +0 -5
  632. package/files/services/sc-files.service.d.ts +0 -34
  633. package/frequently-asked-questions/index.d.ts +0 -2
  634. package/frequently-asked-questions/interfaces/index.d.ts +0 -3
  635. package/frequently-asked-questions/interfaces/sc-i-faq-group.d.ts +0 -13
  636. package/frequently-asked-questions/interfaces/sc-i-faq-item.d.ts +0 -22
  637. package/frequently-asked-questions/interfaces/sc-i-frequently-asked-questions-pagination-params.d.ts +0 -10
  638. package/frequently-asked-questions/services/index.d.ts +0 -1
  639. package/frequently-asked-questions/services/sc-frequently-asked-questions.service.d.ts +0 -33
  640. package/guards/index.d.ts +0 -2
  641. package/guards/sc-auth-as-client.guard.d.ts +0 -29
  642. package/guards/sc-id-or-slug.guard.d.ts +0 -7
  643. package/helpers/index.d.ts +0 -3
  644. package/helpers/sc-get-current-route.d.ts +0 -8
  645. package/helpers/sc-image-helper.d.ts +0 -52
  646. package/helpers/sc-units-helper.d.ts +0 -24
  647. package/httpInterceptors/classes/index.d.ts +0 -1
  648. package/httpInterceptors/classes/sc-cache-settings.d.ts +0 -20
  649. package/httpInterceptors/index.d.ts +0 -9
  650. package/httpInterceptors/internal/classes/sc-cached-response.d.ts +0 -22
  651. package/httpInterceptors/sc-auth.interceptor.d.ts +0 -20
  652. package/httpInterceptors/sc-cache.interceptor.d.ts +0 -16
  653. package/httpInterceptors/sc-convert.interceptor.d.ts +0 -21
  654. package/httpInterceptors/sc-date-format.interceptor.d.ts +0 -28
  655. package/httpInterceptors/sc-errors.interceptor.d.ts +0 -36
  656. package/httpInterceptors/sc-guest.interceptor.d.ts +0 -24
  657. package/httpInterceptors/sc-options.interceptor.d.ts +0 -24
  658. package/httpInterceptors/tokens/index.d.ts +0 -7
  659. package/httpInterceptors/tokens/sc-auth-add-header-required.d.ts +0 -8
  660. package/httpInterceptors/tokens/sc-cache-settings.d.ts +0 -6
  661. package/httpInterceptors/tokens/sc-guest-endpoints.d.ts +0 -5
  662. package/httpInterceptors/tokens/sc-guest-parameter-name.d.ts +0 -5
  663. package/httpInterceptors/tokens/sc-is-header-required.d.ts +0 -5
  664. package/httpInterceptors/tokens/sc-is-logout-request.d.ts +0 -5
  665. package/httpInterceptors/tokens/sc-is-refresh-token-required.d.ts +0 -5
  666. package/index.d.ts +0 -5
  667. package/locations/dto/index.d.ts +0 -3
  668. package/locations/dto/sc-i-city.d.ts +0 -32
  669. package/locations/dto/sc-i-country.d.ts +0 -13
  670. package/locations/dto/sc-i-region.d.ts +0 -33
  671. package/locations/index.d.ts +0 -2
  672. package/locations/services/sc-location.service.d.ts +0 -65
  673. package/news/classes/index.d.ts +0 -1
  674. package/news/classes/sc-news.d.ts +0 -38
  675. package/news/index.d.ts +0 -4
  676. package/news/interfaces/index.d.ts +0 -2
  677. package/news/interfaces/sc-i-news-tile.d.ts +0 -22
  678. package/news/interfaces/sc-i-news.d.ts +0 -11
  679. package/news/services/index.d.ts +0 -1
  680. package/news/services/sc-news.service.d.ts +0 -48
  681. package/news/tokens/index.d.ts +0 -1
  682. package/news/tokens/sc-count-last-news.d.ts +0 -5
  683. package/notifications/dto/index.d.ts +0 -2
  684. package/notifications/dto/sc-i-notifications-count.d.ts +0 -17
  685. package/notifications/dto/sc-i-user-notification.d.ts +0 -68
  686. package/notifications/enums/index.d.ts +0 -2
  687. package/notifications/enums/sc-notification-action-types.d.ts +0 -25
  688. package/notifications/enums/sc-notification-level-names.d.ts +0 -17
  689. package/notifications/index.d.ts +0 -3
  690. package/notifications/services/sc-notifications.service.d.ts +0 -100
  691. package/order/classes/index.d.ts +0 -11
  692. package/order/classes/sc-delivery-cost.d.ts +0 -34
  693. package/order/classes/sc-i-order-history.d.ts +0 -23
  694. package/order/classes/sc-order-base.d.ts +0 -32
  695. package/order/classes/sc-order-delivery.d.ts +0 -24
  696. package/order/classes/sc-order-draft-short.d.ts +0 -22
  697. package/order/classes/sc-order-draft.d.ts +0 -63
  698. package/order/classes/sc-order-history-user.d.ts +0 -21
  699. package/order/classes/sc-order-item.d.ts +0 -98
  700. package/order/classes/sc-order-payment.d.ts +0 -19
  701. package/order/classes/sc-order-short.d.ts +0 -48
  702. package/order/classes/sc-order.d.ts +0 -112
  703. package/order/enums/index.d.ts +0 -3
  704. package/order/enums/sc-delivery-type.d.ts +0 -13
  705. package/order/enums/sc-order-draft-type.d.ts +0 -13
  706. package/order/enums/sc-payment-type.d.ts +0 -29
  707. package/order/index.d.ts +0 -5
  708. package/order/internal/index.d.ts +0 -14
  709. package/order/internal/sc-i-delivery-cost-dto.d.ts +0 -20
  710. package/order/internal/sc-i-new-order-draft-request.d.ts +0 -13
  711. package/order/internal/sc-i-new-order-item-base.d.ts +0 -21
  712. package/order/internal/sc-i-new-order-item-measured.d.ts +0 -10
  713. package/order/internal/sc-i-new-order.d.ts +0 -48
  714. package/order/internal/sc-i-order-base.d.ts +0 -25
  715. package/order/internal/sc-i-order-draft-list-params.d.ts +0 -32
  716. package/order/internal/sc-i-order-draft-short.d.ts +0 -15
  717. package/order/internal/sc-i-order-draft.d.ts +0 -43
  718. package/order/internal/sc-i-order-item.d.ts +0 -91
  719. package/order/internal/sc-i-order-loader.d.ts +0 -51
  720. package/order/internal/sc-i-order-short.d.ts +0 -48
  721. package/order/internal/sc-i-order.d.ts +0 -112
  722. package/order/internal/sc-i-update-order-order-request.d.ts +0 -9
  723. package/order/services/index.d.ts +0 -2
  724. package/order/services/sc-order-drafts.service.d.ts +0 -118
  725. package/order/services/sc-orders.service.d.ts +0 -134
  726. package/order/tokens/index.d.ts +0 -1
  727. package/order/tokens/sc-order-loader.token.d.ts +0 -26
  728. package/pagination/dto/index.d.ts +0 -6
  729. package/pagination/dto/sc-i-paginate.d.ts +0 -19
  730. package/pagination/dto/sc-i-pagination-links.d.ts +0 -21
  731. package/pagination/dto/sc-i-pagination-meta.d.ts +0 -33
  732. package/pagination/dto/sc-i-pagination-params.d.ts +0 -17
  733. package/pagination/dto/sc-i-range-filter.d.ts +0 -15
  734. package/pagination/dto/sc-i-sort-order.d.ts +0 -15
  735. package/pagination/index.d.ts +0 -2
  736. package/pagination/services/sc-pagination.service.d.ts +0 -83
  737. package/pipes/index.d.ts +0 -2
  738. package/pipes/sc-id-or-slug.pipe.d.ts +0 -25
  739. package/pipes/sc-media-image-transformer.pipe.d.ts +0 -26
  740. package/providers/index.d.ts +0 -7
  741. package/providers/interfaces/index.d.ts +0 -3
  742. package/providers/interfaces/sc-i-terminal-provider.d.ts +0 -13
  743. package/providers/interfaces/sc-i-typed-class-provider.d.ts +0 -10
  744. package/providers/interfaces/sc-i-typed-value-provider.d.ts +0 -10
  745. package/providers/sc-category.providers.d.ts +0 -11
  746. package/providers/search-term.providers.d.ts +0 -27
  747. package/providers/ssr.providers.d.ts +0 -14
  748. package/providers/terminal.providers.d.ts +0 -23
  749. package/providers/types/sc-provider.d.ts +0 -8
  750. package/providers/virtual-category.providers.d.ts +0 -11
  751. package/public-api.d.ts +0 -39
  752. package/questionnaire/dto/index.d.ts +0 -4
  753. package/questionnaire/dto/sc-i-question-answer.d.ts +0 -13
  754. package/questionnaire/dto/sc-i-questionnaire.d.ts +0 -22
  755. package/questionnaire/dto/sc-question-possible-answer.d.ts +0 -17
  756. package/questionnaire/dto/sc-questionnaire-question.d.ts +0 -26
  757. package/questionnaire/enums/sc-questionnaire-status-enum.d.ts +0 -21
  758. package/questionnaire/index.d.ts +0 -3
  759. package/questionnaire/services/sc-questionnaire.service.d.ts +0 -51
  760. package/reclamation/dto/index.d.ts +0 -5
  761. package/reclamation/dto/sc-i-reclamation-on-data-create-item.d.ts +0 -17
  762. package/reclamation/dto/sc-i-reclamation-on-data-create.d.ts +0 -39
  763. package/reclamation/dto/sc-i-reclamation.d.ts +0 -34
  764. package/reclamation/dto/sc-reclamation-item.d.ts +0 -34
  765. package/reclamation/dto/sc-reclamation-short.d.ts +0 -29
  766. package/reclamation/index.d.ts +0 -3
  767. package/reclamation/interfaces/sc-i-pagination-params.d.ts +0 -23
  768. package/reclamation/services/sc-reclamation.service.d.ts +0 -59
  769. package/references/dto/index.d.ts +0 -4
  770. package/references/dto/sc-i-currency.d.ts +0 -29
  771. package/references/dto/sc-i-product-unit.d.ts +0 -29
  772. package/references/dto/sc-i-references-types.d.ts +0 -21
  773. package/references/dto/sc-i-sales-direction.d.ts +0 -21
  774. package/references/enums/index.d.ts +0 -5
  775. package/references/enums/sc-opf-list.d.ts +0 -21
  776. package/references/enums/sc-order-state-status.d.ts +0 -42
  777. package/references/enums/sc-payment-status.d.ts +0 -62
  778. package/references/enums/sc-reclamation-status.d.ts +0 -22
  779. package/references/enums/sc-reference-name.d.ts +0 -73
  780. package/references/index.d.ts +0 -3
  781. package/references/services/index.d.ts +0 -1
  782. package/references/services/sc-references.service.d.ts +0 -152
  783. package/search/dto/sc-i-simple-search.d.ts +0 -56
  784. package/search/index.d.ts +0 -2
  785. package/search/services/sc-search.service.d.ts +0 -61
  786. package/seo/classes/index.d.ts +0 -1
  787. package/seo/classes/schema-org-factory.d.ts +0 -95
  788. package/seo/index.d.ts +0 -4
  789. package/seo/interfaces/index.d.ts +0 -4
  790. package/seo/interfaces/sc-i-breadcrumb-item.d.ts +0 -25
  791. package/seo/interfaces/sc-i-default-page-meta.d.ts +0 -17
  792. package/seo/interfaces/sc-i-seo-resource.d.ts +0 -14
  793. package/seo/interfaces/sc-i-seo.d.ts +0 -40
  794. package/seo/services/index.d.ts +0 -1
  795. package/seo/services/sc-seo.service.d.ts +0 -129
  796. package/seo/types/index.d.ts +0 -1
  797. package/seo/types/robots-tag-type.d.ts +0 -4
  798. package/suggestion/dto/index.d.ts +0 -6
  799. package/suggestion/dto/sc-i-suggestion-address.d.ts +0 -98
  800. package/suggestion/dto/sc-i-suggestion-bank.d.ts +0 -33
  801. package/suggestion/dto/sc-i-suggestion-email.d.ts +0 -17
  802. package/suggestion/dto/sc-i-suggestion-fio.d.ts +0 -25
  803. package/suggestion/dto/sc-i-suggestion-organization.d.ts +0 -50
  804. package/suggestion/dto/sc-suggestion.d.ts +0 -9
  805. package/suggestion/enums/sc-i-suggestion-type.d.ts +0 -25
  806. package/suggestion/index.d.ts +0 -3
  807. package/suggestion/services/sc-suggestion.service.d.ts +0 -28
  808. package/tokens/index.d.ts +0 -18
  809. package/tokens/notification-options.d.ts +0 -22
  810. package/tokens/sc-api-keys.d.ts +0 -6
  811. package/tokens/sc-cache-lifetime.d.ts +0 -6
  812. package/tokens/sc-company-info.d.ts +0 -6
  813. package/tokens/sc-company-name.d.ts +0 -5
  814. package/tokens/sc-configurator-components.d.ts +0 -7
  815. package/tokens/sc-configurator-settings.d.ts +0 -7
  816. package/tokens/sc-date-format.d.ts +0 -6
  817. package/tokens/sc-default-page-meta.d.ts +0 -14
  818. package/tokens/sc-feedback-api.d.ts +0 -6
  819. package/tokens/sc-id-or-slug-in-route.d.ts +0 -5
  820. package/tokens/sc-is-hidden-error-alert.d.ts +0 -9
  821. package/tokens/sc-linear-values-token.d.ts +0 -9
  822. package/tokens/sc-path-image-not-found.d.ts +0 -5
  823. package/tokens/sc-product-pagination-options.d.ts +0 -14
  824. package/tokens/sc-release.d.ts +0 -6
  825. package/tokens/sc-update-interval.d.ts +0 -6
  826. package/tokens/sc-urls.d.ts +0 -6
  827. package/ui/index.d.ts +0 -2
  828. package/ui/services/sc-ui.service.d.ts +0 -122
  829. package/ui/utils/filter-changed-by-key.d.ts +0 -9
  830. package/user/dto/index.d.ts +0 -17
  831. package/user/dto/sc-approved-data.d.ts +0 -13
  832. package/user/dto/sc-i-bank.d.ts +0 -21
  833. package/user/dto/sc-i-change-password.d.ts +0 -13
  834. package/user/dto/sc-i-contact-base.d.ts +0 -21
  835. package/user/dto/sc-i-contact-on-data-create.d.ts +0 -19
  836. package/user/dto/sc-i-contact-relation-on-data-create.d.ts +0 -5
  837. package/user/dto/sc-i-contact-relation.d.ts +0 -13
  838. package/user/dto/sc-i-contact-with-relations.d.ts +0 -28
  839. package/user/dto/sc-i-contact.d.ts +0 -14
  840. package/user/dto/sc-i-manager.d.ts +0 -38
  841. package/user/dto/sc-i-password-on-data-create.d.ts +0 -17
  842. package/user/dto/sc-i-phone-on-data-approve.d.ts +0 -13
  843. package/user/dto/sc-i-simple-user-on-data-create.d.ts +0 -42
  844. package/user/dto/sc-i-user-on-data-create.d.ts +0 -46
  845. package/user/dto/sc-i-user-on-data-update.d.ts +0 -39
  846. package/user/dto/sc-user-metadata.d.ts +0 -46
  847. package/user/dto/sc-user.d.ts +0 -97
  848. package/user/enums/index.d.ts +0 -2
  849. package/user/enums/sc-client-type.d.ts +0 -17
  850. package/user/enums/sc-user-type.d.ts +0 -13
  851. package/user/index.d.ts +0 -5
  852. package/user/internal/dto/index.d.ts +0 -1
  853. package/user/internal/dto/sc-i-user-dto.d.ts +0 -80
  854. package/user/services/sc-user.service.d.ts +0 -118
  855. package/user/tokens/index.d.ts +0 -1
  856. package/user/tokens/sc-user-providers.d.ts +0 -7
  857. package/user-metrika/dto/index.d.ts +0 -1
  858. package/user-metrika/dto/sc-i-user-metrika-event.d.ts +0 -14
  859. package/user-metrika/enums/index.d.ts +0 -1
  860. package/user-metrika/enums/sc-user-metrika-goals-enum.d.ts +0 -334
  861. package/user-metrika/index.d.ts +0 -3
  862. package/user-metrika/services/index.d.ts +0 -1
  863. package/user-metrika/services/sc-user-metrika.service.d.ts +0 -43
  864. package/utils/phone-fotmatter/index.d.ts +0 -1
  865. package/utils/phone-fotmatter/sc-phone.service.d.ts +0 -36
  866. package/utm/index.d.ts +0 -2
  867. package/utm/interfaces/index.d.ts +0 -2
  868. package/utm/interfaces/sc-utm-params.d.ts +0 -25
  869. package/utm/interfaces/sc-utm.d.ts +0 -25
  870. package/utm/services/index.d.ts +0 -1
  871. package/utm/services/sc-utm.service.d.ts +0 -96
  872. package/vCard/index.d.ts +0 -1
  873. package/vCard/sc-v-card.service.d.ts +0 -51
  874. package/vacancies/classes/index.d.ts +0 -2
  875. package/vacancies/classes/sc-vacancies-list.d.ts +0 -29
  876. package/vacancies/classes/sc-vacancy.d.ts +0 -37
  877. package/vacancies/index.d.ts +0 -4
  878. package/vacancies/interfaces/index.d.ts +0 -4
  879. package/vacancies/interfaces/sc-i-employment.d.ts +0 -13
  880. package/vacancies/interfaces/sc-i-experience.d.ts +0 -13
  881. package/vacancies/interfaces/sc-i-salary.d.ts +0 -21
  882. package/vacancies/interfaces/sc-i-vacancies-data-source.d.ts +0 -13
  883. package/vacancies/internal/dto/index.d.ts +0 -2
  884. package/vacancies/internal/dto/sc-i-vacancies-list.d.ts +0 -24
  885. package/vacancies/internal/dto/sc-i-vacancy.d.ts +0 -32
  886. package/vacancies/services/index.d.ts +0 -1
  887. package/vacancies/services/sc-vacancies.service.d.ts +0 -31
  888. package/vacancies/tokens/index.d.ts +0 -1
  889. package/vacancies/tokens/sc-vacancies-datasource.d.ts +0 -6
  890. package/verification/index.d.ts +0 -2
  891. package/verification/interfaces/sc-i-phone-check.d.ts +0 -13
  892. package/verification/services/sc-verification.service.d.ts +0 -49
  893. package/warehouse/dto/index.d.ts +0 -2
  894. package/warehouse/dto/sc-i-warehouse-stock-count.d.ts +0 -17
  895. package/warehouse/dto/sc-warehouse.d.ts +0 -42
  896. package/warehouse/index.d.ts +0 -2
  897. package/warehouse/services/sc-warehouse.service.d.ts +0 -63
@@ -1,341 +0,0 @@
1
- import { Inject, inject, Injectable } from '@angular/core';
2
- import { tuiIsPresent } from '@taiga-ui/cdk';
3
- import { catchError, expand, filter, first, map, of, shareReplay, skip, switchMap, takeWhile, tap, toArray } from 'rxjs';
4
- import { ScIdOrSlugPipe } from '../../pipes/sc-id-or-slug.pipe';
5
- import { SC_CACHE_LIFETIME } from '../../tokens/sc-cache-lifetime';
6
- import { SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT } from '../../tokens/sc-is-hidden-error-alert';
7
- import { SC_URLS } from '../../tokens/sc-urls';
8
- import { ScUserService } from '../../user/services/sc-user.service';
9
- import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
10
- import { ScUserMetrikaGoalsEnum } from '../../user-metrika/enums/sc-user-metrika-goals-enum';
11
- import { ScCachedItem } from '../classes';
12
- import { ScCategory } from '../dto/sc-category';
13
- import { ScProduct } from '../dto/sc-product';
14
- import { ScVirtualCategory } from '../dto/sc-virtual-category';
15
- import { ScMimeTypes } from '../enums/sc-mime-types';
16
- import { SC_COUNT_FIRST_DISCOUNTED_PRODUCTS } from '../tokens/sc-count-first-discounted-products';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/common/http";
19
- import * as i2 from "../../ui/services/sc-ui.service";
20
- import * as i3 from "../../converters/services/sc-converters.service";
21
- import * as i4 from "../../user-metrika/services/sc-user-metrika.service";
22
- /**
23
- * Сервис для работы с каталогом.
24
- */
25
- export class ScCatalogService {
26
- /**
27
- * Инициализирует экземпляр класса {@link ScCatalogService}.
28
- *
29
- * @param http Сервис для выполнения HTTP-запросов.
30
- * @param urls Список ссылок на разделы backend'a.
31
- * @param uiService Сервис для работы с UI.
32
- * @param convertersService Сервис конвертации данных.
33
- * @param cacheLifeTime Объект с информацией о времени жизни данных.
34
- * @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
35
- */
36
- constructor(http, urls, uiService, convertersService, cacheLifeTime, userMetrikaService) {
37
- this.http = http;
38
- this.urls = urls;
39
- this.uiService = uiService;
40
- this.convertersService = convertersService;
41
- this.cacheLifeTime = cacheLifeTime;
42
- this.userMetrikaService = userMetrikaService;
43
- /**
44
- * {@link Map} коллекция пар ключ-значение для категорий каталога.
45
- *
46
- * @deprecated
47
- */
48
- this.idCategoryMap = new Map();
49
- /**
50
- * {@link Map} коллекция пар ключ-значение для виртуальных категорий.
51
- */
52
- this.virtualCategoryMap = new Map();
53
- /**
54
- * {@link Map} коллекция пар ключ-значение для кэшированных категорий каталога.
55
- */
56
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
57
- this.categoryMap = new Map();
58
- /**
59
- * {@link Map} коллекция пар ключ-значение для продуктов каталога.
60
- */
61
- this.productMap = new Map();
62
- /**
63
- * {@link Map} коллекция пар ключ-значение для кэшированных товаров категории каталога.
64
- */
65
- this.categoryProductsMap = new Map();
66
- /**
67
- * {@link Map} коллекция пар ключ-значение для кэширования истории цен.
68
- */
69
- this.productHistoryMap = new Map();
70
- /**
71
- * Пайп, возвращающий идентификатор или символьное обозначение (slug) исходя из настроек окружения.
72
- */
73
- this.idOrSlugPipe = inject(ScIdOrSlugPipe);
74
- /**
75
- * {@link Map} коллекция пар ключ-значение для сопоставления slug и id категорий при кешировании запросов, если идентификатор отличается от установленного в проекте (slug/id).
76
- */
77
- this.categoryIdOrSlugMap = new Map();
78
- /**
79
- * {@link Map} коллекция пар ключ-значение для сопоставления slug и id товаров при кешировании запросов, если идентификатор отличается от установленного в проекте (slug/id).
80
- */
81
- this.productIdOrSlugMap = new Map();
82
- /**
83
- * Число первых записей товаров со скидкой.
84
- */
85
- this.countFirstDiscountedProducts = inject(SC_COUNT_FIRST_DISCOUNTED_PRODUCTS);
86
- /**
87
- * Сервис информации о пользователе.
88
- */
89
- this.userService = inject(ScUserService);
90
- /**
91
- * {@link Observable} изменения списка товаров со скидкой.
92
- */
93
- this.firstDiscounted$ = inject(SC_USER_INFO).pipe(switchMap((user) => user.isGuest ? of(null) : this.getProducts$({ filters: { onlyDiscounted: true }, paginate: true, page: 1, perPage: this.countFirstDiscountedProducts })), shareReplay(1));
94
- /**
95
- * {@link Observable} изменения списка из первых товаров со скидкой.
96
- */
97
- this.firstDiscountedProducts$ = this.firstDiscounted$.pipe(map((data) => data?.data ?? []));
98
- /**
99
- * {@link Observable} изменения общего колличества товара со скидкой.
100
- */
101
- this.countDiscountedProducts$ = this.firstDiscounted$.pipe(map((data) => data?.meta.total ?? 0));
102
- this.userService
103
- .getUserChange$()
104
- .pipe(skip(1))
105
- .subscribe(() => {
106
- this.idCategoryMap.clear();
107
- this.categoryMap.clear();
108
- this.productHistoryMap.clear();
109
- this.productMap.clear();
110
- this.categoryProductsMap.clear();
111
- this.virtualCategoryMap.clear();
112
- });
113
- }
114
- /**
115
- * Возвращает категорию из коллекции каталога, если её срок жизни не истёк.
116
- *
117
- * @deprecated Удалить в рамках задачи TASK[#10153].
118
- *
119
- * @param categoryIdOrSlug Идентификатор или slug категории товаров.
120
- */
121
- getCategoryFromMap(categoryIdOrSlug) {
122
- const category = this.idCategoryMap.get(categoryIdOrSlug?.toString());
123
- if (category && (!category.parentCategory || !category.loadedAt || category.cachedDataIsActual(this.cacheLifeTime.categoryData))) {
124
- return category;
125
- }
126
- this.idCategoryMap.delete(categoryIdOrSlug?.toString());
127
- return undefined;
128
- }
129
- /**
130
- * Создает запрос получения списка категорий товаров или список корневых категорий, если идентификатор категории не указан.
131
- *
132
- * @param categoryIdOrSlug Идентификатор или slug категории товаров.
133
- */
134
- getCategoryData$(categoryIdOrSlug) {
135
- return this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug ?? ''}`).pipe(map((category) => new ScCategory(category)), tap((category) => {
136
- if (categoryIdOrSlug) {
137
- this.categoryIdOrSlugMap.set(typeof categoryIdOrSlug === 'string' ? category.id : category.slug, categoryIdOrSlug);
138
- }
139
- }));
140
- }
141
- /**
142
- * Возвращает {@link Observable} корневых категорий с настройками отображения, чтобы реагировать на изменения.
143
- */
144
- getFilteredRootCategories$() {
145
- return this.uiService.getHiddenCategoriesList$().pipe(switchMap((filters) => this.getRootCategories$().pipe(filter(tuiIsPresent), map((data) => data.filter((category) => category.id && !filters.includes(category.id))))));
146
- }
147
- /**
148
- * Возвращает {@link Observable} содержимого виртуальной категории.
149
- *
150
- * @param slug Символьный идентификатор виртуальной категории.
151
- */
152
- getVirtualCategoryCached$(slug) {
153
- let cachedItem = this.virtualCategoryMap.get(slug);
154
- if (!cachedItem) {
155
- cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http.get(`${this.urls.apiUrl}/catalog/v-categories/${slug}`).pipe(map((category) => new ScVirtualCategory(category))), null);
156
- this.virtualCategoryMap.set(slug, cachedItem);
157
- }
158
- if (!cachedItem.cachedDataIsActual()) {
159
- cachedItem.update();
160
- }
161
- return cachedItem.item$;
162
- }
163
- /**
164
- * Возвращает {@link Observable} содержимого категории.
165
- *
166
- * @param categoryIdOrSlug Идентификатор или slug категории товаров.
167
- */
168
- getCategoryCached$(categoryIdOrSlug) {
169
- if (categoryIdOrSlug && this.categoryIdOrSlugMap.has(categoryIdOrSlug)) {
170
- // eslint-disable-next-line no-param-reassign
171
- categoryIdOrSlug = this.categoryIdOrSlugMap.get(categoryIdOrSlug);
172
- }
173
- let cachedItem = this.categoryMap.get(categoryIdOrSlug?.toString());
174
- if (!cachedItem) {
175
- cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.getCategoryData$(categoryIdOrSlug), null);
176
- this.categoryMap.set(categoryIdOrSlug?.toString(), cachedItem);
177
- }
178
- if (!cachedItem.cachedDataIsActual()) {
179
- cachedItem.update();
180
- }
181
- return cachedItem.item$;
182
- }
183
- /**
184
- * Создает запрос получения корневых категорий.
185
- */
186
- getNullCategory$() {
187
- return this.getCategoryCached$();
188
- }
189
- /**
190
- * Создает запрос получения корневых категорий.
191
- */
192
- getRootCategories$() {
193
- return this.getNullCategory$().pipe(map((nullCategory) => nullCategory?.categories ?? null));
194
- }
195
- /**
196
- * Раскрывает каталог до указанной категории.
197
- *
198
- * @param categoryIdOrSlug Идентификатор или slug категории, до которой необходимо раскрыть каталог.
199
- * @returns Возвращает список раскрытых категорий.
200
- */
201
- loadCatalogTreeCached$(categoryIdOrSlug) {
202
- return this.getCategoryCached$(categoryIdOrSlug).pipe(filter(tuiIsPresent), first(), expand((category) => (category.parentCategory ? this.getCategoryCached$(this.idOrSlugPipe.transform(category.parentCategory)) : this.getNullCategory$()).pipe(filter(tuiIsPresent), first())),
203
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition,sonarjs/different-types-comparison
204
- takeWhile((parentCategory) => parentCategory.parentCategory !== undefined, true), toArray(),
205
- // eslint-disable-next-line sonarjs/no-misleading-array-reverse
206
- map((categories) => categories.reverse()));
207
- }
208
- /**
209
- * Возвращает {@link Observable} получения истории изменения цен на продукт для клиента.
210
- *
211
- * @param product Продукт, для которого запрашивается цена.
212
- * @returns История изменения цен на продукт для клиента в формате {@link Observable} из запроса.
213
- */
214
- getPriceHistory$(product) {
215
- let cachedItem = this.productHistoryMap.get(product.id.toString());
216
- if (!cachedItem) {
217
- cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http
218
- .get(`${this.urls.apiUrl}/catalog/products/${product.id}/price-history`, {
219
- context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
220
- })
221
- .pipe(catchError(() => of({}))), null);
222
- this.productHistoryMap.set(product.id.toString(), cachedItem);
223
- }
224
- return cachedItem.item$;
225
- }
226
- // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
227
- getProducts$(params) {
228
- return this.http
229
- .get(`${this.urls.apiUrl}/catalog/products`, {
230
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
231
- params: this.convertersService.toHttpParams({ ...params }, { nonNullable: true }),
232
- })
233
- .pipe(
234
- // eslint-disable-next-line sonarjs/function-return-type
235
- map((data) => {
236
- if ('meta' in data) {
237
- const cloneData = structuredClone(data);
238
- cloneData.data = cloneData.data.map((item) => new ScProduct(item));
239
- return cloneData;
240
- }
241
- return data.map((item, index) => new ScProduct(item, index));
242
- }));
243
- }
244
- /**
245
- * Создает запрос получения списка товаров категории и кэширует его.
246
- *
247
- * @param params Параметры запроса товаров категории.
248
- */
249
- getProductsCategoryCached$(params) {
250
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
251
- if (!params.categoryId && !params.categorySlug) {
252
- throw new Error('Не указан id/slug категории.');
253
- }
254
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access
255
- const cachedKey = (params.categorySlug ?? params.categoryId);
256
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
257
- let cachedItem = this.categoryProductsMap.get(cachedKey.toString());
258
- if (!cachedItem) {
259
- cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.getProducts$(params), null);
260
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call
261
- this.categoryProductsMap.set(cachedKey.toString(), cachedItem);
262
- }
263
- if (!cachedItem.cachedDataIsActual()) {
264
- cachedItem.update();
265
- }
266
- return cachedItem.item$;
267
- }
268
- /**
269
- * Возвращает информацию об указанном продукте.
270
- *
271
- * @param productIdOrSlug Идентификатор или slug товара/услуги.
272
- */
273
- getProductData$(productIdOrSlug) {
274
- return this.http.get(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}`).pipe(map((productDTO) => new ScProduct(productDTO)), tap((product) => {
275
- if (productIdOrSlug) {
276
- this.productIdOrSlugMap.set(typeof productIdOrSlug === 'string' ? product.id : product.slug, productIdOrSlug);
277
- }
278
- }));
279
- }
280
- getProductDataCached$(productIdOrSlug) {
281
- const valueFromMap = this.productIdOrSlugMap.get(productIdOrSlug);
282
- if (valueFromMap) {
283
- // eslint-disable-next-line no-param-reassign
284
- productIdOrSlug = valueFromMap;
285
- }
286
- let cachedItem = this.productMap.get(productIdOrSlug.toString());
287
- if (!cachedItem) {
288
- cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.getProductData$(productIdOrSlug), null);
289
- this.productMap.set(productIdOrSlug.toString(), cachedItem);
290
- }
291
- if (!cachedItem.cachedDataIsActual()) {
292
- cachedItem.update();
293
- }
294
- return cachedItem.item$;
295
- }
296
- /**
297
- * Создаёт запрос на получение генерируемого файла прайс-листа в формате {@link Blob}, и выгружает пользователю в браузер.
298
- *
299
- * @param type {@link ScMimeTypes} запрашиваемого файла.
300
- * @param categoryId Идентификатор категории, для которой загружается прайс-лист.
301
- */
302
- downloadPrice$(type, categoryId) {
303
- const params = this.convertersService.toHttpParams({
304
- format: Object.keys(ScMimeTypes)[Object.values(ScMimeTypes).indexOf(type)],
305
- category_id: categoryId ?? null,
306
- }, { nonNullable: true });
307
- return this.http.get(`${this.urls.apiUrl}/catalog/download`, { responseType: 'blob', params: params }).pipe(map((blob) => new Blob([blob], { type: type })), tap(() => {
308
- this.userMetrikaService.emitUserMetrikaEvent({
309
- target: ScUserMetrikaGoalsEnum.catalogPriceDownload,
310
- params: {
311
- category_id: categoryId ?? 'root',
312
- price_type: type,
313
- },
314
- });
315
- }));
316
- }
317
- /**
318
- * Запрос на уведомление пользователя о поступлении продукта.
319
- *
320
- * @param productIdOrSlug Идентификатор или slug товара.
321
- * @param data Данные для запроса.
322
- */
323
- getProductNotifyWhenInStock$(productIdOrSlug, data) {
324
- return this.http.post(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}/stock-notify`, data);
325
- }
326
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogService, deps: [{ token: i1.HttpClient }, { token: SC_URLS }, { token: i2.ScUIService }, { token: i3.ScConvertersService }, { token: SC_CACHE_LIFETIME }, { token: i4.ScUserMetrikaService }], target: i0.ɵɵFactoryTarget.Injectable }); }
327
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogService, providedIn: 'root' }); }
328
- }
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogService, decorators: [{
330
- type: Injectable,
331
- args: [{
332
- providedIn: 'root',
333
- }]
334
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
335
- type: Inject,
336
- args: [SC_URLS]
337
- }] }, { type: i2.ScUIService }, { type: i3.ScConvertersService }, { type: undefined, decorators: [{
338
- type: Inject,
339
- args: [SC_CACHE_LIFETIME]
340
- }] }, { type: i4.ScUserMetrikaService }] });
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNckksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMv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QUFFO29CQUNKLFdBQVcsRUFBRSxVQUFVLElBQUksTUFBTTtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDRCQUE0QixDQUFDLGVBQWdDLEVBQUUsSUFBaUM7UUFDbkcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxxQkFBcUIsZUFBZSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkgsQ0FBQzsrR0E5WlEsZ0JBQWdCLDRDQTJGYixPQUFPLDJFQUdQLGlCQUFpQjttSEE5RnBCLGdCQUFnQixjQUZiLE1BQU07OzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQTRGUSxNQUFNOzJCQUFDLE9BQU87OzBCQUdkLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbm9pbnNwZWN0aW9uIFR5cGVTY3JpcHRWYWxpZGF0ZVR5cGVzXG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBleHBhbmQsIGZpbHRlciwgZmlyc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2VXaGlsZSwgdGFwLCB0b0FycmF5IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSUNhY2hlTGlmZXRpbWUgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS1jYWNoZS1saWZldGltZSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTY0NvbnZlcnRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udmVydGVycy9zZXJ2aWNlcy9zYy1jb252ZXJ0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJUGFnaW5hdGUgfSBmcm9tICcuLi8uLi9wYWdpbmF0aW9uL2R0by9zYy1pLXBhZ2luYXRlJztcbmltcG9ydCB7IFNjSWRPclNsdWdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2MtaWQtb3Itc2x1Zy5waXBlJztcbmltcG9ydCB7IFNDX0NBQ0hFX0xJRkVUSU1FIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWNhY2hlLWxpZmV0aW1lJztcbmltcG9ydCB7IFNDX0lTX0hJRERFTl9FUlJPUl9BTEVSVF9IVFRQX0NPTlRFWFQgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtaXMtaGlkZGVuLWVycm9yLWFsZXJ0JztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY1VJU2VydmljZSB9IGZyb20gJy4uLy4uL3VpL3NlcnZpY2VzL3NjLXVpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvc2MtdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNDX1VTRVJfSU5GTyB9IGZyb20gJy4uLy4uL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0gfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2EvZW51bXMvc2MtdXNlci1tZXRyaWthLWdvYWxzLWVudW0nO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2Evc2VydmljZXMvc2MtdXNlci1tZXRyaWthLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NDYWNoZWRJdGVtIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi4vZHRvL3NjLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVByb2R1Y3ROb3RpZnlXaGVuSW5TdG9jayB9IGZyb20gJy4uL2R0by9zYy1pLXByb2R1Y3Qtbm90aWZ5LXdoZW4taW4tc3RvY2snO1xuaW1wb3J0IHsgU2NQcm9kdWN0IH0gZnJvbSAnLi4vZHRvL3NjLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NWaXJ0dWFsQ2F0ZWdvcnkgfSBmcm9tICcuLi9kdG8vc2MtdmlydHVhbC1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY01pbWVUeXBlcyB9IGZyb20gJy4uL2VudW1zL3NjLW1pbWUtdHlwZXMnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5LXByb2R1Y3QtcGFyYW1zJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnktcHJvZHVjdHMtcGFnaW5hdGlvbi1wYXJhbXMnO1xuaW1wb3J0IHsgU2NJUHJvZHVjdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS1wcm9kdWN0JztcbmltcG9ydCB7IFNjSVZpcnR1YWxDYXRlZ29yeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS12aXJ0dWFsLWNhdGVnb3J5JztcbmltcG9ydCB7IFNDX0NPVU5UX0ZJUlNUX0RJU0NPVU5URURfUFJPRFVDVFMgfSBmcm9tICcuLi90b2tlbnMvc2MtY291bnQtZmlyc3QtZGlzY291bnRlZC1wcm9kdWN0cyc7XG5pbXBvcnQgeyBTY1ByaWNlSGlzdG9yeSB9IGZyb20gJy4uL3R5cGVzL3NjLXByaWNlLWhpc3RvcnknO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60LDRgtCw0LvQvtCz0L7QvC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NDYXRhbG9nU2VydmljZSB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutCw0YLQtdCz0L7RgNC40Lkg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBpZENhdGVnb3J5TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkLCBTY0NhdGVnb3J5PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkLCBTY0NhdGVnb3J5PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQstC40YDRgtGD0LDQu9GM0L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHZpcnR1YWxDYXRlZ29yeU1hcDogTWFwPHN0cmluZywgU2NDYWNoZWRJdGVtPFNjVmlydHVhbENhdGVnb3J5Pj4gPSBuZXcgTWFwPHN0cmluZywgU2NDYWNoZWRJdGVtPFNjVmlydHVhbENhdGVnb3J5Pj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuSDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcbiAgICBwcml2YXRlIGNhdGVnb3J5TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdm9pZCwgU2NDYWNoZWRJdGVtPFNjQ2F0ZWdvcnk+PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdm9pZCwgU2NDYWNoZWRJdGVtPFNjQ2F0ZWdvcnk+PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQv9GA0L7QtNGD0LrRgtC+0LIg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2R1Y3RNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3Q+PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0Pj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuCDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqL1xuICAgIHByaXZhdGUgY2F0ZWdvcnlQcm9kdWN0c01hcDogTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdPj4gPSBuZXcgTWFwPG51bWJlciwgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdPj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90LjRjyDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9kdWN0SGlzdG9yeU1hcDogTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJpY2VIaXN0b3J5Pj4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJpY2VIaXN0b3J5Pj4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0LDQudC/LCDQstC+0LfQstGA0LDRidCw0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4INGB0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINC40YHRhdC+0LTRjyDQuNC3INC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaWRPclNsdWdQaXBlOiBTY0lkT3JTbHVnUGlwZSA9IGluamVjdChTY0lkT3JTbHVnUGlwZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINGB0L7Qv9C+0YHRgtCw0LLQu9C10L3QuNGPIHNsdWcg0LggaWQg0LrQsNGC0LXQs9C+0YDQuNC5INC/0YDQuCDQutC10YjQuNGA0L7QstCw0L3QuNC4INC30LDQv9GA0L7RgdC+0LIsINC10YHQu9C4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC+0YLQu9C40YfQsNC10YLRgdGPINC+0YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdC+0LPQviDQsiDQv9GA0L7QtdC60YLQtSAoc2x1Zy9pZCkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeUlkT3JTbHVnTWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0YHQvtC/0L7RgdGC0LDQstC70LXQvdC40Y8gc2x1ZyDQuCBpZCDRgtC+0LLQsNGA0L7QsiDQv9GA0Lgg0LrQtdGI0LjRgNC+0LLQsNC90LjQuCDQt9Cw0L/RgNC+0YHQvtCyLCDQtdGB0LvQuCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvtGC0LvQuNGH0LDQtdGC0YHRjyDQvtGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L3QvtCz0L4g0LIg0L/RgNC+0LXQutGC0LUgKHNsdWcvaWQpLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdElkT3JTbHVnTWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqINCn0LjRgdC70L4g0L/QtdGA0LLRi9GFINC30LDQv9C40YHQtdC5INGC0L7QstCw0YDQvtCyINGB0L4g0YHQutC40LTQutC+0LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudEZpcnN0RGlzY291bnRlZFByb2R1Y3RzOiBudW1iZXIgPSBpbmplY3QoU0NfQ09VTlRfRklSU1RfRElTQ09VTlRFRF9QUk9EVUNUUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2U6IFNjVXNlclNlcnZpY2UgPSBpbmplY3QoU2NVc2VyU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDRgdC+INGB0LrQuNC00LrQvtC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmaXJzdERpc2NvdW50ZWQkOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsPiA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodXNlcikgPT5cbiAgICAgICAgICAgIHVzZXIuaXNHdWVzdCA/IG9mKG51bGwpIDogdGhpcy5nZXRQcm9kdWN0cyQoeyBmaWx0ZXJzOiB7IG9ubHlEaXNjb3VudGVkOiB0cnVlIH0sIHBhZ2luYXRlOiB0cnVlLCBwYWdlOiAxLCBwZXJQYWdlOiB0aGlzLmNvdW50Rmlyc3REaXNjb3VudGVkUHJvZHVjdHMgfSlcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LjQtyDQv9C10YDQstGL0YUg0YLQvtCy0LDRgNC+0LIg0YHQviDRgdC60LjQtNC60L7QuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlyc3REaXNjb3VudGVkUHJvZHVjdHMkOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdPiA9IHRoaXMuZmlyc3REaXNjb3VudGVkJC5waXBlKG1hcCgoZGF0YSkgPT4gZGF0YT8uZGF0YSA/PyBbXSkpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQvtCx0YnQtdCz0L4g0LrQvtC70LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0YHQviDRgdC60LjQtNC60L7QuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY291bnREaXNjb3VudGVkUHJvZHVjdHMkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLmZpcnN0RGlzY291bnRlZCQucGlwZShtYXAoKGRhdGEpID0+IGRhdGE/Lm1ldGEudG90YWwgPz8gMCkpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0NhdGFsb2dTZXJ2aWNlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBodHRwINCh0LXRgNCy0LjRgSDQtNC70Y8g0LLRi9C/0L7Qu9C90LXQvdC40Y8gSFRUUC3Qt9Cw0L/RgNC+0YHQvtCyLlxuICAgICAqIEBwYXJhbSB1cmxzINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICogQHBhcmFtIHVpU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSBVSS5cbiAgICAgKiBAcGFyYW0gY29udmVydGVyc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqIEBwYXJhbSBjYWNoZUxpZmVUaW1lINCe0LHRitC10LrRgiDRgSDQuNC90YTQvtGA0LzQsNGG0LjQtdC5INC+INCy0YDQtdC80LXQvdC4INC20LjQt9C90Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoU0NfVVJMUykgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVpU2VydmljZTogU2NVSVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVyc1NlcnZpY2U6IFNjQ29udmVydGVyc1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoU0NfQ0FDSEVfTElGRVRJTUUpIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVMaWZlVGltZTogU2NJQ2FjaGVMaWZldGltZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRVc2VyQ2hhbmdlJCgpXG4gICAgICAgICAgICAucGlwZShza2lwKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pZENhdGVnb3J5TWFwLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdEhpc3RvcnlNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5UHJvZHVjdHNNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpcnR1YWxDYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQsNGC0LXQs9C+0YDQuNGOINC40Lcg0LrQvtC70LvQtdC60YbQuNC4INC60LDRgtCw0LvQvtCz0LAsINC10YHQu9C4INC10ZEg0YHRgNC+0Log0LbQuNC30L3QuCDQvdC1INC40YHRgtGR0LouXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCDQo9C00LDQu9C40YLRjCDQsiDRgNCw0LzQutCw0YUg0LfQsNC00LDRh9C4IFRBU0tbIzEwMTUzXS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0ZWdvcnlGcm9tTWFwKGNhdGVnb3J5SWRPclNsdWc/OiBudW1iZXIgfCBzdHJpbmcpOiBTY0NhdGVnb3J5IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSB0aGlzLmlkQ2F0ZWdvcnlNYXAuZ2V0KGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmIChjYXRlZ29yeSAmJiAoIWNhdGVnb3J5LnBhcmVudENhdGVnb3J5IHx8ICFjYXRlZ29yeS5sb2FkZWRBdCB8fCBjYXRlZ29yeS5jYWNoZWREYXRhSXNBY3R1YWwodGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gY2F0ZWdvcnk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlkQ2F0ZWdvcnlNYXAuZGVsZXRlKGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0LrQsNGC0LXQs9C+0YDQuNC5INGC0L7QstCw0YDQvtCyINC40LvQuCDRgdC/0LjRgdC+0Log0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40LksINC10YHQu9C4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC60LDRgtC10LPQvtGA0LjQuCDQvdC1INGD0LrQsNC30LDQvS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENhdGVnb3J5RGF0YSQoY2F0ZWdvcnlJZE9yU2x1Zz86IG51bWJlciB8IHN0cmluZyk6IE9ic2VydmFibGU8U2NDYXRlZ29yeT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lDYXRlZ29yeT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9jYXRlZ29yaWVzLyR7Y2F0ZWdvcnlJZE9yU2x1ZyA/PyAnJ31gKS5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjQ2F0ZWdvcnkoY2F0ZWdvcnkpKSxcbiAgICAgICAgICAgIHRhcCgoY2F0ZWdvcnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1Zykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuc2V0KHR5cGVvZiBjYXRlZ29yeUlkT3JTbHVnID09PSAnc3RyaW5nJyA/IGNhdGVnb3J5LmlkIDogY2F0ZWdvcnkuc2x1ZywgY2F0ZWdvcnlJZE9yU2x1Zyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40Lkg0YEg0L3QsNGB0YLRgNC+0LnQutCw0LzQuCDQvtGC0L7QsdGA0LDQttC10L3QuNGPLCDRh9GC0L7QsdGLINGA0LXQsNCz0LjRgNC+0LLQsNGC0Ywg0L3QsCDQuNC30LzQtdC90LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldEZpbHRlcmVkUm9vdENhdGVnb3JpZXMkKCk6IE9ic2VydmFibGU8U2NJQ2F0ZWdvcnlbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51aVNlcnZpY2UuZ2V0SGlkZGVuQ2F0ZWdvcmllc0xpc3QkKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZmlsdGVycykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmdldFJvb3RDYXRlZ29yaWVzJCgpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZmlsdGVyKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnkuaWQgJiYgIWZpbHRlcnMuaW5jbHVkZXMoY2F0ZWdvcnkuaWQpKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L7QtNC10YDQttC40LzQvtCz0L4g0LLQuNGA0YLRg9Cw0LvRjNC90L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2x1ZyDQodC40LzQstC+0LvRjNC90YvQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstC40YDRgtGD0LDQu9GM0L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmlydHVhbENhdGVnb3J5Q2FjaGVkJChzbHVnOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjVmlydHVhbENhdGVnb3J5IHwgbnVsbD4ge1xuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMudmlydHVhbENhdGVnb3J5TWFwLmdldChzbHVnKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKFxuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwLmdldDxTY0lWaXJ0dWFsQ2F0ZWdvcnk+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvdi1jYXRlZ29yaWVzLyR7c2x1Z31gKS5waXBlKG1hcCgoY2F0ZWdvcnkpID0+IG5ldyBTY1ZpcnR1YWxDYXRlZ29yeShjYXRlZ29yeSkpKSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDYXRlZ29yeU1hcC5zZXQoc2x1ZywgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtC00LXRgNC20LjQvNC+0LPQviDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDQutCw0YLQtdCz0L7RgNC40Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGVnb3J5Q2FjaGVkJChjYXRlZ29yeUlkT3JTbHVnPzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5IHwgbnVsbD4ge1xuICAgICAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1ZyAmJiB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuaGFzKGNhdGVnb3J5SWRPclNsdWcpKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIGNhdGVnb3J5SWRPclNsdWcgPSB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuZ2V0KGNhdGVnb3J5SWRPclNsdWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLmNhdGVnb3J5TWFwLmdldChjYXRlZ29yeUlkT3JTbHVnPy50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsIHRoaXMuZ2V0Q2F0ZWdvcnlEYXRhJChjYXRlZ29yeUlkT3JTbHVnKSwgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5TWFwLnNldChjYXRlZ29yeUlkT3JTbHVnPy50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGdldE51bGxDYXRlZ29yeSQoKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5IHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINC60L7RgNC90LXQstGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb290Q2F0ZWdvcmllcyQoKTogT2JzZXJ2YWJsZTxTY0lDYXRlZ29yeVtdIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXROdWxsQ2F0ZWdvcnkkKCkucGlwZShtYXAoKG51bGxDYXRlZ29yeSkgPT4gbnVsbENhdGVnb3J5Py5jYXRlZ29yaWVzID8/IG51bGwpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNCw0YHQutGA0YvQstCw0LXRgiDQutCw0YLQsNC70L7QsyDQtNC+INGD0LrQsNC30LDQvdC90L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDQutCw0YLQtdCz0L7RgNC40LgsINC00L4g0LrQvtGC0L7RgNC+0Lkg0L3QtdC+0LHRhdC+0LTQuNC80L4g0YDQsNGB0LrRgNGL0YLRjCDQutCw0YLQsNC70L7Qsy5cbiAgICAgKiBAcmV0dXJucyDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0YDQsNGB0LrRgNGL0YLRi9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZENhdGFsb2dUcmVlQ2FjaGVkJChjYXRlZ29yeUlkT3JTbHVnOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2F0ZWdvcnlDYWNoZWQkKGNhdGVnb3J5SWRPclNsdWcpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBleHBhbmQoKGNhdGVnb3J5KSA9PlxuICAgICAgICAgICAgICAgIChjYXRlZ29yeS5wYXJlbnRDYXRlZ29yeSA/IHRoaXMuZ2V0Q2F0ZWdvcnlDYWNoZWQkKHRoaXMuaWRPclNsdWdQaXBlLnRyYW5zZm9ybShjYXRlZ29yeS5wYXJlbnRDYXRlZ29yeSkpIDogdGhpcy5nZXROdWxsQ2F0ZWdvcnkkKCkpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uLHNvbmFyanMvZGlmZmVyZW50LXR5cGVzLWNvbXBhcmlzb25cbiAgICAgICAgICAgIHRha2VXaGlsZSgocGFyZW50Q2F0ZWdvcnkpID0+IHBhcmVudENhdGVnb3J5LnBhcmVudENhdGVnb3J5ICE9PSB1bmRlZmluZWQsIHRydWUpLFxuICAgICAgICAgICAgdG9BcnJheSgpLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbWlzbGVhZGluZy1hcnJheS1yZXZlcnNlXG4gICAgICAgICAgICBtYXAoKGNhdGVnb3JpZXMpID0+IGNhdGVnb3JpZXMucmV2ZXJzZSgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQv9C+0LvRg9GH0LXQvdC40Y8g0LjRgdGC0L7RgNC40Lgg0LjQt9C80LXQvdC10L3QuNGPINGG0LXQvSDQvdCwINC/0YDQvtC00YPQutGCINC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0INCf0YDQvtC00YPQutGCLCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQt9Cw0L/RgNCw0YjQuNCy0LDQtdGC0YHRjyDRhtC10L3QsC5cbiAgICAgKiBAcmV0dXJucyDQmNGB0YLQvtGA0LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC9INC90LAg0L/RgNC+0LTRg9C60YIg0LTQu9GPINC60LvQuNC10L3RgtCwINCyINGE0L7RgNC80LDRgtC1IHtAbGluayBPYnNlcnZhYmxlfSDQuNC3INC30LDQv9GA0L7RgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcmljZUhpc3RvcnkkKHByb2R1Y3Q6IFNjUHJvZHVjdCk6IE9ic2VydmFibGU8U2NQcmljZUhpc3RvcnkgfCBudWxsPiB7XG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy5wcm9kdWN0SGlzdG9yeU1hcC5nZXQocHJvZHVjdC5pZC50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKFxuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgICAgIC5nZXQ8U2NQcmljZUhpc3Rvcnk+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHMvJHtwcm9kdWN0LmlkfS9wcmljZS1oaXN0b3J5YCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogU0NfSVNfSElEREVOX0VSUk9SX0FMRVJUX0hUVFBfQ09OVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih7fSkpKSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RIaXN0b3J5TWFwLnNldChwcm9kdWN0LmlkLnRvU3RyaW5nKCksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LTQu9GPINC60L7QvdC60YDQtdGC0L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbXMg0J/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHMkKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXT47XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQsNC70L7Qs9CwINGBINC/0LDQs9C40L3QsNGG0LjQtdC5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0cyQocGFyYW1zOiBTY0lDYXRlZ29yeVByb2R1Y3RQYWdpbmF0aW9uUGFyYW1zKTogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+PjtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG4gICAgcHVibGljIGdldFByb2R1Y3RzJChwYXJhbXM6IFNjSUNhdGVnb3J5UHJvZHVjdFBhcmFtcyB8IFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXMpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdIHwgU2NJUGFnaW5hdGU8U2NQcm9kdWN0Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PFNjSVBhZ2luYXRlPFNjSVByb2R1Y3Q+IHwgU2NJUHJvZHVjdFtdPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzYCwge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnRvSHR0cFBhcmFtcyh7IC4uLnBhcmFtcyB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2Z1bmN0aW9uLXJldHVybi10eXBlXG4gICAgICAgICAgICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgnbWV0YScgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmVEYXRhID0gc3RydWN0dXJlZENsb25lKGRhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9uZURhdGEuZGF0YSA9IGNsb25lRGF0YS5kYXRhLm1hcCgoaXRlbSkgPT4gbmV3IFNjUHJvZHVjdChpdGVtKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZURhdGEgYXMgU2NJUGFnaW5hdGU8U2NQcm9kdWN0PjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbSwgaW5kZXgpID0+IG5ldyBTY1Byb2R1Y3QoaXRlbSwgaW5kZXgpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40Lgg0Lgg0LrRjdGI0LjRgNGD0LXRgiDQtdCz0L4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFyYW1zINCf0LDRgNCw0LzQtdGC0YDRiyDQt9Cw0L/RgNC+0YHQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3RzQ2F0ZWdvcnlDYWNoZWQkKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXSB8IG51bGw+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICBpZiAoIXBhcmFtcy5jYXRlZ29yeUlkICYmICFwYXJhbXMuY2F0ZWdvcnlTbHVnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ9Cd0LUg0YPQutCw0LfQsNC9IGlkL3NsdWcg0LrQsNGC0LXQs9C+0YDQuNC4LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24sQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50LEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICBjb25zdCBjYWNoZWRLZXkgPSAocGFyYW1zLmNhdGVnb3J5U2x1ZyA/PyBwYXJhbXMuY2F0ZWdvcnlJZCkhO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLmNhdGVnb3J5UHJvZHVjdHNNYXAuZ2V0KGNhY2hlZEtleS50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsIHRoaXMuZ2V0UHJvZHVjdHMkKHBhcmFtcyksIG51bGwpO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVByb2R1Y3RzTWFwLnNldChjYWNoZWRLZXkudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQuNC90YTQvtGA0LzQsNGG0LjRjiDQvtCxINGD0LrQsNC30LDQvdC90L7QvCDQv9GA0L7QtNGD0LrRgtC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0RGF0YSQocHJvZHVjdElkT3JTbHVnOiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lQcm9kdWN0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzLyR7cHJvZHVjdElkT3JTbHVnfWApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb2R1Y3REVE8pID0+IG5ldyBTY1Byb2R1Y3QocHJvZHVjdERUTykpLFxuICAgICAgICAgICAgdGFwKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2R1Y3RJZE9yU2x1Zykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RJZE9yU2x1Z01hcC5zZXQodHlwZW9mIHByb2R1Y3RJZE9yU2x1ZyA9PT0gJ3N0cmluZycgPyBwcm9kdWN0LmlkIDogcHJvZHVjdC5zbHVnLCBwcm9kdWN0SWRPclNsdWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb2R1Y3REYXRhQ2FjaGVkJChwcm9kdWN0SWRPclNsdWc6IG51bWJlciB8IHN0cmluZyk6IE9ic2VydmFibGU8U2NQcm9kdWN0IHwgbnVsbD4ge1xuICAgICAgICBjb25zdCB2YWx1ZUZyb21NYXAgPSB0aGlzLnByb2R1Y3RJZE9yU2x1Z01hcC5nZXQocHJvZHVjdElkT3JTbHVnKTtcblxuICAgICAgICBpZiAodmFsdWVGcm9tTWFwKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIHByb2R1Y3RJZE9yU2x1ZyA9IHZhbHVlRnJvbU1hcDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMucHJvZHVjdE1hcC5nZXQocHJvZHVjdElkT3JTbHVnLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0odGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSwgdGhpcy5nZXRQcm9kdWN0RGF0YSQocHJvZHVjdElkT3JTbHVnKSwgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RNYXAuc2V0KHByb2R1Y3RJZE9yU2x1Zy50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC30LDQv9GA0L7RgSDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQs9C10L3QtdGA0LjRgNGD0LXQvNC+0LPQviDRhNCw0LnQu9CwINC/0YDQsNC50YEt0LvQuNGB0YLQsCDQsiDRhNC+0YDQvNCw0YLQtSB7QGxpbmsgQmxvYn0sINC4INCy0YvQs9GA0YPQttCw0LXRgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0LIg0LHRgNCw0YPQt9C10YAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZSB7QGxpbmsgU2NNaW1lVHlwZXN9INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtCz0L4g0YTQsNC50LvQsC5cbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutCw0YLQtdCz0L7RgNC40LgsINC00LvRjyDQutC+0YLQvtGA0L7QuSDQt9Cw0LPRgNGD0LbQsNC10YLRgdGPINC/0YDQsNC50YEt0LvQuNGB0YIuXG4gICAgICovXG4gICAgcHVibGljIGRvd25sb2FkUHJpY2UkKHR5cGU6IFNjTWltZVR5cGVzLCBjYXRlZ29yeUlkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29udmVydGVyc1NlcnZpY2UudG9IdHRwUGFyYW1zKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvcm1hdDogT2JqZWN0LmtleXMoU2NNaW1lVHlwZXMpW09iamVjdC52YWx1ZXMoU2NNaW1lVHlwZXMpLmluZGV4T2YodHlwZSldLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeUlkID8/IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBub25OdWxsYWJsZTogdHJ1ZSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9kb3dubG9hZGAsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicsIHBhcmFtczogcGFyYW1zIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+IG5ldyBCbG9iKFtibG9iXSwgeyB0eXBlOiB0eXBlIH0pKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0uY2F0YWxvZ1ByaWNlRG93bmxvYWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQgPz8gJ3Jvb3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2VfdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0YDQvtGBINC90LAg0YPQstC10LTQvtC80LvQtdC90LjQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L4g0L/QvtGB0YLRg9C/0LvQtdC90LjQuCDQv9GA0L7QtNGD0LrRgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDRgtC+0LLQsNGA0LAuXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1INC00LvRjyDQt9Cw0L/RgNC+0YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdE5vdGlmeVdoZW5JblN0b2NrJChwcm9kdWN0SWRPclNsdWc6IHN0cmluZyB8IG51bWJlciwgZGF0YTogU2NJUHJvZHVjdE5vdGlmeVdoZW5JblN0b2NrKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9wcm9kdWN0cy8ke3Byb2R1Y3RJZE9yU2x1Z30vc3RvY2stbm90aWZ5YCwgZGF0YSk7XG4gICAgfVxufVxuIl19
@@ -1,91 +0,0 @@
1
- /* eslint-disable no-param-reassign,no-return-assign,no-void */
2
- import { HttpClient } from '@angular/common/http';
3
- import { inject, Injectable } from '@angular/core';
4
- import { BehaviorSubject, map, of, shareReplay, switchMap } from 'rxjs';
5
- import { SC_URLS } from '../../tokens/sc-urls';
6
- import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
7
- import { ScCategory } from '../dto/sc-category';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * Сервис для работы с избранными товарами и категориями.
11
- */
12
- export class ScFavoriteService {
13
- constructor() {
14
- /**
15
- * HTTP-клиент.
16
- */
17
- this.http = inject(HttpClient);
18
- /**
19
- * Список ссылок приложения.
20
- */
21
- this.urls = inject(SC_URLS);
22
- /**
23
- * {@link BehaviorSubject} обновления списка избранных категорий.
24
- */
25
- this.categoriesUpdateSubject = new BehaviorSubject(void {});
26
- /**
27
- * Сервис данных о пользователе.
28
- */
29
- this.user$ = inject(SC_USER_INFO);
30
- /**
31
- * {@link Observable} списка избранных категорий.
32
- */
33
- this.categories$ = this.categoriesUpdateSubject.pipe(switchMap(() => this.user$), switchMap((user) => (user.isGuest ? of([]) : this.getFavoriteCategories$())), shareReplay(1) // Подогреваем запрос во избежание повторения запросов получения списка избранных категорий для новых подписчиков.
34
- );
35
- }
36
- /**
37
- * Выполняет запрос получения списка избранных категорий.
38
- */
39
- getFavoriteCategories$() {
40
- return this.http
41
- .get(`${this.urls.apiUrl}/favorites/categories`)
42
- .pipe(map((categoriesDTO) => categoriesDTO.map((categoryDTO) => new ScCategory(categoryDTO))));
43
- }
44
- /**
45
- * Запрос добавления указанной категории в избранное.
46
- *
47
- * @param categoryId Идентификатор категории, которую необходимо добавить в избранное.
48
- */
49
- putCategory$(categoryId) {
50
- return this.http.put(`${this.urls.apiUrl}/favorites/categories/${categoryId}`, {});
51
- }
52
- /**
53
- * Выполняет запрос удаления указанной категории из избранных.
54
- *
55
- * @param categoryId Идентификатор категории, которую необходимо удалить из избранных.
56
- */
57
- deleteCategory$(categoryId) {
58
- return this.http.delete(`${this.urls.apiUrl}/favorites/categories/${categoryId}`);
59
- }
60
- /**
61
- * Обновляет список избранных категорий {@link categories$}.
62
- */
63
- updateFavoriteCategories() {
64
- this.categoriesUpdateSubject.next();
65
- }
66
- /**
67
- * Выполняет запрос добавления указанного товара в избранное.
68
- *
69
- * @param productId Идентификатор товара, который необходимо добавить в избранное.
70
- */
71
- putProduct$(productId) {
72
- return this.http.put(`${this.urls.apiUrl}/favorites/products/${productId}`, {});
73
- }
74
- /**
75
- * Выполняет запрос удаления указанного продукта из избранных.
76
- *
77
- * @param productId Идентификатор товара, который необходимо удалить из избранных.
78
- */
79
- deleteProduct$(productId) {
80
- return this.http.delete(`${this.urls.apiUrl}/favorites/products/${productId}`);
81
- }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFavoriteService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
83
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFavoriteService, providedIn: 'root' }); }
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFavoriteService, decorators: [{
86
- type: Injectable,
87
- args: [{
88
- providedIn: 'root',
89
- }]
90
- }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmF2b3JpdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9zZXJ2aWNlcy9zYy1mYXZvcml0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtEQUErRDtBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR2hEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUlJOztXQUVHO1FBQ2MsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyw0QkFBdUIsR0FBMEIsSUFBSSxlQUFlLENBQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVyRzs7V0FFRztRQUNjLFVBQUssR0FBdUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ2EsZ0JBQVcsR0FBNkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDckYsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDM0IsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxFQUM1RSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsa0hBQWtIO1NBQ3BJLENBQUM7S0FxREw7SUFuREc7O09BRUc7SUFDSSxzQkFBc0I7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQXVCLENBQUM7YUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsVUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSx5QkFBeUIsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsVUFBa0I7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSx5QkFBeUIsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQ7O09BRUc7SUFDSSx3QkFBd0I7UUFDM0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLFNBQWlCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQXVCLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLFNBQWlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQXVCLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQzsrR0FoRlEsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGZCxNQUFNOzs0RkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24sbm8tcmV0dXJuLWFzc2lnbixuby12b2lkICovXG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi8uLi91c2VyL2R0by9zYy11c2VyJztcbmltcG9ydCB7IFNDX1VTRVJfSU5GTyB9IGZyb20gJy4uLy4uL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNjQ2F0ZWdvcnkgfSBmcm9tICcuLi9kdG8vc2MtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnknO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC40LfQsdGA0LDQvdC90YvQvNC4INGC0L7QstCw0YDQsNC80Lgg0Lgg0LrQsNGC0LXQs9C+0YDQuNGP0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NGYXZvcml0ZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEhUVFAt0LrQu9C40LXQvdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0L7QsdC90L7QstC70LXQvdC40Y8g0YHQv9C40YHQutCwINC40LfQsdGA0LDQvdC90YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yaWVzVXBkYXRlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih2b2lkIHt9KTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNCw0L3QvdGL0YUg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8U2NVc2VyPiA9IGluamVjdChTQ19VU0VSX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDQuNC30LHRgNCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5W10+ID0gdGhpcy5jYXRlZ29yaWVzVXBkYXRlU3ViamVjdC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy51c2VyJCksXG4gICAgICAgIHN3aXRjaE1hcCgodXNlcikgPT4gKHVzZXIuaXNHdWVzdCA/IG9mKFtdKSA6IHRoaXMuZ2V0RmF2b3JpdGVDYXRlZ29yaWVzJCgpKSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpIC8vINCf0L7QtNC+0LPRgNC10LLQsNC10Lwg0LfQsNC/0YDQvtGBINCy0L4g0LjQt9Cx0LXQttCw0L3QuNC1INC/0L7QstGC0L7RgNC10L3QuNGPINC30LDQv9GA0L7RgdC+0LIg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDQuNC30LHRgNCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5INC00LvRjyDQvdC+0LLRi9GFINC/0L7QtNC/0LjRgdGH0LjQutC+0LIuXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCS0YvQv9C+0LvQvdGP0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDQuNC30LHRgNCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGYXZvcml0ZUNhdGVnb3JpZXMkKCk6IE9ic2VydmFibGU8U2NDYXRlZ29yeVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8U2NJQ2F0ZWdvcnlbXT4oYCR7dGhpcy51cmxzLmFwaVVybH0vZmF2b3JpdGVzL2NhdGVnb3JpZXNgKVxuICAgICAgICAgICAgLnBpcGUobWFwKChjYXRlZ29yaWVzRFRPKSA9PiBjYXRlZ29yaWVzRFRPLm1hcCgoY2F0ZWdvcnlEVE8pID0+IG5ldyBTY0NhdGVnb3J5KGNhdGVnb3J5RFRPKSkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/RgNC+0YEg0LTQvtCx0LDQstC70LXQvdC40Y8g0YPQutCw0LfQsNC90L3QvtC5INC60LDRgtC10LPQvtGA0LjQuCDQsiDQuNC30LHRgNCw0L3QvdC+0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutCw0YLQtdCz0L7RgNC40LgsINC60L7RgtC+0YDRg9GOINC90LXQvtCx0YXQvtC00LjQvNC+INC00L7QsdCw0LLQuNGC0Ywg0LIg0LjQt9Cx0YDQsNC90L3QvtC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBwdXRDYXRlZ29yeSQoY2F0ZWdvcnlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS9mYXZvcml0ZXMvY2F0ZWdvcmllcy8ke2NhdGVnb3J5SWR9YCwge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQv9C+0LvQvdGP0LXRgiDQt9Cw0L/RgNC+0YEg0YPQtNCw0LvQtdC90LjRjyDRg9C60LDQt9Cw0L3QvdC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4INC40Lcg0LjQt9Cx0YDQsNC90L3Ri9GFLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGVnb3J5SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQsNGC0LXQs9C+0YDQuNC4LCDQutC+0YLQvtGA0YPRjiDQvdC10L7QsdGF0L7QtNC40LzQviDRg9C00LDQu9C40YLRjCDQuNC3INC40LfQsdGA0LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlQ2F0ZWdvcnkkKGNhdGVnb3J5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vZmF2b3JpdGVzL2NhdGVnb3JpZXMvJHtjYXRlZ29yeUlkfWApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRgdC/0LjRgdC+0Log0LjQt9Cx0YDQsNC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuSB7QGxpbmsgY2F0ZWdvcmllcyR9LlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVGYXZvcml0ZUNhdGVnb3JpZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllc1VwZGF0ZVN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQv9C+0LvQvdGP0LXRgiDQt9Cw0L/RgNC+0YEg0LTQvtCx0LDQstC70LXQvdC40Y8g0YPQutCw0LfQsNC90L3QvtCz0L4g0YLQvtCy0LDRgNCwINCyINC40LfQsdGA0LDQvdC90L7QtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YLQvtCy0LDRgNCwLCDQutC+0YLQvtGA0YvQuSDQvdC10L7QsdGF0L7QtNC40LzQviDQtNC+0LHQsNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHV0UHJvZHVjdCQocHJvZHVjdElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2Zhdm9yaXRlcy9wcm9kdWN0cy8ke3Byb2R1Y3RJZH1gLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C/0L7Qu9C90Y/QtdGCINC30LDQv9GA0L7RgSDRg9C00LDQu9C10L3QuNGPINGD0LrQsNC30LDQvdC90L7Qs9C+INC/0YDQvtC00YPQutGC0LAg0LjQtyDQuNC30LHRgNCw0L3QvdGL0YUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdElkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0L7QstCw0YDQsCwg0LrQvtGC0L7RgNGL0Lkg0L3QtdC+0LHRhdC+0LTQuNC80L4g0YPQtNCw0LvQuNGC0Ywg0LjQtyDQuNC30LHRgNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZVByb2R1Y3QkKHByb2R1Y3RJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS9mYXZvcml0ZXMvcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCk7XG4gICAgfVxufVxuIl19