@tsi-developpement/tsi-shared-ui 0.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/esm2022/lib/consts/app-providers.mjs +11 -0
- package/esm2022/lib/consts/html-template.const.mjs +40 -0
- package/esm2022/lib/consts/index.mjs +8 -0
- package/esm2022/lib/consts/localization-key.mjs +12 -0
- package/esm2022/lib/consts/locals.const.mjs +8 -0
- package/esm2022/lib/consts/queryParamNames.const.mjs +11 -0
- package/esm2022/lib/consts/themes.mjs +5 -0
- package/esm2022/lib/consts/tsi-consts.mjs +45 -0
- package/esm2022/lib/end-points/authorization-endpoints.mjs +35 -0
- package/esm2022/lib/end-points/baseuri.mjs +11 -0
- package/esm2022/lib/end-points/endpoints.mjs +208 -0
- package/esm2022/lib/end-points/import-export-endpoint.mjs +35 -0
- package/esm2022/lib/end-points/index.mjs +7 -0
- package/esm2022/lib/end-points/presentation-settings-endpoints.mjs +13 -0
- package/esm2022/lib/end-points/reporting-endpoints.mjs +55 -0
- package/esm2022/lib/end-points/shared-endpoint.mjs +12 -0
- package/esm2022/lib/end-points/user-identity-endpoints.mjs +61 -0
- package/esm2022/lib/enums/Language.mjs +9 -0
- package/esm2022/lib/enums/auto-complete.mjs +6 -0
- package/esm2022/lib/enums/button-type.enum.mjs +6 -0
- package/esm2022/lib/enums/claim-types.mjs +15 -0
- package/esm2022/lib/enums/code-format.mjs +6 -0
- package/esm2022/lib/enums/component-use-modes-enum.mjs +19 -0
- package/esm2022/lib/enums/css-units.mjs +10 -0
- package/esm2022/lib/enums/decimal-format.mjs +8 -0
- package/esm2022/lib/enums/display-types.mjs +35 -0
- package/esm2022/lib/enums/filter-operator-type.mjs +34 -0
- package/esm2022/lib/enums/form-validation-error.mjs +7 -0
- package/esm2022/lib/enums/grid-selection-mode.mjs +7 -0
- package/esm2022/lib/enums/grid-sort-mode.mjs +7 -0
- package/esm2022/lib/enums/http-method-types.mjs +6 -0
- package/esm2022/lib/enums/index.mjs +25 -0
- package/esm2022/lib/enums/input-types.mjs +20 -0
- package/esm2022/lib/enums/layout-orientation.mjs +6 -0
- package/esm2022/lib/enums/logout-reason-enum.mjs +8 -0
- package/esm2022/lib/enums/modal-size-enum.mjs +10 -0
- package/esm2022/lib/enums/report-type.mjs +9 -0
- package/esm2022/lib/enums/status.mjs +9 -0
- package/esm2022/lib/enums/text-box-type.mjs +7 -0
- package/esm2022/lib/enums/tooltipPosition.enum.mjs +8 -0
- package/esm2022/lib/enums/tsi-component-enum.mjs +40 -0
- package/esm2022/lib/enums/type-import.mjs +6 -0
- package/esm2022/lib/functions/array.functions.mjs +8 -0
- package/esm2022/lib/functions/index.mjs +3 -0
- package/esm2022/lib/functions/modal-open.function.mjs +69 -0
- package/esm2022/lib/guards/admin.guard.mjs +37 -0
- package/esm2022/lib/guards/auth.guard.mjs +30 -0
- package/esm2022/lib/guards/index.mjs +4 -0
- package/esm2022/lib/guards/permission.guard.mjs +32 -0
- package/esm2022/lib/interfaces/configuration/configuration.mjs +2 -0
- package/esm2022/lib/interfaces/generic-form/generic-form.mjs +118 -0
- package/esm2022/lib/interfaces/generic-types/dictionary.mjs +2 -0
- package/esm2022/lib/interfaces/grid/grid-configuration.mjs +2 -0
- package/esm2022/lib/interfaces/index.mjs +12 -0
- package/esm2022/lib/interfaces/modal/dynamic.component.mjs +7 -0
- package/esm2022/lib/interfaces/modal/modal-size.mjs +2 -0
- package/esm2022/lib/interfaces/pagination/pagination-base.mjs +2 -0
- package/esm2022/lib/interfaces/select-list/combo-status-model.mjs +10 -0
- package/esm2022/lib/interfaces/settings/app-settings.mjs +2 -0
- package/esm2022/lib/interfaces/styles/css-size-property.mjs +17 -0
- package/esm2022/lib/interfaces/translation/translation.mjs +2 -0
- package/esm2022/lib/models/Notes/Note.mjs +7 -0
- package/esm2022/lib/models/application/configuration/endpoint-infos.mjs +3 -0
- package/esm2022/lib/models/application/configuration/entity-delete-behavior.mjs +2 -0
- package/esm2022/lib/models/authorization/authorization-token-mapper.mjs +24 -0
- package/esm2022/lib/models/authorization/authorization-token.mjs +2 -0
- package/esm2022/lib/models/common/component-descriminator.mjs +2 -0
- package/esm2022/lib/models/common/entity-properties.mjs +2 -0
- package/esm2022/lib/models/common/entity-validations.mjs +2 -0
- package/esm2022/lib/models/common/event-schema.mjs +2 -0
- package/esm2022/lib/models/common/key-value-pair.mjs +2 -0
- package/esm2022/lib/models/entity-info/entity-info.mjs +29 -0
- package/esm2022/lib/models/filter/filter-by-existing-values.mjs +7 -0
- package/esm2022/lib/models/filter/paged-result-request-base.mjs +13 -0
- package/esm2022/lib/models/filter/search-field.mjs +2 -0
- package/esm2022/lib/models/import-export/import-export.mjs +15 -0
- package/esm2022/lib/models/index.mjs +38 -0
- package/esm2022/lib/models/journalisation-application/journalisation-application.mjs +10 -0
- package/esm2022/lib/models/journalisation-application/status-history.mjs +3 -0
- package/esm2022/lib/models/layout/layout-config.mjs +2 -0
- package/esm2022/lib/models/modal/bs-modal.mjs +6 -0
- package/esm2022/lib/models/presentation-settings/presentation-settings.mjs +8 -0
- package/esm2022/lib/models/progress-bar/progress-bar-create-request.mjs +2 -0
- package/esm2022/lib/models/progress-bar/progress-bar-response.mjs +8 -0
- package/esm2022/lib/models/progress-bar/progress-bar-update-request.mjs +3 -0
- package/esm2022/lib/models/remote-services-utility/subscription-result.mjs +17 -0
- package/esm2022/lib/models/reporting/json-data-connection.mjs +2 -0
- package/esm2022/lib/models/reporting/optional-endpoints.mjs +2 -0
- package/esm2022/lib/models/reporting/report-template-response.mjs +2 -0
- package/esm2022/lib/models/reporting/report-to-edit-template.mjs +2 -0
- package/esm2022/lib/models/reporting/report-to-print.mjs +2 -0
- package/esm2022/lib/models/reporting/report-to-template.mjs +2 -0
- package/esm2022/lib/models/settings/devise.mjs +3 -0
- package/esm2022/lib/models/settings/fichier.mjs +6 -0
- package/esm2022/lib/models/settings/type-fichier.mjs +3 -0
- package/esm2022/lib/models/tsi-card/tsi-card.mjs +3 -0
- package/esm2022/lib/models/user-identity/login-response.mjs +7 -0
- package/esm2022/lib/models/user-identity/tenant.mjs +3 -0
- package/esm2022/lib/models/user-identity/user-identity.mjs +3 -0
- package/esm2022/lib/models/workflow/workflow.mjs +14 -0
- package/esm2022/lib/package-initializer.mjs +7 -0
- package/esm2022/lib/pipes/cut-label.pipe.mjs +23 -0
- package/esm2022/lib/pipes/index.mjs +8 -0
- package/esm2022/lib/pipes/localize.pipe.mjs +51 -0
- package/esm2022/lib/pipes/modal-label.pipe.mjs +37 -0
- package/esm2022/lib/pipes/shorten.pipe.mjs +20 -0
- package/esm2022/lib/pipes/to-number.pipe.mjs +20 -0
- package/esm2022/lib/pipes/tsi-currency.pipe.mjs +29 -0
- package/esm2022/lib/pipes/tsi-decimal.pipe.mjs +21 -0
- package/esm2022/lib/providers/index.mjs +2 -0
- package/esm2022/lib/providers/shared-ui-tsi.provider.mjs +15 -0
- package/esm2022/lib/routes/admin.routes.mjs +5 -0
- package/esm2022/lib/routes/app.routes.mjs +7 -0
- package/esm2022/lib/routes/identity.routes.mjs +4 -0
- package/esm2022/lib/routes/index.mjs +5 -0
- package/esm2022/lib/routes/manage-reporting.routes.mjs +5 -0
- package/esm2022/lib/services/Component-Finder/tsi-component-finder.service.mjs +22 -0
- package/esm2022/lib/services/Import-Export/modele-import.service.mjs +59 -0
- package/esm2022/lib/services/Note/Note.service.mjs +35 -0
- package/esm2022/lib/services/UserIdentity/identity-platform-authentication.service.mjs +29 -0
- package/esm2022/lib/services/UserIdentity/user-identity.service.mjs +40 -0
- package/esm2022/lib/services/application/api-explorer.service.mjs +24 -0
- package/esm2022/lib/services/application/app.layout.service.mjs +97 -0
- package/esm2022/lib/services/application/parametres-application-parambase.service.mjs +20 -0
- package/esm2022/lib/services/authorization/authorization.service.mjs +124 -0
- package/esm2022/lib/services/authorization/identity-manager.service.mjs +97 -0
- package/esm2022/lib/services/base/crud-base.service.mjs +38 -0
- package/esm2022/lib/services/configuration/entity-configuration.service.mjs +49 -0
- package/esm2022/lib/services/currentUser/currentUser.service.mjs +49 -0
- package/esm2022/lib/services/date-helper.service.mjs +133 -0
- package/esm2022/lib/services/dialog-data.service.mjs +32 -0
- package/esm2022/lib/services/fichier/fichier-upload.service.mjs +44 -0
- package/esm2022/lib/services/fichier/fichier.service.mjs +20 -0
- package/esm2022/lib/services/formula.service.mjs +20 -0
- package/esm2022/lib/services/generator/html-template-generator.service.mjs +196 -0
- package/esm2022/lib/services/index.mjs +41 -0
- package/esm2022/lib/services/journalisation/journalisation-application.service.mjs +23 -0
- package/esm2022/lib/services/journalisation/status-history.service.mjs +23 -0
- package/esm2022/lib/services/layout/layout-helper.service.mjs +72 -0
- package/esm2022/lib/services/modal/tsi-bs-modal.service.mjs +37 -0
- package/esm2022/lib/services/modal/tsi-modal.service.mjs +21 -0
- package/esm2022/lib/services/module-code/module-code.service.mjs +31 -0
- package/esm2022/lib/services/module-main-parameter.service.mjs +31 -0
- package/esm2022/lib/services/notification/error-response-manager.service.mjs +57 -0
- package/esm2022/lib/services/notification/tsi-confirmation.service.mjs +37 -0
- package/esm2022/lib/services/notification/tsi-message.service.mjs +54 -0
- package/esm2022/lib/services/notification/tsi-notification.service.mjs +47 -0
- package/esm2022/lib/services/presentation-setting/presentation-designer-base.service.mjs +26 -0
- package/esm2022/lib/services/presentation-setting/presentation-designer.service.mjs +58 -0
- package/esm2022/lib/services/presentation-setting/presentation-setting.service.mjs +39 -0
- package/esm2022/lib/services/progress-bar/progress-bar-helper.service.mjs +39 -0
- package/esm2022/lib/services/progress-bar/progress-bar.service.mjs +30 -0
- package/esm2022/lib/services/record-info-popup.service.mjs +21 -0
- package/esm2022/lib/services/reporting/dashboard-module.service.mjs +24 -0
- package/esm2022/lib/services/reporting/reporting.service.mjs +111 -0
- package/esm2022/lib/services/settings/app-settings.service.mjs +47 -0
- package/esm2022/lib/services/settings/keyboard-shortcut.service.mjs +30 -0
- package/esm2022/lib/services/status/entityStatus.service.mjs +21 -0
- package/esm2022/lib/services/translation/translation.service.mjs +71 -0
- package/esm2022/lib/services/validation/entity-validations.service.mjs +21 -0
- package/esm2022/lib/services/validation/generic-validation-state.service.mjs +30 -0
- package/esm2022/lib/services/validation/input-registry.service.mjs +25 -0
- package/esm2022/lib/services/workflow/workflow-configuration.service.mjs +80 -0
- package/esm2022/lib/shared.module.mjs +643 -0
- package/esm2022/lib/tsi-base/components/app-base/app-base.component.mjs +101 -0
- package/esm2022/lib/tsi-base/components/tsi-base/tsi-base.component.mjs +25 -0
- package/esm2022/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.mjs +645 -0
- package/esm2022/lib/tsi-base/components/tsi-list-base/tsi-list-base.component.mjs +514 -0
- package/esm2022/lib/tsi-base/index.mjs +6 -0
- package/esm2022/lib/tsi-base/tsi-input-base/tsi-input-base.component.mjs +141 -0
- package/esm2022/lib/tsi-components/alert-import-message/alert-import-message.component.mjs +19 -0
- package/esm2022/lib/tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component.mjs +40 -0
- package/esm2022/lib/tsi-components/button-components/tsi-button/tsi-button.component.mjs +75 -0
- package/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +173 -0
- package/esm2022/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.mjs +201 -0
- package/esm2022/lib/tsi-components/index.mjs +80 -0
- package/esm2022/lib/tsi-components/input-components/editable-grid/editable-grid.component.mjs +643 -0
- package/esm2022/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.mjs +120 -0
- package/esm2022/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.mjs +53 -0
- package/esm2022/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.mjs +62 -0
- package/esm2022/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.mjs +116 -0
- package/esm2022/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.mjs +51 -0
- package/esm2022/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.mjs +195 -0
- package/esm2022/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.mjs +54 -0
- package/esm2022/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.mjs +55 -0
- package/esm2022/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.mjs +43 -0
- package/esm2022/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.mjs +56 -0
- package/esm2022/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.mjs +649 -0
- package/esm2022/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.mjs +44 -0
- package/esm2022/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.mjs +50 -0
- package/esm2022/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.mjs +65 -0
- package/esm2022/lib/tsi-components/logout-popup/logout-popup.component.mjs +12 -0
- package/esm2022/lib/tsi-components/manage-import-export/manage-import-export.component.mjs +435 -0
- package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs +148 -0
- package/esm2022/lib/tsi-components/manage-reporting/manage-reporting.component.mjs +1075 -0
- package/esm2022/lib/tsi-components/message-components/tsi-error-message/tsi-error-message.component.mjs +31 -0
- package/esm2022/lib/tsi-components/message-components/tsi-info-message/tsi-info-message.component.mjs +24 -0
- package/esm2022/lib/tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component.mjs +19 -0
- package/esm2022/lib/tsi-components/message-components/tsi-success-message/tsi-success-message.component.mjs +22 -0
- package/esm2022/lib/tsi-components/modal-component/modal.component.mjs +138 -0
- package/esm2022/lib/tsi-components/modal-loader/modal-loader.component.mjs +58 -0
- package/esm2022/lib/tsi-components/output-components/display-nested-prop/display-nested-prop.component.mjs +32 -0
- package/esm2022/lib/tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component.mjs +18 -0
- package/esm2022/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.mjs +17 -0
- package/esm2022/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.mjs +57 -0
- package/esm2022/lib/tsi-components/output-components/tsi-date-display/tsi-date-display.component.mjs +27 -0
- package/esm2022/lib/tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component.mjs +25 -0
- package/esm2022/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.mjs +139 -0
- package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +1509 -0
- package/esm2022/lib/tsi-components/output-components/tsi-image-display/tsi-image-display.component.mjs +144 -0
- package/esm2022/lib/tsi-components/output-components/tsi-integer-display/tsi-integer-display.component.mjs +13 -0
- package/esm2022/lib/tsi-components/output-components/tsi-label/tsi-label.component.mjs +24 -0
- package/esm2022/lib/tsi-components/output-components/tsi-label-legend/tsi-label-legend.component.mjs +18 -0
- package/esm2022/lib/tsi-components/output-components/tsi-legend/tsi-legend.component.mjs +20 -0
- package/esm2022/lib/tsi-components/output-components/tsi-paragraph/tsi-paragraph.component.mjs +17 -0
- package/esm2022/lib/tsi-components/output-components/tsi-rate-display/tsi-rate-display.component.mjs +30 -0
- package/esm2022/lib/tsi-components/output-components/tsi-time-display/tsi-time-display.component.mjs +17 -0
- package/esm2022/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.mjs +427 -0
- package/esm2022/lib/tsi-components/reporting/reporting.component.mjs +667 -0
- package/esm2022/lib/tsi-components/spinner/spinner.component.mjs +15 -0
- package/esm2022/lib/tsi-components/tsi-bubble-info/tsi-bubble-info.component.mjs +21 -0
- package/esm2022/lib/tsi-components/tsi-calender/context-menu/context-menu.component.mjs +46 -0
- package/esm2022/lib/tsi-components/tsi-calender/tsi-calender.component.mjs +297 -0
- package/esm2022/lib/tsi-components/tsi-card/tsi-card.component.mjs +64 -0
- package/esm2022/lib/tsi-components/tsi-card-list/tsi-card-list.component.mjs +112 -0
- package/esm2022/lib/tsi-components/tsi-change-password/tsi-change-password.component.mjs +39 -0
- package/esm2022/lib/tsi-components/tsi-code-generator/tsi-code-generator.component.mjs +83 -0
- package/esm2022/lib/tsi-components/tsi-divider/tsi-divider.component.mjs +18 -0
- package/esm2022/lib/tsi-components/tsi-form/tsi-form.component.mjs +305 -0
- package/esm2022/lib/tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component.mjs +15 -0
- package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +883 -0
- package/esm2022/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.mjs +149 -0
- package/esm2022/lib/tsi-components/tsi-kanban/tsi-kanban.component.mjs +231 -0
- package/esm2022/lib/tsi-components/tsi-log-event-history/tsi-log-event-history.component.mjs +119 -0
- package/esm2022/lib/tsi-components/tsi-modal/tsi-modal.component.mjs +25 -0
- package/esm2022/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.mjs +119 -0
- package/esm2022/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.mjs +54 -0
- package/esm2022/lib/tsi-components/tsi-notes-avertir/tsi-notes-avertir.component.mjs +27 -0
- package/esm2022/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.mjs +123 -0
- package/esm2022/lib/tsi-components/tsi-notes-grid/tsi-notes-grid.component.mjs +41 -0
- package/esm2022/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.mjs +187 -0
- package/esm2022/lib/tsi-components/tsi-progress-bar/tsi-progress-bar.component.mjs +170 -0
- package/esm2022/lib/tsi-components/tsi-search-box/tsi-search-box.component.mjs +142 -0
- package/esm2022/lib/tsi-components/tsi-send-mail/tsi-send-mail.component.mjs +37 -0
- package/esm2022/lib/tsi-components/tsi-tab-panel/tsi-tab-panel.component.mjs +52 -0
- package/esm2022/lib/tsi-components/tsi-tab-view/tsi-tab-view.component.mjs +46 -0
- package/esm2022/lib/tsi-components/tsi-tenants/tsi-tenants.component.mjs +122 -0
- package/esm2022/lib/tsi-components/tsi-tooltip/tsi-tooltip.component.mjs +21 -0
- package/esm2022/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.mjs +186 -0
- package/esm2022/lib/tsi-components/tsi-upload-grid/tsi-upload-grid.component.mjs +54 -0
- package/esm2022/lib/tsi-directives/auto-select.directive.mjs +33 -0
- package/esm2022/lib/tsi-directives/busy.directive.mjs +32 -0
- package/esm2022/lib/tsi-directives/dynamic-component-loader/ad.directive.mjs +16 -0
- package/esm2022/lib/tsi-directives/index.mjs +8 -0
- package/esm2022/lib/tsi-directives/module-main-parameter.directive.mjs +16 -0
- package/esm2022/lib/tsi-directives/presentation-designer-base.directive.mjs +238 -0
- package/esm2022/lib/tsi-directives/presentation-designer.directive.mjs +205 -0
- package/esm2022/lib/tsi-directives/validation.directive.mjs +85 -0
- package/esm2022/lib/tsi-helpers/compoent-reference.helper.mjs +7 -0
- package/esm2022/lib/tsi-helpers/date-helper.mjs +21 -0
- package/esm2022/lib/tsi-helpers/export-excel.helper.mjs +40 -0
- package/esm2022/lib/tsi-helpers/filter-helper.mjs +126 -0
- package/esm2022/lib/tsi-helpers/grid-col-style.helper.mjs +7 -0
- package/esm2022/lib/tsi-helpers/guid.helper.mjs +19 -0
- package/esm2022/lib/tsi-helpers/helpers.mjs +9 -0
- package/esm2022/lib/tsi-helpers/index.mjs +13 -0
- package/esm2022/lib/tsi-helpers/mapping-helper.mjs +10 -0
- package/esm2022/lib/tsi-helpers/object.helper.mjs +6 -0
- package/esm2022/lib/tsi-helpers/primeng-translate-config.mjs +55 -0
- package/esm2022/lib/tsi-helpers/storage-manager.mjs +33 -0
- package/esm2022/lib/tsi-helpers/type-registry.helper.mjs +49 -0
- package/esm2022/lib/types/enum-description.type.mjs +2 -0
- package/esm2022/lib/types/index.mjs +3 -0
- package/esm2022/lib/types/time-only.mjs +42 -0
- package/esm2022/public-api.mjs +21 -0
- package/esm2022/tsi-developpement-tsi-shared-ui.mjs +5 -0
- package/esm2022/tsi-tsi-shared-ui.mjs +5 -0
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +17486 -0
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -0
- package/fesm2022/tsi-tsi-shared-ui.mjs +17486 -0
- package/fesm2022/tsi-tsi-shared-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/consts/app-providers.d.ts +4 -0
- package/lib/consts/html-template.const.d.ts +12 -0
- package/lib/consts/index.d.ts +7 -0
- package/lib/consts/localization-key.d.ts +11 -0
- package/lib/consts/locals.const.d.ts +7 -0
- package/lib/consts/queryParamNames.const.d.ts +10 -0
- package/lib/consts/themes.d.ts +4 -0
- package/lib/consts/tsi-consts.d.ts +40 -0
- package/lib/end-points/authorization-endpoints.d.ts +31 -0
- package/lib/end-points/baseuri.d.ts +10 -0
- package/lib/end-points/endpoints.d.ts +205 -0
- package/lib/end-points/import-export-endpoint.d.ts +33 -0
- package/lib/end-points/index.d.ts +6 -0
- package/lib/end-points/presentation-settings-endpoints.d.ts +11 -0
- package/lib/end-points/reporting-endpoints.d.ts +53 -0
- package/lib/end-points/shared-endpoint.d.ts +9 -0
- package/lib/end-points/user-identity-endpoints.d.ts +59 -0
- package/lib/enums/Language.d.ts +9 -0
- package/lib/enums/auto-complete.d.ts +4 -0
- package/lib/enums/button-type.enum.d.ts +4 -0
- package/lib/enums/claim-types.d.ts +13 -0
- package/lib/enums/code-format.d.ts +4 -0
- package/lib/enums/component-use-modes-enum.d.ts +17 -0
- package/lib/enums/css-units.d.ts +8 -0
- package/lib/enums/decimal-format.d.ts +6 -0
- package/lib/enums/display-types.d.ts +17 -0
- package/lib/enums/filter-operator-type.d.ts +18 -0
- package/lib/enums/form-validation-error.d.ts +11 -0
- package/lib/enums/grid-selection-mode.d.ts +5 -0
- package/lib/enums/grid-sort-mode.d.ts +5 -0
- package/lib/enums/http-method-types.d.ts +4 -0
- package/lib/enums/index.d.ts +24 -0
- package/lib/enums/input-types.d.ts +18 -0
- package/lib/enums/layout-orientation.d.ts +4 -0
- package/lib/enums/logout-reason-enum.d.ts +6 -0
- package/lib/enums/modal-size-enum.d.ts +10 -0
- package/lib/enums/report-type.d.ts +7 -0
- package/lib/enums/status.d.ts +7 -0
- package/lib/enums/text-box-type.d.ts +5 -0
- package/lib/enums/tooltipPosition.enum.d.ts +6 -0
- package/lib/enums/tsi-component-enum.d.ts +37 -0
- package/lib/enums/type-import.d.ts +4 -0
- package/lib/functions/array.functions.d.ts +1 -0
- package/lib/functions/index.d.ts +1 -0
- package/lib/functions/modal-open.function.d.ts +9 -0
- package/lib/guards/admin.guard.d.ts +14 -0
- package/lib/guards/auth.guard.d.ts +12 -0
- package/lib/guards/index.d.ts +3 -0
- package/lib/guards/permission.guard.d.ts +2 -0
- package/lib/interfaces/configuration/configuration.d.ts +10 -0
- package/lib/interfaces/generic-form/generic-form.d.ts +45 -0
- package/lib/interfaces/generic-types/dictionary.d.ts +3 -0
- package/lib/interfaces/grid/grid-configuration.d.ts +116 -0
- package/lib/interfaces/index.d.ts +11 -0
- package/lib/interfaces/modal/dynamic.component.d.ts +18 -0
- package/lib/interfaces/modal/modal-size.d.ts +4 -0
- package/lib/interfaces/pagination/pagination-base.d.ts +46 -0
- package/lib/interfaces/select-list/combo-status-model.d.ts +8 -0
- package/lib/interfaces/settings/app-settings.d.ts +4 -0
- package/lib/interfaces/styles/css-size-property.d.ts +10 -0
- package/lib/interfaces/translation/translation.d.ts +10 -0
- package/lib/models/Notes/Note.d.ts +25 -0
- package/lib/models/application/configuration/endpoint-infos.d.ts +6 -0
- package/lib/models/application/configuration/entity-delete-behavior.d.ts +6 -0
- package/lib/models/authorization/authorization-token-mapper.d.ts +4 -0
- package/lib/models/authorization/authorization-token.d.ts +16 -0
- package/lib/models/common/component-descriminator.d.ts +4 -0
- package/lib/models/common/entity-properties.d.ts +5 -0
- package/lib/models/common/entity-validations.d.ts +7 -0
- package/lib/models/common/event-schema.d.ts +6 -0
- package/lib/models/common/key-value-pair.d.ts +4 -0
- package/lib/models/entity-info/entity-info.d.ts +37 -0
- package/lib/models/filter/filter-by-existing-values.d.ts +6 -0
- package/lib/models/filter/paged-result-request-base.d.ts +16 -0
- package/lib/models/filter/search-field.d.ts +35 -0
- package/lib/models/import-export/import-export.d.ts +28 -0
- package/lib/models/index.d.ts +37 -0
- package/lib/models/journalisation-application/journalisation-application.d.ts +39 -0
- package/lib/models/journalisation-application/status-history.d.ts +12 -0
- package/lib/models/layout/layout-config.d.ts +3 -0
- package/lib/models/modal/bs-modal.d.ts +5 -0
- package/lib/models/presentation-settings/presentation-settings.d.ts +14 -0
- package/lib/models/progress-bar/progress-bar-create-request.d.ts +8 -0
- package/lib/models/progress-bar/progress-bar-response.d.ts +10 -0
- package/lib/models/progress-bar/progress-bar-update-request.d.ts +9 -0
- package/lib/models/remote-services-utility/subscription-result.d.ts +15 -0
- package/lib/models/reporting/json-data-connection.d.ts +6 -0
- package/lib/models/reporting/optional-endpoints.d.ts +8 -0
- package/lib/models/reporting/report-template-response.d.ts +13 -0
- package/lib/models/reporting/report-to-edit-template.d.ts +29 -0
- package/lib/models/reporting/report-to-print.d.ts +18 -0
- package/lib/models/reporting/report-to-template.d.ts +19 -0
- package/lib/models/settings/devise.d.ts +9 -0
- package/lib/models/settings/fichier.d.ts +14 -0
- package/lib/models/settings/type-fichier.d.ts +4 -0
- package/lib/models/tsi-card/tsi-card.d.ts +9 -0
- package/lib/models/user-identity/login-response.d.ts +8 -0
- package/lib/models/user-identity/tenant.d.ts +5 -0
- package/lib/models/user-identity/user-identity.d.ts +5 -0
- package/lib/models/workflow/workflow.d.ts +36 -0
- package/lib/package-initializer.d.ts +1 -0
- package/lib/pipes/cut-label.pipe.d.ts +7 -0
- package/lib/pipes/index.d.ts +7 -0
- package/lib/pipes/localize.pipe.d.ts +11 -0
- package/lib/pipes/modal-label.pipe.d.ts +10 -0
- package/lib/pipes/shorten.pipe.d.ts +7 -0
- package/lib/pipes/to-number.pipe.d.ts +7 -0
- package/lib/pipes/tsi-currency.pipe.d.ts +10 -0
- package/lib/pipes/tsi-decimal.pipe.d.ts +7 -0
- package/lib/providers/index.d.ts +1 -0
- package/lib/providers/shared-ui-tsi.provider.d.ts +8 -0
- package/lib/routes/admin.routes.d.ts +4 -0
- package/lib/routes/app.routes.d.ts +6 -0
- package/lib/routes/identity.routes.d.ts +3 -0
- package/lib/routes/index.d.ts +4 -0
- package/lib/routes/manage-reporting.routes.d.ts +4 -0
- package/lib/services/Component-Finder/tsi-component-finder.service.d.ts +10 -0
- package/lib/services/Import-Export/modele-import.service.d.ts +21 -0
- package/lib/services/Note/Note.service.d.ts +15 -0
- package/lib/services/UserIdentity/identity-platform-authentication.service.d.ts +13 -0
- package/lib/services/UserIdentity/user-identity.service.d.ts +15 -0
- package/lib/services/application/api-explorer.service.d.ts +13 -0
- package/lib/services/application/app.layout.service.d.ts +47 -0
- package/lib/services/application/parametres-application-parambase.service.d.ts +10 -0
- package/lib/services/authorization/authorization.service.d.ts +46 -0
- package/lib/services/authorization/identity-manager.service.d.ts +23 -0
- package/lib/services/base/crud-base.service.d.ts +20 -0
- package/lib/services/configuration/entity-configuration.service.d.ts +22 -0
- package/lib/services/currentUser/currentUser.service.d.ts +26 -0
- package/lib/services/date-helper.service.d.ts +32 -0
- package/lib/services/dialog-data.service.d.ts +12 -0
- package/lib/services/fichier/fichier-upload.service.d.ts +15 -0
- package/lib/services/fichier/fichier.service.d.ts +10 -0
- package/lib/services/formula.service.d.ts +10 -0
- package/lib/services/generator/html-template-generator.service.d.ts +28 -0
- package/lib/services/index.d.ts +40 -0
- package/lib/services/journalisation/journalisation-application.service.d.ts +12 -0
- package/lib/services/journalisation/status-history.service.d.ts +12 -0
- package/lib/services/layout/layout-helper.service.d.ts +25 -0
- package/lib/services/modal/tsi-bs-modal.service.d.ts +16 -0
- package/lib/services/modal/tsi-modal.service.d.ts +9 -0
- package/lib/services/module-code/module-code.service.d.ts +18 -0
- package/lib/services/module-main-parameter.service.d.ts +12 -0
- package/lib/services/notification/error-response-manager.service.d.ts +13 -0
- package/lib/services/notification/tsi-confirmation.service.d.ts +11 -0
- package/lib/services/notification/tsi-message.service.d.ts +13 -0
- package/lib/services/notification/tsi-notification.service.d.ts +18 -0
- package/lib/services/presentation-setting/presentation-designer-base.service.d.ts +14 -0
- package/lib/services/presentation-setting/presentation-designer.service.d.ts +19 -0
- package/lib/services/presentation-setting/presentation-setting.service.d.ts +16 -0
- package/lib/services/progress-bar/progress-bar-helper.service.d.ts +19 -0
- package/lib/services/progress-bar/progress-bar.service.d.ts +16 -0
- package/lib/services/record-info-popup.service.d.ts +10 -0
- package/lib/services/reporting/dashboard-module.service.d.ts +11 -0
- package/lib/services/reporting/reporting.service.d.ts +32 -0
- package/lib/services/settings/app-settings.service.d.ts +13 -0
- package/lib/services/settings/keyboard-shortcut.service.d.ts +9 -0
- package/lib/services/status/entityStatus.service.d.ts +11 -0
- package/lib/services/translation/translation.service.d.ts +20 -0
- package/lib/services/validation/entity-validations.service.d.ts +10 -0
- package/lib/services/validation/generic-validation-state.service.d.ts +15 -0
- package/lib/services/validation/input-registry.service.d.ts +11 -0
- package/lib/services/workflow/workflow-configuration.service.d.ts +28 -0
- package/lib/shared.module.d.ts +141 -0
- package/lib/tsi-base/components/app-base/app-base.component.d.ts +28 -0
- package/lib/tsi-base/components/tsi-base/tsi-base.component.d.ts +11 -0
- package/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.d.ts +118 -0
- package/lib/tsi-base/components/tsi-list-base/tsi-list-base.component.d.ts +85 -0
- package/lib/tsi-base/index.d.ts +5 -0
- package/lib/tsi-base/tsi-input-base/tsi-input-base.component.d.ts +34 -0
- package/lib/tsi-components/alert-import-message/alert-import-message.component.d.ts +10 -0
- package/lib/tsi-components/button-components/Tsi-Submit-Button/tsi-submit-button.component.d.ts +16 -0
- package/lib/tsi-components/button-components/tsi-button/tsi-button.component.d.ts +26 -0
- package/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.d.ts +31 -0
- package/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.d.ts +52 -0
- package/lib/tsi-components/index.d.ts +79 -0
- package/lib/tsi-components/input-components/editable-grid/editable-grid.component.d.ts +127 -0
- package/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.d.ts +30 -0
- package/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.d.ts +18 -0
- package/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.d.ts +21 -0
- package/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.d.ts +38 -0
- package/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.d.ts +14 -0
- package/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.d.ts +45 -0
- package/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.d.ts +17 -0
- package/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.d.ts +19 -0
- package/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.d.ts +16 -0
- package/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.d.ts +16 -0
- package/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.d.ts +92 -0
- package/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.d.ts +17 -0
- package/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.d.ts +21 -0
- package/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.d.ts +23 -0
- package/lib/tsi-components/logout-popup/logout-popup.component.d.ts +5 -0
- package/lib/tsi-components/manage-import-export/manage-import-export.component.d.ts +64 -0
- package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +151 -0
- package/lib/tsi-components/manage-reporting/manage-reporting.component.d.ts +109 -0
- package/lib/tsi-components/message-components/tsi-error-message/tsi-error-message.component.d.ts +15 -0
- package/lib/tsi-components/message-components/tsi-info-message/tsi-info-message.component.d.ts +13 -0
- package/lib/tsi-components/message-components/tsi-redirection-message/tsi-redirection-message.component.d.ts +9 -0
- package/lib/tsi-components/message-components/tsi-success-message/tsi-success-message.component.d.ts +13 -0
- package/lib/tsi-components/modal-component/modal.component.d.ts +25 -0
- package/lib/tsi-components/modal-loader/modal-loader.component.d.ts +27 -0
- package/lib/tsi-components/output-components/display-nested-prop/display-nested-prop.component.d.ts +14 -0
- package/lib/tsi-components/output-components/tsi-checkbox-display/tsi-checkbox-display.component.d.ts +6 -0
- package/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.d.ts +7 -0
- package/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.d.ts +19 -0
- package/lib/tsi-components/output-components/tsi-date-display/tsi-date-display.component.d.ts +10 -0
- package/lib/tsi-components/output-components/tsi-decimal-display/tsi-decimal-display.component.d.ts +9 -0
- package/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.d.ts +41 -0
- package/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.d.ts +231 -0
- package/lib/tsi-components/output-components/tsi-image-display/tsi-image-display.component.d.ts +46 -0
- package/lib/tsi-components/output-components/tsi-integer-display/tsi-integer-display.component.d.ts +6 -0
- package/lib/tsi-components/output-components/tsi-label/tsi-label.component.d.ts +8 -0
- package/lib/tsi-components/output-components/tsi-label-legend/tsi-label-legend.component.d.ts +6 -0
- package/lib/tsi-components/output-components/tsi-legend/tsi-legend.component.d.ts +9 -0
- package/lib/tsi-components/output-components/tsi-paragraph/tsi-paragraph.component.d.ts +6 -0
- package/lib/tsi-components/output-components/tsi-rate-display/tsi-rate-display.component.d.ts +10 -0
- package/lib/tsi-components/output-components/tsi-time-display/tsi-time-display.component.d.ts +7 -0
- package/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.d.ts +97 -0
- package/lib/tsi-components/reporting/reporting.component.d.ts +103 -0
- package/lib/tsi-components/spinner/spinner.component.d.ts +8 -0
- package/lib/tsi-components/tsi-bubble-info/tsi-bubble-info.component.d.ts +9 -0
- package/lib/tsi-components/tsi-calender/context-menu/context-menu.component.d.ts +25 -0
- package/lib/tsi-components/tsi-calender/tsi-calender.component.d.ts +50 -0
- package/lib/tsi-components/tsi-card/tsi-card.component.d.ts +25 -0
- package/lib/tsi-components/tsi-card-list/tsi-card-list.component.d.ts +35 -0
- package/lib/tsi-components/tsi-change-password/tsi-change-password.component.d.ts +21 -0
- package/lib/tsi-components/tsi-code-generator/tsi-code-generator.component.d.ts +23 -0
- package/lib/tsi-components/tsi-divider/tsi-divider.component.d.ts +6 -0
- package/lib/tsi-components/tsi-form/tsi-form.component.d.ts +91 -0
- package/lib/tsi-components/tsi-form-modal-footer/tsi-form-modal-footer.component.d.ts +8 -0
- package/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.d.ts +156 -0
- package/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.d.ts +28 -0
- package/lib/tsi-components/tsi-kanban/tsi-kanban.component.d.ts +68 -0
- package/lib/tsi-components/tsi-log-event-history/tsi-log-event-history.component.d.ts +35 -0
- package/lib/tsi-components/tsi-modal/tsi-modal.component.d.ts +10 -0
- package/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.d.ts +38 -0
- package/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.d.ts +19 -0
- package/lib/tsi-components/tsi-notes-avertir/tsi-notes-avertir.component.d.ts +13 -0
- package/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.d.ts +21 -0
- package/lib/tsi-components/tsi-notes-grid/tsi-notes-grid.component.d.ts +12 -0
- package/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.d.ts +41 -0
- package/lib/tsi-components/tsi-progress-bar/tsi-progress-bar.component.d.ts +38 -0
- package/lib/tsi-components/tsi-search-box/tsi-search-box.component.d.ts +44 -0
- package/lib/tsi-components/tsi-send-mail/tsi-send-mail.component.d.ts +21 -0
- package/lib/tsi-components/tsi-tab-panel/tsi-tab-panel.component.d.ts +18 -0
- package/lib/tsi-components/tsi-tab-view/tsi-tab-view.component.d.ts +17 -0
- package/lib/tsi-components/tsi-tenants/tsi-tenants.component.d.ts +39 -0
- package/lib/tsi-components/tsi-tooltip/tsi-tooltip.component.d.ts +9 -0
- package/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.d.ts +35 -0
- package/lib/tsi-components/tsi-upload-grid/tsi-upload-grid.component.d.ts +13 -0
- package/lib/tsi-directives/auto-select.directive.d.ts +9 -0
- package/lib/tsi-directives/busy.directive.d.ts +11 -0
- package/lib/tsi-directives/dynamic-component-loader/ad.directive.d.ts +8 -0
- package/lib/tsi-directives/index.d.ts +7 -0
- package/lib/tsi-directives/module-main-parameter.directive.d.ts +8 -0
- package/lib/tsi-directives/presentation-designer-base.directive.d.ts +41 -0
- package/lib/tsi-directives/presentation-designer.directive.d.ts +37 -0
- package/lib/tsi-directives/validation.directive.d.ts +18 -0
- package/lib/tsi-helpers/compoent-reference.helper.d.ts +5 -0
- package/lib/tsi-helpers/date-helper.d.ts +6 -0
- package/lib/tsi-helpers/export-excel.helper.d.ts +5 -0
- package/lib/tsi-helpers/filter-helper.d.ts +12 -0
- package/lib/tsi-helpers/grid-col-style.helper.d.ts +5 -0
- package/lib/tsi-helpers/guid.helper.d.ts +6 -0
- package/lib/tsi-helpers/helpers.d.ts +4 -0
- package/lib/tsi-helpers/index.d.ts +12 -0
- package/lib/tsi-helpers/mapping-helper.d.ts +5 -0
- package/lib/tsi-helpers/object.helper.d.ts +3 -0
- package/lib/tsi-helpers/primeng-translate-config.d.ts +54 -0
- package/lib/tsi-helpers/storage-manager.d.ts +8 -0
- package/lib/tsi-helpers/type-registry.helper.d.ts +34 -0
- package/lib/types/enum-description.type.d.ts +3 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/time-only.d.ts +17 -0
- package/package.json +24 -0
- package/public-api.d.ts +17 -0
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
import { Component, HostListener, inject, Renderer2, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { AppBaseComponent } from '../app-base/app-base.component';
|
|
3
|
+
import { LocalizationKeys } from '../../../consts/localization-key';
|
|
4
|
+
import { ModalSizeEnum, GridSelectionMode } from '../../../enums';
|
|
5
|
+
import { PresentationSetting } from '../../../models';
|
|
6
|
+
import { PresentationSettingService, LayoutHelperService, TsiNotificationService, ErrorResponseManagerService, PresentationDesignerService } from '../../../services';
|
|
7
|
+
import { TsiButtonComponent } from '../../../tsi-components/button-components/tsi-button/tsi-button.component';
|
|
8
|
+
import { TsiGenericGridComponent } from '../../../tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component';
|
|
9
|
+
import { TsiViewGridComponent } from '../../../tsi-components/output-components/tsi-view-grid/tsi-view-grid.component';
|
|
10
|
+
import { TsiGenericCrudComponent } from '../../../tsi-components/tsi-generic-crud/tsi-generic-crud.component';
|
|
11
|
+
import { PresentationDesignerDirective } from '../../../tsi-directives/presentation-designer.directive';
|
|
12
|
+
import { PresentationDesignerBaseService } from '../../../services/presentation-setting/presentation-designer-base.service';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "primeng/dynamicdialog";
|
|
15
|
+
export class TsiListBaseComponent extends AppBaseComponent {
|
|
16
|
+
get formEndpoint() {
|
|
17
|
+
return super.formEndpoint;
|
|
18
|
+
}
|
|
19
|
+
set formEndpoint(endpoint) {
|
|
20
|
+
super.formEndpoint = endpoint;
|
|
21
|
+
}
|
|
22
|
+
get businessClass() {
|
|
23
|
+
return this._businessClass;
|
|
24
|
+
}
|
|
25
|
+
set businessClass(value) {
|
|
26
|
+
super.businessClass = value;
|
|
27
|
+
this.formEndpoint = this.businessClass;
|
|
28
|
+
// @TODO MedAli : à tester
|
|
29
|
+
//this.getEntityInformation(this._businessClass);
|
|
30
|
+
}
|
|
31
|
+
set componentDescriminator(value) {
|
|
32
|
+
this._componentDescriminator = value;
|
|
33
|
+
if (this._componentDescriminator &&
|
|
34
|
+
this._componentDescriminator.propertyValue != undefined &&
|
|
35
|
+
this.businessClass != undefined) {
|
|
36
|
+
if (value?.propertyValue != this.descriminatorValue) {
|
|
37
|
+
this.descriminatorValue = value?.propertyValue;
|
|
38
|
+
this.descriminatorValueChanged();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
get componentDescriminator() {
|
|
43
|
+
return this._componentDescriminator;
|
|
44
|
+
}
|
|
45
|
+
get isAdvancedSearchMode() {
|
|
46
|
+
return (this.config?.data &&
|
|
47
|
+
this.config.data.hasOwnProperty('isAdvancedSearch') &&
|
|
48
|
+
this.config.data.isAdvancedSearch === true);
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
constructor(config, _dialogReference) {
|
|
52
|
+
super();
|
|
53
|
+
this.config = config;
|
|
54
|
+
this._dialogReference = _dialogReference;
|
|
55
|
+
this.configModeButtonId = 'confg-mode-button-from-list';
|
|
56
|
+
this.savePropertiesButtonClassName = 'confg-mode-button-from-list-save-properties';
|
|
57
|
+
this.savePropertyBtnId = 'save-property-btn';
|
|
58
|
+
this.columns = [];
|
|
59
|
+
this.titleComponent = '';
|
|
60
|
+
this.modalSize = ModalSizeEnum.Medium;
|
|
61
|
+
this.searchFields = [];
|
|
62
|
+
this.presentationRequest = new PresentationSetting();
|
|
63
|
+
this.genericGrids = [];
|
|
64
|
+
this.genericCruds = [];
|
|
65
|
+
this.viewGrids = [];
|
|
66
|
+
this._renderer = inject(Renderer2);
|
|
67
|
+
this._viewContainerRef = inject(ViewContainerRef);
|
|
68
|
+
this._presentationSettingService = inject(PresentationSettingService);
|
|
69
|
+
this._layoutHelperService = inject(LayoutHelperService);
|
|
70
|
+
this._messageInfoService = inject(TsiNotificationService);
|
|
71
|
+
this._errorResponseManager = inject(ErrorResponseManagerService);
|
|
72
|
+
this._presentationDesignerService = inject(PresentationDesignerService);
|
|
73
|
+
this._presentationDesignerBaseService = inject(PresentationDesignerBaseService);
|
|
74
|
+
this.configApplied = false;
|
|
75
|
+
this.directiveElements = [];
|
|
76
|
+
}
|
|
77
|
+
//#region handle lifecycle hooks
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
super.ngOnDestroy();
|
|
80
|
+
this._unsubscribeActiveSubscriptions();
|
|
81
|
+
}
|
|
82
|
+
ngAfterViewChecked() {
|
|
83
|
+
// let newAddedDirectives = this._presentationDesignerService.getDirectives().filter(x => x.treated == false)
|
|
84
|
+
// console.log("newAddedDirectives : ", newAddedDirectives)
|
|
85
|
+
// if (newAddedDirectives.length > 0 && (!this.entityInfo?.discriminatorPropertyName || !this.entityInfo?.discriminatorClassName)) {
|
|
86
|
+
// this.applyConfigurationToElements(newAddedDirectives);
|
|
87
|
+
// }
|
|
88
|
+
// else if (newAddedDirectives.length > 0 && this.descriminatorValue) {
|
|
89
|
+
// this.applyConfigurationToElements(newAddedDirectives);
|
|
90
|
+
// }
|
|
91
|
+
// this.applyConfigurationToElements(newAddedDirectives)
|
|
92
|
+
}
|
|
93
|
+
ngAfterViewInit() {
|
|
94
|
+
this.directiveElements = [...this._presentationDesignerService.getDirectives(),
|
|
95
|
+
...this._presentationDesignerBaseService.getDirectives()
|
|
96
|
+
];
|
|
97
|
+
console.log('List base : this.directiveElements : ', this.directiveElements);
|
|
98
|
+
if (!this.entityInfo?.discriminatorPropertyName ||
|
|
99
|
+
!this.entityInfo?.discriminatorClassName) {
|
|
100
|
+
this.presentationRequest =
|
|
101
|
+
this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting();
|
|
102
|
+
if (this.presentationRequest &&
|
|
103
|
+
this.presentationRequest.presentationSettingDetails.length > 0) {
|
|
104
|
+
this.applyConfigurationToElements();
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.directiveElements?.forEach((input) => {
|
|
108
|
+
input.execute(true, undefined);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
this._initGenericCrudIfExist();
|
|
113
|
+
this._initGenericGridIfExist();
|
|
114
|
+
this._initViewGridIfExist();
|
|
115
|
+
}
|
|
116
|
+
ngAfterContentChecked() {
|
|
117
|
+
super.ngAfterContentChecked();
|
|
118
|
+
this._refreshViewGridInformationIfExist();
|
|
119
|
+
this._refreshGenericCrudInformationIfExist();
|
|
120
|
+
this._refreshGenericGridInformationIfExist();
|
|
121
|
+
}
|
|
122
|
+
ngOnInit() {
|
|
123
|
+
super.ngOnInit();
|
|
124
|
+
this.initDesignModeSubscription();
|
|
125
|
+
this.directiveElements = [...this._presentationDesignerService.getDirectives(),
|
|
126
|
+
...this._presentationDesignerBaseService.getDirectives()
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
//#endregion
|
|
130
|
+
getComponentIdentifier() {
|
|
131
|
+
// if (this.descriminatorValue) {
|
|
132
|
+
// return `${this._myName()}_${this.descriminatorValue}`
|
|
133
|
+
// }
|
|
134
|
+
return this._myName();
|
|
135
|
+
}
|
|
136
|
+
setModalSize(modalSize) {
|
|
137
|
+
this.modalSize = modalSize;
|
|
138
|
+
}
|
|
139
|
+
descriminatorValueChanged() {
|
|
140
|
+
this.presentationRequest =
|
|
141
|
+
this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting();
|
|
142
|
+
this.directiveElements?.forEach((input) => {
|
|
143
|
+
const presentationSettingDetail = this.presentationRequest?.presentationSettingDetails?.find((x) => x.blockName == input.presentationDesigner);
|
|
144
|
+
if (presentationSettingDetail &&
|
|
145
|
+
!presentationSettingDetail.isBlockVisible) {
|
|
146
|
+
input.removeElement();
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
input.execute(true, presentationSettingDetail?.configuration);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
if (this.genericCrud) {
|
|
153
|
+
this.genericCrud.descriminatorValue = this.descriminatorValue;
|
|
154
|
+
this.genericCrud.presentationSettings = this.presentationRequest;
|
|
155
|
+
}
|
|
156
|
+
if (this.presentationRequest &&
|
|
157
|
+
this.presentationRequest.presentationSettingDetails.length > 0) {
|
|
158
|
+
this.applyConfigurationToElements();
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
this.directiveElements?.forEach((input) => {
|
|
162
|
+
input.execute(true, undefined);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//#region private methods
|
|
167
|
+
_refreshViewGridInformationIfExist() {
|
|
168
|
+
if (this.viewGrid) {
|
|
169
|
+
if (this.viewGrid.formEndpoint != this.formEndpoint) {
|
|
170
|
+
this.viewGrid.formEndpoint = this.formEndpoint;
|
|
171
|
+
}
|
|
172
|
+
if (this.viewGrid.formName != this.formName) {
|
|
173
|
+
this.viewGrid.formName = this.formName;
|
|
174
|
+
}
|
|
175
|
+
if (this.viewGrid.businessClass != this.businessClass) {
|
|
176
|
+
this.viewGrid.businessClass = this.businessClass;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
_refreshGenericGridInformationIfExist() {
|
|
181
|
+
if (this.genericGrid) {
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
_refreshGenericCrudInformationIfExist() {
|
|
185
|
+
if (this.genericCrud) {
|
|
186
|
+
if (this.genericCrud.formEndpoint != this.formEndpoint) {
|
|
187
|
+
this.genericCrud.formEndpoint = this.formEndpoint;
|
|
188
|
+
}
|
|
189
|
+
if (this.genericCrud.formName != this.formName) {
|
|
190
|
+
this.genericCrud.formName = this.formName;
|
|
191
|
+
}
|
|
192
|
+
if (this.genericCrud.businessClass != this.businessClass) {
|
|
193
|
+
this.genericCrud.businessClass = this.businessClass;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
_initViewGridIfExist() {
|
|
198
|
+
if (this.viewGrid) {
|
|
199
|
+
//init reporting
|
|
200
|
+
this.viewGrid.formEndpoint = this.formEndpoint;
|
|
201
|
+
this.viewGrid.formName = this.formName;
|
|
202
|
+
this.viewGrid.businessClass = this.businessClass;
|
|
203
|
+
if (this.isAdvancedSearchMode) {
|
|
204
|
+
this.viewGrid.showExportButton = false;
|
|
205
|
+
this.viewGrid.showConsultButton = false;
|
|
206
|
+
this.viewGrid.showCalenderView = false;
|
|
207
|
+
// TODO : @by: Hassen,
|
|
208
|
+
// @why: Keep all search criteria => usefull for advanced search
|
|
209
|
+
//this.viewGrid.showFilterButton = false;
|
|
210
|
+
//this.viewGrid.showGlobalSearch = false;
|
|
211
|
+
//this.viewGrid.showHeaderFilters = false;
|
|
212
|
+
//this.viewGrid.showSearchField = false;
|
|
213
|
+
}
|
|
214
|
+
//init row selection
|
|
215
|
+
// this.viewGrid.selectKeyOnly = this.selectKeyOnly;
|
|
216
|
+
// this.viewGrid.selectionMode = this.selectionMode;
|
|
217
|
+
// this.viewGrid.selectedItems = this.selectedItems;
|
|
218
|
+
// this.viewGrid.key = this.key;
|
|
219
|
+
this._rowsSelectionSubscription =
|
|
220
|
+
this.viewGrid.selectedItemsChange.subscribe((items) => this._handleSelectedItemsChangeEvent(items));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
_initGenericGridIfExist() {
|
|
224
|
+
if (this.genericGrid) {
|
|
225
|
+
if (this.isAdvancedSearchMode) {
|
|
226
|
+
this.genericGrid.selectionMode = GridSelectionMode.Single;
|
|
227
|
+
this.genericGrid.showActionColumn = false;
|
|
228
|
+
this.genericGrid.showCalenderView = false;
|
|
229
|
+
this.genericGrid.showExportButton = false;
|
|
230
|
+
this.genericGrid.selectKeyOnly = true;
|
|
231
|
+
// TODO : @by: Hassen,
|
|
232
|
+
// @why: Keep all search criteria => usefull for advanced search
|
|
233
|
+
//this.genericGrid.showFilterButton = false;
|
|
234
|
+
//this.genericGrid.showGlobalSearch = false;
|
|
235
|
+
//this.genericGrid.showHeaderFilters = false;
|
|
236
|
+
//this.genericGrid.showSearchBox = false;
|
|
237
|
+
//this.genericGrid.showSearchField = false;
|
|
238
|
+
//this.genericGrid.ShowFilterColumns = false;
|
|
239
|
+
}
|
|
240
|
+
this._rowsSelectionSubscription =
|
|
241
|
+
this.genericGrid.selectedItemsChange.subscribe((items) => this._handleSelectedItemsChangeEvent(items));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
_initGenericCrudIfExist() {
|
|
245
|
+
if (this.genericCrud) {
|
|
246
|
+
//init reporting
|
|
247
|
+
if (this.isAdvancedSearchMode) {
|
|
248
|
+
this.genericCrud.selectionMode = GridSelectionMode.Single;
|
|
249
|
+
this.genericCrud.showAddButton = false;
|
|
250
|
+
this.genericCrud.showDeleteButton = false;
|
|
251
|
+
this.genericCrud.showConsultButton = false;
|
|
252
|
+
this.genericCrud.showEditButton = false;
|
|
253
|
+
this.genericCrud.showExportButton = false;
|
|
254
|
+
this.genericCrud.showInfoButton = false;
|
|
255
|
+
this.genericCrud.showDownloadButton = false;
|
|
256
|
+
this.genericCrud.showReporting = false;
|
|
257
|
+
this.genericCrud.showUploadButton = false;
|
|
258
|
+
this.genericCrud.selectKeyOnly = true;
|
|
259
|
+
// TODO : @by: Hassen,
|
|
260
|
+
// @why: Keep all search criteria => usefull for advanced search
|
|
261
|
+
//this.genericCrud.showGlobalSearch = false;
|
|
262
|
+
//this.genericCrud.showSearchField = false;
|
|
263
|
+
//this.genericCrud.showHeaderFilters = false;
|
|
264
|
+
this.genericCrud.ngOnInit();
|
|
265
|
+
}
|
|
266
|
+
this.genericCrud.formEndpoint = this.formEndpoint;
|
|
267
|
+
this.genericCrud.formName = this.formName;
|
|
268
|
+
this.genericCrud.businessClass = this.businessClass;
|
|
269
|
+
this.presentationRequest =
|
|
270
|
+
this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting();
|
|
271
|
+
this.genericCrud.presentationSettings = this.presentationRequest;
|
|
272
|
+
// if (this.presentationRequest
|
|
273
|
+
// && this.presentationRequest.presentationSettingDetails.length > 0
|
|
274
|
+
// && this.genericCrud.genericGridComponent) {
|
|
275
|
+
// this.genericCrud.genericGridComponent.presentationSettings = this.presentationRequest;
|
|
276
|
+
// this.genericCrud.genericGridComponent.search()
|
|
277
|
+
// }
|
|
278
|
+
//init row selection
|
|
279
|
+
// this.genericCrud.selectKeyOnly = this.selectKeyOnly;
|
|
280
|
+
// this.genericCrud.selectionMode = this.selectionMode;
|
|
281
|
+
// this.genericCrud.selectedItems = this.selectedItems;
|
|
282
|
+
// this.genericCrud.key = this.key;
|
|
283
|
+
this._rowsSelectionSubscription =
|
|
284
|
+
this.genericCrud.selectedItemsChange.subscribe((items) => this._handleSelectedItemsChangeEvent(items));
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
_unsubscribeActiveSubscriptions() {
|
|
288
|
+
if (this._rowsSelectionSubscription) {
|
|
289
|
+
this._rowsSelectionSubscription.unsubscribe();
|
|
290
|
+
}
|
|
291
|
+
if (this._designModeListSubscription) {
|
|
292
|
+
this._designModeListSubscription.unsubscribe();
|
|
293
|
+
}
|
|
294
|
+
if (this._addedDirectiveSubscritpion) {
|
|
295
|
+
this._addedDirectiveSubscritpion.unsubscribe();
|
|
296
|
+
}
|
|
297
|
+
if (this._addedBaseDirectiveSubscritpion) {
|
|
298
|
+
this._addedBaseDirectiveSubscritpion.unsubscribe();
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
_handleSelectedItemsChangeEvent(items) {
|
|
302
|
+
// this.selectedItems = items;
|
|
303
|
+
// console.log('Selected items are : ', this.selectedItems);
|
|
304
|
+
}
|
|
305
|
+
handleRowDblClick(event) {
|
|
306
|
+
let uid = this.genericCrud?.selectedItems[0];
|
|
307
|
+
if (uid != undefined) {
|
|
308
|
+
this.closeModalWithId(uid);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
closeModalWithId(id) {
|
|
312
|
+
if (this._dialogReference) {
|
|
313
|
+
this._dialogReference?.close(id);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
onDoubleClicked(event) {
|
|
317
|
+
this.handleRowDblClick(event);
|
|
318
|
+
}
|
|
319
|
+
//#endregion
|
|
320
|
+
initDesignModeSubscription() {
|
|
321
|
+
this._designModeListSubscription =
|
|
322
|
+
this._layoutHelperService.designModeListObservable.subscribe((data) => {
|
|
323
|
+
if (data && data == true) {
|
|
324
|
+
this.toggleDesignMode();
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
this._addedDirectiveSubscritpion =
|
|
328
|
+
this._presentationDesignerService.addedDirectiveObservable.subscribe((data) => {
|
|
329
|
+
if (!data.treated) {
|
|
330
|
+
this.processSingleElement(data);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
this._addedBaseDirectiveSubscritpion =
|
|
334
|
+
this._presentationDesignerBaseService.addedDirectiveObservable.subscribe((data) => {
|
|
335
|
+
if (!data.treated) {
|
|
336
|
+
this.processSingleElement(data);
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
// #region Presentation Settings
|
|
341
|
+
processSingleElement(directive) {
|
|
342
|
+
this.presentationRequest =
|
|
343
|
+
this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting();
|
|
344
|
+
let presentationSettingDetail = this.presentationRequest?.presentationSettingDetails?.find((x) => x.blockName == directive.presentationDesigner);
|
|
345
|
+
if (presentationSettingDetail == undefined ||
|
|
346
|
+
presentationSettingDetail.isBlockVisible) {
|
|
347
|
+
directive.execute(true, presentationSettingDetail?.configuration);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
applyConfigurationToElements() {
|
|
351
|
+
this.directiveElements?.forEach((directive) => {
|
|
352
|
+
let presentationSettingDetail = this.presentationRequest?.presentationSettingDetails?.find((x) => x.blockName == directive.presentationDesigner);
|
|
353
|
+
if (presentationSettingDetail == undefined ||
|
|
354
|
+
presentationSettingDetail.isBlockVisible) {
|
|
355
|
+
directive.execute(true, presentationSettingDetail?.configuration);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
this.configApplied = true;
|
|
359
|
+
// let inputsToAdd = this.directiveElements
|
|
360
|
+
// .filter(x => this.presentationRequest?.presentationSettingDetails?.some(y => y.blockName == x.presentationDesigner && y.isBlockVisible))
|
|
361
|
+
// inputsToAdd.forEach(input => {
|
|
362
|
+
// let configuration = this.presentationRequest?.presentationSettingDetails?.find(x => x.blockName == input.presentationDesigner)?.configuration
|
|
363
|
+
// input.execute(true, configuration)
|
|
364
|
+
// });
|
|
365
|
+
}
|
|
366
|
+
toggleDesignMode() {
|
|
367
|
+
let showHideConfigBtn = document.getElementById(this.configModeButtonId);
|
|
368
|
+
if (showHideConfigBtn) {
|
|
369
|
+
this.showHideConfigBtnRef = showHideConfigBtn?.cloneNode(true);
|
|
370
|
+
this.showHideConfigBtnParentRef = showHideConfigBtn?.parentNode;
|
|
371
|
+
const oldButtons = document.getElementsByClassName(this.savePropertiesButtonClassName);
|
|
372
|
+
if (oldButtons) {
|
|
373
|
+
Array.from(oldButtons).forEach((oldButton) => {
|
|
374
|
+
this._renderer.removeChild(showHideConfigBtn?.parentNode, oldButton);
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
const parentElement = showHideConfigBtn.parentNode;
|
|
378
|
+
this._renderer?.removeChild(parentElement, showHideConfigBtn);
|
|
379
|
+
const tsiButtonRef = this._viewContainerRef?.createComponent(TsiButtonComponent);
|
|
380
|
+
if (tsiButtonRef) {
|
|
381
|
+
tsiButtonRef.setInput('text', 'shared_tsi_component_save_config_show_hide');
|
|
382
|
+
tsiButtonRef.setInput('icon', 'save');
|
|
383
|
+
tsiButtonRef.setInput('id', this.savePropertyBtnId);
|
|
384
|
+
tsiButtonRef.instance.onClick.subscribe(() => this.saveProperties());
|
|
385
|
+
this._renderer.setAttribute(tsiButtonRef.location.nativeElement, 'class', this.savePropertiesButtonClassName);
|
|
386
|
+
this._renderer?.appendChild(parentElement, tsiButtonRef.location.nativeElement);
|
|
387
|
+
this.presentationRequest =
|
|
388
|
+
this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting();
|
|
389
|
+
this.directiveElements?.forEach((input) => {
|
|
390
|
+
input.insertElement();
|
|
391
|
+
if (input instanceof PresentationDesignerDirective) {
|
|
392
|
+
input.selectApproriateColumns(this.presentationRequest);
|
|
393
|
+
}
|
|
394
|
+
input.addCheckboxesToInputs(this.presentationRequest);
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
getPresentationSetingDetailUid(blockName) {
|
|
400
|
+
return this.presentationRequest?.presentationSettingDetails?.find((x) => x.blockName == blockName)?.uid;
|
|
401
|
+
}
|
|
402
|
+
saveProperties() {
|
|
403
|
+
if (!this.presentationRequest) {
|
|
404
|
+
this.presentationRequest = new PresentationSetting();
|
|
405
|
+
}
|
|
406
|
+
let presentationSettingDetails = [];
|
|
407
|
+
this.directiveElements?.forEach((directive) => {
|
|
408
|
+
let configuration = undefined;
|
|
409
|
+
const sources = [
|
|
410
|
+
...this.genericGrids,
|
|
411
|
+
...this.genericCruds,
|
|
412
|
+
...this.viewGrids,
|
|
413
|
+
];
|
|
414
|
+
const matchedSource = sources.find((x) => x.formName === directive.presentationDesigner ||
|
|
415
|
+
x.id === directive.presentationDesigner);
|
|
416
|
+
if (matchedSource) {
|
|
417
|
+
const gridState = matchedSource.getState();
|
|
418
|
+
configuration = gridState ? JSON.stringify(gridState) : undefined;
|
|
419
|
+
}
|
|
420
|
+
let object = {
|
|
421
|
+
blockName: directive.presentationDesigner,
|
|
422
|
+
isBlockVisible: !directive.showHideCheckboxComponentRef?.instance?._checked,
|
|
423
|
+
uid: this.getPresentationSetingDetailUid(directive.presentationDesigner ?? ''),
|
|
424
|
+
configuration: configuration,
|
|
425
|
+
};
|
|
426
|
+
presentationSettingDetails.push(object);
|
|
427
|
+
});
|
|
428
|
+
this.presentationRequest.componentIdentifer = this.getComponentIdentifier();
|
|
429
|
+
this.presentationRequest.presentationSettingDetails =
|
|
430
|
+
presentationSettingDetails;
|
|
431
|
+
//this.loading = true
|
|
432
|
+
this.presentationRequest.descriminatorValue = this.descriminatorValue;
|
|
433
|
+
if (this.presentationRequest.uid != null &&
|
|
434
|
+
this.presentationRequest.uid != undefined) {
|
|
435
|
+
this._presentationSettingService
|
|
436
|
+
.updatePresentationSetting(this.presentationRequest, this.presentationRequest.uid)
|
|
437
|
+
.subscribe({
|
|
438
|
+
next: async (data) => {
|
|
439
|
+
// this.loading = false
|
|
440
|
+
this._messageInfoService.success(LocalizationKeys.savedSuccessfully);
|
|
441
|
+
await this._presentationSettingService.loadPresentationSettings();
|
|
442
|
+
this.processState();
|
|
443
|
+
},
|
|
444
|
+
error: (error) => {
|
|
445
|
+
console.log(error);
|
|
446
|
+
this._errorResponseManager.showErrorMessage(error);
|
|
447
|
+
},
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
this._presentationSettingService
|
|
452
|
+
.createPresentationSetting(this.presentationRequest)
|
|
453
|
+
.subscribe({
|
|
454
|
+
next: async (data) => {
|
|
455
|
+
// this.loading = false
|
|
456
|
+
this._messageInfoService.success(LocalizationKeys.savedSuccessfully);
|
|
457
|
+
await this._presentationSettingService.loadPresentationSettings();
|
|
458
|
+
this.processState();
|
|
459
|
+
},
|
|
460
|
+
error: (error) => {
|
|
461
|
+
console.log(error);
|
|
462
|
+
this._errorResponseManager.showErrorMessage(error);
|
|
463
|
+
},
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
processState() {
|
|
468
|
+
this._layoutHelperService.isDesignMode = false;
|
|
469
|
+
this._layoutHelperService._designModeListSubject.next(false);
|
|
470
|
+
let savePropertiesBtn = document.getElementById(this.savePropertyBtnId);
|
|
471
|
+
this._renderer.removeChild(savePropertiesBtn?.parentNode, savePropertiesBtn);
|
|
472
|
+
if (this.showHideConfigBtnParentRef && this.showHideConfigBtnRef) {
|
|
473
|
+
this._renderer.appendChild(this.showHideConfigBtnParentRef, this.showHideConfigBtnRef);
|
|
474
|
+
this.showHideConfigBtnRef = undefined;
|
|
475
|
+
}
|
|
476
|
+
this.directiveElements?.forEach((input) => {
|
|
477
|
+
input.removeShowHideCheckbox();
|
|
478
|
+
const presentationSettingDetail = this.presentationRequest?.presentationSettingDetails?.find((x) => x.blockName == input.presentationDesigner);
|
|
479
|
+
if (presentationSettingDetail &&
|
|
480
|
+
!presentationSettingDetail.isBlockVisible) {
|
|
481
|
+
input.removeElement();
|
|
482
|
+
}
|
|
483
|
+
});
|
|
484
|
+
this.applyConfigurationToElements();
|
|
485
|
+
}
|
|
486
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiListBaseComponent, deps: [{ token: i1.DynamicDialogConfig }, { token: i1.DynamicDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
487
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiListBaseComponent, selector: "app-tsi-list-base", host: { listeners: { "dblclick": "onDoubleClicked($event)" } }, viewQueries: [{ propertyName: "genericCrud", first: true, predicate: TsiGenericCrudComponent, descendants: true }, { propertyName: "genericGrid", first: true, predicate: TsiGenericGridComponent, descendants: true }, { propertyName: "viewGrid", first: true, predicate: TsiViewGridComponent, descendants: true }, { propertyName: "genericGrids", predicate: TsiGenericGridComponent, descendants: true }, { propertyName: "genericCruds", predicate: TsiGenericCrudComponent, descendants: true }, { propertyName: "viewGrids", predicate: TsiViewGridComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<p>tsi-list-base works!</p>", styles: [""] }); }
|
|
488
|
+
}
|
|
489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiListBaseComponent, decorators: [{
|
|
490
|
+
type: Component,
|
|
491
|
+
args: [{ selector: 'app-tsi-list-base', template: "<p>tsi-list-base works!</p>" }]
|
|
492
|
+
}], ctorParameters: () => [{ type: i1.DynamicDialogConfig }, { type: i1.DynamicDialogRef }], propDecorators: { genericCrud: [{
|
|
493
|
+
type: ViewChild,
|
|
494
|
+
args: [TsiGenericCrudComponent]
|
|
495
|
+
}], genericGrid: [{
|
|
496
|
+
type: ViewChild,
|
|
497
|
+
args: [TsiGenericGridComponent]
|
|
498
|
+
}], viewGrid: [{
|
|
499
|
+
type: ViewChild,
|
|
500
|
+
args: [TsiViewGridComponent]
|
|
501
|
+
}], genericGrids: [{
|
|
502
|
+
type: ViewChildren,
|
|
503
|
+
args: [TsiGenericGridComponent]
|
|
504
|
+
}], genericCruds: [{
|
|
505
|
+
type: ViewChildren,
|
|
506
|
+
args: [TsiGenericCrudComponent]
|
|
507
|
+
}], viewGrids: [{
|
|
508
|
+
type: ViewChildren,
|
|
509
|
+
args: [TsiViewGridComponent]
|
|
510
|
+
}], onDoubleClicked: [{
|
|
511
|
+
type: HostListener,
|
|
512
|
+
args: ['dblclick', ['$event']]
|
|
513
|
+
}] } });
|
|
514
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWxpc3QtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWJhc2UvY29tcG9uZW50cy90c2ktbGlzdC1iYXNlL3RzaS1saXN0LWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWxpc3QtYmFzZS90c2ktbGlzdC1iYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFHTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBdUMsbUJBQW1CLEVBQTZCLE1BQU0saUJBQWlCLENBQUM7QUFDdEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUE4QixNQUFNLG1CQUFtQixDQUFDO0FBQ2xNLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlGQUFpRixDQUFDO0FBQ3ZILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFD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XG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbmplY3QsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBwLWJhc2UvYXBwLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uS2V5cyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy9sb2NhbGl6YXRpb24ta2V5JztcclxuaW1wb3J0IHsgTW9kYWxTaXplRW51bSwgR3JpZFNlbGVjdGlvbk1vZGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW4sIElNb2RhbFNpemUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50RGVzY3JpbWluYXRvciwgU2VhcmNoRmllbGQsIFByZXNlbnRhdGlvblNldHRpbmcsIFByZXNlbnRhdGlvblNldHRpbmdEZXRhaWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcmVzZW50YXRpb25TZXR0aW5nU2VydmljZSwgTGF5b3V0SGVscGVyU2VydmljZSwgVHNpTm90aWZpY2F0aW9uU2VydmljZSwgRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLCBQcmVzZW50YXRpb25EZXNpZ25lclNlcnZpY2UsIEVudGl0eUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUc2lCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90c2ktY29tcG9uZW50cy9idXR0b24tY29tcG9uZW50cy90c2ktYnV0dG9uL3RzaS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHNpR2VuZXJpY0dyaWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90c2ktY29tcG9uZW50cy9vdXRwdXQtY29tcG9uZW50cy90c2ktZ2VuZXJpYy1ncmlkL3RzaS1nZW5lcmljLWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHNpVmlld0dyaWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90c2ktY29tcG9uZW50cy9vdXRwdXQtY29tcG9uZW50cy90c2ktdmlldy1ncmlkL3RzaS12aWV3LWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHNpR2VuZXJpY0NydWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90c2ktY29tcG9uZW50cy90c2ktZ2VuZXJpYy1jcnVkL3RzaS1nZW5lcmljLWNydWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi90c2ktZGlyZWN0aXZlcy9wcmVzZW50YXRpb24tZGVzaWduZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vdHNpLWRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBQcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2VudGF0aW9uLXNldHRpbmcvcHJlc2VudGF0aW9uLWRlc2lnbmVyLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdHNpLWxpc3QtYmFzZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1saXN0LWJhc2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1saXN0LWJhc2UuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRzaUxpc3RCYXNlQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgLy8jcmVnaW9uIHByb3BlcnRpZXNcclxuICBwcml2YXRlIF9yb3dzU2VsZWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbmZpZ01vZGVCdXR0b25JZDogc3RyaW5nID0gJ2NvbmZnLW1vZGUtYnV0dG9uLWZyb20tbGlzdCc7XHJcbiAgc2F2ZVByb3BlcnRpZXNCdXR0b25DbGFzc05hbWUgPSAnY29uZmctbW9kZS1idXR0b24tZnJvbS1saXN0LXNhdmUtcHJvcGVydGllcyc7XHJcbiAgc2F2ZVByb3BlcnR5QnRuSWQgPSAnc2F2ZS1wcm9wZXJ0eS1idG4nO1xyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZvcm1FbmRwb2ludCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHN1cGVyLmZvcm1FbmRwb2ludDtcclxuICB9XHJcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmb3JtRW5kcG9pbnQoZW5kcG9pbnQ6IHN0cmluZykge1xyXG4gICAgc3VwZXIuZm9ybUVuZHBvaW50ID0gZW5kcG9pbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGJ1c2luZXNzQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYnVzaW5lc3NDbGFzcztcclxuICB9XHJcbiAgcHVibGljIG92ZXJyaWRlIHNldCBidXNpbmVzc0NsYXNzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHN1cGVyLmJ1c2luZXNzQ2xhc3MgPSB2YWx1ZVxyXG4gICAgdGhpcy5mb3JtRW5kcG9pbnQgPSB0aGlzLmJ1c2luZXNzQ2xhc3M7XHJcbiAgICAvLyBAVE9ETyBNZWRBbGkgOiDDoCB0ZXN0ZXJcclxuICAgIC8vdGhpcy5nZXRFbnRpdHlJbmZvcm1hdGlvbih0aGlzLl9idXNpbmVzc0NsYXNzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbXBvbmVudERlc2NyaW1pbmF0b3I/OiBDb21wb25lbnREZXNjcmltaW5hdG9yO1xyXG4gIHNldCBjb21wb25lbnREZXNjcmltaW5hdG9yKHZhbHVlOiBDb21wb25lbnREZXNjcmltaW5hdG9yIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9jb21wb25lbnREZXNjcmltaW5hdG9yID0gdmFsdWU7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudERlc2NyaW1pbmF0b3IgJiZcclxuICAgICAgdGhpcy5fY29tcG9uZW50RGVzY3JpbWluYXRvci5wcm9wZXJ0eVZhbHVlICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmJ1c2luZXNzQ2xhc3MgIT0gdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgaWYgKHZhbHVlPy5wcm9wZXJ0eVZhbHVlICE9IHRoaXMuZGVzY3JpbWluYXRvclZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kZXNjcmltaW5hdG9yVmFsdWUgPSB2YWx1ZT8ucHJvcGVydHlWYWx1ZTtcclxuICAgICAgICB0aGlzLmRlc2NyaW1pbmF0b3JWYWx1ZUNoYW5nZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbXBvbmVudERlc2NyaW1pbmF0b3IoKTogQ29tcG9uZW50RGVzY3JpbWluYXRvciB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50RGVzY3JpbWluYXRvcjtcclxuICB9XHJcblxyXG4gIGNvbHVtbnM6IEFycmF5PEdyaWRDb2x1bW4+ID0gW107XHJcbiAgdGl0bGVDb21wb25lbnQ6IHN0cmluZyA9ICcnO1xyXG4gIG1vZGFsU2l6ZTogSU1vZGFsU2l6ZSA9IE1vZGFsU2l6ZUVudW0uTWVkaXVtO1xyXG4gIGNvbXA6IGFueTtcclxuICBzZWFyY2hGaWVsZHM6IEFycmF5PFNlYXJjaEZpZWxkPiA9IFtdO1xyXG4gIHByZXNlbnRhdGlvblJlcXVlc3Q6IFByZXNlbnRhdGlvblNldHRpbmcgPSBuZXcgUHJlc2VudGF0aW9uU2V0dGluZygpO1xyXG5cclxuICBwcml2YXRlIGdldCBpc0FkdmFuY2VkU2VhcmNoTW9kZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY29uZmlnPy5kYXRhICYmXHJcbiAgICAgIHRoaXMuY29uZmlnLmRhdGEuaGFzT3duUHJvcGVydHkoJ2lzQWR2YW5jZWRTZWFyY2gnKSAmJlxyXG4gICAgICB0aGlzLmNvbmZpZy5kYXRhLmlzQWR2YW5jZWRTZWFyY2ggPT09IHRydWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBrZXk6IHN0cmluZyA9ICd1aWQnO1xyXG4gIC8vIHNlbGVjdEtleU9ubHk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8vIHNlbGVjdGlvbk1vZGU6IEdyaWRTZWxlY3Rpb25Nb2RlID0gR3JpZFNlbGVjdGlvbk1vZGUuTm9uZTtcclxuICAvLyBzZWxlY3RlZEl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIEBWaWV3Q2hpbGQoVHNpR2VuZXJpY0NydWRDb21wb25lbnQpIGdlbmVyaWNDcnVkPzogVHNpR2VuZXJpY0NydWRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVHNpR2VuZXJpY0dyaWRDb21wb25lbnQpIGdlbmVyaWNHcmlkPzogVHNpR2VuZXJpY0dyaWRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVHNpVmlld0dyaWRDb21wb25lbnQpIHZpZXdHcmlkPzogVHNpVmlld0dyaWRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oVHNpR2VuZXJpY0dyaWRDb21wb25lbnQpXHJcbiAgZ2VuZXJpY0dyaWRzOiBUc2lHZW5lcmljR3JpZENvbXBvbmVudFtdID0gW107XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oVHNpR2VuZXJpY0NydWRDb21wb25lbnQpXHJcbiAgZ2VuZXJpY0NydWRzOiBUc2lHZW5lcmljQ3J1ZENvbXBvbmVudFtdID0gW107XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oVHNpVmlld0dyaWRDb21wb25lbnQpIHZpZXdHcmlkczogVHNpVmlld0dyaWRDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSBfcHJlc2VudGF0aW9uU2V0dGluZ1NlcnZpY2UgPSBpbmplY3QoUHJlc2VudGF0aW9uU2V0dGluZ1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgX2xheW91dEhlbHBlclNlcnZpY2UgPSBpbmplY3QoTGF5b3V0SGVscGVyU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfbWVzc2FnZUluZm9TZXJ2aWNlID0gaW5qZWN0KFRzaU5vdGlmaWNhdGlvblNlcnZpY2UpO1xyXG4gIHByaXZhdGUgX2Vycm9yUmVzcG9uc2VNYW5hZ2VyID0gaW5qZWN0KEVycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfcHJlc2VudGF0aW9uRGVzaWduZXJTZXJ2aWNlID0gaW5qZWN0KFByZXNlbnRhdGlvbkRlc2lnbmVyU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZSA9IGluamVjdChQcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlKTtcclxuXHJcbiAgc2hvd0hpZGVDb25maWdCdG5SZWY6IE5vZGUgfCB1bmRlZmluZWQ7XHJcbiAgc2hvd0hpZGVDb25maWdCdG5QYXJlbnRSZWY6IE5vZGUgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIF9kZXNpZ25Nb2RlTGlzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gIF9hZGRlZERpcmVjdGl2ZVN1YnNjcml0cGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gIF9hZGRlZEJhc2VEaXJlY3RpdmVTdWJzY3JpdHBpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBjb25maWdBcHBsaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBkaXJlY3RpdmVFbGVtZW50czogKFByZXNlbnRhdGlvbkRlc2lnbmVyRGlyZWN0aXZlIHwgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmVCYXNlKVtdID0gW107XHJcbiAgcHJpdmF0ZSBkZXNjcmltaW5hdG9yVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29uZmlnPzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgIHB1YmxpYyBfZGlhbG9nUmVmZXJlbmNlPzogRHluYW1pY0RpYWxvZ1JlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBoYW5kbGUgbGlmZWN5Y2xlIGhvb2tzXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG5cclxuICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWN0aXZlU3Vic2NyaXB0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgLy8gbGV0IG5ld0FkZGVkRGlyZWN0aXZlcyA9IHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyU2VydmljZS5nZXREaXJlY3RpdmVzKCkuZmlsdGVyKHggPT4geC50cmVhdGVkID09IGZhbHNlKVxyXG4gICAgLy8gY29uc29sZS5sb2coXCJuZXdBZGRlZERpcmVjdGl2ZXMgOiBcIiwgbmV3QWRkZWREaXJlY3RpdmVzKVxyXG4gICAgLy8gaWYgKG5ld0FkZGVkRGlyZWN0aXZlcy5sZW5ndGggPiAwICYmICghdGhpcy5lbnRpdHlJbmZvPy5kaXNjcmltaW5hdG9yUHJvcGVydHlOYW1lIHx8ICF0aGlzLmVudGl0eUluZm8/LmRpc2NyaW1pbmF0b3JDbGFzc05hbWUpKSB7XHJcbiAgICAvLyAgIHRoaXMuYXBwbHlDb25maWd1cmF0aW9uVG9FbGVtZW50cyhuZXdBZGRlZERpcmVjdGl2ZXMpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSBpZiAobmV3QWRkZWREaXJlY3RpdmVzLmxlbmd0aCA+IDAgJiYgdGhpcy5kZXNjcmltaW5hdG9yVmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5hcHBseUNvbmZpZ3VyYXRpb25Ub0VsZW1lbnRzKG5ld0FkZGVkRGlyZWN0aXZlcyk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyAgdGhpcy5hcHBseUNvbmZpZ3VyYXRpb25Ub0VsZW1lbnRzKG5ld0FkZGVkRGlyZWN0aXZlcylcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlyZWN0aXZlRWxlbWVudHMgPSBbLi4udGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXJTZXJ2aWNlLmdldERpcmVjdGl2ZXMoKSxcclxuICAgIC4uLnRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZVNlcnZpY2UuZ2V0RGlyZWN0aXZlcygpXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAnTGlzdCBiYXNlIDogdGhpcy5kaXJlY3RpdmVFbGVtZW50cyA6ICcsXHJcbiAgICAgIHRoaXMuZGlyZWN0aXZlRWxlbWVudHNcclxuICAgICk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5lbnRpdHlJbmZvPy5kaXNjcmltaW5hdG9yUHJvcGVydHlOYW1lIHx8XHJcbiAgICAgICF0aGlzLmVudGl0eUluZm8/LmRpc2NyaW1pbmF0b3JDbGFzc05hbWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QgPVxyXG4gICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvblNldHRpbmdTZXJ2aWNlLmdldFByZXNlbnRhdGlvblNldHRpbmdCeUNvbXBvbmVudElkZW50aWZpZXJTeW5jKFxyXG4gICAgICAgICAgdGhpcy5nZXRDb21wb25lbnRJZGVudGlmaWVyKCksXHJcbiAgICAgICAgICB0aGlzLmRlc2NyaW1pbmF0b3JWYWx1ZVxyXG4gICAgICAgICkgPz8gbmV3IFByZXNlbnRhdGlvblNldHRpbmcoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdCAmJlxyXG4gICAgICAgIHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdC5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlscy5sZW5ndGggPiAwXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuYXBwbHlDb25maWd1cmF0aW9uVG9FbGVtZW50cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aXZlRWxlbWVudHM/LmZvckVhY2goKGlucHV0KSA9PiB7XHJcbiAgICAgICAgICBpbnB1dC5leGVjdXRlKHRydWUsIHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pbml0R2VuZXJpY0NydWRJZkV4aXN0KCk7XHJcblxyXG4gICAgdGhpcy5faW5pdEdlbmVyaWNHcmlkSWZFeGlzdCgpO1xyXG5cclxuICAgIHRoaXMuX2luaXRWaWV3R3JpZElmRXhpc3QoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpO1xyXG4gICAgdGhpcy5fcmVmcmVzaFZpZXdHcmlkSW5mb3JtYXRpb25JZkV4aXN0KCk7XHJcbiAgICB0aGlzLl9yZWZyZXNoR2VuZXJpY0NydWRJbmZvcm1hdGlvbklmRXhpc3QoKTtcclxuICAgIHRoaXMuX3JlZnJlc2hHZW5lcmljR3JpZEluZm9ybWF0aW9uSWZFeGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5pbml0RGVzaWduTW9kZVN1YnNjcmlwdGlvbigpO1xyXG4gICAgdGhpcy5kaXJlY3RpdmVFbGVtZW50cyA9IFsuLi50aGlzLl9wcmVzZW50YXRpb25EZXNpZ25lclNlcnZpY2UuZ2V0RGlyZWN0aXZlcygpLFxyXG4gICAgLi4udGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZS5nZXREaXJlY3RpdmVzKClcclxuICAgIF07XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBnZXRDb21wb25lbnRJZGVudGlmaWVyKCkge1xyXG4gICAgLy8gaWYgKHRoaXMuZGVzY3JpbWluYXRvclZhbHVlKSB7XHJcbiAgICAvLyAgIHJldHVybiBgJHt0aGlzLl9teU5hbWUoKX1fJHt0aGlzLmRlc2NyaW1pbmF0b3JWYWx1ZX1gXHJcbiAgICAvLyB9XHJcbiAgICByZXR1cm4gdGhpcy5fbXlOYW1lKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RhbFNpemUobW9kYWxTaXplOiBJTW9kYWxTaXplKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGFsU2l6ZSA9IG1vZGFsU2l6ZTtcclxuICB9XHJcblxyXG4gIGRlc2NyaW1pbmF0b3JWYWx1ZUNoYW5nZWQoKSB7XHJcbiAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QgPVxyXG4gICAgICB0aGlzLl9wcmVzZW50YXRpb25TZXR0aW5nU2VydmljZS5nZXRQcmVzZW50YXRpb25TZXR0aW5nQnlDb21wb25lbnRJZGVudGlmaWVyU3luYyhcclxuICAgICAgICB0aGlzLmdldENvbXBvbmVudElkZW50aWZpZXIoKSxcclxuICAgICAgICB0aGlzLmRlc2NyaW1pbmF0b3JWYWx1ZVxyXG4gICAgICApID8/IG5ldyBQcmVzZW50YXRpb25TZXR0aW5nKCk7XHJcblxyXG4gICAgdGhpcy5kaXJlY3RpdmVFbGVtZW50cz8uZm9yRWFjaCgoaW5wdXQpID0+IHtcclxuICAgICAgY29uc3QgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbCA9XHJcbiAgICAgICAgdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0Py5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlscz8uZmluZChcclxuICAgICAgICAgICh4KSA9PiB4LmJsb2NrTmFtZSA9PSBpbnB1dC5wcmVzZW50YXRpb25EZXNpZ25lclxyXG4gICAgICAgICk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsICYmXHJcbiAgICAgICAgIXByZXNlbnRhdGlvblNldHRpbmdEZXRhaWwuaXNCbG9ja1Zpc2libGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgaW5wdXQucmVtb3ZlRWxlbWVudCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LmV4ZWN1dGUodHJ1ZSwgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbD8uY29uZmlndXJhdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmdlbmVyaWNDcnVkKSB7XHJcbiAgICAgIHRoaXMuZ2VuZXJpY0NydWQuZGVzY3JpbWluYXRvclZhbHVlID0gdGhpcy5kZXNjcmltaW5hdG9yVmFsdWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJpY0NydWQucHJlc2VudGF0aW9uU2V0dGluZ3MgPSB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QgJiZcclxuICAgICAgdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0LnByZXNlbnRhdGlvblNldHRpbmdEZXRhaWxzLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFwcGx5Q29uZmlndXJhdGlvblRvRWxlbWVudHMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlyZWN0aXZlRWxlbWVudHM/LmZvckVhY2goKGlucHV0KSA9PiB7XHJcbiAgICAgICAgaW5wdXQuZXhlY3V0ZSh0cnVlLCB1bmRlZmluZWQpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBfcmVmcmVzaFZpZXdHcmlkSW5mb3JtYXRpb25JZkV4aXN0KCkge1xyXG4gICAgaWYgKHRoaXMudmlld0dyaWQpIHtcclxuICAgICAgaWYgKHRoaXMudmlld0dyaWQuZm9ybUVuZHBvaW50ICE9IHRoaXMuZm9ybUVuZHBvaW50KSB7XHJcbiAgICAgICAgdGhpcy52aWV3R3JpZC5mb3JtRW5kcG9pbnQgPSB0aGlzLmZvcm1FbmRwb2ludDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMudmlld0dyaWQuZm9ybU5hbWUgIT0gdGhpcy5mb3JtTmFtZSkge1xyXG4gICAgICAgIHRoaXMudmlld0dyaWQuZm9ybU5hbWUgPSB0aGlzLmZvcm1OYW1lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy52aWV3R3JpZC5idXNpbmVzc0NsYXNzICE9IHRoaXMuYnVzaW5lc3NDbGFzcykge1xyXG4gICAgICAgIHRoaXMudmlld0dyaWQuYnVzaW5lc3NDbGFzcyA9IHRoaXMuYnVzaW5lc3NDbGFzcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVmcmVzaEdlbmVyaWNHcmlkSW5mb3JtYXRpb25JZkV4aXN0KCkge1xyXG4gICAgaWYgKHRoaXMuZ2VuZXJpY0dyaWQpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlZnJlc2hHZW5lcmljQ3J1ZEluZm9ybWF0aW9uSWZFeGlzdCgpIHtcclxuICAgIGlmICh0aGlzLmdlbmVyaWNDcnVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmdlbmVyaWNDcnVkLmZvcm1FbmRwb2ludCAhPSB0aGlzLmZvcm1FbmRwb2ludCkge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuZm9ybUVuZHBvaW50ID0gdGhpcy5mb3JtRW5kcG9pbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmdlbmVyaWNDcnVkLmZvcm1OYW1lICE9IHRoaXMuZm9ybU5hbWUpIHtcclxuICAgICAgICB0aGlzLmdlbmVyaWNDcnVkLmZvcm1OYW1lID0gdGhpcy5mb3JtTmFtZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZ2VuZXJpY0NydWQuYnVzaW5lc3NDbGFzcyAhPSB0aGlzLmJ1c2luZXNzQ2xhc3MpIHtcclxuICAgICAgICB0aGlzLmdlbmVyaWNDcnVkLmJ1c2luZXNzQ2xhc3MgPSB0aGlzLmJ1c2luZXNzQ2xhc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5pdFZpZXdHcmlkSWZFeGlzdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZpZXdHcmlkKSB7XHJcbiAgICAgIC8vaW5pdCByZXBvcnRpbmdcclxuICAgICAgdGhpcy52aWV3R3JpZC5mb3JtRW5kcG9pbnQgPSB0aGlzLmZvcm1FbmRwb2ludDtcclxuICAgICAgdGhpcy52aWV3R3JpZC5mb3JtTmFtZSA9IHRoaXMuZm9ybU5hbWU7XHJcbiAgICAgIHRoaXMudmlld0dyaWQuYnVzaW5lc3NDbGFzcyA9IHRoaXMuYnVzaW5lc3NDbGFzcztcclxuICAgICAgaWYgKHRoaXMuaXNBZHZhbmNlZFNlYXJjaE1vZGUpIHtcclxuICAgICAgICB0aGlzLnZpZXdHcmlkLnNob3dFeHBvcnRCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnZpZXdHcmlkLnNob3dDb25zdWx0QnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52aWV3R3JpZC5zaG93Q2FsZW5kZXJWaWV3ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIFRPRE8gOiBAYnk6IEhhc3NlbixcclxuICAgICAgICAvLyBAd2h5OiBLZWVwIGFsbCBzZWFyY2ggY3JpdGVyaWEgPT4gdXNlZnVsbCBmb3IgYWR2YW5jZWQgc2VhcmNoXHJcbiAgICAgICAgLy90aGlzLnZpZXdHcmlkLnNob3dGaWx0ZXJCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICAvL3RoaXMudmlld0dyaWQuc2hvd0dsb2JhbFNlYXJjaCA9IGZhbHNlO1xyXG4gICAgICAgIC8vdGhpcy52aWV3R3JpZC5zaG93SGVhZGVyRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICAgIC8vdGhpcy52aWV3R3JpZC5zaG93U2VhcmNoRmllbGQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICAvL2luaXQgcm93IHNlbGVjdGlvblxyXG4gICAgICAvLyB0aGlzLnZpZXdHcmlkLnNlbGVjdEtleU9ubHkgPSB0aGlzLnNlbGVjdEtleU9ubHk7XHJcbiAgICAgIC8vIHRoaXMudmlld0dyaWQuc2VsZWN0aW9uTW9kZSA9IHRoaXMuc2VsZWN0aW9uTW9kZTtcclxuICAgICAgLy8gdGhpcy52aWV3R3JpZC5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgICAvLyB0aGlzLnZpZXdHcmlkLmtleSA9IHRoaXMua2V5O1xyXG5cclxuICAgICAgdGhpcy5fcm93c1NlbGVjdGlvblN1YnNjcmlwdGlvbiA9XHJcbiAgICAgICAgdGhpcy52aWV3R3JpZC5zZWxlY3RlZEl0ZW1zQ2hhbmdlLnN1YnNjcmliZSgoaXRlbXM6IGFueVtdKSA9PlxyXG4gICAgICAgICAgdGhpcy5faGFuZGxlU2VsZWN0ZWRJdGVtc0NoYW5nZUV2ZW50KGl0ZW1zKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0R2VuZXJpY0dyaWRJZkV4aXN0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ2VuZXJpY0dyaWQpIHtcclxuICAgICAgaWYgKHRoaXMuaXNBZHZhbmNlZFNlYXJjaE1vZGUpIHtcclxuICAgICAgICB0aGlzLmdlbmVyaWNHcmlkLnNlbGVjdGlvbk1vZGUgPSBHcmlkU2VsZWN0aW9uTW9kZS5TaW5nbGU7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljR3JpZC5zaG93QWN0aW9uQ29sdW1uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljR3JpZC5zaG93Q2FsZW5kZXJWaWV3ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljR3JpZC5zaG93RXhwb3J0QnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljR3JpZC5zZWxlY3RLZXlPbmx5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gVE9ETyA6IEBieTogSGFzc2VuLFxyXG4gICAgICAgIC8vIEB3aHk6IEtlZXAgYWxsIHNlYXJjaCBjcml0ZXJpYSA9PiB1c2VmdWxsIGZvciBhZHZhbmNlZCBzZWFyY2hcclxuICAgICAgICAvL3RoaXMuZ2VuZXJpY0dyaWQuc2hvd0ZpbHRlckJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgIC8vdGhpcy5nZW5lcmljR3JpZC5zaG93R2xvYmFsU2VhcmNoID0gZmFsc2U7XHJcbiAgICAgICAgLy90aGlzLmdlbmVyaWNHcmlkLnNob3dIZWFkZXJGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICAgICAgLy90aGlzLmdlbmVyaWNHcmlkLnNob3dTZWFyY2hCb3ggPSBmYWxzZTtcclxuICAgICAgICAvL3RoaXMuZ2VuZXJpY0dyaWQuc2hvd1NlYXJjaEZpZWxkID0gZmFsc2U7XHJcbiAgICAgICAgLy90aGlzLmdlbmVyaWNHcmlkLlNob3dGaWx0ZXJDb2x1bW5zID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fcm93c1NlbGVjdGlvblN1YnNjcmlwdGlvbiA9XHJcbiAgICAgICAgdGhpcy5nZW5lcmljR3JpZC5zZWxlY3RlZEl0ZW1zQ2hhbmdlLnN1YnNjcmliZSgoaXRlbXM6IGFueVtdKSA9PlxyXG4gICAgICAgICAgdGhpcy5faGFuZGxlU2VsZWN0ZWRJdGVtc0NoYW5nZUV2ZW50KGl0ZW1zKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0R2VuZXJpY0NydWRJZkV4aXN0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ2VuZXJpY0NydWQpIHtcclxuICAgICAgLy9pbml0IHJlcG9ydGluZ1xyXG4gICAgICBpZiAodGhpcy5pc0FkdmFuY2VkU2VhcmNoTW9kZSkge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2VsZWN0aW9uTW9kZSA9IEdyaWRTZWxlY3Rpb25Nb2RlLlNpbmdsZTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNDcnVkLnNob3dBZGRCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNDcnVkLnNob3dEZWxldGVCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNDcnVkLnNob3dDb25zdWx0QnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljQ3J1ZC5zaG93RWRpdEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2hvd0V4cG9ydEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2hvd0luZm9CdXR0b24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNDcnVkLnNob3dEb3dubG9hZEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2hvd1JlcG9ydGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2hvd1VwbG9hZEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2VsZWN0S2V5T25seSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIFRPRE8gOiBAYnk6IEhhc3NlbixcclxuICAgICAgICAvLyBAd2h5OiBLZWVwIGFsbCBzZWFyY2ggY3JpdGVyaWEgPT4gdXNlZnVsbCBmb3IgYWR2YW5jZWQgc2VhcmNoXHJcbiAgICAgICAgLy90aGlzLmdlbmVyaWNDcnVkLnNob3dHbG9iYWxTZWFyY2ggPSBmYWxzZTtcclxuICAgICAgICAvL3RoaXMuZ2VuZXJpY0NydWQuc2hvd1NlYXJjaEZpZWxkID0gZmFsc2U7XHJcbiAgICAgICAgLy90aGlzLmdlbmVyaWNDcnVkLnNob3dIZWFkZXJGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljQ3J1ZC5uZ09uSW5pdCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2VuZXJpY0NydWQuZm9ybUVuZHBvaW50ID0gdGhpcy5mb3JtRW5kcG9pbnQ7XHJcbiAgICAgIHRoaXMuZ2VuZXJpY0NydWQuZm9ybU5hbWUgPSB0aGlzLmZvcm1OYW1lO1xyXG4gICAgICB0aGlzLmdlbmVyaWNDcnVkLmJ1c2luZXNzQ2xhc3MgPSB0aGlzLmJ1c2luZXNzQ2xhc3M7XHJcblxyXG4gICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QgPVxyXG4gICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvblNldHRpbmdTZXJ2aWNlLmdldFByZXNlbnRhdGlvblNldHRpbmdCeUNvbXBvbmVudElkZW50aWZpZXJTeW5jKFxyXG4gICAgICAgICAgdGhpcy5nZXRDb21wb25lbnRJZGVudGlmaWVyKCksXHJcbiAgICAgICAgICB0aGlzLmRlc2NyaW1pbmF0b3JWYWx1ZVxyXG4gICAgICAgICkgPz8gbmV3IFByZXNlbnRhdGlvblNldHRpbmcoKTtcclxuICAgICAgdGhpcy5nZW5lcmljQ3J1ZC5wcmVzZW50YXRpb25TZXR0aW5ncyA9IHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdDtcclxuXHJcbiAgICAgIC8vIGlmICh0aGlzLnByZXNlbnRhdGlvblJlcXVlc3RcclxuICAgICAgLy8gICAmJiB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QucHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHMubGVuZ3RoID4gMFxyXG4gICAgICAvLyAgICYmIHRoaXMuZ2VuZXJpY0NydWQuZ2VuZXJpY0dyaWRDb21wb25lbnQpIHtcclxuICAgICAgLy8gICB0aGlzLmdlbmVyaWNDcnVkLmdlbmVyaWNHcmlkQ29tcG9uZW50LnByZXNlbnRhdGlvblNldHRpbmdzID0gdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0O1xyXG4gICAgICAvLyAgIHRoaXMuZ2VuZXJpY0NydWQuZ2VuZXJpY0dyaWRDb21wb25lbnQuc2VhcmNoKClcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgLy9pbml0IHJvdyBzZWxlY3Rpb25cclxuICAgICAgLy8gdGhpcy5nZW5lcmljQ3J1ZC5zZWxlY3RLZXlPbmx5ID0gdGhpcy5zZWxlY3RLZXlPbmx5O1xyXG4gICAgICAvLyB0aGlzLmdlbmVyaWNDcnVkLnNlbGVjdGlvbk1vZGUgPSB0aGlzLnNlbGVjdGlvbk1vZGU7XHJcbiAgICAgIC8vIHRoaXMuZ2VuZXJpY0NydWQuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcztcclxuICAgICAgLy8gdGhpcy5nZW5lcmljQ3J1ZC5rZXkgPSB0aGlzLmtleTtcclxuXHJcbiAgICAgIHRoaXMuX3Jvd3NTZWxlY3Rpb25TdWJzY3JpcHRpb24gPVxyXG4gICAgICAgIHRoaXMuZ2VuZXJpY0NydWQuc2VsZWN0ZWRJdGVtc0NoYW5nZS5zdWJzY3JpYmUoKGl0ZW1zOiBhbnlbXSkgPT5cclxuICAgICAgICAgIHRoaXMuX2hhbmRsZVNlbGVjdGVkSXRlbXNDaGFuZ2VFdmVudChpdGVtcylcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBY3RpdmVTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3Jvd3NTZWxlY3Rpb25TdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5fcm93c1NlbGVjdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9kZXNpZ25Nb2RlTGlzdFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLl9kZXNpZ25Nb2RlTGlzdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9hZGRlZERpcmVjdGl2ZVN1YnNjcml0cGlvbikge1xyXG4gICAgICB0aGlzLl9hZGRlZERpcmVjdGl2ZVN1YnNjcml0cGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9hZGRlZEJhc2VEaXJlY3RpdmVTdWJzY3JpdHBpb24pIHtcclxuICAgICAgdGhpcy5fYWRkZWRCYXNlRGlyZWN0aXZlU3Vic2NyaXRwaW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVTZWxlY3RlZEl0ZW1zQ2hhbmdlRXZlbnQoaXRlbXM6IGFueVtdKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkSXRlbXMgPSBpdGVtcztcclxuICAgIC8vIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBpdGVtcyBhcmUgOiAnLCB0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gIH1cclxuICBoYW5kbGVSb3dEYmxDbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgdWlkID0gdGhpcy5nZW5lcmljQ3J1ZD8uc2VsZWN0ZWRJdGVtc1swXTtcclxuICAgIGlmICh1aWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VNb2RhbFdpdGhJZCh1aWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZU1vZGFsV2l0aElkKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9kaWFsb2dSZWZlcmVuY2UpIHtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmZXJlbmNlPy5jbG9zZShpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RibGNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvdWJsZUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5oYW5kbGVSb3dEYmxDbGljayhldmVudCk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBpbml0RGVzaWduTW9kZVN1YnNjcmlwdGlvbigpIHtcclxuICAgIHRoaXMuX2Rlc2lnbk1vZGVMaXN0U3Vic2NyaXB0aW9uID1cclxuICAgICAgdGhpcy5fbGF5b3V0SGVscGVyU2VydmljZS5kZXNpZ25Nb2RlTGlzdE9ic2VydmFibGUuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZURlc2lnbk1vZGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2FkZGVkRGlyZWN0aXZlU3Vic2NyaXRwaW9uID1cclxuICAgICAgdGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXJTZXJ2aWNlLmFkZGVkRGlyZWN0aXZlT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgIGlmICghZGF0YS50cmVhdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1NpbmdsZUVsZW1lbnQoZGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5fYWRkZWRCYXNlRGlyZWN0aXZlU3Vic2NyaXRwaW9uID1cclxuICAgICAgdGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZS5hZGRlZERpcmVjdGl2ZU9ic2VydmFibGUuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWRhdGEudHJlYXRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NTaW5nbGVFbGVtZW50KGRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gUHJlc2VudGF0aW9uIFNldHRpbmdzXHJcblxyXG4gIHByb2Nlc3NTaW5nbGVFbGVtZW50KGRpcmVjdGl2ZTogKFByZXNlbnRhdGlvbkRlc2lnbmVyRGlyZWN0aXZlIHwgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmVCYXNlKSkge1xyXG4gICAgdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0ID1cclxuICAgICAgdGhpcy5fcHJlc2VudGF0aW9uU2V0dGluZ1NlcnZpY2UuZ2V0UHJlc2VudGF0aW9uU2V0dGluZ0J5Q29tcG9uZW50SWRlbnRpZmllclN5bmMoXHJcbiAgICAgICAgdGhpcy5nZXRDb21wb25lbnRJZGVudGlmaWVyKCksXHJcbiAgICAgICAgdGhpcy5kZXNjcmltaW5hdG9yVmFsdWVcclxuICAgICAgKSA/PyBuZXcgUHJlc2VudGF0aW9uU2V0dGluZygpO1xyXG4gICAgbGV0IHByZXNlbnRhdGlvblNldHRpbmdEZXRhaWwgPVxyXG4gICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3Q/LnByZXNlbnRhdGlvblNldHRpbmdEZXRhaWxzPy5maW5kKFxyXG4gICAgICAgICh4KSA9PiB4LmJsb2NrTmFtZSA9PSBkaXJlY3RpdmUucHJlc2VudGF0aW9uRGVzaWduZXJcclxuICAgICAgKTtcclxuICAgIGlmIChcclxuICAgICAgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbCA9PSB1bmRlZmluZWQgfHxcclxuICAgICAgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbC5pc0Jsb2NrVmlzaWJsZVxyXG4gICAgKSB7XHJcbiAgICAgIGRpcmVjdGl2ZS5leGVjdXRlKHRydWUsIHByZXNlbnRhdGlvblNldHRpbmdEZXRhaWw/LmNvbmZpZ3VyYXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ3VyYXRpb25Ub0VsZW1lbnRzKCkge1xyXG4gICAgdGhpcy5kaXJlY3RpdmVFbGVtZW50cz8uZm9yRWFjaCgoZGlyZWN0aXZlKSA9PiB7XHJcbiAgICAgIGxldCBwcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsID1cclxuICAgICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3Q/LnByZXNlbnRhdGlvblNldHRpbmdEZXRhaWxzPy5maW5kKFxyXG4gICAgICAgICAgKHgpID0+IHguYmxvY2tOYW1lID09IGRpcmVjdGl2ZS5wcmVzZW50YXRpb25EZXNpZ25lclxyXG4gICAgICAgICk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsID09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgIHByZXNlbnRhdGlvblNldHRpbmdEZXRhaWwuaXNCbG9ja1Zpc2libGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgZGlyZWN0aXZlLmV4ZWN1dGUodHJ1ZSwgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbD8uY29uZmlndXJhdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29uZmlnQXBwbGllZCA9IHRydWU7XHJcblxyXG4gICAgLy8gbGV0IGlucHV0c1RvQWRkID0gdGhpcy5kaXJlY3RpdmVFbGVtZW50c1xyXG4gICAgLy8gICAuZmlsdGVyKHggPT4gdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0Py5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlscz8uc29tZSh5ID0+IHkuYmxvY2tOYW1lID09IHgucHJlc2VudGF0aW9uRGVzaWduZXIgJiYgeS5pc0Jsb2NrVmlzaWJsZSkpXHJcblxyXG4gICAgLy8gaW5wdXRzVG9BZGQuZm9yRWFjaChpbnB1dCA9PiB7XHJcbiAgICAvLyAgIGxldCBjb25maWd1cmF0aW9uID0gdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0Py5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlscz8uZmluZCh4ID0+IHguYmxvY2tOYW1lID09IGlucHV0LnByZXNlbnRhdGlvbkRlc2lnbmVyKT8uY29uZmlndXJhdGlvblxyXG4gICAgLy8gICBpbnB1dC5leGVjdXRlKHRydWUsIGNvbmZpZ3VyYXRpb24pXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZURlc2lnbk1vZGUoKSB7XHJcbiAgICBsZXQgc2hvd0hpZGVDb25maWdCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbmZpZ01vZGVCdXR0b25JZCk7XHJcblxyXG4gICAgaWYgKHNob3dIaWRlQ29uZmlnQnRuKSB7XHJcbiAgICAgIHRoaXMuc2hvd0hpZGVDb25maWdCdG5SZWYgPSBzaG93SGlkZUNvbmZpZ0J0bj8uY2xvbmVOb2RlKHRydWUpO1xyXG4gICAgICB0aGlzLnNob3dIaWRlQ29uZmlnQnRuUGFyZW50UmVmID0gc2hvd0hpZGVDb25maWdCdG4/LnBhcmVudE5vZGU7XHJcblxyXG4gICAgICBjb25zdCBvbGRCdXR0b25zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcclxuICAgICAgICB0aGlzLnNhdmVQcm9wZXJ0aWVzQnV0dG9uQ2xhc3NOYW1lXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAob2xkQnV0dG9ucykge1xyXG4gICAgICAgIEFycmF5LmZyb20ob2xkQnV0dG9ucykuZm9yRWFjaCgob2xkQnV0dG9uOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNoaWxkKHNob3dIaWRlQ29uZmlnQnRuPy5wYXJlbnROb2RlLCBvbGRCdXR0b24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gc2hvd0hpZGVDb25maWdCdG4ucGFyZW50Tm9kZTtcclxuXHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyPy5yZW1vdmVDaGlsZChwYXJlbnRFbGVtZW50LCBzaG93SGlkZUNvbmZpZ0J0bik7XHJcblxyXG4gICAgICBjb25zdCB0c2lCdXR0b25SZWYgPVxyXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWY/LmNyZWF0ZUNvbXBvbmVudChUc2lCdXR0b25Db21wb25lbnQpO1xyXG5cclxuICAgICAgaWYgKHRzaUJ1dHRvblJlZikge1xyXG4gICAgICAgIHRzaUJ1dHRvblJlZi5zZXRJbnB1dChcclxuICAgICAgICAgICd0ZXh0JyxcclxuICAgICAgICAgICdzaGFyZWRfdHNpX2NvbXBvbmVudF9zYXZlX2NvbmZpZ19zaG93X2hpZGUnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0c2lCdXR0b25SZWYuc2V0SW5wdXQoJ2ljb24nLCAnc2F2ZScpO1xyXG4gICAgICAgIHRzaUJ1dHRvblJlZi5zZXRJbnB1dCgnaWQnLCB0aGlzLnNhdmVQcm9wZXJ0eUJ0bklkKTtcclxuXHJcbiAgICAgICAgdHNpQnV0dG9uUmVmLmluc3RhbmNlLm9uQ2xpY2suc3Vic2NyaWJlKCgpID0+IHRoaXMuc2F2ZVByb3BlcnRpZXMoKSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgICAgIHRzaUJ1dHRvblJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgJ2NsYXNzJyxcclxuICAgICAgICAgIHRoaXMuc2F2ZVByb3BlcnRpZXNCdXR0b25DbGFzc05hbWVcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyPy5hcHBlbmRDaGlsZChcclxuICAgICAgICAgIHBhcmVudEVsZW1lbnQsXHJcbiAgICAgICAgICB0c2lCdXR0b25SZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25TZXR0aW5nU2VydmljZS5nZXRQcmVzZW50YXRpb25TZXR0aW5nQnlDb21wb25lbnRJZGVudGlmaWVyU3luYyhcclxuICAgICAgICAgICAgdGhpcy5nZXRDb21wb25lbnRJZGVudGlmaWVyKCksXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpbWluYXRvclZhbHVlXHJcbiAgICAgICAgICApID8/IG5ldyBQcmVzZW50YXRpb25TZXR0aW5nKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlyZWN0aXZlRWxlbWVudHM/LmZvckVhY2goKGlucHV0KSA9PiB7XHJcbiAgICAgICAgICBpbnB1dC5pbnNlcnRFbGVtZW50KCk7XHJcbiAgICAgICAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBQcmVzZW50YXRpb25EZXNpZ25lckRpcmVjdGl2ZSkge1xyXG4gICAgICAgICAgICBpbnB1dC5zZWxlY3RBcHByb3JpYXRlQ29sdW1ucyh0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaW5wdXQuYWRkQ2hlY2tib3hlc1RvSW5wdXRzKHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFByZXNlbnRhdGlvblNldGluZ0RldGFpbFVpZChibG9ja05hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdD8ucHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHM/LmZpbmQoXHJcbiAgICAgICh4KSA9PiB4LmJsb2NrTmFtZSA9PSBibG9ja05hbWVcclxuICAgICk/LnVpZDtcclxuICB9XHJcblxyXG4gIHNhdmVQcm9wZXJ0aWVzKCkge1xyXG4gICAgaWYgKCF0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5wcmVzZW50YXRpb25SZXF1ZXN0ID0gbmV3IFByZXNlbnRhdGlvblNldHRpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHM6IFByZXNlbnRhdGlvblNldHRpbmdEZXRhaWxbXSA9IFtdO1xyXG5cclxuICAgIHRoaXMuZGlyZWN0aXZlRWxlbWVudHM/LmZvckVhY2goKGRpcmVjdGl2ZSkgPT4ge1xyXG4gICAgICBsZXQgY29uZmlndXJhdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgY29uc3Qgc291cmNlcyA9IFtcclxuICAgICAgICAuLi50aGlzLmdlbmVyaWNHcmlkcyxcclxuICAgICAgICAuLi50aGlzLmdlbmVyaWNDcnVkcyxcclxuICAgICAgICAuLi50aGlzLnZpZXdHcmlkcyxcclxuICAgICAgXTtcclxuXHJcbiAgICAgIGNvbnN0IG1hdGNoZWRTb3VyY2UgPSBzb3VyY2VzLmZpbmQoXHJcbiAgICAgICAgKHgpID0+XHJcbiAgICAgICAgICB4LmZvcm1OYW1lID09PSBkaXJlY3RpdmUucHJlc2VudGF0aW9uRGVzaWduZXIgfHxcclxuICAgICAgICAgIHguaWQgPT09IGRpcmVjdGl2ZS5wcmVzZW50YXRpb25EZXNpZ25lclxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKG1hdGNoZWRTb3VyY2UpIHtcclxuICAgICAgICBjb25zdCBncmlkU3RhdGUgPSBtYXRjaGVkU291cmNlLmdldFN0YXRlKCk7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbiA9IGdyaWRTdGF0ZSA/IEpTT04uc3RyaW5naWZ5KGdyaWRTdGF0ZSkgOiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBvYmplY3Q6IFByZXNlbnRhdGlvblNldHRpbmdEZXRhaWwgPSB7XHJcbiAgICAgICAgYmxvY2tOYW1lOiBkaXJlY3RpdmUucHJlc2VudGF0aW9uRGVzaWduZXIsXHJcbiAgICAgICAgaXNCbG9ja1Zpc2libGU6XHJcbiAgICAgICAgICAhZGlyZWN0aXZlLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWY/Lmluc3RhbmNlPy5fY2hlY2tlZCxcclxuICAgICAgICB1aWQ6IHRoaXMuZ2V0UHJlc2VudGF0aW9uU2V0aW5nRGV0YWlsVWlkKFxyXG4gICAgICAgICAgZGlyZWN0aXZlLnByZXNlbnRhdGlvbkRlc2lnbmVyID8/ICcnXHJcbiAgICAgICAgKSxcclxuICAgICAgICBjb25maWd1cmF0aW9uOiBjb25maWd1cmF0aW9uLFxyXG4gICAgICB9O1xyXG4gICAgICBwcmVzZW50YXRpb25TZXR0aW5nRGV0YWlscy5wdXNoKG9iamVjdCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QuY29tcG9uZW50SWRlbnRpZmVyID0gdGhpcy5nZXRDb21wb25lbnRJZGVudGlmaWVyKCk7XHJcbiAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QucHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHMgPVxyXG4gICAgICBwcmVzZW50YXRpb25TZXR0aW5nRGV0YWlscztcclxuXHJcbiAgICAvL3RoaXMubG9hZGluZyA9IHRydWVcclxuXHJcbiAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QuZGVzY3JpbWluYXRvclZhbHVlID0gdGhpcy5kZXNjcmltaW5hdG9yVmFsdWU7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdC51aWQgIT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QudWlkICE9IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuX3ByZXNlbnRhdGlvblNldHRpbmdTZXJ2aWNlXHJcbiAgICAgICAgLnVwZGF0ZVByZXNlbnRhdGlvblNldHRpbmcoXHJcbiAgICAgICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QsXHJcbiAgICAgICAgICB0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QudWlkXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogYXN5bmMgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy5sb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZUluZm9TZXJ2aWNlLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAgICAgTG9jYWxpemF0aW9uS2V5cy5zYXZlZFN1Y2Nlc3NmdWxseVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9wcmVzZW50YXRpb25TZXR0aW5nU2VydmljZS5sb2FkUHJlc2VudGF0aW9uU2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3RhdGUoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JSZXNwb25zZU1hbmFnZXIuc2hvd0Vycm9yTWVzc2FnZShlcnJvcik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcHJlc2VudGF0aW9uU2V0dGluZ1NlcnZpY2VcclxuICAgICAgICAuY3JlYXRlUHJlc2VudGF0aW9uU2V0dGluZyh0aGlzLnByZXNlbnRhdGlvblJlcXVlc3QpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiBhc3luYyAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlSW5mb1NlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAgICAgICBMb2NhbGl6YXRpb25LZXlzLnNhdmVkU3VjY2Vzc2Z1bGx5XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3ByZXNlbnRhdGlvblNldHRpbmdTZXJ2aWNlLmxvYWRQcmVzZW50YXRpb25TZXR0aW5ncygpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NTdGF0ZSgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvclJlc3BvbnNlTWFuYWdlci5zaG93RXJyb3JNZXNzYWdlKGVycm9yKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzU3RhdGUoKSB7XHJcbiAgICB0aGlzLl9sYXlvdXRIZWxwZXJTZXJ2aWNlLmlzRGVzaWduTW9kZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5fbGF5b3V0SGVscGVyU2VydmljZS5fZGVzaWduTW9kZUxpc3RTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cclxuICAgIGxldCBzYXZlUHJvcGVydGllc0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2F2ZVByb3BlcnR5QnRuSWQpO1xyXG5cclxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNoaWxkKFxyXG4gICAgICBzYXZlUHJvcGVydGllc0J0bj8ucGFyZW50Tm9kZSxcclxuICAgICAgc2F2ZVByb3BlcnRpZXNCdG5cclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd0hpZGVDb25maWdCdG5QYXJlbnRSZWYgJiYgdGhpcy5zaG93SGlkZUNvbmZpZ0J0blJlZikge1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZChcclxuICAgICAgICB0aGlzLnNob3dIaWRlQ29uZmlnQnRuUGFyZW50UmVmLFxyXG4gICAgICAgIHRoaXMuc2hvd0hpZGVDb25maWdCdG5SZWZcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zaG93SGlkZUNvbmZpZ0J0blJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRzPy5mb3JFYWNoKChpbnB1dCkgPT4ge1xyXG4gICAgICBpbnB1dC5yZW1vdmVTaG93SGlkZUNoZWNrYm94KCk7XHJcbiAgICAgIGNvbnN0IHByZXNlbnRhdGlvblNldHRpbmdEZXRhaWwgPVxyXG4gICAgICAgIHRoaXMucHJlc2VudGF0aW9uUmVxdWVzdD8ucHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHM/LmZpbmQoXHJcbiAgICAgICAgICAoeCkgPT4geC5ibG9ja05hbWUgPT0gaW5wdXQucHJlc2VudGF0aW9uRGVzaWduZXJcclxuICAgICAgICApO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbCAmJlxyXG4gICAgICAgICFwcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsLmlzQmxvY2tWaXNpYmxlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlucHV0LnJlbW92ZUVsZW1lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hcHBseUNvbmZpZ3VyYXRpb25Ub0VsZW1lbnRzKCk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kIHJlZ2lvblxyXG59XHJcbiIsIjxwPnRzaS1saXN0LWJhc2Ugd29ya3MhPC9wPiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './components/tsi-form-base/tsi-form-base.component';
|
|
2
|
+
export * from './components/tsi-base/tsi-base.component';
|
|
3
|
+
export * from './components/tsi-list-base/tsi-list-base.component';
|
|
4
|
+
export * from './components/app-base/app-base.component';
|
|
5
|
+
export * from './tsi-input-base/tsi-input-base.component';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWJhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RzaS1mb3JtLWJhc2UvdHNpLWZvcm0tYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdHNpLWJhc2UvdHNpLWJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RzaS1saXN0LWJhc2UvdHNpLWxpc3QtYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWJhc2UvYXBwLWJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90c2ktaW5wdXQtYmFzZS90c2ktaW5wdXQtYmFzZS5jb21wb25lbnQnOyJdfQ==
|