@snabcentr/client-core 3.7.0 → 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.
- package/fesm2022/snabcentr-client-core.mjs +459 -490
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +23 -24
- package/release_notes.tmp +0 -4
- package/types/snabcentr-client-core.d.ts +10138 -0
- package/auth/index.d.ts +0 -3
- package/auth/interfaces/index.d.ts +0 -5
- package/auth/interfaces/sc-i-api-error-response.d.ts +0 -13
- package/auth/interfaces/sc-i-auth-token.d.ts +0 -14
- package/auth/interfaces/sc-i-login.d.ts +0 -13
- package/auth/interfaces/sc-i-phone-login.d.ts +0 -13
- package/auth/interfaces/sc-i-token.d.ts +0 -13
- package/auth/services/index.d.ts +0 -2
- package/auth/services/sc-auth.service.d.ts +0 -78
- package/auth/services/sc-token.service.d.ts +0 -79
- package/auth/tokens/index.d.ts +0 -3
- package/auth/tokens/sc-access-auth-token-storage-key.d.ts +0 -5
- package/auth/tokens/sc-guest-token-storage-key.d.ts +0 -5
- package/auth/tokens/sc-refresh-auth-token-storage-key.d.ts +0 -5
- package/banners/dto/index.d.ts +0 -2
- package/banners/dto/sc-banner.d.ts +0 -56
- package/banners/dto/sc-i-banner.d.ts +0 -41
- package/banners/index.d.ts +0 -2
- package/banners/services/sc-banner.service.d.ts +0 -22
- package/cart/classes/index.d.ts +0 -2
- package/cart/classes/sc-cart.d.ts +0 -26
- package/cart/classes/sc-sum.d.ts +0 -12
- package/cart/constants/index.d.ts +0 -1
- package/cart/constants/sc-empty-cart.d.ts +0 -7
- package/cart/index.d.ts +0 -4
- package/cart/internal/index.d.ts +0 -1
- package/cart/internal/sc-i-cart.d.ts +0 -19
- package/cart/services/index.d.ts +0 -1
- package/cart/services/sc-cart.service.d.ts +0 -113
- package/catalog/classes/index.d.ts +0 -3
- package/catalog/classes/sc-cached-data.d.ts +0 -25
- package/catalog/classes/sc-cached-item.d.ts +0 -53
- package/catalog/classes/sc-catalog-item.d.ts +0 -31
- package/catalog/dto/index.d.ts +0 -7
- package/catalog/dto/sc-category.d.ts +0 -133
- package/catalog/dto/sc-i-discount.d.ts +0 -21
- package/catalog/dto/sc-i-product-images.d.ts +0 -25
- package/catalog/dto/sc-i-product-notify-when-in-stock.d.ts +0 -21
- package/catalog/dto/sc-i-properties.d.ts +0 -88
- package/catalog/dto/sc-product.d.ts +0 -177
- package/catalog/dto/sc-virtual-category.d.ts +0 -27
- package/catalog/enums/index.d.ts +0 -3
- package/catalog/enums/sc-catalog-format.d.ts +0 -13
- package/catalog/enums/sc-mime-types.d.ts +0 -77
- package/catalog/enums/sc-product-tile-type.d.ts +0 -13
- package/catalog/index.d.ts +0 -8
- package/catalog/interfaces/index.d.ts +0 -13
- package/catalog/interfaces/sc-catalog-filter.d.ts +0 -7
- package/catalog/interfaces/sc-i-base-catalog-filter.d.ts +0 -17
- package/catalog/interfaces/sc-i-catalog-item.d.ts +0 -16
- package/catalog/interfaces/sc-i-category-product-params.d.ts +0 -45
- package/catalog/interfaces/sc-i-category-products-pagination-params.d.ts +0 -19
- package/catalog/interfaces/sc-i-category.d.ts +0 -29
- package/catalog/interfaces/sc-i-checkbox-filter.d.ts +0 -31
- package/catalog/interfaces/sc-i-product.d.ts +0 -78
- package/catalog/interfaces/sc-i-range-filter.d.ts +0 -26
- package/catalog/interfaces/sc-i-toggle-filter.d.ts +0 -14
- package/catalog/interfaces/sc-i-virtual-category.d.ts +0 -20
- package/catalog/interfaces/sc-property-filters.d.ts +0 -5
- package/catalog/interfaces/sc-t-product-sort-field.d.ts +0 -4
- package/catalog/internal/index.d.ts +0 -1
- package/catalog/internal/sc-i-filter-tree-category.d.ts +0 -15
- package/catalog/services/index.d.ts +0 -4
- package/catalog/services/sc-catalog-filter.service.d.ts +0 -37
- package/catalog/services/sc-catalog.service.d.ts +0 -199
- package/catalog/services/sc-favorite.service.d.ts +0 -62
- package/catalog/services/sc-recommendation.service.d.ts +0 -76
- package/catalog/tokens/index.d.ts +0 -1
- package/catalog/tokens/sc-count-first-discounted-products.d.ts +0 -5
- package/catalog/types/index.d.ts +0 -2
- package/catalog/types/sc-filters-tree-catalog.d.ts +0 -5
- package/catalog/types/sc-price-history.d.ts +0 -13
- package/common/classes/index.d.ts +0 -10
- package/common/classes/sc-catalogable-item.d.ts +0 -17
- package/common/classes/sc-coded-identity.d.ts +0 -17
- package/common/classes/sc-deletable-named-identity.d.ts +0 -17
- package/common/classes/sc-hidden-catalogable-item.d.ts +0 -17
- package/common/classes/sc-identity.d.ts +0 -25
- package/common/classes/sc-image.d.ts +0 -24
- package/common/classes/sc-named-identity.d.ts +0 -17
- package/common/classes/sc-primary-catalogable-item.d.ts +0 -17
- package/common/classes/sc-reference.d.ts +0 -21
- package/common/classes/sc-updatable-named-identity.d.ts +0 -17
- package/common/enums/index.d.ts +0 -1
- package/common/enums/request-state-status-enum.d.ts +0 -17
- package/common/index.d.ts +0 -3
- package/common/interfaces/index.d.ts +0 -18
- package/common/interfaces/sc-i-catalogable-item.d.ts +0 -10
- package/common/interfaces/sc-i-coded-identity.d.ts +0 -10
- package/common/interfaces/sc-i-created-at.d.ts +0 -9
- package/common/interfaces/sc-i-date-period.d.ts +0 -6
- package/common/interfaces/sc-i-deletable-named-identity.d.ts +0 -7
- package/common/interfaces/sc-i-deleted-at.d.ts +0 -9
- package/common/interfaces/sc-i-file.d.ts +0 -13
- package/common/interfaces/sc-i-hidden-catalogable-item.d.ts +0 -10
- package/common/interfaces/sc-i-identity.d.ts +0 -13
- package/common/interfaces/sc-i-image.d.ts +0 -17
- package/common/interfaces/sc-i-named-identity.d.ts +0 -7
- package/common/interfaces/sc-i-named.d.ts +0 -9
- package/common/interfaces/sc-i-primary-catalogable-item.d.ts +0 -10
- package/common/interfaces/sc-i-reference.d.ts +0 -14
- package/common/interfaces/sc-i-request-state.d.ts +0 -35
- package/common/interfaces/sc-i-typed-nullable-range.d.ts +0 -13
- package/common/interfaces/sc-i-updatable-named-identity.d.ts +0 -7
- package/common/interfaces/sc-i-updated-at.d.ts +0 -9
- package/config/index.d.ts +0 -11
- package/config/sc-i-api-keys.d.ts +0 -13
- package/config/sc-i-app-release.d.ts +0 -17
- package/config/sc-i-cache-lifetime.d.ts +0 -27
- package/config/sc-i-company-base-info.d.ts +0 -54
- package/config/sc-i-date-format.d.ts +0 -17
- package/config/sc-i-feedback-api.d.ts +0 -17
- package/config/sc-i-maps-default-options.d.ts +0 -13
- package/config/sc-i-update-interval.d.ts +0 -13
- package/config/sc-i-urls.d.ts +0 -44
- package/config/sc-i-user-configs.d.ts +0 -9
- package/config/sc-route-keys.d.ts +0 -153
- package/configurator/dto/index.d.ts +0 -7
- package/configurator/dto/sc-i-configurator-base.d.ts +0 -5
- package/configurator/dto/sc-i-configurator-calculate-result.d.ts +0 -18
- package/configurator/dto/sc-i-configurator-calculate-sheet.d.ts +0 -9
- package/configurator/dto/sc-i-configurator-search-product-base.d.ts +0 -5
- package/configurator/dto/sc-i-configurator-settings-base.d.ts +0 -5
- package/configurator/dto/sc-i-sandwich-calculate-item.d.ts +0 -17
- package/configurator/dto/sc-i-sandwich-calculate.d.ts +0 -14
- package/configurator/index.d.ts +0 -3
- package/configurator/services/index.d.ts +0 -1
- package/configurator/services/sc-configurator.service.d.ts +0 -81
- package/configurator/types/index.d.ts +0 -1
- package/configurator/types/sc-type-by-key.d.ts +0 -5
- package/contacts/dto/index.d.ts +0 -9
- package/contacts/dto/sc-i-contact-and-media.d.ts +0 -23
- package/contacts/dto/sc-i-direction-manager-contact.d.ts +0 -42
- package/contacts/dto/sc-i-feedback-message.d.ts +0 -35
- package/contacts/dto/sc-i-org-contact.d.ts +0 -46
- package/contacts/dto/sc-i-requisites-with-label.d.ts +0 -13
- package/contacts/dto/sc-i-requisites.d.ts +0 -58
- package/contacts/dto/sc-i-retail-contact.d.ts +0 -47
- package/contacts/dto/sc-i-social-media.d.ts +0 -18
- package/contacts/dto/sc-uploaded-file.d.ts +0 -14
- package/contacts/enums/index.d.ts +0 -2
- package/contacts/enums/sc-feedback-forms.d.ts +0 -29
- package/contacts/enums/sc-social-type.d.ts +0 -21
- package/contacts/index.d.ts +0 -3
- package/contacts/services/index.d.ts +0 -3
- package/contacts/services/sc-contacts.service.d.ts +0 -79
- package/contacts/services/sc-feedback.service.d.ts +0 -41
- package/contacts/services/sc-requisites.service.d.ts +0 -90
- package/contragent/dto/index.d.ts +0 -13
- package/contragent/dto/sc-contragent-on-data-create.d.ts +0 -8
- package/contragent/dto/sc-contragent.d.ts +0 -8
- package/contragent/dto/sc-i-bank-account-on-data-create.d.ts +0 -25
- package/contragent/dto/sc-i-bank-account.d.ts +0 -15
- package/contragent/dto/sc-i-contragent-entrepreneur-on-data-create.d.ts +0 -43
- package/contragent/dto/sc-i-contragent-entrepreneur.d.ts +0 -38
- package/contragent/dto/sc-i-contragent-individual-on-data-create.d.ts +0 -23
- package/contragent/dto/sc-i-contragent-individual.d.ts +0 -18
- package/contragent/dto/sc-i-contragent-legal-on-data-create.d.ts +0 -10
- package/contragent/dto/sc-i-contragent-legal.d.ts +0 -10
- package/contragent/dto/sc-i-contragent-non-resident-legal-on-data-create.d.ts +0 -18
- package/contragent/dto/sc-i-contragent-non-resident-legal.d.ts +0 -19
- package/contragent/dto/sc-i-opf.d.ts +0 -21
- package/contragent/index.d.ts +0 -2
- package/contragent/services/index.d.ts +0 -1
- package/contragent/services/sc-contragent.service.d.ts +0 -105
- package/converters/index.d.ts +0 -2
- package/converters/services/sc-converters.service.d.ts +0 -61
- package/converters/types/index.d.ts +0 -1
- package/converters/types/sc-date-to-string.d.ts +0 -6
- package/delivery-address/dto/index.d.ts +0 -2
- package/delivery-address/dto/sc-i-delivery-addresses-on-data-create.d.ts +0 -44
- package/delivery-address/dto/sc-i-delivery-addresses.d.ts +0 -10
- package/delivery-address/index.d.ts +0 -2
- package/delivery-address/services/index.d.ts +0 -1
- package/delivery-address/services/sc-delivery-address.service.d.ts +0 -73
- package/esm2022/auth/index.mjs +0 -4
- package/esm2022/auth/interfaces/index.mjs +0 -6
- package/esm2022/auth/interfaces/sc-i-api-error-response.mjs +0 -2
- package/esm2022/auth/interfaces/sc-i-auth-token.mjs +0 -2
- package/esm2022/auth/interfaces/sc-i-login.mjs +0 -2
- package/esm2022/auth/interfaces/sc-i-phone-login.mjs +0 -2
- package/esm2022/auth/interfaces/sc-i-token.mjs +0 -2
- package/esm2022/auth/services/index.mjs +0 -3
- package/esm2022/auth/services/sc-auth.service.mjs +0 -162
- package/esm2022/auth/services/sc-token.service.mjs +0 -158
- package/esm2022/auth/tokens/index.mjs +0 -4
- package/esm2022/auth/tokens/sc-access-auth-token-storage-key.mjs +0 -9
- package/esm2022/auth/tokens/sc-guest-token-storage-key.mjs +0 -9
- package/esm2022/auth/tokens/sc-refresh-auth-token-storage-key.mjs +0 -9
- package/esm2022/banners/dto/index.mjs +0 -3
- package/esm2022/banners/dto/sc-banner.mjs +0 -34
- package/esm2022/banners/dto/sc-i-banner.mjs +0 -2
- package/esm2022/banners/index.mjs +0 -3
- package/esm2022/banners/services/sc-banner.service.mjs +0 -35
- package/esm2022/cart/classes/index.mjs +0 -3
- package/esm2022/cart/classes/sc-cart.mjs +0 -18
- package/esm2022/cart/classes/sc-sum.mjs +0 -14
- package/esm2022/cart/constants/index.mjs +0 -2
- package/esm2022/cart/constants/sc-empty-cart.mjs +0 -2
- package/esm2022/cart/index.mjs +0 -5
- package/esm2022/cart/internal/index.mjs +0 -2
- package/esm2022/cart/internal/sc-i-cart.mjs +0 -2
- package/esm2022/cart/services/index.mjs +0 -2
- package/esm2022/cart/services/sc-cart.service.mjs +0 -203
- package/esm2022/catalog/classes/index.mjs +0 -4
- package/esm2022/catalog/classes/sc-cached-data.mjs +0 -23
- package/esm2022/catalog/classes/sc-cached-item.mjs +0 -60
- package/esm2022/catalog/classes/sc-catalog-item.mjs +0 -19
- package/esm2022/catalog/dto/index.mjs +0 -8
- package/esm2022/catalog/dto/sc-category.mjs +0 -180
- package/esm2022/catalog/dto/sc-i-discount.mjs +0 -2
- package/esm2022/catalog/dto/sc-i-product-images.mjs +0 -2
- package/esm2022/catalog/dto/sc-i-product-notify-when-in-stock.mjs +0 -2
- package/esm2022/catalog/dto/sc-i-properties.mjs +0 -2
- package/esm2022/catalog/dto/sc-product.mjs +0 -159
- package/esm2022/catalog/dto/sc-virtual-category.mjs +0 -22
- package/esm2022/catalog/enums/index.mjs +0 -4
- package/esm2022/catalog/enums/sc-catalog-format.mjs +0 -16
- package/esm2022/catalog/enums/sc-mime-types.mjs +0 -81
- package/esm2022/catalog/enums/sc-product-tile-type.mjs +0 -16
- package/esm2022/catalog/index.mjs +0 -9
- package/esm2022/catalog/interfaces/index.mjs +0 -14
- package/esm2022/catalog/interfaces/sc-catalog-filter.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-base-catalog-filter.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-catalog-item.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-category-product-params.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-category-products-pagination-params.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-category.mjs +0 -3
- package/esm2022/catalog/interfaces/sc-i-checkbox-filter.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-product.mjs +0 -3
- package/esm2022/catalog/interfaces/sc-i-range-filter.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-toggle-filter.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-i-virtual-category.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-property-filters.mjs +0 -2
- package/esm2022/catalog/interfaces/sc-t-product-sort-field.mjs +0 -2
- package/esm2022/catalog/internal/index.mjs +0 -2
- package/esm2022/catalog/internal/sc-i-filter-tree-category.mjs +0 -2
- package/esm2022/catalog/services/index.mjs +0 -5
- package/esm2022/catalog/services/sc-catalog-filter.service.mjs +0 -73
- package/esm2022/catalog/services/sc-catalog.service.mjs +0 -357
- package/esm2022/catalog/services/sc-favorite.service.mjs +0 -91
- package/esm2022/catalog/services/sc-recommendation.service.mjs +0 -165
- package/esm2022/catalog/tokens/index.mjs +0 -2
- package/esm2022/catalog/tokens/sc-count-first-discounted-products.mjs +0 -8
- package/esm2022/catalog/types/index.mjs +0 -3
- package/esm2022/catalog/types/sc-filters-tree-catalog.mjs +0 -2
- package/esm2022/catalog/types/sc-price-history.mjs +0 -2
- package/esm2022/common/classes/index.mjs +0 -11
- package/esm2022/common/classes/sc-catalogable-item.mjs +0 -16
- package/esm2022/common/classes/sc-coded-identity.mjs +0 -21
- package/esm2022/common/classes/sc-deletable-named-identity.mjs +0 -18
- package/esm2022/common/classes/sc-hidden-catalogable-item.mjs +0 -16
- package/esm2022/common/classes/sc-identity.mjs +0 -23
- package/esm2022/common/classes/sc-image.mjs +0 -16
- package/esm2022/common/classes/sc-named-identity.mjs +0 -21
- package/esm2022/common/classes/sc-primary-catalogable-item.mjs +0 -16
- package/esm2022/common/classes/sc-reference.mjs +0 -17
- package/esm2022/common/classes/sc-updatable-named-identity.mjs +0 -18
- package/esm2022/common/enums/index.mjs +0 -2
- package/esm2022/common/enums/request-state-status-enum.mjs +0 -19
- package/esm2022/common/index.mjs +0 -4
- package/esm2022/common/interfaces/index.mjs +0 -19
- package/esm2022/common/interfaces/sc-i-catalogable-item.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-coded-identity.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-created-at.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-date-period.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-deletable-named-identity.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-deleted-at.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-file.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-hidden-catalogable-item.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-identity.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-image.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-named-identity.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-named.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-primary-catalogable-item.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-reference.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-request-state.mjs +0 -26
- package/esm2022/common/interfaces/sc-i-typed-nullable-range.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-updatable-named-identity.mjs +0 -2
- package/esm2022/common/interfaces/sc-i-updated-at.mjs +0 -2
- package/esm2022/config/index.mjs +0 -12
- package/esm2022/config/sc-i-api-keys.mjs +0 -2
- package/esm2022/config/sc-i-app-release.mjs +0 -2
- package/esm2022/config/sc-i-cache-lifetime.mjs +0 -2
- package/esm2022/config/sc-i-company-base-info.mjs +0 -2
- package/esm2022/config/sc-i-date-format.mjs +0 -2
- package/esm2022/config/sc-i-feedback-api.mjs +0 -2
- package/esm2022/config/sc-i-maps-default-options.mjs +0 -2
- package/esm2022/config/sc-i-update-interval.mjs +0 -2
- package/esm2022/config/sc-i-urls.mjs +0 -2
- package/esm2022/config/sc-i-user-configs.mjs +0 -2
- package/esm2022/config/sc-route-keys.mjs +0 -155
- package/esm2022/configurator/dto/index.mjs +0 -8
- package/esm2022/configurator/dto/sc-i-configurator-base.mjs +0 -2
- package/esm2022/configurator/dto/sc-i-configurator-calculate-result.mjs +0 -2
- package/esm2022/configurator/dto/sc-i-configurator-calculate-sheet.mjs +0 -2
- package/esm2022/configurator/dto/sc-i-configurator-search-product-base.mjs +0 -2
- package/esm2022/configurator/dto/sc-i-configurator-settings-base.mjs +0 -2
- package/esm2022/configurator/dto/sc-i-sandwich-calculate-item.mjs +0 -2
- package/esm2022/configurator/dto/sc-i-sandwich-calculate.mjs +0 -2
- package/esm2022/configurator/index.mjs +0 -4
- package/esm2022/configurator/services/index.mjs +0 -2
- package/esm2022/configurator/services/sc-configurator.service.mjs +0 -119
- package/esm2022/configurator/types/index.mjs +0 -2
- package/esm2022/configurator/types/sc-type-by-key.mjs +0 -2
- package/esm2022/contacts/dto/index.mjs +0 -10
- package/esm2022/contacts/dto/sc-i-contact-and-media.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-direction-manager-contact.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-feedback-message.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-org-contact.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-requisites-with-label.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-requisites.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-retail-contact.mjs +0 -2
- package/esm2022/contacts/dto/sc-i-social-media.mjs +0 -2
- package/esm2022/contacts/dto/sc-uploaded-file.mjs +0 -16
- package/esm2022/contacts/enums/index.mjs +0 -3
- package/esm2022/contacts/enums/sc-feedback-forms.mjs +0 -31
- package/esm2022/contacts/enums/sc-social-type.mjs +0 -24
- package/esm2022/contacts/index.mjs +0 -4
- package/esm2022/contacts/services/index.mjs +0 -4
- package/esm2022/contacts/services/sc-contacts.service.mjs +0 -110
- package/esm2022/contacts/services/sc-feedback.service.mjs +0 -73
- package/esm2022/contacts/services/sc-requisites.service.mjs +0 -141
- package/esm2022/contragent/dto/index.mjs +0 -14
- package/esm2022/contragent/dto/sc-contragent-on-data-create.mjs +0 -2
- package/esm2022/contragent/dto/sc-contragent.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-bank-account-on-data-create.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-bank-account.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-entrepreneur-on-data-create.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-entrepreneur.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-individual-on-data-create.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-individual.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-legal-on-data-create.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-legal.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-non-resident-legal-on-data-create.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-contragent-non-resident-legal.mjs +0 -2
- package/esm2022/contragent/dto/sc-i-opf.mjs +0 -2
- package/esm2022/contragent/index.mjs +0 -3
- package/esm2022/contragent/services/index.mjs +0 -2
- package/esm2022/contragent/services/sc-contragent.service.mjs +0 -166
- package/esm2022/converters/index.mjs +0 -3
- package/esm2022/converters/services/sc-converters.service.mjs +0 -136
- package/esm2022/converters/types/index.mjs +0 -2
- package/esm2022/converters/types/sc-date-to-string.mjs +0 -2
- package/esm2022/delivery-address/dto/index.mjs +0 -3
- package/esm2022/delivery-address/dto/sc-i-delivery-addresses-on-data-create.mjs +0 -2
- package/esm2022/delivery-address/dto/sc-i-delivery-addresses.mjs +0 -2
- package/esm2022/delivery-address/index.mjs +0 -3
- package/esm2022/delivery-address/services/index.mjs +0 -2
- package/esm2022/delivery-address/services/sc-delivery-address.service.mjs +0 -120
- package/esm2022/files/classes/sc-document-info-node.mjs +0 -16
- package/esm2022/files/classes/sc-document-info.mjs +0 -2
- package/esm2022/files/enums/sc-document-info-types-enum.mjs +0 -21
- package/esm2022/files/enums/sc-icon-types-enum.mjs +0 -36
- package/esm2022/files/index.mjs +0 -6
- package/esm2022/files/services/sc-files.service.mjs +0 -92
- package/esm2022/frequently-asked-questions/index.mjs +0 -3
- package/esm2022/frequently-asked-questions/interfaces/index.mjs +0 -4
- package/esm2022/frequently-asked-questions/interfaces/sc-i-faq-group.mjs +0 -2
- package/esm2022/frequently-asked-questions/interfaces/sc-i-faq-item.mjs +0 -2
- package/esm2022/frequently-asked-questions/interfaces/sc-i-frequently-asked-questions-pagination-params.mjs +0 -2
- package/esm2022/frequently-asked-questions/services/index.mjs +0 -2
- package/esm2022/frequently-asked-questions/services/sc-frequently-asked-questions.service.mjs +0 -50
- package/esm2022/guards/index.mjs +0 -3
- package/esm2022/guards/sc-auth-as-client.guard.mjs +0 -56
- package/esm2022/guards/sc-id-or-slug.guard.mjs +0 -35
- package/esm2022/helpers/index.mjs +0 -4
- package/esm2022/helpers/sc-get-current-route.mjs +0 -14
- package/esm2022/helpers/sc-image-helper.mjs +0 -91
- package/esm2022/helpers/sc-units-helper.mjs +0 -33
- package/esm2022/httpInterceptors/classes/index.mjs +0 -2
- package/esm2022/httpInterceptors/classes/sc-cache-settings.mjs +0 -16
- package/esm2022/httpInterceptors/index.mjs +0 -10
- package/esm2022/httpInterceptors/internal/classes/sc-cached-response.mjs +0 -17
- package/esm2022/httpInterceptors/sc-auth.interceptor.mjs +0 -31
- package/esm2022/httpInterceptors/sc-cache.interceptor.mjs +0 -40
- package/esm2022/httpInterceptors/sc-convert.interceptor.mjs +0 -64
- package/esm2022/httpInterceptors/sc-date-format.interceptor.mjs +0 -80
- package/esm2022/httpInterceptors/sc-errors.interceptor.mjs +0 -89
- package/esm2022/httpInterceptors/sc-guest.interceptor.mjs +0 -38
- package/esm2022/httpInterceptors/sc-options.interceptor.mjs +0 -42
- package/esm2022/httpInterceptors/tokens/index.mjs +0 -8
- package/esm2022/httpInterceptors/tokens/sc-auth-add-header-required.mjs +0 -10
- package/esm2022/httpInterceptors/tokens/sc-cache-settings.mjs +0 -7
- package/esm2022/httpInterceptors/tokens/sc-guest-endpoints.mjs +0 -8
- package/esm2022/httpInterceptors/tokens/sc-guest-parameter-name.mjs +0 -8
- package/esm2022/httpInterceptors/tokens/sc-is-header-required.mjs +0 -6
- package/esm2022/httpInterceptors/tokens/sc-is-logout-request.mjs +0 -6
- package/esm2022/httpInterceptors/tokens/sc-is-refresh-token-required.mjs +0 -6
- package/esm2022/locations/dto/index.mjs +0 -4
- package/esm2022/locations/dto/sc-i-city.mjs +0 -2
- package/esm2022/locations/dto/sc-i-country.mjs +0 -2
- package/esm2022/locations/dto/sc-i-region.mjs +0 -2
- package/esm2022/locations/index.mjs +0 -3
- package/esm2022/locations/services/sc-location.service.mjs +0 -116
- package/esm2022/news/classes/index.mjs +0 -2
- package/esm2022/news/classes/sc-news.mjs +0 -22
- package/esm2022/news/index.mjs +0 -5
- package/esm2022/news/interfaces/index.mjs +0 -3
- package/esm2022/news/interfaces/sc-i-news-tile.mjs +0 -2
- package/esm2022/news/interfaces/sc-i-news.mjs +0 -2
- package/esm2022/news/services/index.mjs +0 -2
- package/esm2022/news/services/sc-news.service.mjs +0 -68
- package/esm2022/news/tokens/index.mjs +0 -2
- package/esm2022/news/tokens/sc-count-last-news.mjs +0 -9
- package/esm2022/notifications/dto/index.mjs +0 -3
- package/esm2022/notifications/dto/sc-i-notifications-count.mjs +0 -2
- package/esm2022/notifications/dto/sc-i-user-notification.mjs +0 -2
- package/esm2022/notifications/enums/index.mjs +0 -3
- package/esm2022/notifications/enums/sc-notification-action-types.mjs +0 -28
- package/esm2022/notifications/enums/sc-notification-level-names.mjs +0 -20
- package/esm2022/notifications/index.mjs +0 -4
- package/esm2022/notifications/services/sc-notifications.service.mjs +0 -168
- package/esm2022/order/classes/index.mjs +0 -12
- package/esm2022/order/classes/sc-delivery-cost.mjs +0 -19
- package/esm2022/order/classes/sc-i-order-history.mjs +0 -2
- package/esm2022/order/classes/sc-order-base.mjs +0 -28
- package/esm2022/order/classes/sc-order-delivery.mjs +0 -2
- package/esm2022/order/classes/sc-order-draft-short.mjs +0 -17
- package/esm2022/order/classes/sc-order-draft.mjs +0 -59
- package/esm2022/order/classes/sc-order-history-user.mjs +0 -2
- package/esm2022/order/classes/sc-order-item.mjs +0 -60
- package/esm2022/order/classes/sc-order-payment.mjs +0 -2
- package/esm2022/order/classes/sc-order-short.mjs +0 -31
- package/esm2022/order/classes/sc-order.mjs +0 -102
- package/esm2022/order/enums/index.mjs +0 -4
- package/esm2022/order/enums/sc-delivery-type.mjs +0 -16
- package/esm2022/order/enums/sc-order-draft-type.mjs +0 -16
- package/esm2022/order/enums/sc-payment-type.mjs +0 -32
- package/esm2022/order/index.mjs +0 -6
- package/esm2022/order/internal/index.mjs +0 -15
- package/esm2022/order/internal/sc-i-delivery-cost-dto.mjs +0 -2
- package/esm2022/order/internal/sc-i-new-order-draft-request.mjs +0 -2
- package/esm2022/order/internal/sc-i-new-order-item-base.mjs +0 -2
- package/esm2022/order/internal/sc-i-new-order-item-measured.mjs +0 -2
- package/esm2022/order/internal/sc-i-new-order.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-base.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-draft-list-params.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-draft-short.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-draft.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-item.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-loader.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-short.mjs +0 -2
- package/esm2022/order/internal/sc-i-order.mjs +0 -2
- package/esm2022/order/internal/sc-i-update-order-order-request.mjs +0 -2
- package/esm2022/order/services/index.mjs +0 -3
- package/esm2022/order/services/sc-order-drafts.service.mjs +0 -202
- package/esm2022/order/services/sc-orders.service.mjs +0 -219
- package/esm2022/order/tokens/index.mjs +0 -2
- package/esm2022/order/tokens/sc-order-loader.token.mjs +0 -25
- package/esm2022/pagination/dto/index.mjs +0 -7
- package/esm2022/pagination/dto/sc-i-paginate.mjs +0 -2
- package/esm2022/pagination/dto/sc-i-pagination-links.mjs +0 -2
- package/esm2022/pagination/dto/sc-i-pagination-meta.mjs +0 -2
- package/esm2022/pagination/dto/sc-i-pagination-params.mjs +0 -2
- package/esm2022/pagination/dto/sc-i-range-filter.mjs +0 -2
- package/esm2022/pagination/dto/sc-i-sort-order.mjs +0 -2
- package/esm2022/pagination/index.mjs +0 -3
- package/esm2022/pagination/services/sc-pagination.service.mjs +0 -157
- package/esm2022/pipes/index.mjs +0 -3
- package/esm2022/pipes/sc-id-or-slug.pipe.mjs +0 -41
- package/esm2022/pipes/sc-media-image-transformer.pipe.mjs +0 -34
- package/esm2022/providers/index.mjs +0 -8
- package/esm2022/providers/interfaces/index.mjs +0 -4
- package/esm2022/providers/interfaces/sc-i-terminal-provider.mjs +0 -2
- package/esm2022/providers/interfaces/sc-i-typed-class-provider.mjs +0 -2
- package/esm2022/providers/interfaces/sc-i-typed-value-provider.mjs +0 -2
- package/esm2022/providers/sc-category.providers.mjs +0 -37
- package/esm2022/providers/search-term.providers.mjs +0 -38
- package/esm2022/providers/ssr.providers.mjs +0 -19
- package/esm2022/providers/terminal.providers.mjs +0 -43
- package/esm2022/providers/types/sc-provider.mjs +0 -2
- package/esm2022/providers/virtual-category.providers.mjs +0 -33
- package/esm2022/public-api.mjs +0 -40
- package/esm2022/questionnaire/dto/index.mjs +0 -5
- package/esm2022/questionnaire/dto/sc-i-question-answer.mjs +0 -2
- package/esm2022/questionnaire/dto/sc-i-questionnaire.mjs +0 -2
- package/esm2022/questionnaire/dto/sc-question-possible-answer.mjs +0 -2
- package/esm2022/questionnaire/dto/sc-questionnaire-question.mjs +0 -2
- package/esm2022/questionnaire/enums/sc-questionnaire-status-enum.mjs +0 -24
- package/esm2022/questionnaire/index.mjs +0 -4
- package/esm2022/questionnaire/services/sc-questionnaire.service.mjs +0 -81
- package/esm2022/reclamation/dto/index.mjs +0 -6
- package/esm2022/reclamation/dto/sc-i-reclamation-on-data-create-item.mjs +0 -2
- package/esm2022/reclamation/dto/sc-i-reclamation-on-data-create.mjs +0 -2
- package/esm2022/reclamation/dto/sc-i-reclamation.mjs +0 -2
- package/esm2022/reclamation/dto/sc-reclamation-item.mjs +0 -2
- package/esm2022/reclamation/dto/sc-reclamation-short.mjs +0 -2
- package/esm2022/reclamation/index.mjs +0 -4
- package/esm2022/reclamation/interfaces/sc-i-pagination-params.mjs +0 -2
- package/esm2022/reclamation/services/sc-reclamation.service.mjs +0 -83
- package/esm2022/references/dto/index.mjs +0 -5
- package/esm2022/references/dto/sc-i-currency.mjs +0 -2
- package/esm2022/references/dto/sc-i-product-unit.mjs +0 -2
- package/esm2022/references/dto/sc-i-references-types.mjs +0 -2
- package/esm2022/references/dto/sc-i-sales-direction.mjs +0 -2
- package/esm2022/references/enums/index.mjs +0 -6
- package/esm2022/references/enums/sc-opf-list.mjs +0 -24
- package/esm2022/references/enums/sc-order-state-status.mjs +0 -45
- package/esm2022/references/enums/sc-payment-status.mjs +0 -65
- package/esm2022/references/enums/sc-reclamation-status.mjs +0 -25
- package/esm2022/references/enums/sc-reference-name.mjs +0 -76
- package/esm2022/references/index.mjs +0 -4
- package/esm2022/references/services/index.mjs +0 -2
- package/esm2022/references/services/sc-references.service.mjs +0 -188
- package/esm2022/search/dto/sc-i-simple-search.mjs +0 -2
- package/esm2022/search/index.mjs +0 -3
- package/esm2022/search/services/sc-search.service.mjs +0 -122
- package/esm2022/seo/classes/index.mjs +0 -2
- package/esm2022/seo/classes/schema-org-factory.mjs +0 -308
- package/esm2022/seo/index.mjs +0 -5
- package/esm2022/seo/interfaces/index.mjs +0 -5
- package/esm2022/seo/interfaces/sc-i-breadcrumb-item.mjs +0 -12
- package/esm2022/seo/interfaces/sc-i-default-page-meta.mjs +0 -2
- package/esm2022/seo/interfaces/sc-i-seo-resource.mjs +0 -2
- package/esm2022/seo/interfaces/sc-i-seo.mjs +0 -2
- package/esm2022/seo/services/index.mjs +0 -2
- package/esm2022/seo/services/sc-seo.service.mjs +0 -230
- package/esm2022/seo/types/index.mjs +0 -2
- package/esm2022/seo/types/robots-tag-type.mjs +0 -2
- package/esm2022/snabcentr-client-core.mjs +0 -5
- package/esm2022/suggestion/dto/index.mjs +0 -7
- package/esm2022/suggestion/dto/sc-i-suggestion-address.mjs +0 -2
- package/esm2022/suggestion/dto/sc-i-suggestion-bank.mjs +0 -2
- package/esm2022/suggestion/dto/sc-i-suggestion-email.mjs +0 -2
- package/esm2022/suggestion/dto/sc-i-suggestion-fio.mjs +0 -2
- package/esm2022/suggestion/dto/sc-i-suggestion-organization.mjs +0 -2
- package/esm2022/suggestion/dto/sc-suggestion.mjs +0 -2
- package/esm2022/suggestion/enums/sc-i-suggestion-type.mjs +0 -28
- package/esm2022/suggestion/index.mjs +0 -4
- package/esm2022/suggestion/services/sc-suggestion.service.mjs +0 -42
- package/esm2022/tokens/index.mjs +0 -19
- package/esm2022/tokens/notification-options.mjs +0 -15
- package/esm2022/tokens/sc-api-keys.mjs +0 -6
- package/esm2022/tokens/sc-cache-lifetime.mjs +0 -6
- package/esm2022/tokens/sc-company-info.mjs +0 -6
- package/esm2022/tokens/sc-company-name.mjs +0 -6
- package/esm2022/tokens/sc-configurator-components.mjs +0 -6
- package/esm2022/tokens/sc-configurator-settings.mjs +0 -6
- package/esm2022/tokens/sc-date-format.mjs +0 -6
- package/esm2022/tokens/sc-default-page-meta.mjs +0 -14
- package/esm2022/tokens/sc-feedback-api.mjs +0 -6
- package/esm2022/tokens/sc-id-or-slug-in-route.mjs +0 -8
- package/esm2022/tokens/sc-is-hidden-error-alert.mjs +0 -10
- package/esm2022/tokens/sc-linear-values-token.mjs +0 -12
- package/esm2022/tokens/sc-path-image-not-found.mjs +0 -6
- package/esm2022/tokens/sc-product-pagination-options.mjs +0 -22
- package/esm2022/tokens/sc-release.mjs +0 -6
- package/esm2022/tokens/sc-update-interval.mjs +0 -6
- package/esm2022/tokens/sc-urls.mjs +0 -6
- package/esm2022/ui/index.mjs +0 -3
- package/esm2022/ui/services/sc-ui.service.mjs +0 -195
- package/esm2022/ui/utils/filter-changed-by-key.mjs +0 -12
- package/esm2022/user/dto/index.mjs +0 -18
- package/esm2022/user/dto/sc-approved-data.mjs +0 -2
- package/esm2022/user/dto/sc-i-bank.mjs +0 -2
- package/esm2022/user/dto/sc-i-change-password.mjs +0 -2
- package/esm2022/user/dto/sc-i-contact-base.mjs +0 -2
- package/esm2022/user/dto/sc-i-contact-on-data-create.mjs +0 -2
- package/esm2022/user/dto/sc-i-contact-relation-on-data-create.mjs +0 -2
- package/esm2022/user/dto/sc-i-contact-relation.mjs +0 -2
- package/esm2022/user/dto/sc-i-contact-with-relations.mjs +0 -2
- package/esm2022/user/dto/sc-i-contact.mjs +0 -2
- package/esm2022/user/dto/sc-i-manager.mjs +0 -2
- package/esm2022/user/dto/sc-i-password-on-data-create.mjs +0 -2
- package/esm2022/user/dto/sc-i-phone-on-data-approve.mjs +0 -2
- package/esm2022/user/dto/sc-i-simple-user-on-data-create.mjs +0 -2
- package/esm2022/user/dto/sc-i-user-on-data-create.mjs +0 -2
- package/esm2022/user/dto/sc-i-user-on-data-update.mjs +0 -2
- package/esm2022/user/dto/sc-user-metadata.mjs +0 -32
- package/esm2022/user/dto/sc-user.mjs +0 -58
- package/esm2022/user/enums/index.mjs +0 -3
- package/esm2022/user/enums/sc-client-type.mjs +0 -20
- package/esm2022/user/enums/sc-user-type.mjs +0 -16
- package/esm2022/user/index.mjs +0 -6
- package/esm2022/user/internal/dto/index.mjs +0 -2
- package/esm2022/user/internal/dto/sc-i-user-dto.mjs +0 -2
- package/esm2022/user/services/sc-user.service.mjs +0 -184
- package/esm2022/user/tokens/index.mjs +0 -2
- package/esm2022/user/tokens/sc-user-providers.mjs +0 -13
- package/esm2022/user-metrika/dto/index.mjs +0 -2
- package/esm2022/user-metrika/dto/sc-i-user-metrika-event.mjs +0 -2
- package/esm2022/user-metrika/enums/index.mjs +0 -2
- package/esm2022/user-metrika/enums/sc-user-metrika-goals-enum.mjs +0 -337
- package/esm2022/user-metrika/index.mjs +0 -4
- package/esm2022/user-metrika/services/index.mjs +0 -2
- package/esm2022/user-metrika/services/sc-user-metrika.service.mjs +0 -72
- package/esm2022/utils/phone-fotmatter/index.mjs +0 -2
- package/esm2022/utils/phone-fotmatter/sc-phone.service.mjs +0 -63
- package/esm2022/utm/index.mjs +0 -3
- package/esm2022/utm/interfaces/index.mjs +0 -3
- package/esm2022/utm/interfaces/sc-utm-params.mjs +0 -2
- package/esm2022/utm/interfaces/sc-utm.mjs +0 -2
- package/esm2022/utm/services/index.mjs +0 -2
- package/esm2022/utm/services/sc-utm.service.mjs +0 -157
- package/esm2022/vCard/index.mjs +0 -2
- package/esm2022/vCard/sc-v-card.service.mjs +0 -103
- package/esm2022/vacancies/classes/index.mjs +0 -3
- package/esm2022/vacancies/classes/sc-vacancies-list.mjs +0 -18
- package/esm2022/vacancies/classes/sc-vacancy.mjs +0 -19
- package/esm2022/vacancies/index.mjs +0 -5
- package/esm2022/vacancies/interfaces/index.mjs +0 -5
- package/esm2022/vacancies/interfaces/sc-i-employment.mjs +0 -2
- package/esm2022/vacancies/interfaces/sc-i-experience.mjs +0 -2
- package/esm2022/vacancies/interfaces/sc-i-salary.mjs +0 -2
- package/esm2022/vacancies/interfaces/sc-i-vacancies-data-source.mjs +0 -2
- package/esm2022/vacancies/internal/dto/index.mjs +0 -3
- package/esm2022/vacancies/internal/dto/sc-i-vacancies-list.mjs +0 -2
- package/esm2022/vacancies/internal/dto/sc-i-vacancy.mjs +0 -2
- package/esm2022/vacancies/services/index.mjs +0 -2
- package/esm2022/vacancies/services/sc-vacancies.service.mjs +0 -55
- package/esm2022/vacancies/tokens/index.mjs +0 -2
- package/esm2022/vacancies/tokens/sc-vacancies-datasource.mjs +0 -6
- package/esm2022/verification/index.mjs +0 -3
- package/esm2022/verification/interfaces/sc-i-phone-check.mjs +0 -2
- package/esm2022/verification/services/sc-verification.service.mjs +0 -68
- package/esm2022/warehouse/dto/index.mjs +0 -3
- package/esm2022/warehouse/dto/sc-i-warehouse-stock-count.mjs +0 -2
- package/esm2022/warehouse/dto/sc-warehouse.mjs +0 -2
- package/esm2022/warehouse/index.mjs +0 -3
- package/esm2022/warehouse/services/sc-warehouse.service.mjs +0 -119
- package/files/classes/sc-document-info-node.d.ts +0 -24
- package/files/classes/sc-document-info.d.ts +0 -42
- package/files/enums/sc-document-info-types-enum.d.ts +0 -17
- package/files/enums/sc-icon-types-enum.d.ts +0 -33
- package/files/index.d.ts +0 -5
- package/files/services/sc-files.service.d.ts +0 -34
- package/frequently-asked-questions/index.d.ts +0 -2
- package/frequently-asked-questions/interfaces/index.d.ts +0 -3
- package/frequently-asked-questions/interfaces/sc-i-faq-group.d.ts +0 -13
- package/frequently-asked-questions/interfaces/sc-i-faq-item.d.ts +0 -22
- package/frequently-asked-questions/interfaces/sc-i-frequently-asked-questions-pagination-params.d.ts +0 -10
- package/frequently-asked-questions/services/index.d.ts +0 -1
- package/frequently-asked-questions/services/sc-frequently-asked-questions.service.d.ts +0 -33
- package/guards/index.d.ts +0 -2
- package/guards/sc-auth-as-client.guard.d.ts +0 -29
- package/guards/sc-id-or-slug.guard.d.ts +0 -7
- package/helpers/index.d.ts +0 -3
- package/helpers/sc-get-current-route.d.ts +0 -8
- package/helpers/sc-image-helper.d.ts +0 -52
- package/helpers/sc-units-helper.d.ts +0 -24
- package/httpInterceptors/classes/index.d.ts +0 -1
- package/httpInterceptors/classes/sc-cache-settings.d.ts +0 -20
- package/httpInterceptors/index.d.ts +0 -9
- package/httpInterceptors/internal/classes/sc-cached-response.d.ts +0 -22
- package/httpInterceptors/sc-auth.interceptor.d.ts +0 -20
- package/httpInterceptors/sc-cache.interceptor.d.ts +0 -16
- package/httpInterceptors/sc-convert.interceptor.d.ts +0 -21
- package/httpInterceptors/sc-date-format.interceptor.d.ts +0 -28
- package/httpInterceptors/sc-errors.interceptor.d.ts +0 -36
- package/httpInterceptors/sc-guest.interceptor.d.ts +0 -24
- package/httpInterceptors/sc-options.interceptor.d.ts +0 -24
- package/httpInterceptors/tokens/index.d.ts +0 -7
- package/httpInterceptors/tokens/sc-auth-add-header-required.d.ts +0 -8
- package/httpInterceptors/tokens/sc-cache-settings.d.ts +0 -6
- package/httpInterceptors/tokens/sc-guest-endpoints.d.ts +0 -5
- package/httpInterceptors/tokens/sc-guest-parameter-name.d.ts +0 -5
- package/httpInterceptors/tokens/sc-is-header-required.d.ts +0 -5
- package/httpInterceptors/tokens/sc-is-logout-request.d.ts +0 -5
- package/httpInterceptors/tokens/sc-is-refresh-token-required.d.ts +0 -5
- package/index.d.ts +0 -5
- package/locations/dto/index.d.ts +0 -3
- package/locations/dto/sc-i-city.d.ts +0 -32
- package/locations/dto/sc-i-country.d.ts +0 -13
- package/locations/dto/sc-i-region.d.ts +0 -33
- package/locations/index.d.ts +0 -2
- package/locations/services/sc-location.service.d.ts +0 -65
- package/news/classes/index.d.ts +0 -1
- package/news/classes/sc-news.d.ts +0 -38
- package/news/index.d.ts +0 -4
- package/news/interfaces/index.d.ts +0 -2
- package/news/interfaces/sc-i-news-tile.d.ts +0 -22
- package/news/interfaces/sc-i-news.d.ts +0 -11
- package/news/services/index.d.ts +0 -1
- package/news/services/sc-news.service.d.ts +0 -48
- package/news/tokens/index.d.ts +0 -1
- package/news/tokens/sc-count-last-news.d.ts +0 -5
- package/notifications/dto/index.d.ts +0 -2
- package/notifications/dto/sc-i-notifications-count.d.ts +0 -17
- package/notifications/dto/sc-i-user-notification.d.ts +0 -68
- package/notifications/enums/index.d.ts +0 -2
- package/notifications/enums/sc-notification-action-types.d.ts +0 -25
- package/notifications/enums/sc-notification-level-names.d.ts +0 -17
- package/notifications/index.d.ts +0 -3
- package/notifications/services/sc-notifications.service.d.ts +0 -104
- package/order/classes/index.d.ts +0 -11
- package/order/classes/sc-delivery-cost.d.ts +0 -34
- package/order/classes/sc-i-order-history.d.ts +0 -23
- package/order/classes/sc-order-base.d.ts +0 -32
- package/order/classes/sc-order-delivery.d.ts +0 -24
- package/order/classes/sc-order-draft-short.d.ts +0 -22
- package/order/classes/sc-order-draft.d.ts +0 -63
- package/order/classes/sc-order-history-user.d.ts +0 -21
- package/order/classes/sc-order-item.d.ts +0 -98
- package/order/classes/sc-order-payment.d.ts +0 -19
- package/order/classes/sc-order-short.d.ts +0 -48
- package/order/classes/sc-order.d.ts +0 -112
- package/order/enums/index.d.ts +0 -3
- package/order/enums/sc-delivery-type.d.ts +0 -13
- package/order/enums/sc-order-draft-type.d.ts +0 -13
- package/order/enums/sc-payment-type.d.ts +0 -29
- package/order/index.d.ts +0 -5
- package/order/internal/index.d.ts +0 -14
- package/order/internal/sc-i-delivery-cost-dto.d.ts +0 -20
- package/order/internal/sc-i-new-order-draft-request.d.ts +0 -13
- package/order/internal/sc-i-new-order-item-base.d.ts +0 -21
- package/order/internal/sc-i-new-order-item-measured.d.ts +0 -10
- package/order/internal/sc-i-new-order.d.ts +0 -48
- package/order/internal/sc-i-order-base.d.ts +0 -25
- package/order/internal/sc-i-order-draft-list-params.d.ts +0 -32
- package/order/internal/sc-i-order-draft-short.d.ts +0 -15
- package/order/internal/sc-i-order-draft.d.ts +0 -43
- package/order/internal/sc-i-order-item.d.ts +0 -91
- package/order/internal/sc-i-order-loader.d.ts +0 -51
- package/order/internal/sc-i-order-short.d.ts +0 -48
- package/order/internal/sc-i-order.d.ts +0 -112
- package/order/internal/sc-i-update-order-order-request.d.ts +0 -9
- package/order/services/index.d.ts +0 -2
- package/order/services/sc-order-drafts.service.d.ts +0 -118
- package/order/services/sc-orders.service.d.ts +0 -134
- package/order/tokens/index.d.ts +0 -1
- package/order/tokens/sc-order-loader.token.d.ts +0 -26
- package/pagination/dto/index.d.ts +0 -6
- package/pagination/dto/sc-i-paginate.d.ts +0 -19
- package/pagination/dto/sc-i-pagination-links.d.ts +0 -21
- package/pagination/dto/sc-i-pagination-meta.d.ts +0 -33
- package/pagination/dto/sc-i-pagination-params.d.ts +0 -17
- package/pagination/dto/sc-i-range-filter.d.ts +0 -15
- package/pagination/dto/sc-i-sort-order.d.ts +0 -15
- package/pagination/index.d.ts +0 -2
- package/pagination/services/sc-pagination.service.d.ts +0 -83
- package/pipes/index.d.ts +0 -2
- package/pipes/sc-id-or-slug.pipe.d.ts +0 -25
- package/pipes/sc-media-image-transformer.pipe.d.ts +0 -26
- package/providers/index.d.ts +0 -7
- package/providers/interfaces/index.d.ts +0 -3
- package/providers/interfaces/sc-i-terminal-provider.d.ts +0 -13
- package/providers/interfaces/sc-i-typed-class-provider.d.ts +0 -10
- package/providers/interfaces/sc-i-typed-value-provider.d.ts +0 -10
- package/providers/sc-category.providers.d.ts +0 -11
- package/providers/search-term.providers.d.ts +0 -27
- package/providers/ssr.providers.d.ts +0 -14
- package/providers/terminal.providers.d.ts +0 -23
- package/providers/types/sc-provider.d.ts +0 -8
- package/providers/virtual-category.providers.d.ts +0 -11
- package/public-api.d.ts +0 -39
- package/questionnaire/dto/index.d.ts +0 -4
- package/questionnaire/dto/sc-i-question-answer.d.ts +0 -13
- package/questionnaire/dto/sc-i-questionnaire.d.ts +0 -22
- package/questionnaire/dto/sc-question-possible-answer.d.ts +0 -17
- package/questionnaire/dto/sc-questionnaire-question.d.ts +0 -26
- package/questionnaire/enums/sc-questionnaire-status-enum.d.ts +0 -21
- package/questionnaire/index.d.ts +0 -3
- package/questionnaire/services/sc-questionnaire.service.d.ts +0 -51
- package/reclamation/dto/index.d.ts +0 -5
- package/reclamation/dto/sc-i-reclamation-on-data-create-item.d.ts +0 -17
- package/reclamation/dto/sc-i-reclamation-on-data-create.d.ts +0 -39
- package/reclamation/dto/sc-i-reclamation.d.ts +0 -34
- package/reclamation/dto/sc-reclamation-item.d.ts +0 -34
- package/reclamation/dto/sc-reclamation-short.d.ts +0 -29
- package/reclamation/index.d.ts +0 -3
- package/reclamation/interfaces/sc-i-pagination-params.d.ts +0 -23
- package/reclamation/services/sc-reclamation.service.d.ts +0 -59
- package/references/dto/index.d.ts +0 -4
- package/references/dto/sc-i-currency.d.ts +0 -29
- package/references/dto/sc-i-product-unit.d.ts +0 -29
- package/references/dto/sc-i-references-types.d.ts +0 -21
- package/references/dto/sc-i-sales-direction.d.ts +0 -21
- package/references/enums/index.d.ts +0 -5
- package/references/enums/sc-opf-list.d.ts +0 -21
- package/references/enums/sc-order-state-status.d.ts +0 -42
- package/references/enums/sc-payment-status.d.ts +0 -62
- package/references/enums/sc-reclamation-status.d.ts +0 -22
- package/references/enums/sc-reference-name.d.ts +0 -73
- package/references/index.d.ts +0 -3
- package/references/services/index.d.ts +0 -1
- package/references/services/sc-references.service.d.ts +0 -152
- package/search/dto/sc-i-simple-search.d.ts +0 -56
- package/search/index.d.ts +0 -2
- package/search/services/sc-search.service.d.ts +0 -61
- package/seo/classes/index.d.ts +0 -1
- package/seo/classes/schema-org-factory.d.ts +0 -95
- package/seo/index.d.ts +0 -4
- package/seo/interfaces/index.d.ts +0 -4
- package/seo/interfaces/sc-i-breadcrumb-item.d.ts +0 -25
- package/seo/interfaces/sc-i-default-page-meta.d.ts +0 -17
- package/seo/interfaces/sc-i-seo-resource.d.ts +0 -14
- package/seo/interfaces/sc-i-seo.d.ts +0 -40
- package/seo/services/index.d.ts +0 -1
- package/seo/services/sc-seo.service.d.ts +0 -129
- package/seo/types/index.d.ts +0 -1
- package/seo/types/robots-tag-type.d.ts +0 -4
- package/suggestion/dto/index.d.ts +0 -6
- package/suggestion/dto/sc-i-suggestion-address.d.ts +0 -98
- package/suggestion/dto/sc-i-suggestion-bank.d.ts +0 -33
- package/suggestion/dto/sc-i-suggestion-email.d.ts +0 -17
- package/suggestion/dto/sc-i-suggestion-fio.d.ts +0 -25
- package/suggestion/dto/sc-i-suggestion-organization.d.ts +0 -50
- package/suggestion/dto/sc-suggestion.d.ts +0 -9
- package/suggestion/enums/sc-i-suggestion-type.d.ts +0 -25
- package/suggestion/index.d.ts +0 -3
- package/suggestion/services/sc-suggestion.service.d.ts +0 -28
- package/tokens/index.d.ts +0 -18
- package/tokens/notification-options.d.ts +0 -22
- package/tokens/sc-api-keys.d.ts +0 -6
- package/tokens/sc-cache-lifetime.d.ts +0 -6
- package/tokens/sc-company-info.d.ts +0 -6
- package/tokens/sc-company-name.d.ts +0 -5
- package/tokens/sc-configurator-components.d.ts +0 -7
- package/tokens/sc-configurator-settings.d.ts +0 -7
- package/tokens/sc-date-format.d.ts +0 -6
- package/tokens/sc-default-page-meta.d.ts +0 -14
- package/tokens/sc-feedback-api.d.ts +0 -6
- package/tokens/sc-id-or-slug-in-route.d.ts +0 -5
- package/tokens/sc-is-hidden-error-alert.d.ts +0 -9
- package/tokens/sc-linear-values-token.d.ts +0 -9
- package/tokens/sc-path-image-not-found.d.ts +0 -5
- package/tokens/sc-product-pagination-options.d.ts +0 -14
- package/tokens/sc-release.d.ts +0 -6
- package/tokens/sc-update-interval.d.ts +0 -6
- package/tokens/sc-urls.d.ts +0 -6
- package/ui/index.d.ts +0 -2
- package/ui/services/sc-ui.service.d.ts +0 -122
- package/ui/utils/filter-changed-by-key.d.ts +0 -9
- package/user/dto/index.d.ts +0 -17
- package/user/dto/sc-approved-data.d.ts +0 -13
- package/user/dto/sc-i-bank.d.ts +0 -21
- package/user/dto/sc-i-change-password.d.ts +0 -13
- package/user/dto/sc-i-contact-base.d.ts +0 -21
- package/user/dto/sc-i-contact-on-data-create.d.ts +0 -19
- package/user/dto/sc-i-contact-relation-on-data-create.d.ts +0 -5
- package/user/dto/sc-i-contact-relation.d.ts +0 -13
- package/user/dto/sc-i-contact-with-relations.d.ts +0 -28
- package/user/dto/sc-i-contact.d.ts +0 -14
- package/user/dto/sc-i-manager.d.ts +0 -38
- package/user/dto/sc-i-password-on-data-create.d.ts +0 -17
- package/user/dto/sc-i-phone-on-data-approve.d.ts +0 -13
- package/user/dto/sc-i-simple-user-on-data-create.d.ts +0 -42
- package/user/dto/sc-i-user-on-data-create.d.ts +0 -46
- package/user/dto/sc-i-user-on-data-update.d.ts +0 -39
- package/user/dto/sc-user-metadata.d.ts +0 -46
- package/user/dto/sc-user.d.ts +0 -97
- package/user/enums/index.d.ts +0 -2
- package/user/enums/sc-client-type.d.ts +0 -17
- package/user/enums/sc-user-type.d.ts +0 -13
- package/user/index.d.ts +0 -5
- package/user/internal/dto/index.d.ts +0 -1
- package/user/internal/dto/sc-i-user-dto.d.ts +0 -80
- package/user/services/sc-user.service.d.ts +0 -118
- package/user/tokens/index.d.ts +0 -1
- package/user/tokens/sc-user-providers.d.ts +0 -7
- package/user-metrika/dto/index.d.ts +0 -1
- package/user-metrika/dto/sc-i-user-metrika-event.d.ts +0 -14
- package/user-metrika/enums/index.d.ts +0 -1
- package/user-metrika/enums/sc-user-metrika-goals-enum.d.ts +0 -334
- package/user-metrika/index.d.ts +0 -3
- package/user-metrika/services/index.d.ts +0 -1
- package/user-metrika/services/sc-user-metrika.service.d.ts +0 -43
- package/utils/phone-fotmatter/index.d.ts +0 -1
- package/utils/phone-fotmatter/sc-phone.service.d.ts +0 -36
- package/utm/index.d.ts +0 -2
- package/utm/interfaces/index.d.ts +0 -2
- package/utm/interfaces/sc-utm-params.d.ts +0 -25
- package/utm/interfaces/sc-utm.d.ts +0 -25
- package/utm/services/index.d.ts +0 -1
- package/utm/services/sc-utm.service.d.ts +0 -96
- package/vCard/index.d.ts +0 -1
- package/vCard/sc-v-card.service.d.ts +0 -51
- package/vacancies/classes/index.d.ts +0 -2
- package/vacancies/classes/sc-vacancies-list.d.ts +0 -29
- package/vacancies/classes/sc-vacancy.d.ts +0 -37
- package/vacancies/index.d.ts +0 -4
- package/vacancies/interfaces/index.d.ts +0 -4
- package/vacancies/interfaces/sc-i-employment.d.ts +0 -13
- package/vacancies/interfaces/sc-i-experience.d.ts +0 -13
- package/vacancies/interfaces/sc-i-salary.d.ts +0 -21
- package/vacancies/interfaces/sc-i-vacancies-data-source.d.ts +0 -13
- package/vacancies/internal/dto/index.d.ts +0 -2
- package/vacancies/internal/dto/sc-i-vacancies-list.d.ts +0 -24
- package/vacancies/internal/dto/sc-i-vacancy.d.ts +0 -32
- package/vacancies/services/index.d.ts +0 -1
- package/vacancies/services/sc-vacancies.service.d.ts +0 -31
- package/vacancies/tokens/index.d.ts +0 -1
- package/vacancies/tokens/sc-vacancies-datasource.d.ts +0 -6
- package/verification/index.d.ts +0 -2
- package/verification/interfaces/sc-i-phone-check.d.ts +0 -13
- package/verification/services/sc-verification.service.d.ts +0 -49
- package/warehouse/dto/index.d.ts +0 -2
- package/warehouse/dto/sc-i-warehouse-stock-count.d.ts +0 -17
- package/warehouse/dto/sc-warehouse.d.ts +0 -42
- package/warehouse/index.d.ts +0 -2
- package/warehouse/services/sc-warehouse.service.d.ts +0 -63
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, Inject, inject, Injectable } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { tuiIsPresent } from '@taiga-ui/cdk';
|
|
4
|
-
import { catchError, expand, filter, first, map, of, shareReplay, skip, switchMap, takeWhile, tap, toArray } from 'rxjs';
|
|
5
|
-
import { ScIdOrSlugPipe } from '../../pipes/sc-id-or-slug.pipe';
|
|
6
|
-
import { SC_CACHE_LIFETIME } from '../../tokens/sc-cache-lifetime';
|
|
7
|
-
import { SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT } from '../../tokens/sc-is-hidden-error-alert';
|
|
8
|
-
import { SC_URLS } from '../../tokens/sc-urls';
|
|
9
|
-
import { ScUserService } from '../../user/services/sc-user.service';
|
|
10
|
-
import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
|
|
11
|
-
import { ScUserMetrikaGoalsEnum } from '../../user-metrika/enums/sc-user-metrika-goals-enum';
|
|
12
|
-
import { ScCachedItem } from '../classes';
|
|
13
|
-
import { ScCategory } from '../dto/sc-category';
|
|
14
|
-
import { ScProduct } from '../dto/sc-product';
|
|
15
|
-
import { ScVirtualCategory } from '../dto/sc-virtual-category';
|
|
16
|
-
import { ScMimeTypes } from '../enums/sc-mime-types';
|
|
17
|
-
import { SC_COUNT_FIRST_DISCOUNTED_PRODUCTS } from '../tokens/sc-count-first-discounted-products';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "@angular/common/http";
|
|
20
|
-
import * as i2 from "../../ui/services/sc-ui.service";
|
|
21
|
-
import * as i3 from "../../converters/services/sc-converters.service";
|
|
22
|
-
import * as i4 from "../../user-metrika/services/sc-user-metrika.service";
|
|
23
|
-
/**
|
|
24
|
-
* Сервис для работы с каталогом.
|
|
25
|
-
*/
|
|
26
|
-
export class ScCatalogService {
|
|
27
|
-
/**
|
|
28
|
-
* Инициализирует экземпляр класса {@link ScCatalogService}.
|
|
29
|
-
*
|
|
30
|
-
* @param http Сервис для выполнения HTTP-запросов.
|
|
31
|
-
* @param urls Список ссылок на разделы backend'a.
|
|
32
|
-
* @param uiService Сервис для работы с UI.
|
|
33
|
-
* @param convertersService Сервис конвертации данных.
|
|
34
|
-
* @param cacheLifeTime Объект с информацией о времени жизни данных.
|
|
35
|
-
* @param userMetrikaService Сервис для сбора метрик о действиях пользователей.
|
|
36
|
-
*/
|
|
37
|
-
constructor(http, urls, uiService, convertersService, cacheLifeTime, userMetrikaService) {
|
|
38
|
-
this.http = http;
|
|
39
|
-
this.urls = urls;
|
|
40
|
-
this.uiService = uiService;
|
|
41
|
-
this.convertersService = convertersService;
|
|
42
|
-
this.cacheLifeTime = cacheLifeTime;
|
|
43
|
-
this.userMetrikaService = userMetrikaService;
|
|
44
|
-
/**
|
|
45
|
-
* {@link Map} коллекция пар ключ-значение для категорий каталога.
|
|
46
|
-
*
|
|
47
|
-
* @deprecated
|
|
48
|
-
*/
|
|
49
|
-
this.idCategoryMap = new Map();
|
|
50
|
-
/**
|
|
51
|
-
* {@link Map} коллекция пар ключ-значение для виртуальных категорий.
|
|
52
|
-
*/
|
|
53
|
-
this.virtualCategoryMap = new Map();
|
|
54
|
-
/**
|
|
55
|
-
* {@link Map} коллекция пар ключ-значение для кэшированных категорий каталога.
|
|
56
|
-
*/
|
|
57
|
-
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
|
|
58
|
-
this.categoryMap = new Map();
|
|
59
|
-
/**
|
|
60
|
-
* {@link Map} коллекция пар ключ-значение для продуктов каталога.
|
|
61
|
-
*/
|
|
62
|
-
this.productMap = new Map();
|
|
63
|
-
/**
|
|
64
|
-
* {@link Map} коллекция пар ключ-значение для кэшированных товаров категории каталога.
|
|
65
|
-
*/
|
|
66
|
-
this.categoryProductsMap = new Map();
|
|
67
|
-
/**
|
|
68
|
-
* {@link Map} коллекция пар ключ-значение для кэширования истории цен.
|
|
69
|
-
*/
|
|
70
|
-
this.productHistoryMap = new Map();
|
|
71
|
-
/**
|
|
72
|
-
* Пайп, возвращающий идентификатор или символьное обозначение (slug) исходя из настроек окружения.
|
|
73
|
-
*/
|
|
74
|
-
this.idOrSlugPipe = inject(ScIdOrSlugPipe);
|
|
75
|
-
/**
|
|
76
|
-
* {@link Map} коллекция пар ключ-значение для сопоставления slug и id категорий при кешировании запросов, если идентификатор отличается от установленного в проекте (slug/id).
|
|
77
|
-
*/
|
|
78
|
-
this.categoryIdOrSlugMap = new Map();
|
|
79
|
-
/**
|
|
80
|
-
* {@link Map} коллекция пар ключ-значение для сопоставления slug и id товаров при кешировании запросов, если идентификатор отличается от установленного в проекте (slug/id).
|
|
81
|
-
*/
|
|
82
|
-
this.productIdOrSlugMap = new Map();
|
|
83
|
-
/**
|
|
84
|
-
* Число первых записей товаров со скидкой.
|
|
85
|
-
*/
|
|
86
|
-
this.countFirstDiscountedProducts = inject(SC_COUNT_FIRST_DISCOUNTED_PRODUCTS);
|
|
87
|
-
/**
|
|
88
|
-
* Сервис информации о пользователе.
|
|
89
|
-
*/
|
|
90
|
-
this.userService = inject(ScUserService);
|
|
91
|
-
/**
|
|
92
|
-
* Ссылка на жизненный цикл сервиса.
|
|
93
|
-
*/
|
|
94
|
-
this.destroyRef = inject(DestroyRef);
|
|
95
|
-
/**
|
|
96
|
-
* {@link Observable} изменения списка товаров со скидкой.
|
|
97
|
-
*/
|
|
98
|
-
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({ refCount: true, bufferSize: 1 }));
|
|
99
|
-
/**
|
|
100
|
-
* {@link Observable} изменения списка из первых товаров со скидкой.
|
|
101
|
-
*/
|
|
102
|
-
this.firstDiscountedProducts$ = this.firstDiscounted$.pipe(map((data) => data?.data ?? []));
|
|
103
|
-
/**
|
|
104
|
-
* {@link Observable} изменения общего колличества товара со скидкой.
|
|
105
|
-
*/
|
|
106
|
-
this.countDiscountedProducts$ = this.firstDiscounted$.pipe(map((data) => data?.meta.total ?? 0));
|
|
107
|
-
this.userService
|
|
108
|
-
.getUserChange$()
|
|
109
|
-
.pipe(skip(1), takeUntilDestroyed(this.destroyRef))
|
|
110
|
-
.subscribe(() => {
|
|
111
|
-
this.clearCache();
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Очищает данные каталога, привязанные к текущему пользователю.
|
|
116
|
-
*/
|
|
117
|
-
clearCache() {
|
|
118
|
-
this.idCategoryMap.clear();
|
|
119
|
-
this.categoryMap.clear();
|
|
120
|
-
this.productHistoryMap.clear();
|
|
121
|
-
this.productMap.clear();
|
|
122
|
-
this.categoryProductsMap.clear();
|
|
123
|
-
this.virtualCategoryMap.clear();
|
|
124
|
-
this.categoryIdOrSlugMap.clear();
|
|
125
|
-
this.productIdOrSlugMap.clear();
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Возвращает категорию из коллекции каталога, если её срок жизни не истёк.
|
|
129
|
-
*
|
|
130
|
-
* @deprecated Удалить в рамках задачи TASK[#10153].
|
|
131
|
-
*
|
|
132
|
-
* @param categoryIdOrSlug Идентификатор или slug категории товаров.
|
|
133
|
-
*/
|
|
134
|
-
getCategoryFromMap(categoryIdOrSlug) {
|
|
135
|
-
const category = this.idCategoryMap.get(categoryIdOrSlug?.toString());
|
|
136
|
-
if (category && (!category.parentCategory || !category.loadedAt || category.cachedDataIsActual(this.cacheLifeTime.categoryData))) {
|
|
137
|
-
return category;
|
|
138
|
-
}
|
|
139
|
-
this.idCategoryMap.delete(categoryIdOrSlug?.toString());
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Создает запрос получения списка категорий товаров или список корневых категорий, если идентификатор категории не указан.
|
|
144
|
-
*
|
|
145
|
-
* @param categoryIdOrSlug Идентификатор или slug категории товаров.
|
|
146
|
-
*/
|
|
147
|
-
getCategoryData$(categoryIdOrSlug) {
|
|
148
|
-
return this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug ?? ''}`).pipe(map((category) => new ScCategory(category)), tap((category) => {
|
|
149
|
-
if (categoryIdOrSlug) {
|
|
150
|
-
this.categoryIdOrSlugMap.set(typeof categoryIdOrSlug === 'string' ? category.id : category.slug, categoryIdOrSlug);
|
|
151
|
-
}
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Возвращает {@link Observable} корневых категорий с настройками отображения, чтобы реагировать на изменения.
|
|
156
|
-
*/
|
|
157
|
-
getFilteredRootCategories$() {
|
|
158
|
-
return this.uiService.getHiddenCategoriesList$().pipe(switchMap((filters) => this.getRootCategories$().pipe(filter(tuiIsPresent), map((data) => data.filter((category) => category.id && !filters.includes(category.id))))));
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Возвращает {@link Observable} содержимого виртуальной категории.
|
|
162
|
-
*
|
|
163
|
-
* @param slug Символьный идентификатор виртуальной категории.
|
|
164
|
-
*/
|
|
165
|
-
getVirtualCategoryCached$(slug) {
|
|
166
|
-
let cachedItem = this.virtualCategoryMap.get(slug);
|
|
167
|
-
if (!cachedItem) {
|
|
168
|
-
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http.get(`${this.urls.apiUrl}/catalog/v-categories/${slug}`).pipe(map((category) => new ScVirtualCategory(category))), null);
|
|
169
|
-
this.virtualCategoryMap.set(slug, cachedItem);
|
|
170
|
-
}
|
|
171
|
-
if (!cachedItem.cachedDataIsActual()) {
|
|
172
|
-
cachedItem.update();
|
|
173
|
-
}
|
|
174
|
-
return cachedItem.item$;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Возвращает {@link Observable} содержимого категории.
|
|
178
|
-
*
|
|
179
|
-
* @param categoryIdOrSlug Идентификатор или slug категории товаров.
|
|
180
|
-
*/
|
|
181
|
-
getCategoryCached$(categoryIdOrSlug) {
|
|
182
|
-
if (categoryIdOrSlug && this.categoryIdOrSlugMap.has(categoryIdOrSlug)) {
|
|
183
|
-
// eslint-disable-next-line no-param-reassign
|
|
184
|
-
categoryIdOrSlug = this.categoryIdOrSlugMap.get(categoryIdOrSlug);
|
|
185
|
-
}
|
|
186
|
-
let cachedItem = this.categoryMap.get(categoryIdOrSlug?.toString());
|
|
187
|
-
if (!cachedItem) {
|
|
188
|
-
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.getCategoryData$(categoryIdOrSlug), null);
|
|
189
|
-
this.categoryMap.set(categoryIdOrSlug?.toString(), cachedItem);
|
|
190
|
-
}
|
|
191
|
-
if (!cachedItem.cachedDataIsActual()) {
|
|
192
|
-
cachedItem.update();
|
|
193
|
-
}
|
|
194
|
-
return cachedItem.item$;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Создает запрос получения корневых категорий.
|
|
198
|
-
*/
|
|
199
|
-
getNullCategory$() {
|
|
200
|
-
return this.getCategoryCached$();
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Создает запрос получения корневых категорий.
|
|
204
|
-
*/
|
|
205
|
-
getRootCategories$() {
|
|
206
|
-
return this.getNullCategory$().pipe(map((nullCategory) => nullCategory?.categories ?? null));
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Раскрывает каталог до указанной категории.
|
|
210
|
-
*
|
|
211
|
-
* @param categoryIdOrSlug Идентификатор или slug категории, до которой необходимо раскрыть каталог.
|
|
212
|
-
* @returns Возвращает список раскрытых категорий.
|
|
213
|
-
*/
|
|
214
|
-
loadCatalogTreeCached$(categoryIdOrSlug) {
|
|
215
|
-
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())),
|
|
216
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition,sonarjs/different-types-comparison
|
|
217
|
-
takeWhile((parentCategory) => parentCategory.parentCategory !== undefined, true), toArray(),
|
|
218
|
-
// eslint-disable-next-line sonarjs/no-misleading-array-reverse
|
|
219
|
-
map((categories) => categories.reverse()));
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Возвращает {@link Observable} получения истории изменения цен на продукт для клиента.
|
|
223
|
-
*
|
|
224
|
-
* @param product Продукт, для которого запрашивается цена.
|
|
225
|
-
* @returns История изменения цен на продукт для клиента в формате {@link Observable} из запроса.
|
|
226
|
-
*/
|
|
227
|
-
getPriceHistory$(product) {
|
|
228
|
-
let cachedItem = this.productHistoryMap.get(product.id.toString());
|
|
229
|
-
if (!cachedItem) {
|
|
230
|
-
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http
|
|
231
|
-
.get(`${this.urls.apiUrl}/catalog/products/${product.id}/price-history`, {
|
|
232
|
-
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
233
|
-
})
|
|
234
|
-
.pipe(catchError(() => of({}))), null);
|
|
235
|
-
this.productHistoryMap.set(product.id.toString(), cachedItem);
|
|
236
|
-
}
|
|
237
|
-
if (!cachedItem.cachedDataIsActual()) {
|
|
238
|
-
cachedItem.update();
|
|
239
|
-
}
|
|
240
|
-
return cachedItem.item$;
|
|
241
|
-
}
|
|
242
|
-
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
243
|
-
getProducts$(params) {
|
|
244
|
-
return this.http
|
|
245
|
-
.get(`${this.urls.apiUrl}/catalog/products`, {
|
|
246
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
247
|
-
params: this.convertersService.toHttpParams({ ...params }, { nonNullable: true }),
|
|
248
|
-
})
|
|
249
|
-
.pipe(
|
|
250
|
-
// eslint-disable-next-line sonarjs/function-return-type
|
|
251
|
-
map((data) => {
|
|
252
|
-
if ('meta' in data) {
|
|
253
|
-
const cloneData = structuredClone(data);
|
|
254
|
-
cloneData.data = cloneData.data.map((item) => new ScProduct(item));
|
|
255
|
-
return cloneData;
|
|
256
|
-
}
|
|
257
|
-
return data.map((item, index) => new ScProduct(item, index));
|
|
258
|
-
}));
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Создает запрос получения списка товаров категории и кэширует его.
|
|
262
|
-
*
|
|
263
|
-
* @param params Параметры запроса товаров категории.
|
|
264
|
-
*/
|
|
265
|
-
getProductsCategoryCached$(params) {
|
|
266
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
267
|
-
if (!params.categoryId && !params.categorySlug) {
|
|
268
|
-
throw new Error('Не указан id/slug категории.');
|
|
269
|
-
}
|
|
270
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access
|
|
271
|
-
const cachedKey = (params.categorySlug ?? params.categoryId);
|
|
272
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
273
|
-
let cachedItem = this.categoryProductsMap.get(cachedKey.toString());
|
|
274
|
-
if (!cachedItem) {
|
|
275
|
-
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.getProducts$(params), null);
|
|
276
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call
|
|
277
|
-
this.categoryProductsMap.set(cachedKey.toString(), cachedItem);
|
|
278
|
-
}
|
|
279
|
-
if (!cachedItem.cachedDataIsActual()) {
|
|
280
|
-
cachedItem.update();
|
|
281
|
-
}
|
|
282
|
-
return cachedItem.item$;
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Возвращает информацию об указанном продукте.
|
|
286
|
-
*
|
|
287
|
-
* @param productIdOrSlug Идентификатор или slug товара/услуги.
|
|
288
|
-
*/
|
|
289
|
-
getProductData$(productIdOrSlug) {
|
|
290
|
-
return this.http.get(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}`).pipe(map((productDTO) => new ScProduct(productDTO)), tap((product) => {
|
|
291
|
-
if (productIdOrSlug) {
|
|
292
|
-
this.productIdOrSlugMap.set(typeof productIdOrSlug === 'string' ? product.id : product.slug, productIdOrSlug);
|
|
293
|
-
}
|
|
294
|
-
}));
|
|
295
|
-
}
|
|
296
|
-
getProductDataCached$(productIdOrSlug) {
|
|
297
|
-
const valueFromMap = this.productIdOrSlugMap.get(productIdOrSlug);
|
|
298
|
-
if (valueFromMap) {
|
|
299
|
-
// eslint-disable-next-line no-param-reassign
|
|
300
|
-
productIdOrSlug = valueFromMap;
|
|
301
|
-
}
|
|
302
|
-
let cachedItem = this.productMap.get(productIdOrSlug.toString());
|
|
303
|
-
if (!cachedItem) {
|
|
304
|
-
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.getProductData$(productIdOrSlug), null);
|
|
305
|
-
this.productMap.set(productIdOrSlug.toString(), cachedItem);
|
|
306
|
-
}
|
|
307
|
-
if (!cachedItem.cachedDataIsActual()) {
|
|
308
|
-
cachedItem.update();
|
|
309
|
-
}
|
|
310
|
-
return cachedItem.item$;
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Создаёт запрос на получение генерируемого файла прайс-листа в формате {@link Blob}, и выгружает пользователю в браузер.
|
|
314
|
-
*
|
|
315
|
-
* @param type {@link ScMimeTypes} запрашиваемого файла.
|
|
316
|
-
* @param categoryId Идентификатор категории, для которой загружается прайс-лист.
|
|
317
|
-
*/
|
|
318
|
-
downloadPrice$(type, categoryId) {
|
|
319
|
-
const params = this.convertersService.toHttpParams({
|
|
320
|
-
format: Object.keys(ScMimeTypes)[Object.values(ScMimeTypes).indexOf(type)],
|
|
321
|
-
category_id: categoryId ?? null,
|
|
322
|
-
}, { nonNullable: true });
|
|
323
|
-
return this.http.get(`${this.urls.apiUrl}/catalog/download`, { responseType: 'blob', params: params }).pipe(map((blob) => new Blob([blob], { type: type })), tap(() => {
|
|
324
|
-
this.userMetrikaService.emitUserMetrikaEvent({
|
|
325
|
-
target: ScUserMetrikaGoalsEnum.catalogPriceDownload,
|
|
326
|
-
params: {
|
|
327
|
-
category_id: categoryId ?? 'root',
|
|
328
|
-
price_type: type,
|
|
329
|
-
},
|
|
330
|
-
});
|
|
331
|
-
}));
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Запрос на уведомление пользователя о поступлении продукта.
|
|
335
|
-
*
|
|
336
|
-
* @param productIdOrSlug Идентификатор или slug товара.
|
|
337
|
-
* @param data Данные для запроса.
|
|
338
|
-
*/
|
|
339
|
-
getProductNotifyWhenInStock$(productIdOrSlug, data) {
|
|
340
|
-
return this.http.post(`${this.urls.apiUrl}/catalog/products/${productIdOrSlug}/stock-notify`, data);
|
|
341
|
-
}
|
|
342
|
-
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 }); }
|
|
343
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogService, providedIn: 'root' }); }
|
|
344
|
-
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogService, decorators: [{
|
|
346
|
-
type: Injectable,
|
|
347
|
-
args: [{
|
|
348
|
-
providedIn: 'root',
|
|
349
|
-
}]
|
|
350
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
351
|
-
type: Inject,
|
|
352
|
-
args: [SC_URLS]
|
|
353
|
-
}] }, { type: i2.ScUIService }, { type: i3.ScConvertersService }, { type: undefined, decorators: [{
|
|
354
|
-
type: Inject,
|
|
355
|
-
args: [SC_CACHE_LIFETIME]
|
|
356
|
-
}] }, { type: i4.ScUserMetrikaService }] });
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTXJJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUU3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1C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b2luc3BlY3Rpb24gVHlwZVNjcmlwdFZhbGlkYXRlVHlwZXNcblxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGV4cGFuZCwgZmlsdGVyLCBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHNraXAsIHN3aXRjaE1hcCwgdGFrZVdoaWxlLCB0YXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJQ2FjaGVMaWZldGltZSB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLWNhY2hlLWxpZmV0aW1lJztcbmltcG9ydCB7IFNjSVVybHMgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS11cmxzJztcbmltcG9ydCB7IFNjQ29udmVydGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb252ZXJ0ZXJzL3NlcnZpY2VzL3NjLWNvbnZlcnRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSB9IGZyb20gJy4uLy4uL3BhZ2luYXRpb24vZHRvL3NjLWktcGFnaW5hdGUnO1xuaW1wb3J0IHsgU2NJZE9yU2x1Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zYy1pZC1vci1zbHVnLnBpcGUnO1xuaW1wb3J0IHsgU0NfQ0FDSEVfTElGRVRJTUUgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtY2FjaGUtbGlmZXRpbWUnO1xuaW1wb3J0IHsgU0NfSVNfSElEREVOX0VSUk9SX0FMRVJUX0hUVFBfQ09OVEVYVCB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy1pcy1oaWRkZW4tZXJyb3ItYWxlcnQnO1xuaW1wb3J0IHsgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy11cmxzJztcbmltcG9ydCB7IFNjVUlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkvc2VydmljZXMvc2MtdWkuc2VydmljZSc7XG5pbXBvcnQgeyBTY1VzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy9zYy11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPIH0gZnJvbSAnLi4vLi4vdXNlci90b2tlbnMvc2MtdXNlci1wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0NhY2hlZEl0ZW0gfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IFNjQ2F0ZWdvcnkgfSBmcm9tICcuLi9kdG8vc2MtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJUHJvZHVjdE5vdGlmeVdoZW5JblN0b2NrIH0gZnJvbSAnLi4vZHRvL3NjLWktcHJvZHVjdC1ub3RpZnktd2hlbi1pbi1zdG9jayc7XG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9kdG8vc2MtcHJvZHVjdCc7XG5pbXBvcnQgeyBTY1ZpcnR1YWxDYXRlZ29yeSB9IGZyb20gJy4uL2R0by9zYy12aXJ0dWFsLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjTWltZVR5cGVzIH0gZnJvbSAnLi4vZW51bXMvc2MtbWltZS10eXBlcyc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeVByb2R1Y3RQYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnktcHJvZHVjdC1wYXJhbXMnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS1jYXRlZ29yeS1wcm9kdWN0cy1wYWdpbmF0aW9uLXBhcmFtcyc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NJVmlydHVhbENhdGVnb3J5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXZpcnR1YWwtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU0NfQ09VTlRfRklSU1RfRElTQ09VTlRFRF9QUk9EVUNUUyB9IGZyb20gJy4uL3Rva2Vucy9zYy1jb3VudC1maXJzdC1kaXNjb3VudGVkLXByb2R1Y3RzJztcbmltcG9ydCB7IFNjUHJpY2VIaXN0b3J5IH0gZnJvbSAnLi4vdHlwZXMvc2MtcHJpY2UtaGlzdG9yeSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhdGFsb2dTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC60LDRgtC10LPQvtGA0LjQuSDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlkQ2F0ZWdvcnlNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQsIFNjQ2F0ZWdvcnk+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQsIFNjQ2F0ZWdvcnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINCy0LjRgNGC0YPQsNC70YzQvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgdmlydHVhbENhdGVnb3J5TWFwOiBNYXA8c3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NWaXJ0dWFsQ2F0ZWdvcnk+PiA9IG5ldyBNYXA8c3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NWaXJ0dWFsQ2F0ZWdvcnk+PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutGN0YjQuNGA0L7QstCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5INC60LDRgtCw0LvQvtCz0LAuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuICAgIHByaXZhdGUgY2F0ZWdvcnlNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcgfCB2b2lkLCBTY0NhY2hlZEl0ZW08U2NDYXRlZ29yeT4+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcgfCB2b2lkLCBTY0NhY2hlZEl0ZW08U2NDYXRlZ29yeT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC/0YDQvtC00YPQutGC0L7QsiDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvZHVjdE1hcDogTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdD4+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3Q+PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutGN0YjQuNGA0L7QstCw0L3QvdGL0YUg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC60LDRgtCw0LvQvtCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVByb2R1Y3RzTWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+PiA9IG5ldyBNYXA8bnVtYmVyLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0W10+PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutGN0YjQuNGA0L7QstCw0L3QuNGPINC40YHRgtC+0YDQuNC4INGG0LXQvS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2R1Y3RIaXN0b3J5TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcmljZUhpc3Rvcnk+PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcmljZUhpc3Rvcnk+PigpO1xuXG4gICAgLyoqXG4gICAgICog0J/QsNC50L8sINCy0L7Qt9Cy0YDQsNGJ0LDRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdGF0L7QtNGPINC40Lcg0L3QsNGB0YLRgNC+0LXQuiDQvtC60YDRg9C20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZE9yU2x1Z1BpcGU6IFNjSWRPclNsdWdQaXBlID0gaW5qZWN0KFNjSWRPclNsdWdQaXBlKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0YHQvtC/0L7RgdGC0LDQstC70LXQvdC40Y8gc2x1ZyDQuCBpZCDQutCw0YLQtdCz0L7RgNC40Lkg0L/RgNC4INC60LXRiNC40YDQvtCy0LDQvdC40Lgg0LfQsNC/0YDQvtGB0L7Qsiwg0LXRgdC70Lgg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L7RgiDRg9GB0YLQsNC90L7QstC70LXQvdC90L7Qs9C+INCyINC/0YDQvtC10LrRgtC1IChzbHVnL2lkKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5SWRPclNsdWdNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZz4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDRgdC+0L/QvtGB0YLQsNCy0LvQtdC90LjRjyBzbHVnINC4IGlkINGC0L7QstCw0YDQvtCyINC/0YDQuCDQutC10YjQuNGA0L7QstCw0L3QuNC4INC30LDQv9GA0L7RgdC+0LIsINC10YHQu9C4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC+0YLQu9C40YfQsNC10YLRgdGPINC+0YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdC+0LPQviDQsiDQv9GA0L7QtdC60YLQtSAoc2x1Zy9pZCkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0SWRPclNsdWdNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZz4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICog0KfQuNGB0LvQviDQv9C10YDQstGL0YUg0LfQsNC/0LjRgdC10Lkg0YLQvtCy0LDRgNC+0LIg0YHQviDRgdC60LjQtNC60L7QuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50Rmlyc3REaXNjb3VudGVkUHJvZHVjdHM6IG51bWJlciA9IGluamVjdChTQ19DT1VOVF9GSVJTVF9ESVNDT1VOVEVEX1BST0RVQ1RTKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyU2VydmljZTogU2NVc2VyU2VydmljZSA9IGluamVjdChTY1VzZXJTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvdCwINC20LjQt9C90LXQvdC90YvQuSDRhtC40LrQuyDRgdC10YDQstC40YHQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDRgdC+INGB0LrQuNC00LrQvtC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmaXJzdERpc2NvdW50ZWQkOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsPiA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodXNlcikgPT5cbiAgICAgICAgICAgIHVzZXIuaXNHdWVzdCA/IG9mKG51bGwpIDogdGhpcy5nZXRQcm9kdWN0cyQoeyBmaWx0ZXJzOiB7IG9ubHlEaXNjb3VudGVkOiB0cnVlIH0sIHBhZ2luYXRlOiB0cnVlLCBwYWdlOiAxLCBwZXJQYWdlOiB0aGlzLmNvdW50Rmlyc3REaXNjb3VudGVkUHJvZHVjdHMgfSlcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDQuNC3INC/0LXRgNCy0YvRhSDRgtC+0LLQsNGA0L7QsiDRgdC+INGB0LrQuNC00LrQvtC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmaXJzdERpc2NvdW50ZWRQcm9kdWN0cyQ6IE9ic2VydmFibGU8U2NQcm9kdWN0W10+ID0gdGhpcy5maXJzdERpc2NvdW50ZWQkLnBpcGUobWFwKChkYXRhKSA9PiBkYXRhPy5kYXRhID8/IFtdKSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC+0LHRidC10LPQviDQutC+0LvQu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsCDRgdC+INGB0LrQuNC00LrQvtC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjb3VudERpc2NvdW50ZWRQcm9kdWN0cyQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuZmlyc3REaXNjb3VudGVkJC5waXBlKG1hcCgoZGF0YSkgPT4gZGF0YT8ubWV0YS50b3RhbCA/PyAwKSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQ2F0YWxvZ1NlcnZpY2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGh0dHAg0KHQtdGA0LLQuNGBINC00LvRjyDQstGL0L/QvtC70L3QtdC90LjRjyBIVFRQLdC30LDQv9GA0L7RgdC+0LIuXG4gICAgICogQHBhcmFtIHVybHMg0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKiBAcGFyYW0gdWlTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBIFVJLlxuICAgICAqIEBwYXJhbSBjb252ZXJ0ZXJzU2VydmljZSDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICogQHBhcmFtIGNhY2hlTGlmZVRpbWUg0J7QsdGK0LXQutGCINGBINC40L3RhNC+0YDQvNCw0YbQuNC10Lkg0L4g0LLRgNC10LzQtdC90Lgg0LbQuNC30L3QuCDQtNCw0L3QvdGL0YUuXG4gICAgICogQHBhcmFtIHVzZXJNZXRyaWthU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgQEluamVjdChTQ19VUkxTKSBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdWlTZXJ2aWNlOiBTY1VJU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZSxcbiAgICAgICAgQEluamVjdChTQ19DQUNIRV9MSUZFVElNRSkgcHJpdmF0ZSByZWFkb25seSBjYWNoZUxpZmVUaW1lOiBTY0lDYWNoZUxpZmV0aW1lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgICAgICAgLmdldFVzZXJDaGFuZ2UkKClcbiAgICAgICAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckNhY2hlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntGH0LjRidCw0LXRgiDQtNCw0L3QvdGL0LUg0LrQsNGC0LDQu9C+0LPQsCwg0L/RgNC40LLRj9C30LDQvdC90YvQtSDQuiDRgtC10LrRg9GJ0LXQvNGDINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaWRDYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICB0aGlzLmNhdGVnb3J5TWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucHJvZHVjdEhpc3RvcnlNYXAuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0TWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlQcm9kdWN0c01hcC5jbGVhcigpO1xuICAgICAgICB0aGlzLnZpcnR1YWxDYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0SWRPclNsdWdNYXAuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQutCw0YLQtdCz0L7RgNC40Y4g0LjQtyDQutC+0LvQu9C10LrRhtC40Lgg0LrQsNGC0LDQu9C+0LPQsCwg0LXRgdC70Lgg0LXRkSDRgdGA0L7QuiDQttC40LfQvdC4INC90LUg0LjRgdGC0ZHQui5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkINCj0LTQsNC70LjRgtGMINCyINGA0LDQvNC60LDRhSDQt9Cw0LTQsNGH0LggVEFTS1sjMTAxNTNdLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGVnb3J5SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0LrQsNGC0LXQs9C+0YDQuNC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXRlZ29yeUZyb21NYXAoY2F0ZWdvcnlJZE9yU2x1Zz86IG51bWJlciB8IHN0cmluZyk6IFNjQ2F0ZWdvcnkgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHRoaXMuaWRDYXRlZ29yeU1hcC5nZXQoY2F0ZWdvcnlJZE9yU2x1Zz8udG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYgKGNhdGVnb3J5ICYmICghY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnkgfHwgIWNhdGVnb3J5LmxvYWRlZEF0IHx8IGNhdGVnb3J5LmNhY2hlZERhdGFJc0FjdHVhbCh0aGlzLmNhY2hlTGlmZVRpbWUuY2F0ZWdvcnlEYXRhKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaWRDYXRlZ29yeU1hcC5kZWxldGUoY2F0ZWdvcnlJZE9yU2x1Zz8udG9TdHJpbmcoKSk7XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDQutCw0YLQtdCz0L7RgNC40Lkg0YLQvtCy0LDRgNC+0LIg0LjQu9C4INGB0L/QuNGB0L7QuiDQutC+0YDQvdC10LLRi9GFINC60LDRgtC10LPQvtGA0LjQuSwg0LXRgdC70Lgg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQsNGC0LXQs9C+0YDQuNC4INC90LUg0YPQutCw0LfQsNC9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGVnb3J5SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0LrQsNGC0LXQs9C+0YDQuNC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q2F0ZWdvcnlEYXRhJChjYXRlZ29yeUlkT3JTbHVnPzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSUNhdGVnb3J5PihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL2NhdGVnb3JpZXMvJHtjYXRlZ29yeUlkT3JTbHVnID8/ICcnfWApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhdGVnb3J5KSA9PiBuZXcgU2NDYXRlZ29yeShjYXRlZ29yeSkpLFxuICAgICAgICAgICAgdGFwKChjYXRlZ29yeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjYXRlZ29yeUlkT3JTbHVnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlJZE9yU2x1Z01hcC5zZXQodHlwZW9mIGNhdGVnb3J5SWRPclNsdWcgPT09ICdzdHJpbmcnID8gY2F0ZWdvcnkuaWQgOiBjYXRlZ29yeS5zbHVnLCBjYXRlZ29yeUlkT3JTbHVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQutC+0YDQvdC10LLRi9GFINC60LDRgtC10LPQvtGA0LjQuSDRgSDQvdCw0YHRgtGA0L7QudC60LDQvNC4INC+0YLQvtCx0YDQsNC20LXQvdC40Y8sINGH0YLQvtCx0Ysg0YDQtdCw0LPQuNGA0L7QstCw0YLRjCDQvdCwINC40LfQvNC10L3QtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmlsdGVyZWRSb290Q2F0ZWdvcmllcyQoKTogT2JzZXJ2YWJsZTxTY0lDYXRlZ29yeVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVpU2VydmljZS5nZXRIaWRkZW5DYXRlZ29yaWVzTGlzdCQoKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChmaWx0ZXJzKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Um9vdENhdGVnb3JpZXMkKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YS5maWx0ZXIoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS5pZCAmJiAhZmlsdGVycy5pbmNsdWRlcyhjYXRlZ29yeS5pZCkpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtC00LXRgNC20LjQvNC+0LPQviDQstC40YDRgtGD0LDQu9GM0L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzbHVnINCh0LjQvNCy0L7Qu9GM0L3Ri9C5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0LjRgNGC0YPQsNC70YzQvdC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRWaXJ0dWFsQ2F0ZWdvcnlDYWNoZWQkKHNsdWc6IHN0cmluZyk6IE9ic2VydmFibGU8U2NWaXJ0dWFsQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy52aXJ0dWFsQ2F0ZWdvcnlNYXAuZ2V0KHNsdWcpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHAuZ2V0PFNjSVZpcnR1YWxDYXRlZ29yeT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy92LWNhdGVnb3JpZXMvJHtzbHVnfWApLnBpcGUobWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjVmlydHVhbENhdGVnb3J5KGNhdGVnb3J5KSkpLFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMudmlydHVhbENhdGVnb3J5TWFwLnNldChzbHVnLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0ZWdvcnlDYWNoZWQkKGNhdGVnb3J5SWRPclNsdWc/OiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgICAgIGlmIChjYXRlZ29yeUlkT3JTbHVnICYmIHRoaXMuY2F0ZWdvcnlJZE9yU2x1Z01hcC5oYXMoY2F0ZWdvcnlJZE9yU2x1ZykpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgY2F0ZWdvcnlJZE9yU2x1ZyA9IHRoaXMuY2F0ZWdvcnlJZE9yU2x1Z01hcC5nZXQoY2F0ZWdvcnlJZE9yU2x1Zyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMuY2F0ZWdvcnlNYXAuZ2V0KGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0odGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSwgdGhpcy5nZXRDYXRlZ29yeURhdGEkKGNhdGVnb3J5SWRPclNsdWcpLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlNYXAuc2V0KGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtLnVwZGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDQutC+0YDQvdC10LLRi9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TnVsbENhdGVnb3J5JCgpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENhdGVnb3J5Q2FjaGVkJCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGdldFJvb3RDYXRlZ29yaWVzJCgpOiBPYnNlcnZhYmxlPFNjSUNhdGVnb3J5W10gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE51bGxDYXRlZ29yeSQoKS5waXBlKG1hcCgobnVsbENhdGVnb3J5KSA9PiBudWxsQ2F0ZWdvcnk/LmNhdGVnb3JpZXMgPz8gbnVsbCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LDRgdC60YDRi9Cy0LDQtdGCINC60LDRgtCw0LvQvtCzINC00L4g0YPQutCw0LfQsNC90L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCwg0LTQviDQutC+0YLQvtGA0L7QuSDQvdC10L7QsdGF0L7QtNC40LzQviDRgNCw0YHQutGA0YvRgtGMINC60LDRgtCw0LvQvtCzLlxuICAgICAqIEByZXR1cm5zINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRgNCw0YHQutGA0YvRgtGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2FkQ2F0YWxvZ1RyZWVDYWNoZWQkKGNhdGVnb3J5SWRPclNsdWc6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnlJZE9yU2x1ZykucGlwZShcbiAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIGV4cGFuZCgoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICAgICAgKGNhdGVnb3J5LnBhcmVudENhdGVnb3J5ID8gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQodGhpcy5pZE9yU2x1Z1BpcGUudHJhbnNmb3JtKGNhdGVnb3J5LnBhcmVudENhdGVnb3J5KSkgOiB0aGlzLmdldE51bGxDYXRlZ29yeSQoKSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24sc29uYXJqcy9kaWZmZXJlbnQtdHlwZXMtY29tcGFyaXNvblxuICAgICAgICAgICAgdGFrZVdoaWxlKChwYXJlbnRDYXRlZ29yeSkgPT4gcGFyZW50Q2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnkgIT09IHVuZGVmaW5lZCwgdHJ1ZSksXG4gICAgICAgICAgICB0b0FycmF5KCksXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1taXNsZWFkaW5nLWFycmF5LXJldmVyc2VcbiAgICAgICAgICAgIG1hcCgoY2F0ZWdvcmllcykgPT4gY2F0ZWdvcmllcy5yZXZlcnNlKCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC/0L7Qu9GD0YfQtdC90LjRjyDQuNGB0YLQvtGA0LjQuCDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC9INC90LAg0L/RgNC+0LTRg9C60YIg0LTQu9GPINC60LvQuNC10L3RgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0J/RgNC+0LTRg9C60YIsINC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC30LDQv9GA0LDRiNC40LLQsNC10YLRgdGPINGG0LXQvdCwLlxuICAgICAqIEByZXR1cm5zINCY0YHRgtC+0YDQuNGPINC40LfQvNC10L3QtdC90LjRjyDRhtC10L0g0L3QsCDQv9GA0L7QtNGD0LrRgiDQtNC70Y8g0LrQu9C40LXQvdGC0LAg0LIg0YTQvtGA0LzQsNGC0LUge0BsaW5rIE9ic2VydmFibGV9INC40Lcg0LfQsNC/0YDQvtGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldFByaWNlSGlzdG9yeSQocHJvZHVjdDogU2NQcm9kdWN0KTogT2JzZXJ2YWJsZTxTY1ByaWNlSGlzdG9yeSB8IG51bGw+IHtcbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLnByb2R1Y3RIaXN0b3J5TWFwLmdldChwcm9kdWN0LmlkLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLmdldDxTY1ByaWNlSGlzdG9yeT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9wcm9kdWN0cy8ke3Byb2R1Y3QuaWR9L3ByaWNlLWhpc3RvcnlgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBTQ19JU19ISURERU5fRVJST1JfQUxFUlRfSFRUUF9DT05URVhULFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKHt9KSkpLFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMucHJvZHVjdEhpc3RvcnlNYXAuc2V0KHByb2R1Y3QuaWQudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQtNC70Y8g0LrQvtC90LrRgNC10YLQvdC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0LfQsNC/0YDQvtGB0LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0cyQocGFyYW1zOiBTY0lDYXRlZ29yeVByb2R1Y3RQYXJhbXMpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdPjtcblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINC60LDRgtCw0LvQvtCz0LAg0YEg0L/QsNCz0LjQvdCw0YbQuNC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFyYW1zINCf0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3RzJChwYXJhbXM6IFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXMpOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4+O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZWR1bmRhbnQtdHlwZS1jb25zdGl0dWVudHNcbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHMkKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zIHwgU2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcyk6IE9ic2VydmFibGU8U2NQcm9kdWN0W10gfCBTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8U2NJUGFnaW5hdGU8U2NJUHJvZHVjdD4gfCBTY0lQcm9kdWN0W10+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHNgLCB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHRoaXMuY29udmVydGVyc1NlcnZpY2UudG9IdHRwUGFyYW1zKHsgLi4ucGFyYW1zIH0sIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvZnVuY3Rpb24tcmV0dXJuLXR5cGVcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCdtZXRhJyBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbG9uZURhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUoZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lRGF0YS5kYXRhID0gY2xvbmVEYXRhLmRhdGEubWFwKChpdGVtKSA9PiBuZXcgU2NQcm9kdWN0KGl0ZW0pKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNsb25lRGF0YSBhcyBTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubWFwKChpdGVtLCBpbmRleCkgPT4gbmV3IFNjUHJvZHVjdChpdGVtLCBpbmRleCkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuCDQuCDQutGN0YjQuNGA0YPQtdGCINC10LPQvi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbXMg0J/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHNDYXRlZ29yeUNhY2hlZCQocGFyYW1zOiBTY0lDYXRlZ29yeVByb2R1Y3RQYXJhbXMpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdIHwgbnVsbD4ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIGlmICghcGFyYW1zLmNhdGVnb3J5SWQgJiYgIXBhcmFtcy5jYXRlZ29yeVNsdWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcign0J3QtSDRg9C60LDQt9Cw0L0gaWQvc2x1ZyDQutCw0YLQtdCz0L7RgNC40LguJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbixAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIGNvbnN0IGNhY2hlZEtleSA9IChwYXJhbXMuY2F0ZWdvcnlTbHVnID8/IHBhcmFtcy5jYXRlZ29yeUlkKSE7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnQsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMuY2F0ZWdvcnlQcm9kdWN0c01hcC5nZXQoY2FjaGVkS2V5LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0odGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSwgdGhpcy5nZXRQcm9kdWN0cyQocGFyYW1zKSwgbnVsbCk7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnQsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5UHJvZHVjdHNNYXAuc2V0KGNhY2hlZEtleS50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+0LEg0YPQutCw0LfQsNC90L3QvtC8INC/0YDQvtC00YPQutGC0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdElkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINGC0L7QstCw0YDQsC/Rg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3REYXRhJChwcm9kdWN0SWRPclNsdWc6IG51bWJlciB8IHN0cmluZyk6IE9ic2VydmFibGU8U2NQcm9kdWN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVByb2R1Y3Q+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHMvJHtwcm9kdWN0SWRPclNsdWd9YCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvZHVjdERUTykgPT4gbmV3IFNjUHJvZHVjdChwcm9kdWN0RFRPKSksXG4gICAgICAgICAgICB0YXAoKHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdElkT3JTbHVnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdElkT3JTbHVnTWFwLnNldCh0eXBlb2YgcHJvZHVjdElkT3JTbHVnID09PSAnc3RyaW5nJyA/IHByb2R1Y3QuaWQgOiBwcm9kdWN0LnNsdWcsIHByb2R1Y3RJZE9yU2x1Zyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdERhdGFDYWNoZWQkKHByb2R1Y3RJZE9yU2x1ZzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3QgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IHZhbHVlRnJvbU1hcCA9IHRoaXMucHJvZHVjdElkT3JTbHVnTWFwLmdldChwcm9kdWN0SWRPclNsdWcpO1xuXG4gICAgICAgIGlmICh2YWx1ZUZyb21NYXApIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgcHJvZHVjdElkT3JTbHVnID0gdmFsdWVGcm9tTWFwO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy5wcm9kdWN0TWFwLmdldChwcm9kdWN0SWRPclNsdWcudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtID0gbmV3IFNjQ2FjaGVkSXRlbSh0aGlzLmNhY2hlTGlmZVRpbWUuY2F0ZWdvcnlEYXRhLCB0aGlzLmdldFByb2R1Y3REYXRhJChwcm9kdWN0SWRPclNsdWcpLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdE1hcC5zZXQocHJvZHVjdElkT3JTbHVnLnRvU3RyaW5nKCksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtLnVwZGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINC90LAg0L/QvtC70YPRh9C10L3QuNC1INCz0LXQvdC10YDQuNGA0YPQtdC80L7Qs9C+INGE0LDQudC70LAg0L/RgNCw0LnRgS3Qu9C40YHRgtCwINCyINGE0L7RgNC80LDRgtC1IHtAbGluayBCbG9ifSwg0Lgg0LLRi9Cz0YDRg9C20LDQtdGCINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjiDQsiDQsdGA0LDRg9C30LXRgC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIHtAbGluayBTY01pbWVUeXBlc30g0LfQsNC/0YDQsNGI0LjQstCw0LXQvNC+0LPQviDRhNCw0LnQu9CwLlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC60LDRgtC10LPQvtGA0LjQuCwg0LTQu9GPINC60L7RgtC+0YDQvtC5INC30LDQs9GA0YPQttCw0LXRgtGB0Y8g0L/RgNCw0LnRgS3Qu9C40YHRgi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZG93bmxvYWRQcmljZSQodHlwZTogU2NNaW1lVHlwZXMsIGNhdGVnb3J5SWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5jb252ZXJ0ZXJzU2VydmljZS50b0h0dHBQYXJhbXMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZm9ybWF0OiBPYmplY3Qua2V5cyhTY01pbWVUeXBlcylbT2JqZWN0LnZhbHVlcyhTY01pbWVUeXBlcykuaW5kZXhPZih0eXBlKV0sXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQgPz8gbnVsbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IG5vbk51bGxhYmxlOiB0cnVlIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL2Rvd25sb2FkYCwgeyByZXNwb25zZVR5cGU6ICdibG9iJywgcGFyYW1zOiBwYXJhbXMgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoYmxvYjogQmxvYikgPT4gbmV3IEJsb2IoW2Jsb2JdLCB7IHR5cGU6IHR5cGUgfSkpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5jYXRhbG9nUHJpY2VEb3dubG9hZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogY2F0ZWdvcnlJZCA/PyAncm9vdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmljZV90eXBlOiB0eXBlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/RgNC+0YEg0L3QsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQviDQv9C+0YHRgtGD0L/Qu9C10L3QuNC4INC/0YDQvtC00YPQutGC0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdElkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINGC0L7QstCw0YDQsC5cbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0LTQu9GPINC30LDQv9GA0L7RgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0Tm90aWZ5V2hlbkluU3RvY2skKHByb2R1Y3RJZE9yU2x1Zzogc3RyaW5nIHwgbnVtYmVyLCBkYXRhOiBTY0lQcm9kdWN0Tm90aWZ5V2hlbkluU3RvY2spOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzLyR7cHJvZHVjdElkT3JTbHVnfS9zdG9jay1ub3RpZnlgLCBkYXRhKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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({ refCount: true, bufferSize: 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmF2b3JpdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9zZXJ2aWNlcy9zYy1mYXZvcml0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtEQUErRDtBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR2hEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUlJOztXQUVHO1FBQ2MsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyw0QkFBdUIsR0FBMEIsSUFBSSxlQUFlLENBQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVyRzs7V0FFRztRQUNjLFVBQUssR0FBdUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ2EsZ0JBQVcsR0FBNkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDckYsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDM0IsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxFQUM1RSxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGtIQUFrSDtTQUNwSyxDQUFDO0tBcURMO0lBbkRHOztPQUVHO0lBQ0ksc0JBQXNCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLHVCQUF1QixDQUFDO2FBQzlELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0seUJBQXlCLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLFVBQWtCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0seUJBQXlCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksd0JBQXdCO1FBQzNCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxTQUFpQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLHVCQUF1QixTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWMsQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLHVCQUF1QixTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7K0dBaEZRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduLG5vLXJldHVybi1hc3NpZ24sbm8tdm9pZCAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyIH0gZnJvbSAnLi4vLi4vdXNlci9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi4vZHRvL3NjLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSUNhdGVnb3J5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5JztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQuNC30LHRgNCw0L3QvdGL0LzQuCDRgtC+0LLQsNGA0LDQvNC4INC4INC60LDRgtC10LPQvtGA0LjRj9C80LguXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjRmF2b3JpdGVTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC/0YDQuNC70L7QttC10L3QuNGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC+0LHQvdC+0LLQu9C10L3QuNGPINGB0L/QuNGB0LrQsCDQuNC30LHRgNCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcmllc1VwZGF0ZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDx2b2lkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odm9pZCB7fSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQsNC90L3Ri9GFINC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPFNjVXNlcj4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0LjQt9Cx0YDQsNC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8U2NDYXRlZ29yeVtdPiA9IHRoaXMuY2F0ZWdvcmllc1VwZGF0ZVN1YmplY3QucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudXNlciQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHVzZXIpID0+ICh1c2VyLmlzR3Vlc3QgPyBvZihbXSkgOiB0aGlzLmdldEZhdm9yaXRlQ2F0ZWdvcmllcyQoKSkpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pIC8vINCf0L7QtNC+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
|