@tilde-nlp/ngx-common 6.1.93 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/tilde-nlp-ngx-common.mjs +153 -146
- package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
- package/package.json +5 -7
- package/styles/tilde-theme.scss +2 -1
- package/web-components/3rdpartylicenses.txt +22 -22
- package/web-components/index.html +2 -2
- package/web-components/main.js +31 -14
- package/web-components/polyfills.js +3 -3
- package/web-components/prerendered-routes.json +3 -0
- package/web-components/styles.css +1 -1
- package/esm2022/lib/close-button/close-button.component.mjs +0 -53
- package/esm2022/lib/close-button/close-button.module.mjs +0 -37
- package/esm2022/lib/close-button/index.mjs +0 -3
- package/esm2022/lib/company-product/company-product.component.mjs +0 -34
- package/esm2022/lib/company-product/company-product.module.mjs +0 -23
- package/esm2022/lib/company-product/index.mjs +0 -3
- package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +0 -78
- package/esm2022/lib/confirmation-modal/confirmation-modal.module.mjs +0 -22
- package/esm2022/lib/confirmation-modal/index.mjs +0 -6
- package/esm2022/lib/confirmation-modal/models/confirmation-body.model.mjs +0 -2
- package/esm2022/lib/confirmation-modal/models/confirmation.enum.mjs +0 -6
- package/esm2022/lib/confirmation-modal/services/confirmation.service.mjs +0 -25
- package/esm2022/lib/confirmation-modal/services/index.mjs +0 -2
- package/esm2022/lib/constants/error-codes.const.mjs +0 -5
- package/esm2022/lib/constants/index.mjs +0 -4
- package/esm2022/lib/constants/last-used-system-local-storage-key.const.mjs +0 -6
- package/esm2022/lib/constants/screen-size.const.mjs +0 -11
- package/esm2022/lib/core/auth/addon.model.mjs +0 -2
- package/esm2022/lib/core/auth/auth-subscription.model.mjs +0 -2
- package/esm2022/lib/core/auth/index.mjs +0 -5
- package/esm2022/lib/core/auth/jwt-token.model.mjs +0 -2
- package/esm2022/lib/core/auth/subscription-plan.enum.mjs +0 -18
- package/esm2022/lib/core/index.mjs +0 -4
- package/esm2022/lib/core/localization/index.mjs +0 -3
- package/esm2022/lib/core/localization/missing-translation-handler.service.mjs +0 -21
- package/esm2022/lib/core/localization/select-language-dialog-component/index.mjs +0 -2
- package/esm2022/lib/core/localization/select-language-dialog-component/select-language-dialog.component.mjs +0 -109
- package/esm2022/lib/core/title-strategy/custom-title-strategy.provider.mjs +0 -9
- package/esm2022/lib/core/title-strategy/custom-title-strategy.service.mjs +0 -41
- package/esm2022/lib/core/title-strategy/index.mjs +0 -3
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -31
- package/esm2022/lib/directives/click-outside/click-outside.module.mjs +0 -25
- package/esm2022/lib/directives/click-outside/index.mjs +0 -3
- package/esm2022/lib/directives/drag-and-drop/drag-and-drop.directive.mjs +0 -66
- package/esm2022/lib/directives/drag-and-drop/drag-and-drop.module.mjs +0 -25
- package/esm2022/lib/directives/drag-and-drop/index.mjs +0 -3
- package/esm2022/lib/directives/index.mjs +0 -4
- package/esm2022/lib/directives/mat-button-loading/index.mjs +0 -3
- package/esm2022/lib/directives/mat-button-loading/mat-button-loading.directive.mjs +0 -65
- package/esm2022/lib/directives/mat-button-loading/mat-button-loading.module.mjs +0 -21
- package/esm2022/lib/extension-dialog/components/index.mjs +0 -2
- package/esm2022/lib/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.mjs +0 -32
- package/esm2022/lib/extension-dialog/extension-dialog.component.mjs +0 -231
- package/esm2022/lib/extension-dialog/extension-dialog.module.mjs +0 -52
- package/esm2022/lib/extension-dialog/icons/file-types/excel.icon.mjs +0 -22
- package/esm2022/lib/extension-dialog/icons/file-types/index.mjs +0 -10
- package/esm2022/lib/extension-dialog/icons/file-types/interchange.icon.mjs +0 -6
- package/esm2022/lib/extension-dialog/icons/file-types/office-other.icon.mjs +0 -6
- package/esm2022/lib/extension-dialog/icons/file-types/other.icon.mjs +0 -6
- package/esm2022/lib/extension-dialog/icons/file-types/pdf.icon.mjs +0 -12
- package/esm2022/lib/extension-dialog/icons/file-types/powerpoint.icon.mjs +0 -10
- package/esm2022/lib/extension-dialog/icons/file-types/scanned.icon.mjs +0 -6
- package/esm2022/lib/extension-dialog/icons/file-types/web.icon.mjs +0 -6
- package/esm2022/lib/extension-dialog/icons/file-types/word.icon.mjs +0 -11
- package/esm2022/lib/extension-dialog/icons/index.mjs +0 -2
- package/esm2022/lib/extension-dialog/index.mjs +0 -6
- package/esm2022/lib/extension-dialog/models/enums/file-categories.enum.mjs +0 -9
- package/esm2022/lib/extension-dialog/models/enums/file-extensions.enum.mjs +0 -36
- package/esm2022/lib/extension-dialog/models/enums/file-type-icons.enum.mjs +0 -13
- package/esm2022/lib/extension-dialog/models/enums/file-types.enum.mjs +0 -13
- package/esm2022/lib/extension-dialog/models/enums/index.mjs +0 -5
- package/esm2022/lib/extension-dialog/models/index.mjs +0 -3
- package/esm2022/lib/extension-dialog/models/interfaces/config.mjs +0 -2
- package/esm2022/lib/extension-dialog/models/interfaces/dialog-data.model.mjs +0 -2
- package/esm2022/lib/extension-dialog/models/interfaces/index.mjs +0 -3
- package/esm2022/lib/extension-dialog/services/extension-dialog.service.mjs +0 -22
- package/esm2022/lib/extension-dialog/services/index.mjs +0 -2
- package/esm2022/lib/file-upload/file-upload.component.mjs +0 -254
- package/esm2022/lib/file-upload/file-upload.module.mjs +0 -51
- package/esm2022/lib/file-upload/index.mjs +0 -4
- package/esm2022/lib/file-upload/models/file-upload-error-type.enum.mjs +0 -8
- package/esm2022/lib/file-upload/models/file-upload-error.model.mjs +0 -2
- package/esm2022/lib/file-upload/models/file-upload.icon.mjs +0 -2
- package/esm2022/lib/file-upload/models/index.mjs +0 -3
- package/esm2022/lib/filter-bar/filter-bar.component.mjs +0 -409
- package/esm2022/lib/filter-bar/filter-bar.module.mjs +0 -72
- package/esm2022/lib/filter-bar/index.mjs +0 -4
- package/esm2022/lib/filter-bar/models/filter-bar-change-event.model.mjs +0 -2
- package/esm2022/lib/filter-bar/models/filter-bar-filter-item.model.mjs +0 -2
- package/esm2022/lib/filter-bar/models/filter-bar-filter-search.model.mjs +0 -2
- package/esm2022/lib/filter-bar/models/filter-bar-filter-single-selection.model.mjs +0 -2
- package/esm2022/lib/filter-bar/models/filter-bar-filter.model.mjs +0 -2
- package/esm2022/lib/filter-bar/models/filter-bar-settings.model.mjs +0 -2
- package/esm2022/lib/filter-bar/models/index.mjs +0 -5
- package/esm2022/lib/footer/footer.component.mjs +0 -143
- package/esm2022/lib/footer/footer.module.mjs +0 -35
- package/esm2022/lib/footer/index.mjs +0 -3
- package/esm2022/lib/global-message/global-message.component.mjs +0 -51
- package/esm2022/lib/global-message/index.mjs +0 -2
- package/esm2022/lib/helpers/auth-headers.helper.mjs +0 -19
- package/esm2022/lib/helpers/conversion.helper.mjs +0 -11
- package/esm2022/lib/helpers/custom-paginator-internatioinalization.helper.mjs +0 -56
- package/esm2022/lib/helpers/file-extension.helper.mjs +0 -6
- package/esm2022/lib/helpers/file-size-label.helper.mjs +0 -27
- package/esm2022/lib/helpers/hash.helper.mjs +0 -14
- package/esm2022/lib/helpers/html-element-parse.helper.mjs +0 -15
- package/esm2022/lib/helpers/html.helper.mjs +0 -57
- package/esm2022/lib/helpers/index.mjs +0 -13
- package/esm2022/lib/helpers/missing-translation.helper.mjs +0 -7
- package/esm2022/lib/helpers/resolution.helper.mjs +0 -7
- package/esm2022/lib/helpers/save-file.helper.mjs +0 -14
- package/esm2022/lib/helpers/sort.helper.mjs +0 -73
- package/esm2022/lib/inline-message/index.mjs +0 -4
- package/esm2022/lib/inline-message/inline-message.component.mjs +0 -71
- package/esm2022/lib/inline-message/inline-message.module.mjs +0 -33
- package/esm2022/lib/inline-message/models/index.mjs +0 -4
- package/esm2022/lib/inline-message/models/inline-message-icon-position.enum.mjs +0 -6
- package/esm2022/lib/inline-message/models/inline-message-type.enum.mjs +0 -7
- package/esm2022/lib/inline-message/models/inline-message.model.mjs +0 -2
- package/esm2022/lib/llm/components/llm-rephrase/llm-rephrase.component.mjs +0 -48
- package/esm2022/lib/llm/components/llm-summary/llm-summary.component.mjs +0 -48
- package/esm2022/lib/llm/components/llm-textarea-with-actions/llm-textarea-with-actions.component.mjs +0 -337
- package/esm2022/lib/llm/icons/index.mjs +0 -2
- package/esm2022/lib/llm/icons/llm-menu.icon.mjs +0 -14
- package/esm2022/lib/llm/index.mjs +0 -4
- package/esm2022/lib/llm/llm.component.mjs +0 -122
- package/esm2022/lib/llm/llm.module.mjs +0 -86
- package/esm2022/lib/llm/models/index.mjs +0 -4
- package/esm2022/lib/llm/models/llm-actions.enum.mjs +0 -6
- package/esm2022/lib/llm/models/llm-configuration.model.mjs +0 -2
- package/esm2022/lib/llm/models/llm-configuration.token.mjs +0 -3
- package/esm2022/lib/llm/models/llm-data.model.mjs +0 -2
- package/esm2022/lib/llm/models/llm-writing-style.enum.mjs +0 -7
- package/esm2022/lib/llm/services/llm-helper.service.mjs +0 -102
- package/esm2022/lib/llm/shared/llm-textarea/llm-textarea.component.mjs +0 -111
- package/esm2022/lib/multi-functional-table/constants/disable-export-attribute-name.const.mjs +0 -2
- package/esm2022/lib/multi-functional-table/constants/index.mjs +0 -2
- package/esm2022/lib/multi-functional-table/index.mjs +0 -5
- package/esm2022/lib/multi-functional-table/models/batch-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/column-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/column-select-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/export-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/export-format.enum.mjs +0 -5
- package/esm2022/lib/multi-functional-table/models/filter-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/index.mjs +0 -8
- package/esm2022/lib/multi-functional-table/models/multi-functional-table-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/paginator-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/models/selected-column-local-storage-config.model.mjs +0 -2
- package/esm2022/lib/multi-functional-table/multi-functional-table.component.mjs +0 -691
- package/esm2022/lib/multi-functional-table/multi-functional-table.module.mjs +0 -93
- package/esm2022/lib/new-feature-dialog/index.mjs +0 -3
- package/esm2022/lib/new-feature-dialog/models/index.mjs +0 -2
- package/esm2022/lib/new-feature-dialog/models/mobile-screen-custom-position.model.mjs +0 -2
- package/esm2022/lib/new-feature-dialog/new-feature-dialog-wrapper/new-feature-dialog-wrapper.component.mjs +0 -105
- package/esm2022/lib/new-feature-dialog/new-feature-dialog-wrapper/new-feature-dialog.service.mjs +0 -37
- package/esm2022/lib/new-feature-dialog/new-feature-dialog.component.mjs +0 -40
- package/esm2022/lib/notification-message/enums/index.mjs +0 -2
- package/esm2022/lib/notification-message/enums/notification-message-type.enum.mjs +0 -9
- package/esm2022/lib/notification-message/index.mjs +0 -5
- package/esm2022/lib/notification-message/interfaces/index.mjs +0 -2
- package/esm2022/lib/notification-message/interfaces/notification-message.model.mjs +0 -2
- package/esm2022/lib/notification-message/notification-message.component.mjs +0 -195
- package/esm2022/lib/notification-message/notification-message.module.mjs +0 -49
- package/esm2022/lib/open-close-button/index.mjs +0 -5
- package/esm2022/lib/open-close-button/injection-tokens/index.mjs +0 -2
- package/esm2022/lib/open-close-button/injection-tokens/open-close-btn-icons.token.mjs +0 -2
- package/esm2022/lib/open-close-button/models/index.mjs +0 -2
- package/esm2022/lib/open-close-button/models/open-close-btn-icons.model.mjs +0 -2
- package/esm2022/lib/open-close-button/open-close-button.component.mjs +0 -114
- package/esm2022/lib/open-close-button/open-close-button.module.mjs +0 -22
- package/esm2022/lib/pipes/date-ago/date-ago.module.mjs +0 -29
- package/esm2022/lib/pipes/date-ago/date-ago.pipe.mjs +0 -114
- package/esm2022/lib/pipes/date-ago/index.mjs +0 -3
- package/esm2022/lib/pipes/date-ago/models/date-ago-interval.model.mjs +0 -2
- package/esm2022/lib/pipes/date-ago/models/date-ago-settings.model.mjs +0 -2
- package/esm2022/lib/pipes/date-ago/models/date-ago-settings.token.mjs +0 -2
- package/esm2022/lib/pipes/date-ago/models/date-ago.model.mjs +0 -2
- package/esm2022/lib/pipes/date-ago/models/index.mjs +0 -5
- package/esm2022/lib/pipes/domain-translate/domain-translate.pipe.mjs +0 -30
- package/esm2022/lib/pipes/domain-translate/index.mjs +0 -2
- package/esm2022/lib/pipes/file-size-label/enums/file-size-unit.enum.mjs +0 -8
- package/esm2022/lib/pipes/file-size-label/enums/index.mjs +0 -2
- package/esm2022/lib/pipes/file-size-label/file-size-label.pipe.mjs +0 -22
- package/esm2022/lib/pipes/file-size-label/index.mjs +0 -3
- package/esm2022/lib/pipes/filter-with-highlight/filter-with-highlight.module.mjs +0 -25
- package/esm2022/lib/pipes/filter-with-highlight/filter-with-highlight.pipe.mjs +0 -43
- package/esm2022/lib/pipes/filter-with-highlight/index.mjs +0 -3
- package/esm2022/lib/pipes/index.mjs +0 -13
- package/esm2022/lib/pipes/language-translate/index.mjs +0 -3
- package/esm2022/lib/pipes/language-translate/language-translate.module.mjs +0 -19
- package/esm2022/lib/pipes/language-translate/language-translate.pipe.mjs +0 -126
- package/esm2022/lib/pipes/object-length/index.mjs +0 -3
- package/esm2022/lib/pipes/object-length/object-length.module.mjs +0 -19
- package/esm2022/lib/pipes/object-length/object-length.pipe.mjs +0 -23
- package/esm2022/lib/pipes/sort-alphabetically/index.mjs +0 -3
- package/esm2022/lib/pipes/sort-alphabetically/sort-alphabetically.module.mjs +0 -19
- package/esm2022/lib/pipes/sort-alphabetically/sort-alphabetically.pipe.mjs +0 -21
- package/esm2022/lib/pipes/sort-by-number/index.mjs +0 -2
- package/esm2022/lib/pipes/sort-by-number/sort-by-number.pipe.mjs +0 -23
- package/esm2022/lib/pipes/sort-domains/index.mjs +0 -2
- package/esm2022/lib/pipes/sort-domains/sort-domains.pipe.mjs +0 -51
- package/esm2022/lib/pipes/sort-language-list/index.mjs +0 -3
- package/esm2022/lib/pipes/sort-language-list/models/index.mjs +0 -2
- package/esm2022/lib/pipes/sort-language-list/models/translated-language.model.mjs +0 -2
- package/esm2022/lib/pipes/sort-language-list/sort-language-list.pipe.mjs +0 -58
- package/esm2022/lib/pipes/sort-translations/index.mjs +0 -3
- package/esm2022/lib/pipes/sort-translations/sort-translations.module.mjs +0 -23
- package/esm2022/lib/pipes/sort-translations/sort-translations.pipe.mjs +0 -60
- package/esm2022/lib/pipes/sort-translations-by-property/index.mjs +0 -3
- package/esm2022/lib/pipes/sort-translations-by-property/sort-translations-by-property.module.mjs +0 -19
- package/esm2022/lib/pipes/sort-translations-by-property/sort-translations-by-property.pipe.mjs +0 -43
- package/esm2022/lib/plausible/index.mjs +0 -5
- package/esm2022/lib/plausible/models/index.mjs +0 -2
- package/esm2022/lib/plausible/models/plausible-event.model.mjs +0 -2
- package/esm2022/lib/plausible/plausible-event.directive.mjs +0 -42
- package/esm2022/lib/plausible/plausible.helper.mjs +0 -37
- package/esm2022/lib/plausible/plausible.module.mjs +0 -25
- package/esm2022/lib/services/alert/alert.service.mjs +0 -172
- package/esm2022/lib/services/alert/index.mjs +0 -4
- package/esm2022/lib/services/alert/injection-tokens/alert-configuration.token.mjs +0 -2
- package/esm2022/lib/services/alert/injection-tokens/index.mjs +0 -2
- package/esm2022/lib/services/alert/models/alert-configuration.model.mjs +0 -2
- package/esm2022/lib/services/alert/models/index.mjs +0 -2
- package/esm2022/lib/services/dom/dom.service.mjs +0 -21
- package/esm2022/lib/services/dom/index.mjs +0 -2
- package/esm2022/lib/services/icon/icon.service.mjs +0 -35
- package/esm2022/lib/services/icon/index.mjs +0 -2
- package/esm2022/lib/services/index.mjs +0 -7
- package/esm2022/lib/services/language-translate/index.mjs +0 -2
- package/esm2022/lib/services/language-translate/language-translate.service.mjs +0 -25
- package/esm2022/lib/services/notification/index.mjs +0 -3
- package/esm2022/lib/services/notification/models/index.mjs +0 -3
- package/esm2022/lib/services/notification/models/notification.model.mjs +0 -2
- package/esm2022/lib/services/notification/models/operations.enum.mjs +0 -6
- package/esm2022/lib/services/notification/notification.service.mjs +0 -35
- package/esm2022/lib/services/system/index.mjs +0 -2
- package/esm2022/lib/services/system/system.service.mjs +0 -20
- package/esm2022/lib/sidebar/index.mjs +0 -3
- package/esm2022/lib/sidebar/services/index.mjs +0 -2
- package/esm2022/lib/sidebar/services/sidebar.service.mjs +0 -24
- package/esm2022/lib/sidebar/sidebar.component.mjs +0 -30
- package/esm2022/lib/status-display/index.mjs +0 -4
- package/esm2022/lib/status-display/models/index.mjs +0 -2
- package/esm2022/lib/status-display/models/status-display-config.model.mjs +0 -2
- package/esm2022/lib/status-display/status-display.component.mjs +0 -71
- package/esm2022/lib/status-display/status-display.module.mjs +0 -22
- package/esm2022/lib/subscription/chargebee-mount.service.mjs +0 -16
- package/esm2022/lib/subscription/index.mjs +0 -3
- package/esm2022/lib/subscription/models/chargebee-settings.model.mjs +0 -2
- package/esm2022/lib/subscription/models/index.mjs +0 -2
- package/esm2022/lib/subscription/models/subscription-quota-display.model.mjs +0 -2
- package/esm2022/lib/subscription/models/subscription-state.enum.mjs +0 -8
- package/esm2022/lib/subscription/subscription.component.mjs +0 -392
- package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-card/terminology-collection-card.component.mjs +0 -279
- package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-list.component.mjs +0 -161
- package/esm2022/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection-dialog/terminology-create-collection-dialog.component.mjs +0 -121
- package/esm2022/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection.component.mjs +0 -72
- package/esm2022/lib/terminology/components/terminology-panel/terminology-panel.component.mjs +0 -151
- package/esm2022/lib/terminology/config/models/index.mjs +0 -2
- package/esm2022/lib/terminology/config/models/terminology-config.model.mjs +0 -2
- package/esm2022/lib/terminology/config/services/index.mjs +0 -2
- package/esm2022/lib/terminology/config/services/terminology-config/terminology-config.service.mjs +0 -47
- package/esm2022/lib/terminology/enums/combined-collection-tooltip-key.enum.mjs +0 -6
- package/esm2022/lib/terminology/enums/engine-term-collection-scope.enum.mjs +0 -6
- package/esm2022/lib/terminology/enums/engine-term-collection-source.enum.mjs +0 -6
- package/esm2022/lib/terminology/enums/engine-term-collection-status.enum.mjs +0 -8
- package/esm2022/lib/terminology/enums/engine-term-collection-sub-status.enum.mjs +0 -14
- package/esm2022/lib/terminology/enums/index.mjs +0 -7
- package/esm2022/lib/terminology/enums/mt-collection-status.enum.mjs +0 -11
- package/esm2022/lib/terminology/icons/collections-menu.icon.mjs +0 -18
- package/esm2022/lib/terminology/icons/index.mjs +0 -2
- package/esm2022/lib/terminology/index.mjs +0 -10
- package/esm2022/lib/terminology/models/active-data.model.mjs +0 -2
- package/esm2022/lib/terminology/models/add-engine-terms-request-params.model.mjs +0 -2
- package/esm2022/lib/terminology/models/combined-collection.model.mjs +0 -181
- package/esm2022/lib/terminology/models/default-term-collection-order-update.model.mjs +0 -2
- package/esm2022/lib/terminology/models/domain.model.mjs +0 -2
- package/esm2022/lib/terminology/models/engine-term-collection-access-scope-update.model.mjs +0 -2
- package/esm2022/lib/terminology/models/engine-term-collection-access-scope.model.mjs +0 -2
- package/esm2022/lib/terminology/models/engine-term-collection-access-update.model.mjs +0 -2
- package/esm2022/lib/terminology/models/engine-term-collection-access.model.mjs +0 -2
- package/esm2022/lib/terminology/models/engine-term-collection-list.model.mjs +0 -2
- package/esm2022/lib/terminology/models/engine-term-collection.model.mjs +0 -2
- package/esm2022/lib/terminology/models/index.mjs +0 -19
- package/esm2022/lib/terminology/models/lang-list-item.model.mjs +0 -2
- package/esm2022/lib/terminology/models/mt-collection.model.mjs +0 -2
- package/esm2022/lib/terminology/models/system.model.mjs +0 -2
- package/esm2022/lib/terminology/models/terminology-engine.model.mjs +0 -2
- package/esm2022/lib/terminology/models/tld-term-collection-languages.model.mjs +0 -2
- package/esm2022/lib/terminology/models/tld-term-collection.model.mjs +0 -2
- package/esm2022/lib/terminology/models/update-engine-terms-request-params.model.mjs +0 -2
- package/esm2022/lib/terminology/models/vendor.model.mjs +0 -2
- package/esm2022/lib/terminology/services/engine-term-api/engine-term-api.service.mjs +0 -48
- package/esm2022/lib/terminology/services/engine-term-api/index.mjs +0 -2
- package/esm2022/lib/terminology/services/index.mjs +0 -5
- package/esm2022/lib/terminology/services/system-api-v2/models/engine-deployment.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/engine-domain-list.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/engine-domain.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/engine-list.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/engine-status.enum.mjs +0 -11
- package/esm2022/lib/terminology/services/system-api-v2/models/engine-sub-status.enum.mjs +0 -18
- package/esm2022/lib/terminology/services/system-api-v2/models/engine.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/index.mjs +0 -9
- package/esm2022/lib/terminology/services/system-api-v2/models/revision.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/tilde-vendor.const.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/models/worker-status.model.mjs +0 -2
- package/esm2022/lib/terminology/services/system-api-v2/system-api.service.mjs +0 -109
- package/esm2022/lib/terminology/services/terminology/terminology.service.mjs +0 -323
- package/esm2022/lib/terminology/services/terminology-api/terminology-api.service.mjs +0 -86
- package/esm2022/lib/terminology/services/terminology-collection/index.mjs +0 -2
- package/esm2022/lib/terminology/services/terminology-collection/terminology-collection.service.mjs +0 -54
- package/esm2022/lib/terminology/terminology.component.mjs +0 -241
- package/esm2022/lib/terminology/terminology.module.mjs +0 -102
- package/esm2022/lib/text-to-speech/index.mjs +0 -3
- package/esm2022/lib/text-to-speech/models/index.mjs +0 -2
- package/esm2022/lib/text-to-speech/models/voice.model.mjs +0 -2
- package/esm2022/lib/text-to-speech/services/tts-api.service.mjs +0 -18
- package/esm2022/lib/text-to-speech/text-to-speech.component.mjs +0 -172
- package/esm2022/lib/tld-loader/index.mjs +0 -3
- package/esm2022/lib/tld-loader/tld-loader.component.mjs +0 -16
- package/esm2022/lib/tld-loader/tld-loader.module.mjs +0 -21
- package/esm2022/lib/toast/index.mjs +0 -3
- package/esm2022/lib/toast/models/toast.model.mjs +0 -2
- package/esm2022/lib/toast/toast-service/index.mjs +0 -2
- package/esm2022/lib/toast/toast-service/toast-service.service.mjs +0 -42
- package/esm2022/lib/toast/toast.component.mjs +0 -57
- package/esm2022/public-api.mjs +0 -32
- package/esm2022/tilde-nlp-ngx-common.mjs +0 -5
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
import { CommonModule, DatePipe } from '@angular/common';
|
|
2
|
-
import { Component, computed, inject, input, output } from '@angular/core';
|
|
3
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
4
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
5
|
-
import { QuotaType } from '@tilde-nlp/ngx-services';
|
|
6
|
-
import { SUBSCRIPTION_STATE } from './models/subscription-state.enum';
|
|
7
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
8
|
-
import { ChargebeeMountService } from './chargebee-mount.service';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/material/progress-bar";
|
|
11
|
-
import * as i2 from "@angular/common";
|
|
12
|
-
import * as i3 from "@angular/material/button";
|
|
13
|
-
const _c0 = ["*"];
|
|
14
|
-
const _c1 = a0 => ({ date: a0 });
|
|
15
|
-
const _c2 = (a0, a1, a2) => ({ used: a0, limit: a1, percent: a2 });
|
|
16
|
-
function SubscriptionComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
-
i0.ɵɵdeclareLet(0);
|
|
18
|
-
i0.ɵɵelementStart(1, "h3", 3);
|
|
19
|
-
i0.ɵɵtext(2);
|
|
20
|
-
i0.ɵɵpipe(3, "translate");
|
|
21
|
-
i0.ɵɵelementEnd();
|
|
22
|
-
i0.ɵɵelementStart(4, "div", 4)(5, "div", 5)(6, "span", 6);
|
|
23
|
-
i0.ɵɵtext(7);
|
|
24
|
-
i0.ɵɵpipe(8, "translate");
|
|
25
|
-
i0.ɵɵelementEnd()();
|
|
26
|
-
i0.ɵɵelementStart(9, "div", 7)(10, "span");
|
|
27
|
-
i0.ɵɵtext(11);
|
|
28
|
-
i0.ɵɵelementEnd()()();
|
|
29
|
-
i0.ɵɵelementStart(12, "div", 4)(13, "div", 5)(14, "span", 6);
|
|
30
|
-
i0.ɵɵtext(15);
|
|
31
|
-
i0.ɵɵpipe(16, "translate");
|
|
32
|
-
i0.ɵɵelementEnd()();
|
|
33
|
-
i0.ɵɵelementStart(17, "div", 7)(18, "span");
|
|
34
|
-
i0.ɵɵtext(19);
|
|
35
|
-
i0.ɵɵelementEnd()()();
|
|
36
|
-
} if (rf & 2) {
|
|
37
|
-
const userToken_r1 = i0.ɵɵnextContext().token();
|
|
38
|
-
i0.ɵɵadvance(2);
|
|
39
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 5, "SUBSCRIPTION.USER_INFO"));
|
|
40
|
-
i0.ɵɵadvance(5);
|
|
41
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 7, "SUBSCRIPTION.LABEL_NAME"));
|
|
42
|
-
i0.ɵɵadvance(4);
|
|
43
|
-
i0.ɵɵtextInterpolate(userToken_r1.name);
|
|
44
|
-
i0.ɵɵadvance(4);
|
|
45
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 9, "SUBSCRIPTION.LABEL_EMAIL"));
|
|
46
|
-
i0.ɵɵadvance(4);
|
|
47
|
-
i0.ɵɵtextInterpolate(userToken_r1.email);
|
|
48
|
-
} }
|
|
49
|
-
function SubscriptionComponent_Conditional_1_Case_10_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
-
i0.ɵɵelementStart(0, "span");
|
|
51
|
-
i0.ɵɵtext(1);
|
|
52
|
-
i0.ɵɵpipe(2, "date");
|
|
53
|
-
i0.ɵɵpipe(3, "translate");
|
|
54
|
-
i0.ɵɵelementEnd();
|
|
55
|
-
} if (rf & 2) {
|
|
56
|
-
i0.ɵɵnextContext();
|
|
57
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
58
|
-
i0.ɵɵadvance();
|
|
59
|
-
i0.ɵɵtextInterpolate1(" (", i0.ɵɵpipeBind2(3, 4, "SUBSCRIPTION.TRIAL_END_DATE", i0.ɵɵpureFunction1(7, _c1, i0.ɵɵpipeBind2(2, 1, currentSubscription_r2.EndDate, "dd.MM.yyyy."))), ") ");
|
|
60
|
-
} }
|
|
61
|
-
function SubscriptionComponent_Conditional_1_Case_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
-
i0.ɵɵelementStart(0, "span");
|
|
63
|
-
i0.ɵɵtext(1);
|
|
64
|
-
i0.ɵɵpipe(2, "date");
|
|
65
|
-
i0.ɵɵpipe(3, "translate");
|
|
66
|
-
i0.ɵɵelementEnd();
|
|
67
|
-
} if (rf & 2) {
|
|
68
|
-
i0.ɵɵnextContext(2);
|
|
69
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
70
|
-
i0.ɵɵadvance();
|
|
71
|
-
i0.ɵɵtextInterpolate1(" (", i0.ɵɵpipeBind2(3, 4, "SUBSCRIPTION.END_DATE", i0.ɵɵpureFunction1(7, _c1, i0.ɵɵpipeBind2(2, 1, currentSubscription_r2.EndDate, "dd.MM.yyyy."))), ") ");
|
|
72
|
-
} }
|
|
73
|
-
function SubscriptionComponent_Conditional_1_Case_11_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
-
i0.ɵɵtemplate(0, SubscriptionComponent_Conditional_1_Case_11_Conditional_0_Template, 4, 9, "span");
|
|
75
|
-
} if (rf & 2) {
|
|
76
|
-
i0.ɵɵnextContext();
|
|
77
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
78
|
-
i0.ɵɵconditional(currentSubscription_r2.EndDate ? 0 : -1);
|
|
79
|
-
} }
|
|
80
|
-
function SubscriptionComponent_Conditional_1_Case_12_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
-
i0.ɵɵtext(0);
|
|
82
|
-
i0.ɵɵpipe(1, "date");
|
|
83
|
-
i0.ɵɵpipe(2, "translate");
|
|
84
|
-
} if (rf & 2) {
|
|
85
|
-
i0.ɵɵnextContext();
|
|
86
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
87
|
-
i0.ɵɵtextInterpolate1(" (", i0.ɵɵpipeBind2(2, 4, "SUBSCRIPTION.END_DATE", i0.ɵɵpureFunction1(7, _c1, i0.ɵɵpipeBind2(1, 1, currentSubscription_r2.EndDate, "dd.MM.yyyy."))), ") ");
|
|
88
|
-
} }
|
|
89
|
-
function SubscriptionComponent_Conditional_1_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
-
i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "span", 6);
|
|
91
|
-
i0.ɵɵtext(3);
|
|
92
|
-
i0.ɵɵpipe(4, "translate");
|
|
93
|
-
i0.ɵɵelementEnd()();
|
|
94
|
-
i0.ɵɵelementStart(5, "div", 7);
|
|
95
|
-
i0.ɵɵelementContainerStart(6);
|
|
96
|
-
i0.ɵɵelementStart(7, "span");
|
|
97
|
-
i0.ɵɵtext(8);
|
|
98
|
-
i0.ɵɵpipe(9, "date");
|
|
99
|
-
i0.ɵɵelementEnd();
|
|
100
|
-
i0.ɵɵelementContainerEnd();
|
|
101
|
-
i0.ɵɵelementEnd()();
|
|
102
|
-
} if (rf & 2) {
|
|
103
|
-
i0.ɵɵnextContext();
|
|
104
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
105
|
-
i0.ɵɵadvance(3);
|
|
106
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 2, "SUBSCRIPTION.LABEL_SUBSCRIPTION_END_DATE"));
|
|
107
|
-
i0.ɵɵadvance(5);
|
|
108
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 4, currentSubscription_r2.EndDate, "dd.MM.yyyy"));
|
|
109
|
-
} }
|
|
110
|
-
function SubscriptionComponent_Conditional_1_Conditional_14_For_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
-
i0.ɵɵelementStart(0, "span");
|
|
112
|
-
i0.ɵɵtext(1);
|
|
113
|
-
i0.ɵɵelementEnd();
|
|
114
|
-
} if (rf & 2) {
|
|
115
|
-
const item_r3 = i0.ɵɵnextContext().$implicit;
|
|
116
|
-
i0.ɵɵadvance();
|
|
117
|
-
i0.ɵɵtextInterpolate1(" (", item_r3.qt, ")");
|
|
118
|
-
} }
|
|
119
|
-
function SubscriptionComponent_Conditional_1_Conditional_14_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
120
|
-
i0.ɵɵelementStart(0, "span");
|
|
121
|
-
i0.ɵɵtext(1);
|
|
122
|
-
i0.ɵɵelementEnd();
|
|
123
|
-
i0.ɵɵtemplate(2, SubscriptionComponent_Conditional_1_Conditional_14_For_7_Conditional_2_Template, 2, 1, "span");
|
|
124
|
-
i0.ɵɵelementStart(3, "span");
|
|
125
|
-
i0.ɵɵtext(4);
|
|
126
|
-
i0.ɵɵelementEnd();
|
|
127
|
-
} if (rf & 2) {
|
|
128
|
-
const item_r3 = ctx.$implicit;
|
|
129
|
-
const ɵ$index_95_r4 = ctx.$index;
|
|
130
|
-
i0.ɵɵnextContext(2);
|
|
131
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
132
|
-
i0.ɵɵadvance();
|
|
133
|
-
i0.ɵɵtextInterpolate(item_r3.id);
|
|
134
|
-
i0.ɵɵadvance();
|
|
135
|
-
i0.ɵɵconditional(item_r3.qt > 1 ? 2 : -1);
|
|
136
|
-
i0.ɵɵadvance(2);
|
|
137
|
-
i0.ɵɵtextInterpolate1(" ", currentSubscription_r2.Addons.length - 1 > ɵ$index_95_r4 ? "," : "", " ");
|
|
138
|
-
} }
|
|
139
|
-
function SubscriptionComponent_Conditional_1_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
140
|
-
i0.ɵɵelementStart(0, "div", 8)(1, "div", 5)(2, "span", 6);
|
|
141
|
-
i0.ɵɵtext(3);
|
|
142
|
-
i0.ɵɵpipe(4, "translate");
|
|
143
|
-
i0.ɵɵelementEnd()();
|
|
144
|
-
i0.ɵɵelementStart(5, "div", 7);
|
|
145
|
-
i0.ɵɵrepeaterCreate(6, SubscriptionComponent_Conditional_1_Conditional_14_For_7_Template, 5, 3, null, null, i0.ɵɵrepeaterTrackByIndex);
|
|
146
|
-
i0.ɵɵelementEnd()();
|
|
147
|
-
} if (rf & 2) {
|
|
148
|
-
i0.ɵɵnextContext();
|
|
149
|
-
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
150
|
-
i0.ɵɵadvance(3);
|
|
151
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "SUBSCRIPTION.ADDITIONS_PLUGINS"));
|
|
152
|
-
i0.ɵɵadvance(3);
|
|
153
|
-
i0.ɵɵrepeater(currentSubscription_r2.Addons);
|
|
154
|
-
} }
|
|
155
|
-
function SubscriptionComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
-
i0.ɵɵdeclareLet(0);
|
|
157
|
-
i0.ɵɵelementStart(1, "div", 8)(2, "div", 5)(3, "span", 6);
|
|
158
|
-
i0.ɵɵtext(4);
|
|
159
|
-
i0.ɵɵpipe(5, "translate");
|
|
160
|
-
i0.ɵɵelementEnd()();
|
|
161
|
-
i0.ɵɵelementStart(6, "div", 7);
|
|
162
|
-
i0.ɵɵelementContainerStart(7);
|
|
163
|
-
i0.ɵɵelementStart(8, "span");
|
|
164
|
-
i0.ɵɵtext(9);
|
|
165
|
-
i0.ɵɵtemplate(10, SubscriptionComponent_Conditional_1_Case_10_Template, 4, 9, "span")(11, SubscriptionComponent_Conditional_1_Case_11_Template, 1, 1)(12, SubscriptionComponent_Conditional_1_Case_12_Template, 3, 9);
|
|
166
|
-
i0.ɵɵelementEnd();
|
|
167
|
-
i0.ɵɵelementContainerEnd();
|
|
168
|
-
i0.ɵɵelementEnd()();
|
|
169
|
-
i0.ɵɵtemplate(13, SubscriptionComponent_Conditional_1_Conditional_13_Template, 10, 7, "div", 4)(14, SubscriptionComponent_Conditional_1_Conditional_14_Template, 8, 3, "div", 8);
|
|
170
|
-
} if (rf & 2) {
|
|
171
|
-
let tmp_4_0;
|
|
172
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
173
|
-
const currentSubscription_r6 = i0.ɵɵstoreLet(ctx_r4.subscription());
|
|
174
|
-
i0.ɵɵadvance(4);
|
|
175
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 6, "SUBSCRIPTION.LABEL_SUBSCRIPTION_PLAN_ID"));
|
|
176
|
-
i0.ɵɵadvance(5);
|
|
177
|
-
i0.ɵɵtextInterpolate1(" ", currentSubscription_r6.Label ? currentSubscription_r6.Label : currentSubscription_r6.PlanId, " ");
|
|
178
|
-
i0.ɵɵadvance();
|
|
179
|
-
i0.ɵɵconditional((tmp_4_0 = ctx_r4.subscriptionState()) === ctx_r4.subscriptionStates.TRIAL ? 10 : tmp_4_0 === ctx_r4.subscriptionStates.ACTIVE ? 11 : tmp_4_0 === ctx_r4.subscriptionStates.ENDED ? 12 : -1);
|
|
180
|
-
i0.ɵɵadvance(3);
|
|
181
|
-
i0.ɵɵconditional(currentSubscription_r6.EndDate ? 13 : -1);
|
|
182
|
-
i0.ɵɵadvance();
|
|
183
|
-
i0.ɵɵconditional((currentSubscription_r6.Addons == null ? null : currentSubscription_r6.Addons.length) ? 14 : -1);
|
|
184
|
-
} }
|
|
185
|
-
function SubscriptionComponent_Conditional_2_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
186
|
-
i0.ɵɵelementStart(0, "div", 9);
|
|
187
|
-
i0.ɵɵelement(1, "mat-progress-bar", 10);
|
|
188
|
-
i0.ɵɵelementStart(2, "div", 11)(3, "span", 12);
|
|
189
|
-
i0.ɵɵtext(4);
|
|
190
|
-
i0.ɵɵpipe(5, "uppercase");
|
|
191
|
-
i0.ɵɵpipe(6, "translate");
|
|
192
|
-
i0.ɵɵelementEnd()()();
|
|
193
|
-
} if (rf & 2) {
|
|
194
|
-
const currentQuota_r7 = ctx.$implicit;
|
|
195
|
-
i0.ɵɵadvance();
|
|
196
|
-
i0.ɵɵproperty("value", currentQuota_r7.percentUsed);
|
|
197
|
-
i0.ɵɵadvance(3);
|
|
198
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(6, 4, "QUOTA." + i0.ɵɵpipeBind1(5, 2, currentQuota_r7.quotaType.toString()) + (currentQuota_r7.isUnlimited ? "_UNLIMITED" : ""), i0.ɵɵpureFunction3(7, _c2, currentQuota_r7.convertedUsed, currentQuota_r7.convertedLimit, currentQuota_r7.percentUsed)), " ");
|
|
199
|
-
} }
|
|
200
|
-
function SubscriptionComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
-
i0.ɵɵelementStart(0, "h3", 3);
|
|
202
|
-
i0.ɵɵtext(1);
|
|
203
|
-
i0.ɵɵpipe(2, "translate");
|
|
204
|
-
i0.ɵɵelementEnd();
|
|
205
|
-
i0.ɵɵrepeaterCreate(3, SubscriptionComponent_Conditional_2_For_4_Template, 7, 11, "div", 9, i0.ɵɵrepeaterTrackByIndex);
|
|
206
|
-
} if (rf & 2) {
|
|
207
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
208
|
-
i0.ɵɵadvance();
|
|
209
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "SUBSCRIPTION.LIMITS"));
|
|
210
|
-
i0.ɵɵadvance(2);
|
|
211
|
-
i0.ɵɵrepeater(ctx_r4.visibleQuotas());
|
|
212
|
-
} }
|
|
213
|
-
function SubscriptionComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
214
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
|
215
|
-
i0.ɵɵelementStart(0, "a", 13);
|
|
216
|
-
i0.ɵɵlistener("click", function SubscriptionComponent_Conditional_5_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.manageClicked()); });
|
|
217
|
-
i0.ɵɵtext(1);
|
|
218
|
-
i0.ɵɵpipe(2, "translate");
|
|
219
|
-
i0.ɵɵelementEnd();
|
|
220
|
-
} if (rf & 2) {
|
|
221
|
-
i0.ɵɵadvance();
|
|
222
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "SUBSCRIPTION.MANAGE"), " ");
|
|
223
|
-
} }
|
|
224
|
-
function SubscriptionComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
225
|
-
const _r9 = i0.ɵɵgetCurrentView();
|
|
226
|
-
i0.ɵɵelementStart(0, "a", 14);
|
|
227
|
-
i0.ɵɵlistener("click", function SubscriptionComponent_Conditional_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.contactUsClicked()); });
|
|
228
|
-
i0.ɵɵtext(1);
|
|
229
|
-
i0.ɵɵpipe(2, "translate");
|
|
230
|
-
i0.ɵɵelementEnd();
|
|
231
|
-
} if (rf & 2) {
|
|
232
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
233
|
-
i0.ɵɵattribute("href", ctx_r4.contactUsUrl(), i0.ɵɵsanitizeUrl);
|
|
234
|
-
i0.ɵɵadvance();
|
|
235
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "SUBSCRIPTION.CONTACT"));
|
|
236
|
-
} }
|
|
237
|
-
export class SubscriptionComponent {
|
|
238
|
-
constructor() {
|
|
239
|
-
this.#chargebeeMountService = inject(ChargebeeMountService);
|
|
240
|
-
/** Parsed user token to get user related info */
|
|
241
|
-
this.token = input.required();
|
|
242
|
-
/** Current user plan that app has selected */
|
|
243
|
-
this.subscription = input.required();
|
|
244
|
-
/** Quota usage */
|
|
245
|
-
this.quota = input.required();
|
|
246
|
-
this.visibleQuotaTypes = input();
|
|
247
|
-
this.contactUsUrl = input();
|
|
248
|
-
this.chargebeeSettings = input();
|
|
249
|
-
this.manageClick = output();
|
|
250
|
-
this.contactUsClick = output();
|
|
251
|
-
this.visibleQuotas = computed(() => {
|
|
252
|
-
const quota = this.quota();
|
|
253
|
-
if (!quota?.usage) {
|
|
254
|
-
return [];
|
|
255
|
-
}
|
|
256
|
-
let filtered;
|
|
257
|
-
if (!this.visibleQuotaTypes()) {
|
|
258
|
-
filtered = quota.usage;
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
filtered = quota.usage.filter(quota => this.visibleQuotaTypes()?.includes(quota.quotaType));
|
|
262
|
-
}
|
|
263
|
-
const visibleQuotas = filtered.map(quota => {
|
|
264
|
-
return this.#convertUsageToDisplayQuota(quota);
|
|
265
|
-
});
|
|
266
|
-
return visibleQuotas;
|
|
267
|
-
});
|
|
268
|
-
this.subscriptionStates = SUBSCRIPTION_STATE;
|
|
269
|
-
this.subscriptionState = computed(() => {
|
|
270
|
-
const subscription = this.subscription();
|
|
271
|
-
if (!subscription) {
|
|
272
|
-
return SUBSCRIPTION_STATE.NONE;
|
|
273
|
-
}
|
|
274
|
-
if (subscription.IsTrial) {
|
|
275
|
-
return SUBSCRIPTION_STATE.TRIAL;
|
|
276
|
-
}
|
|
277
|
-
const now = new Date();
|
|
278
|
-
if (!subscription.EndDate || new Date(subscription.EndDate) < now) {
|
|
279
|
-
return SUBSCRIPTION_STATE.ACTIVE;
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
return SUBSCRIPTION_STATE.ENDED;
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
#chargebeeMountService;
|
|
287
|
-
ngOnInit() {
|
|
288
|
-
this.#mountChargeBeeScript();
|
|
289
|
-
}
|
|
290
|
-
manageClicked() {
|
|
291
|
-
this.manageClick.emit();
|
|
292
|
-
}
|
|
293
|
-
contactUsClicked() {
|
|
294
|
-
this.contactUsClick.emit();
|
|
295
|
-
}
|
|
296
|
-
#mountChargeBeeScript() {
|
|
297
|
-
const chargebeeSettings = this.chargebeeSettings();
|
|
298
|
-
if (!chargebeeSettings?.site || !chargebeeSettings.script) {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
if (!this.#chargebeeMountService.chargebeeMounted) {
|
|
302
|
-
const el = document.createElement('script');
|
|
303
|
-
el.onload = () => {
|
|
304
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
305
|
-
const windowObj = window;
|
|
306
|
-
windowObj.Chargebee.init({
|
|
307
|
-
site: chargebeeSettings.site
|
|
308
|
-
});
|
|
309
|
-
windowObj.Chargebee.registerAgain();
|
|
310
|
-
this.#chargebeeMountService.chargebeeMounted = true;
|
|
311
|
-
};
|
|
312
|
-
el.setAttribute('src', chargebeeSettings.script);
|
|
313
|
-
document.head.appendChild(el);
|
|
314
|
-
}
|
|
315
|
-
else {
|
|
316
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
317
|
-
const windowObj = window;
|
|
318
|
-
windowObj.Chargebee.registerAgain();
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
#convertUsageToDisplayQuota(quota) {
|
|
322
|
-
// int max in c#
|
|
323
|
-
const unlimitedBenchmark = 2147483647;
|
|
324
|
-
const used = quota.quotaLimit - quota.quotaRemaining;
|
|
325
|
-
let convertedLimit = quota.quotaLimit.toString();
|
|
326
|
-
let convertedUsed = used.toString();
|
|
327
|
-
const isUnlimited = unlimitedBenchmark <= quota.quotaLimit;
|
|
328
|
-
const percentUsed = Math.round(((quota.quotaLimit - quota.quotaRemaining) / quota.quotaLimit) * 100);
|
|
329
|
-
switch (quota.quotaType) {
|
|
330
|
-
case QuotaType.ASR_FILE_LENGTH_SECONDS:
|
|
331
|
-
case QuotaType.ONLINE_ASR_USED_SECONDS:
|
|
332
|
-
convertedLimit = Math.ceil(quota.quotaLimit / 60).toString();
|
|
333
|
-
convertedUsed = Math.round(used / 60).toString();
|
|
334
|
-
break;
|
|
335
|
-
case QuotaType.ASR_FILE_SIZE_KB:
|
|
336
|
-
convertedLimit = this.#formatBytes(quota.quotaLimit * 1024);
|
|
337
|
-
convertedUsed = this.#formatBytes(used * 1024);
|
|
338
|
-
break;
|
|
339
|
-
case QuotaType.LLM_REQUESTS:
|
|
340
|
-
break;
|
|
341
|
-
}
|
|
342
|
-
return {
|
|
343
|
-
...quota,
|
|
344
|
-
convertedLimit,
|
|
345
|
-
convertedUsed,
|
|
346
|
-
isUnlimited,
|
|
347
|
-
percentUsed
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
#formatBytes(bytes, decimals = 0) {
|
|
351
|
-
if (!+bytes)
|
|
352
|
-
return '0 Bytes';
|
|
353
|
-
const k = 1024;
|
|
354
|
-
const dm = decimals < 0 ? 0 : decimals;
|
|
355
|
-
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
356
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
357
|
-
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
|
|
358
|
-
}
|
|
359
|
-
static { this.ɵfac = function SubscriptionComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubscriptionComponent)(); }; }
|
|
360
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubscriptionComponent, selectors: [["lib-subscription"]], inputs: { token: [1, "token"], subscription: [1, "subscription"], quota: [1, "quota"], visibleQuotaTypes: [1, "visibleQuotaTypes"], contactUsUrl: [1, "contactUsUrl"], chargebeeSettings: [1, "chargebeeSettings"] }, outputs: { manageClick: "manageClick", contactUsClick: "contactUsClick" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 7, vars: 5, consts: [[1, "subscription-actions-wrapper"], ["mat-flat-button", "", "color", "accent", "href", "javascript:void(0)", "data-cb-type", "portal", 1, "manage-sub-btn", "button-row-element"], ["mat-stroked-button", "", "target", "_blank", "color", "accent"], [1, "subscription-section-title", "text-l-semi-bold"], [1, "subscription-data-row"], [1, "subscription-label"], [1, "label"], [1, "subscription-data"], ["fxLayout", "row", 1, "subscription-data-row"], [1, "subscription-limit-wrapper"], [3, "value"], [1, "subscription-limit"], [1, "text-l-semi-bold"], ["mat-flat-button", "", "color", "accent", "href", "javascript:void(0)", "data-cb-type", "portal", 1, "manage-sub-btn", "button-row-element", 3, "click"], ["mat-stroked-button", "", "target", "_blank", "color", "accent", 3, "click"]], template: function SubscriptionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
361
|
-
i0.ɵɵprojectionDef();
|
|
362
|
-
i0.ɵɵtemplate(0, SubscriptionComponent_Conditional_0_Template, 20, 11)(1, SubscriptionComponent_Conditional_1_Template, 15, 8)(2, SubscriptionComponent_Conditional_2_Template, 5, 3);
|
|
363
|
-
i0.ɵɵprojection(3);
|
|
364
|
-
i0.ɵɵelementStart(4, "div", 0);
|
|
365
|
-
i0.ɵɵtemplate(5, SubscriptionComponent_Conditional_5_Template, 3, 3, "a", 1)(6, SubscriptionComponent_Conditional_6_Template, 3, 4, "a", 2);
|
|
366
|
-
i0.ɵɵelementEnd();
|
|
367
|
-
} if (rf & 2) {
|
|
368
|
-
i0.ɵɵconditional(ctx.token() ? 0 : -1);
|
|
369
|
-
i0.ɵɵadvance();
|
|
370
|
-
i0.ɵɵconditional(ctx.subscription() ? 1 : -1);
|
|
371
|
-
i0.ɵɵadvance();
|
|
372
|
-
i0.ɵɵconditional(ctx.visibleQuotas().length ? 2 : -1);
|
|
373
|
-
i0.ɵɵadvance(3);
|
|
374
|
-
i0.ɵɵconditional(ctx.chargebeeSettings() ? 5 : -1);
|
|
375
|
-
i0.ɵɵadvance();
|
|
376
|
-
i0.ɵɵconditional(ctx.contactUsUrl() ? 6 : -1);
|
|
377
|
-
} }, dependencies: [TranslatePipe,
|
|
378
|
-
DatePipe,
|
|
379
|
-
MatProgressBarModule, i1.MatProgressBar, CommonModule, i2.UpperCasePipe, MatButtonModule, i3.MatAnchor], styles: ["[_nghost-%COMP%]{display:block}mat-card[_ngcontent-%COMP%]{margin:1.5rem}.subscription-container[_ngcontent-%COMP%]:not(.mobile){margin:16px 32px}.subscription-section-title[_ngcontent-%COMP%]{margin:32px 0 18px}.subscription-data-row[_ngcontent-%COMP%]{border-bottom:2px solid var(--base-70);margin-bottom:18px;flex-direction:row;display:flex}.subscription-data[_ngcontent-%COMP%]{color:var(--base-30);word-wrap:break-word;margin-left:.5rem}.subscription-limit-wrapper[_ngcontent-%COMP%], .subscription-limit[_ngcontent-%COMP%]{margin-top:16px}.subscription-actions-wrapper[_ngcontent-%COMP%]{padding:32px 0 18px;display:flex;flex-direction:row;gap:24px}.subscription-manage-link[_ngcontent-%COMP%]{text-decoration:none}.subscription-container[_ngcontent-%COMP%]:not(.mobile, .empty)[_ngcontent-%COMP%]{width:75%}.subscription-label[_ngcontent-%COMP%]:not(.mobile, .empty)[_ngcontent-%COMP%]{width:35%}.subscription-data[_ngcontent-%COMP%]:not(.mobile, .empty)[_ngcontent-%COMP%]{width:65%}.untranslated-files-disclaimer[_ngcontent-%COMP%]{margin-top:16px;margin-bottom:10px;color:var(--base-40)}.no-subscription-message[_ngcontent-%COMP%]{margin-top:32px;color:var(--base-40)}.contact-sales-btn[_ngcontent-%COMP%]{text-align:center}.contact-sales-btn[_ngcontent-%COMP%]:hover{text-decoration:none}"] }); }
|
|
380
|
-
}
|
|
381
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubscriptionComponent, [{
|
|
382
|
-
type: Component,
|
|
383
|
-
args: [{ selector: 'lib-subscription', standalone: true, imports: [
|
|
384
|
-
TranslatePipe,
|
|
385
|
-
DatePipe,
|
|
386
|
-
MatProgressBarModule,
|
|
387
|
-
CommonModule,
|
|
388
|
-
MatButtonModule
|
|
389
|
-
], template: "@if(token()){\r\n <!-- narrow type to non null property -->\r\n @let userToken = token()!;\r\n\r\n <h3 class=\"subscription-section-title text-l-semi-bold\">{{ \"SUBSCRIPTION.USER_INFO\" | translate }}</h3>\r\n\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_NAME\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <span>{{ userToken.name }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_EMAIL\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <span>{{ userToken.email }}</span>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if(subscription()){\r\n @let currentSubscription = subscription()!;\r\n\r\n <div fxLayout=\"row\" class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_SUBSCRIPTION_PLAN_ID\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <ng-container>\r\n <span>\r\n {{ currentSubscription.Label ? currentSubscription.Label : currentSubscription.PlanId }}\r\n\r\n @switch (subscriptionState()) {\r\n @case(subscriptionStates.TRIAL){\r\n <span> ({{ \"SUBSCRIPTION.TRIAL_END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }}) </span>\r\n }\r\n @case (subscriptionStates.ACTIVE) {\r\n @if(currentSubscription.EndDate){\r\n <span> ({{ \"SUBSCRIPTION.END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }}) </span>\r\n }\r\n }\r\n @case (subscriptionStates.ENDED) {\r\n ({{ \"SUBSCRIPTION.END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }})\r\n }\r\n }\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n @if(currentSubscription.EndDate){\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_SUBSCRIPTION_END_DATE\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <ng-container>\r\n <span>{{currentSubscription.EndDate | date: \"dd.MM.yyyy\"}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if(currentSubscription.Addons?.length){\r\n <div fxLayout=\"row\" class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.ADDITIONS_PLUGINS\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n @for (item of currentSubscription.Addons; track $index; let i = $index) {\r\n <span>{{ item.id }}</span>\r\n @if(item.qt>1){\r\n <span> ({{item.qt}})</span>\r\n }\r\n <span> {{ currentSubscription.Addons!.length - 1 > i ? \",\" : \"\" }} </span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n@if(visibleQuotas().length){\r\n <h3 class=\"subscription-section-title text-l-semi-bold\">{{ \"SUBSCRIPTION.LIMITS\" | translate }}</h3>\r\n\r\n @for (currentQuota of visibleQuotas(); track $index) {\r\n <div class=\"subscription-limit-wrapper\">\r\n <mat-progress-bar [value]=\"currentQuota.percentUsed\"></mat-progress-bar>\r\n <div class=\"subscription-limit\">\r\n <span class=\"text-l-semi-bold\">\r\n {{ (\"QUOTA.\" + (currentQuota.quotaType.toString() | uppercase) + (currentQuota.isUnlimited? \"_UNLIMITED\": \"\")) | translate: { used: currentQuota.convertedUsed, limit: currentQuota.convertedLimit, percent: currentQuota.percentUsed} }}\r\n </span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n<!-- Add some extra info, such as disclaimer etc -->\r\n <ng-content></ng-content>\r\n\r\n<div class=\"subscription-actions-wrapper\">\r\n @if(chargebeeSettings()){\r\n <a mat-flat-button color=\"accent\" class=\"manage-sub-btn button-row-element\" href=\"javascript:void(0)\" data-cb-type=\"portal\" (click)=\"manageClicked()\">\r\n {{ \"SUBSCRIPTION.MANAGE\" | translate }}\r\n </a>\r\n }\r\n @if(contactUsUrl()){\r\n <a mat-stroked-button [attr.href]=\"contactUsUrl()\" target=\"_blank\" color=\"accent\" (click)=\"contactUsClicked()\">{{\"SUBSCRIPTION.CONTACT\" | translate}}</a>\r\n }\r\n</div>\r\n", styles: [":host{display:block}mat-card{margin:1.5rem}.subscription-container:not(.mobile){margin:16px 32px}.subscription-section-title{margin:32px 0 18px}.subscription-data-row{border-bottom:2px solid var(--base-70);margin-bottom:18px;flex-direction:row;display:flex}.subscription-data{color:var(--base-30);word-wrap:break-word;margin-left:.5rem}.subscription-limit-wrapper,.subscription-limit{margin-top:16px}.subscription-actions-wrapper{padding:32px 0 18px;display:flex;flex-direction:row;gap:24px}.subscription-manage-link{text-decoration:none}.subscription-container:not(.mobile,.empty){width:75%}.subscription-label:not(.mobile,.empty){width:35%}.subscription-data:not(.mobile,.empty){width:65%}.untranslated-files-disclaimer{margin-top:16px;margin-bottom:10px;color:var(--base-40)}.no-subscription-message{margin-top:32px;color:var(--base-40)}.contact-sales-btn{text-align:center}.contact-sales-btn:hover{text-decoration:none}\n"] }]
|
|
390
|
-
}], null, null); })();
|
|
391
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubscriptionComponent, { className: "SubscriptionComponent", filePath: "lib\\subscription\\subscription.component.ts", lineNumber: 27 }); })();
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7SUNSaEUsa0JBQXlCO0lBRXZCLDZCQUF3RDtJQUFBLFlBQTBDOztJQUFBLGlCQUFLO0lBSW5HLEFBREYsQUFERiw4QkFBbUMsYUFDRCxjQUNWO0lBQUEsWUFBMkM7O0lBQ2pFLEFBRGlFLGlCQUFPLEVBQ2xFO0lBR0osQUFERiw4QkFBK0IsWUFDdkI7SUFBQSxhQUFvQjtJQUU5QixBQURFLEFBRDRCLGlCQUFPLEVBQzdCLEVBQ0Y7SUFJRixBQURGLEFBREYsK0JBQW1DLGNBQ0QsZUFDVjtJQUFBLGFB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OztrRkFJVSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFF1b3RhUmVzcG9uc2UsIFF1b3RhVHlwZSwgUXVvdGFVc2FnZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQXV0aFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL2NvcmUvYXV0aC9hdXRoLXN1YnNjcmlwdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEp3dFRva2VuIH0gZnJvbSAnLi4vY29yZS9hdXRoL2p3dC10b2tlbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNVQlNDUklQVElPTl9TVEFURSB9IGZyb20gJy4vbW9kZWxzL3N1YnNjcmlwdGlvbi1zdGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uUXVvdGFEaXNwbGF5IH0gZnJvbSAnLi9tb2RlbHMvc3Vic2NyaXB0aW9uLXF1b3RhLWRpc3BsYXkubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBDaGFyZ2ViZWVNb3VudFNlcnZpY2UgfSBmcm9tICcuL2NoYXJnZWJlZS1tb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhcmdlYmVlU2V0dGluZ3MgfSBmcm9tICcuL21vZGVscy9jaGFyZ2ViZWUtc2V0dGluZ3MubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3Vic2NyaXB0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSAjY2hhcmdlYmVlTW91bnRTZXJ2aWNlID0gaW5qZWN0KENoYXJnZWJlZU1vdW50U2VydmljZSk7XHJcblxyXG4gIC8qKiBQYXJzZWQgdXNlciB0b2tlbiB0byBnZXQgdXNlciByZWxhdGVkIGluZm8gKi9cclxuICByZWFkb25seSB0b2tlbiA9IGlucHV0LnJlcXVpcmVkPEp3dFRva2VuIHwgdW5kZWZpbmVkPigpO1xyXG4gIC8qKiBDdXJyZW50IHVzZXIgcGxhbiB0aGF0IGFwcCBoYXMgc2VsZWN0ZWQgKi9cclxuICByZWFkb25seSBzdWJzY3JpcHRpb24gPSBpbnB1dC5yZXF1aXJlZDxBdXRoU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkPigpO1xyXG4gIC8qKiBRdW90YSB1c2FnZSAqL1xyXG4gIHJlYWRvbmx5IHF1b3RhID0gaW5wdXQucmVxdWlyZWQ8UXVvdGFSZXNwb25zZSB8IHVuZGVmaW5lZD4oKTtcclxuICByZWFkb25seSB2aXNpYmxlUXVvdGFUeXBlcyA9IGlucHV0PFF1b3RhVHlwZVtdPigpO1xyXG4gIHJlYWRvbmx5IGNvbnRhY3RVc1VybCA9IGlucHV0PHN0cmluZz4oKTtcclxuICByZWFkb25seSBjaGFyZ2ViZWVTZXR0aW5ncyA9IGlucHV0PENoYXJnZWJlZVNldHRpbmdzPigpO1xyXG5cclxuICByZWFkb25seSBtYW5hZ2VDbGljayA9IG91dHB1dCgpO1xyXG4gIHJlYWRvbmx5IGNvbnRhY3RVc0NsaWNrID0gb3V0cHV0KCk7XHJcblxyXG4gIHJlYWRvbmx5IHZpc2libGVRdW90YXMgPSBjb21wdXRlZDxTdWJzY3JpcHRpb25RdW90YURpc3BsYXlbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgcXVvdGEgPSB0aGlzLnF1b3RhKCk7XHJcbiAgICBpZiAoIXF1b3RhPy51c2FnZSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbHRlcmVkOiBRdW90YVVzYWdlW107XHJcbiAgICBpZiAoIXRoaXMudmlzaWJsZVF1b3RhVHlwZXMoKSkge1xyXG4gICAgICBmaWx0ZXJlZCA9IHF1b3RhLnVzYWdlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGZpbHRlcmVkID0gcXVvdGEudXNhZ2UuZmlsdGVyKHF1b3RhID0+IHRoaXMudmlzaWJsZVF1b3RhVHlwZXMoKT8uaW5jbHVkZXMocXVvdGEucXVvdGFUeXBlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmlzaWJsZVF1b3RhczogU3Vic2NyaXB0aW9uUXVvdGFEaXNwbGF5W10gPSBmaWx0ZXJlZC5tYXAocXVvdGEgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy4jY29udmVydFVzYWdlVG9EaXNwbGF5UXVvdGEocXVvdGEpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmlzaWJsZVF1b3RhcztcclxuICB9KVxyXG5cclxuICByZWFkb25seSBzdWJzY3JpcHRpb25TdGF0ZXMgPSBTVUJTQ1JJUFRJT05fU1RBVEU7XHJcblxyXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvblN0YXRlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zdWJzY3JpcHRpb24oKTtcclxuICAgIGlmICghc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHJldHVybiBTVUJTQ1JJUFRJT05fU1RBVEUuTk9ORTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3Vic2NyaXB0aW9uLklzVHJpYWwpIHtcclxuICAgICAgcmV0dXJuIFNVQlNDUklQVElPTl9TVEFURS5UUklBTDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGlmICghc3Vic2NyaXB0aW9uLkVuZERhdGUgfHwgbmV3IERhdGUoc3Vic2NyaXB0aW9uLkVuZERhdGUpIDwgbm93KSB7XHJcbiAgICAgIHJldHVybiBTVUJTQ1JJUFRJT05fU1RBVEUuQUNUSVZFO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFNVQlNDUklQVElPTl9TVEFURS5FTkRFRDtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLiNtb3VudENoYXJnZUJlZVNjcmlwdCgpO1xyXG4gIH1cclxuXHJcbiAgbWFuYWdlQ2xpY2tlZCgpe1xyXG4gICAgdGhpcy5tYW5hZ2VDbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjb250YWN0VXNDbGlja2VkKCl7XHJcbiAgICB0aGlzLmNvbnRhY3RVc0NsaWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gICNtb3VudENoYXJnZUJlZVNjcmlwdCgpIHtcclxuICAgIGNvbnN0IGNoYXJnZWJlZVNldHRpbmdzID0gdGhpcy5jaGFyZ2ViZWVTZXR0aW5ncygpO1xyXG4gICAgaWYgKCFjaGFyZ2ViZWVTZXR0aW5ncz8uc2l0ZSB8fCAhY2hhcmdlYmVlU2V0dGluZ3Muc2NyaXB0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuI2NoYXJnZWJlZU1vdW50U2VydmljZS5jaGFyZ2ViZWVNb3VudGVkKSB7XHJcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgIGVsLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNvbnN0IHdpbmRvd09iajogYW55ID0gd2luZG93O1xyXG4gICAgICAgIHdpbmRvd09iai5DaGFyZ2ViZWUuaW5pdCh7XHJcbiAgICAgICAgICBzaXRlOiBjaGFyZ2ViZWVTZXR0aW5ncy5zaXRlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgd2luZG93T2JqLkNoYXJnZWJlZS5yZWdpc3RlckFnYWluKCk7XHJcbiAgICAgICAgdGhpcy4jY2hhcmdlYmVlTW91bnRTZXJ2aWNlLmNoYXJnZWJlZU1vdW50ZWQgPSB0cnVlO1xyXG4gICAgICB9O1xyXG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3NyYycsIGNoYXJnZWJlZVNldHRpbmdzLnNjcmlwdCk7XHJcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgY29uc3Qgd2luZG93T2JqOiBhbnkgPSB3aW5kb3c7XHJcbiAgICAgIHdpbmRvd09iai5DaGFyZ2ViZWUucmVnaXN0ZXJBZ2FpbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2NvbnZlcnRVc2FnZVRvRGlzcGxheVF1b3RhKHF1b3RhOiBRdW90YVVzYWdlKTogU3Vic2NyaXB0aW9uUXVvdGFEaXNwbGF5IHtcclxuICAgIC8vIGludCBtYXggaW4gYyNcclxuICAgIGNvbnN0IHVubGltaXRlZEJlbmNobWFyayA9IDIxNDc0ODM2NDc7XHJcblxyXG4gICAgY29uc3QgdXNlZCA9IHF1b3RhLnF1b3RhTGltaXQgLSBxdW90YS5xdW90YVJlbWFpbmluZztcclxuICAgIGxldCBjb252ZXJ0ZWRMaW1pdCA9IHF1b3RhLnF1b3RhTGltaXQudG9TdHJpbmcoKTtcclxuICAgIGxldCBjb252ZXJ0ZWRVc2VkID0gdXNlZC50b1N0cmluZygpO1xyXG4gICAgY29uc3QgaXNVbmxpbWl0ZWQgPSB1bmxpbWl0ZWRCZW5jaG1hcmsgPD0gcXVvdGEucXVvdGFMaW1pdDtcclxuICAgIGNvbnN0IHBlcmNlbnRVc2VkID0gTWF0aC5yb3VuZCgoKHF1b3RhLnF1b3RhTGltaXQgLSBxdW90YS5xdW90YVJlbWFpbmluZykgLyBxdW90YS5xdW90YUxpbWl0KSAqIDEwMCk7XHJcblxyXG4gICAgc3dpdGNoIChxdW90YS5xdW90YVR5cGUpIHtcclxuICAgICAgY2FzZSBRdW90YVR5cGUuQVNSX0ZJTEVfTEVOR1RIX1NFQ09ORFM6XHJcbiAgICAgIGNhc2UgUXVvdGFUeXBlLk9OTElORV9BU1JfVVNFRF9TRUNPTkRTOlxyXG4gICAgICAgIGNvbnZlcnRlZExpbWl0ID0gTWF0aC5jZWlsKHF1b3RhLnF1b3RhTGltaXQgLyA2MCkudG9TdHJpbmcoKTtcclxuICAgICAgICBjb252ZXJ0ZWRVc2VkID0gTWF0aC5yb3VuZCh1c2VkIC8gNjApLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUXVvdGFUeXBlLkFTUl9GSUxFX1NJWkVfS0I6XHJcbiAgICAgICAgY29udmVydGVkTGltaXQgPSB0aGlzLiNmb3JtYXRCeXRlcyhxdW90YS5xdW90YUxpbWl0ICogMTAyNCk7XHJcbiAgICAgICAgY29udmVydGVkVXNlZCA9IHRoaXMuI2Zvcm1hdEJ5dGVzKHVzZWQgKiAxMDI0KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBRdW90YVR5cGUuTExNX1JFUVVFU1RTOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnF1b3RhLFxyXG4gICAgICBjb252ZXJ0ZWRMaW1pdCxcclxuICAgICAgY29udmVydGVkVXNlZCxcclxuICAgICAgaXNVbmxpbWl0ZWQsXHJcbiAgICAgIHBlcmNlbnRVc2VkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgI2Zvcm1hdEJ5dGVzKGJ5dGVzOiBudW1iZXIsIGRlY2ltYWxzID0gMCkge1xyXG4gICAgaWYgKCErYnl0ZXMpIHJldHVybiAnMCBCeXRlcydcclxuXHJcbiAgICBjb25zdCBrID0gMTAyNFxyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8IDAgPyAwIDogZGVjaW1hbHNcclxuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddXHJcblxyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpXHJcblxyXG4gICAgcmV0dXJuIGAke3BhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKX0gJHtzaXplc1tpXX1gXHJcbiAgfVxyXG5cclxufVxyXG4iLCJAaWYodG9rZW4oKSl7XHJcbiAgPCEtLSBuYXJyb3cgdHlwZSB0byBub24gbnVsbCBwcm9wZXJ0eSAtLT5cclxuICBAbGV0IHVzZXJUb2tlbiA9IHRva2VuKCkhO1xyXG5cclxuICAgIDxoMyBjbGFzcz1cInN1YnNjcmlwdGlvbi1zZWN0aW9uLXRpdGxlIHRleHQtbC1zZW1pLWJvbGRcIj57eyBcIlNVQlNDUklQVElPTi5VU0VSX0lORk9cIiB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1kYXRhLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IFwiU1VCU0NSSVBUSU9OLkxBQkVMX05BTUVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGFcIj5cclxuICAgICAgICA8c3Bhbj57eyB1c2VyVG9rZW4ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGEtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgXCJTVUJTQ1JJUFRJT04uTEFCRUxfRU1BSUxcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGFcIj5cclxuICAgICAgICA8c3Bhbj57eyB1c2VyVG9rZW4uZW1haWwgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbn1cclxuXHJcbkBpZihzdWJzY3JpcHRpb24oKSl7XHJcbiAgQGxldCBjdXJyZW50U3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uKCkhO1xyXG5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IFwiU1VCU0NSSVBUSU9OLkxBQkVMX1NVQlNDUklQVElPTl9QTEFOX0lEXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGFcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgIHt7IGN1cnJlbnRTdWJzY3JpcHRpb24uTGFiZWwgPyBjdXJyZW50U3Vic2NyaXB0aW9uLkxhYmVsIDogY3VycmVudFN1YnNjcmlwdGlvbi5QbGFuSWQgfX1cclxuXHJcbiAgICAgICAgICBAc3dpdGNoIChzdWJzY3JpcHRpb25TdGF0ZSgpKSB7XHJcbiAgICAgICAgICAgIEBjYXNlKHN1YnNjcmlwdGlvblN0YXRlcy5UUklBTCl7XHJcbiAgICAgICAgICAgICAgPHNwYW4+ICh7eyBcIlNVQlNDUklQVElPTi5UUklBTF9FTkRfREFURVwiIHwgdHJhbnNsYXRlOiB7IGRhdGU6IGN1cnJlbnRTdWJzY3JpcHRpb24uRW5kRGF0ZSB8IGRhdGU6IFwiZGQuTU0ueXl5eS5cIiB9IH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKHN1YnNjcmlwdGlvblN0YXRlcy5BQ1RJVkUpIHtcclxuICAgICAgICAgICAgICBAaWYoY3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlKXtcclxuICAgICAgICAgICAgICAgIDxzcGFuPiAoe3sgXCJTVUJTQ1JJUFRJT04uRU5EX0RBVEVcIiB8IHRyYW5zbGF0ZTogeyBkYXRlOiBjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUgfCBkYXRlOiBcImRkLk1NLnl5eXkuXCIgfSB9fSkgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoc3Vic2NyaXB0aW9uU3RhdGVzLkVOREVEKSB7XHJcbiAgICAgICAgICAgICh7eyBcIlNVQlNDUklQVElPTi5FTkRfREFURVwiIHwgdHJhbnNsYXRlOiB7IGRhdGU6IGN1cnJlbnRTdWJzY3JpcHRpb24uRW5kRGF0ZSB8IGRhdGU6IFwiZGQuTU0ueXl5eS5cIiB9IH19KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICBAaWYoY3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlKXtcclxuICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGEtcm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWxhYmVsXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBcIlNVQlNDUklQVElPTi5MQUJFTF9TVUJTQ1JJUFRJT05fRU5EX0RBVEVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuPnt7Y3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlIHwgZGF0ZTogXCJkZC5NTS55eXl5XCJ9fTwvc3Bhbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgQGlmKGN1cnJlbnRTdWJzY3JpcHRpb24uQWRkb25zPy5sZW5ndGgpe1xyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGEtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgXCJTVUJTQ1JJUFRJT04uQURESVRJT05TX1BMVUdJTlNcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGFcIj5cclxuICAgICAgICBAZm9yIChpdGVtIG9mIGN1cnJlbnRTdWJzY3JpcHRpb24uQWRkb25zOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0uaWQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIEBpZihpdGVtLnF0PjEpe1xyXG4gICAgICAgICAgICAgIDxzcGFuPiAoe3tpdGVtLnF0fX0pPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxzcGFuPiB7eyBjdXJyZW50U3Vic2NyaXB0aW9uLkFkZG9ucyEubGVuZ3RoIC0gMSA+IGkgPyBcIixcIiA6IFwiXCIgfX0gPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbn1cclxuXHJcbkBpZih2aXNpYmxlUXVvdGFzKCkubGVuZ3RoKXtcclxuICA8aDMgY2xhc3M9XCJzdWJzY3JpcHRpb24tc2VjdGlvbi10aXRsZSB0ZXh0LWwtc2VtaS1ib2xkXCI+e3sgXCJTVUJTQ1JJUFRJT04uTElNSVRTXCIgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG5cclxuICBAZm9yIChjdXJyZW50UXVvdGEgb2YgdmlzaWJsZVF1b3RhcygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGltaXQtd3JhcHBlclwiPlxyXG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBbdmFsdWVdPVwiY3VycmVudFF1b3RhLnBlcmNlbnRVc2VkXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWxpbWl0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWwtc2VtaS1ib2xkXCI+XHJcbiAgICAgICAgICB7eyAoXCJRVU9UQS5cIiArIChjdXJyZW50UXVvdGEucXVvdGFUeXBlLnRvU3RyaW5nKCkgfCB1cHBlcmNhc2UpICsgKGN1cnJlbnRRdW90YS5pc1VubGltaXRlZD8gXCJfVU5MSU1JVEVEXCI6IFwiXCIpKSB8IHRyYW5zbGF0ZTogeyB1c2VkOiBjdXJyZW50UXVvdGEuY29udmVydGVkVXNlZCwgbGltaXQ6IGN1cnJlbnRRdW90YS5jb252ZXJ0ZWRMaW1pdCwgcGVyY2VudDogY3VycmVudFF1b3RhLnBlcmNlbnRVc2VkfSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbn1cclxuXHJcbjwhLS0gQWRkIHNvbWUgZXh0cmEgaW5mbywgc3VjaCBhcyBkaXNjbGFpbWVyIGV0YyAtLT5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG48ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWFjdGlvbnMtd3JhcHBlclwiPlxyXG4gIEBpZihjaGFyZ2ViZWVTZXR0aW5ncygpKXtcclxuICAgIDxhIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWFuYWdlLXN1Yi1idG4gYnV0dG9uLXJvdy1lbGVtZW50XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGRhdGEtY2ItdHlwZT1cInBvcnRhbFwiIChjbGljayk9XCJtYW5hZ2VDbGlja2VkKClcIj5cclxuICAgICAge3sgXCJTVUJTQ1JJUFRJT04uTUFOQUdFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYT5cclxuICB9XHJcbiAgQGlmKGNvbnRhY3RVc1VybCgpKXtcclxuICAgIDxhIG1hdC1zdHJva2VkLWJ1dHRvbiBbYXR0ci5ocmVmXT1cImNvbnRhY3RVc1VybCgpXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY29udGFjdFVzQ2xpY2tlZCgpXCI+e3tcIlNVQlNDUklQVElPTi5DT05UQUNUXCIgfCB0cmFuc2xhdGV9fTwvYT5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|