@smartbit4all/ng-client 6.0.9 → 6.0.11
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/README.md +386 -386
- package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +1 -1
- package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +1 -1
- package/esm2022/lib/component-factory-service/projects.mjs +1 -1
- package/esm2022/lib/session/api/api/api.mjs +1 -1
- package/esm2022/lib/session/api/api/session.service.mjs +1 -1
- package/esm2022/lib/session/api/configuration.mjs +1 -1
- package/esm2022/lib/session/api/encoder.mjs +1 -1
- package/esm2022/lib/session/api/index.mjs +1 -1
- package/esm2022/lib/session/api/model/accountInfo.mjs +1 -1
- package/esm2022/lib/session/api/model/apiError.mjs +1 -1
- package/esm2022/lib/session/api/model/authenticationProviderData.mjs +1 -1
- package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
- package/esm2022/lib/session/api/model/models.mjs +1 -1
- package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +1 -1
- package/esm2022/lib/session/api/model/session.mjs +1 -1
- package/esm2022/lib/session/api/model/sessionInfoData.mjs +1 -1
- package/esm2022/lib/session/api/model/userActivityLog.mjs +1 -1
- package/esm2022/lib/session/api/param.mjs +1 -1
- package/esm2022/lib/session/api/variables.mjs +1 -1
- package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +1 -1
- package/esm2022/lib/session/projects.mjs +1 -1
- package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +1 -1
- package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +7 -4
- package/esm2022/lib/session/smart-default-error-ui.service.mjs +1 -1
- package/esm2022/lib/session/smart-error-catching.interceptor.mjs +1 -1
- package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +1 -1
- package/esm2022/lib/session/smart-session-handler.service.mjs +1 -1
- package/esm2022/lib/session/smart-session.module.mjs +1 -1
- package/esm2022/lib/session/smart-session.service.mjs +1 -1
- package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +3 -3
- package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +1 -1
- package/esm2022/lib/shared/projects.mjs +1 -1
- package/esm2022/lib/shared/shared.module.mjs +1 -1
- package/esm2022/lib/shared/smart-tooltip.directive.mjs +1 -1
- package/esm2022/lib/shared/smarttable.date-pipe.mjs +1 -1
- package/esm2022/lib/smart-client/projects.mjs +1 -1
- package/esm2022/lib/smart-client/smart-component-api-client.mjs +1 -1
- package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +3 -3
- package/esm2022/lib/smart-client/smart.component.mjs +1 -1
- package/esm2022/lib/smart-client/smart.service.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +1 -1
- package/esm2022/lib/smart-component-layout/projects.mjs +1 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +1 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +3 -3
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +1 -1
- package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +1 -1
- package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +22 -22
- package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +1 -1
- package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +1 -1
- package/esm2022/lib/smart-diagram/projects.mjs +1 -1
- package/esm2022/lib/smart-dialog/projects.mjs +1 -1
- package/esm2022/lib/smart-dialog/smartdialog.component.mjs +3 -3
- package/esm2022/lib/smart-dialog/smartdialog.model.mjs +1 -1
- package/esm2022/lib/smart-dialog/smartdialog.module.mjs +1 -1
- package/esm2022/lib/smart-dialog/smartdialog.service.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +3 -3
- package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/projects.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +1 -1
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/model.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/value/model/value.mjs +1 -1
- package/esm2022/lib/smart-filter/projects.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +3 -3
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +3 -3
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +3 -3
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter.model.mjs +1 -1
- package/esm2022/lib/smart-filter/smart-filter.module.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/project.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +3 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +3 -3
- package/esm2022/lib/smart-form/api/model/divProperties.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +1 -1
- package/esm2022/lib/smart-form/projects.mjs +1 -1
- package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +1 -1
- package/esm2022/lib/smart-form/services/smartform.service.mjs +1 -1
- package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +3 -3
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +3 -3
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
- package/esm2022/lib/smart-form/smartform.component.mjs +3 -3
- package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
- package/esm2022/lib/smart-form/smartform.model.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +3 -3
- package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +3 -3
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +3 -3
- package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +3 -3
- package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +3 -3
- package/esm2022/lib/smart-generic-pages/projects.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +3 -3
- package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +1 -1
- package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +3 -3
- package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +3 -3
- package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
- package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +3 -3
- package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +3 -3
- package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +3 -3
- package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +3 -3
- package/esm2022/lib/smart-grid/models/model.mjs +1 -1
- package/esm2022/lib/smart-grid/projects.mjs +1 -1
- package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +13 -9
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +36 -3
- package/esm2022/lib/smart-grid/smart-grid.module.mjs +1 -1
- package/esm2022/lib/smart-grid/smart-grid.service.mjs +1 -1
- package/esm2022/lib/smart-icon/projects.mjs +1 -1
- package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +3 -3
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +3 -3
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +1 -1
- package/esm2022/lib/smart-icon/smart-icon.module.mjs +1 -1
- package/esm2022/lib/smart-icon/smart-icon.service.mjs +1 -1
- package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
- package/esm2022/lib/smart-map/api-default/api-default.mjs +1 -1
- package/esm2022/lib/smart-map/impl/google-map.mjs +1 -1
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +1 -1
- package/esm2022/lib/smart-map/projects.mjs +1 -1
- package/esm2022/lib/smart-map/smart-map.component.mjs +3 -3
- package/esm2022/lib/smart-map/smart-map.module.mjs +1 -1
- package/esm2022/lib/smart-map/smart-map.types.mjs +1 -1
- package/esm2022/lib/smart-navbar/projects.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +3 -3
- package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +1 -1
- package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +1 -1
- package/esm2022/lib/smart-navigation/projects.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +1 -1
- package/esm2022/lib/smart-ng-client.module.mjs +1 -1
- package/esm2022/lib/smart-ng-client.service.mjs +1 -1
- package/esm2022/lib/smart-subject/projects.mjs +1 -1
- package/esm2022/lib/smart-subject/smart-subject.mjs +1 -1
- package/esm2022/lib/smart-tab-group/projects.mjs +1 -1
- package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +1 -1
- package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +3 -3
- package/esm2022/lib/smart-table/components/loading/loading.component.mjs +3 -3
- package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +1 -1
- package/esm2022/lib/smart-table/projects.mjs +1 -1
- package/esm2022/lib/smart-table/smarttable.component.mjs +3 -3
- package/esm2022/lib/smart-table/smarttable.model.mjs +1 -1
- package/esm2022/lib/smart-table/smarttable.module.mjs +1 -1
- package/esm2022/lib/smart-table/smarttable.service.mjs +1 -1
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +7 -11
- package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +5 -5
- package/esm2022/lib/smart-table/tables/table.mjs +53 -59
- package/esm2022/lib/smart-tree/projects.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
- package/esm2022/lib/smart-tree/smarttree.model.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.module.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.node.model.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.service.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/configuration.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/encoder.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/param.mjs +1 -1
- package/esm2022/lib/smart-tree/tree-api/variables.mjs +1 -1
- package/esm2022/lib/smart-validation/named-validator.service.mjs +1 -1
- package/esm2022/lib/smart-validation/projects.mjs +1 -1
- package/esm2022/lib/smart-validation/smart-validation.module.mjs +1 -1
- package/esm2022/lib/smart-validation/smart-validation.types.mjs +1 -1
- package/esm2022/lib/theme/theme.service.mjs +48 -0
- package/esm2022/lib/view-context/api/api/view.service.mjs +211 -1
- package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +2 -0
- package/esm2022/lib/view-context/api/api-default/binaryData.mjs +1 -1
- package/esm2022/lib/view-context/api/api-default/invocationError.mjs +1 -1
- package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +1 -1
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/menuDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/menuOpenDirection.mjs +23 -0
- package/esm2022/lib/view-context/api/model/menuTriggerType.mjs +17 -0
- package/esm2022/lib/view-context/api/model/models.mjs +9 -1
- package/esm2022/lib/view-context/api/model/publishedViewData.mjs +13 -0
- package/esm2022/lib/view-context/api/model/shellProperty.mjs +13 -0
- package/esm2022/lib/view-context/api/model/themeDefinition.mjs +2 -0
- package/esm2022/lib/view-context/api/model/themeDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/themeShellDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/default-view-components.token.mjs +1 -1
- package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +3 -3
- package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/projects.mjs +3 -2
- package/esm2022/lib/view-context/property-definition-data.mjs +1 -1
- package/esm2022/lib/view-context/reuse-router-slot.token.mjs +1 -1
- package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +209 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +209 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +58 -68
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +35 -0
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +6 -4
- package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +20 -12
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +12 -7
- package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +13 -3
- package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.model.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.module.mjs +13 -7
- package/esm2022/lib/view-context/smart-view-context.service.mjs +14 -5
- package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +1 -1
- package/esm2022/lib/view-context/utility/componentLibrary.mjs +1 -1
- package/esm2022/lib/view-context/utility/smart-object-utility.mjs +1 -1
- package/esm2022/lib/view-context/utility/smart-style-utility.mjs +1 -1
- package/esm2022/lib/view-context/value-api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/value-api/api/value.service.mjs +1 -1
- package/esm2022/lib/view-context/value-api/api.module.mjs +1 -1
- package/esm2022/lib/view-context/value-api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/value-api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/value-api/index.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/genericValue.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/models.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/value.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
- package/esm2022/lib/view-context/value-api/param.mjs +1 -1
- package/esm2022/lib/view-context/value-api/variables.mjs +1 -1
- package/esm2022/lib/view-context/view-handler-resolution.mjs +1 -1
- package/esm2022/lib/view-context/view-op.mjs +1 -1
- package/esm2022/lib/view-context/view-slot-resolution.mjs +1 -1
- package/esm2022/projects.mjs +2 -1
- package/fesm2022/smartbit4all-ng-client.mjs +916 -306
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/session/smart-backend-bootstrap.config.d.ts +9 -1
- package/lib/session/smart-backend-bootstrap.service.d.ts +3 -1
- package/lib/smart-grid/smart-grid.component.d.ts +3 -0
- package/lib/smart-table/tables/material-table/material-table.component.d.ts +0 -1
- package/lib/smart-table/tables/table.d.ts +6 -5
- package/lib/theme/theme.service.d.ts +17 -0
- package/lib/view-context/api/api/view.service.d.ts +94 -0
- package/lib/view-context/api/api-default/binaryContentData.d.ts +2 -0
- package/lib/view-context/api/model/deviceInfo.d.ts +1 -0
- package/lib/view-context/api/model/menuDescriptor.d.ts +17 -0
- package/lib/view-context/api/model/menuOpenDirection.d.ts +21 -0
- package/lib/view-context/api/model/menuTriggerType.d.ts +15 -0
- package/lib/view-context/api/model/models.d.ts +8 -0
- package/lib/view-context/api/model/publishedViewData.d.ts +14 -0
- package/lib/view-context/api/model/shellProperty.d.ts +15 -0
- package/lib/view-context/api/model/themeDefinition.d.ts +22 -0
- package/lib/view-context/api/model/themeDescriptor.d.ts +16 -0
- package/lib/view-context/api/model/themeShellDescriptor.d.ts +17 -0
- package/lib/view-context/api/model/uiActionDescriptor.d.ts +2 -0
- package/lib/view-context/projects.d.ts +2 -1
- package/lib/view-context/smart-ui-action/components/menu/{menu.component.d.ts → click/menu.component.d.ts} +9 -7
- package/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.d.ts +44 -0
- package/lib/view-context/smart-ui-action/components/menu/menu.constants.d.ts +4 -0
- package/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.d.ts +16 -0
- package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +1 -0
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +2 -1
- package/lib/view-context/smart-ui-action/ui-action.service.d.ts +3 -1
- package/lib/view-context/smart-view-context.module.d.ts +56 -54
- package/lib/view-context/smart-view-context.service.d.ts +4 -2
- package/package.json +1 -1
- package/projects.d.ts +1 -0
- package/smartbit4all-ng-client-6.0.11.tgz +0 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +0 -199
- package/smartbit4all-ng-client-6.0.9.tgz +0 -0
|
@@ -23,61 +23,63 @@ import * as i21 from "../smart-form/widgets/components/smart-multi-file-editor/s
|
|
|
23
23
|
import * as i22 from "../smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component";
|
|
24
24
|
import * as i23 from "../smart-form/highlightMacthingString-pipe";
|
|
25
25
|
import * as i24 from "./smart-ui-action/ui-action-button/ui-action-button.component";
|
|
26
|
-
import * as i25 from "./smart-ui-action/components/menu/menu.component";
|
|
27
|
-
import * as i26 from "./smart-ui-action/components/
|
|
28
|
-
import * as i27 from "./smart-ui-action/components/upload-widget/
|
|
29
|
-
import * as i28 from "./smart-ui-action/components/upload-widget/
|
|
30
|
-
import * as i29 from "./smart-ui-action/components/upload-widget/
|
|
31
|
-
import * as i30 from "./smart-
|
|
32
|
-
import * as i31 from "
|
|
33
|
-
import * as i32 from "
|
|
34
|
-
import * as i33 from "@angular/
|
|
35
|
-
import * as i34 from "@angular/
|
|
36
|
-
import * as i35 from "
|
|
37
|
-
import * as i36 from "@angular/material/
|
|
38
|
-
import * as i37 from "
|
|
39
|
-
import * as i38 from "
|
|
40
|
-
import * as i39 from "@angular/material/
|
|
41
|
-
import * as i40 from "../
|
|
42
|
-
import * as i41 from "
|
|
43
|
-
import * as i42 from "
|
|
44
|
-
import * as i43 from "
|
|
45
|
-
import * as i44 from "@angular/
|
|
46
|
-
import * as i45 from "@angular/material/
|
|
47
|
-
import * as i46 from "@angular/
|
|
48
|
-
import * as i47 from "@angular/material/
|
|
49
|
-
import * as i48 from "@angular/material/
|
|
50
|
-
import * as i49 from "@angular/material/
|
|
51
|
-
import * as i50 from "@angular/material
|
|
52
|
-
import * as i51 from "@angular/material/
|
|
53
|
-
import * as i52 from "@angular/material
|
|
54
|
-
import * as i53 from "@angular/material/
|
|
55
|
-
import * as i54 from "
|
|
56
|
-
import * as i55 from "@angular/
|
|
57
|
-
import * as i56 from "
|
|
58
|
-
import * as i57 from "
|
|
59
|
-
import * as i58 from "
|
|
60
|
-
import * as i59 from "primeng/
|
|
61
|
-
import * as i60 from "primeng/
|
|
62
|
-
import * as i61 from "primeng/
|
|
63
|
-
import * as i62 from "primeng/
|
|
64
|
-
import * as i63 from "primeng/
|
|
65
|
-
import * as i64 from "primeng/
|
|
66
|
-
import * as i65 from "primeng/
|
|
67
|
-
import * as i66 from "primeng/
|
|
68
|
-
import * as i67 from "primeng/
|
|
69
|
-
import * as i68 from "primeng/
|
|
70
|
-
import * as i69 from "primeng/
|
|
71
|
-
import * as i70 from "primeng/
|
|
72
|
-
import * as i71 from "primeng/
|
|
73
|
-
import * as i72 from "primeng/
|
|
74
|
-
import * as i73 from "primeng/
|
|
75
|
-
import * as i74 from "primeng/
|
|
76
|
-
import * as i75 from "primeng/
|
|
77
|
-
import * as i76 from "primeng/
|
|
78
|
-
import * as i77 from "
|
|
26
|
+
import * as i25 from "./smart-ui-action/components/menu/click/menu.component";
|
|
27
|
+
import * as i26 from "./smart-ui-action/components/menu/hover/hover-menu.component";
|
|
28
|
+
import * as i27 from "./smart-ui-action/components/upload-widget/upload-widget.component";
|
|
29
|
+
import * as i28 from "./smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component";
|
|
30
|
+
import * as i29 from "./smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component";
|
|
31
|
+
import * as i30 from "./smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component";
|
|
32
|
+
import * as i31 from "./smart-embedded-slot.directive";
|
|
33
|
+
import * as i32 from "./smart-ui-action/components/theme-selector/theme-selector.component";
|
|
34
|
+
import * as i33 from "@angular/common";
|
|
35
|
+
import * as i34 from "@angular/common/http";
|
|
36
|
+
import * as i35 from "@angular/material/core";
|
|
37
|
+
import * as i36 from "@angular/material/button";
|
|
38
|
+
import * as i37 from "primeng/button";
|
|
39
|
+
import * as i38 from "@angular/material/icon";
|
|
40
|
+
import * as i39 from "@angular/material/snack-bar";
|
|
41
|
+
import * as i40 from "../smart-icon/smart-icon.module";
|
|
42
|
+
import * as i41 from "@angular/material/tooltip";
|
|
43
|
+
import * as i42 from "../shared/shared.module";
|
|
44
|
+
import * as i43 from "primeng/api";
|
|
45
|
+
import * as i44 from "@angular/platform-browser";
|
|
46
|
+
import * as i45 from "@angular/material/chips";
|
|
47
|
+
import * as i46 from "@angular/forms";
|
|
48
|
+
import * as i47 from "@angular/material/form-field";
|
|
49
|
+
import * as i48 from "@angular/material/checkbox";
|
|
50
|
+
import * as i49 from "@angular/material/select";
|
|
51
|
+
import * as i50 from "@angular/material/input";
|
|
52
|
+
import * as i51 from "@angular/material/datepicker";
|
|
53
|
+
import * as i52 from "@angular/material-moment-adapter";
|
|
54
|
+
import * as i53 from "@angular/material/radio";
|
|
55
|
+
import * as i54 from "@angular/material/slide-toggle";
|
|
56
|
+
import * as i55 from "@angular/material/autocomplete";
|
|
57
|
+
import * as i56 from "ngx-quill";
|
|
58
|
+
import * as i57 from "@angular/cdk/drag-drop";
|
|
59
|
+
import * as i58 from "@angular/youtube-player";
|
|
60
|
+
import * as i59 from "primeng/inputtext";
|
|
61
|
+
import * as i60 from "primeng/messages";
|
|
62
|
+
import * as i61 from "primeng/overlaypanel";
|
|
63
|
+
import * as i62 from "primeng/dropdown";
|
|
64
|
+
import * as i63 from "primeng/multiselect";
|
|
65
|
+
import * as i64 from "primeng/inputswitch";
|
|
66
|
+
import * as i65 from "primeng/inputnumber";
|
|
67
|
+
import * as i66 from "primeng/tooltip";
|
|
68
|
+
import * as i67 from "primeng/inputtextarea";
|
|
69
|
+
import * as i68 from "primeng/image";
|
|
70
|
+
import * as i69 from "primeng/floatlabel";
|
|
71
|
+
import * as i70 from "primeng/toast";
|
|
72
|
+
import * as i71 from "primeng/dynamicdialog";
|
|
73
|
+
import * as i72 from "primeng/fileupload";
|
|
74
|
+
import * as i73 from "primeng/chips";
|
|
75
|
+
import * as i74 from "primeng/calendar";
|
|
76
|
+
import * as i75 from "primeng/checkbox";
|
|
77
|
+
import * as i76 from "primeng/orderlist";
|
|
78
|
+
import * as i77 from "primeng/inputmask";
|
|
79
|
+
import * as i78 from "primeng/editor";
|
|
80
|
+
import * as i79 from "@angular/material/menu";
|
|
79
81
|
export declare class SmartViewContextModule {
|
|
80
82
|
static ɵfac: i0.ɵɵFactoryDeclaration<SmartViewContextModule, never>;
|
|
81
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SmartViewContextModule, [typeof i1.MessageDialogComponent, typeof i2.SmartViewContextErrorDialogComponent, typeof i3.SmartViewRedirect, typeof i4.UiActionToolbarComponent, typeof i5.FileEditorToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i7.UiActionConfirmDialogComponent, typeof i8.UiActionFileUploadDialogComponent, typeof i9.InvalidFieldsSnackBarComponent, typeof i10.SmartformComponent, typeof i11.UiActionDialogButtonComponent, typeof i12.SmartformwidgetComponent, typeof i13.SmartfileuploaderComponent, typeof i14.TrackCapsDirective, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i17.LargeFileSnackBarComponent, typeof i18.SortableWidgetComponent, typeof i19.SmartMonthPickerComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i23.HighlightPipe, typeof i24.UiActionButtonComponent, typeof i25.
|
|
83
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SmartViewContextModule, [typeof i1.MessageDialogComponent, typeof i2.SmartViewContextErrorDialogComponent, typeof i3.SmartViewRedirect, typeof i4.UiActionToolbarComponent, typeof i5.FileEditorToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i7.UiActionConfirmDialogComponent, typeof i8.UiActionFileUploadDialogComponent, typeof i9.InvalidFieldsSnackBarComponent, typeof i10.SmartformComponent, typeof i11.UiActionDialogButtonComponent, typeof i12.SmartformwidgetComponent, typeof i13.SmartfileuploaderComponent, typeof i14.TrackCapsDirective, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i17.LargeFileSnackBarComponent, typeof i18.SortableWidgetComponent, typeof i19.SmartMonthPickerComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i23.HighlightPipe, typeof i24.UiActionButtonComponent, typeof i25.ClickMenuComponent, typeof i26.HoverMenuComponent, typeof i27.UploadWidgetComponent, typeof i28.VoiceRecordWidgetComponent, typeof i29.PhotoCaptureWidgetComponent, typeof i30.PrimeFileUploaderComponent, typeof i31.SmartEmbeddedSlotDirective, typeof i32.ThemeSelectorComponent], [typeof i33.CommonModule, typeof i34.HttpClientModule, typeof i35.MatCommonModule, typeof i36.MatButtonModule, typeof i37.ButtonModule, typeof i38.MatIconModule, typeof i39.MatSnackBarModule, typeof i40.SmartIconModule, typeof i41.MatTooltipModule, typeof i42.SharedModule, typeof i43.SharedModule, typeof i44.BrowserModule, typeof i45.MatChipsModule, typeof i46.FormsModule, typeof i46.ReactiveFormsModule, typeof i47.MatFormFieldModule, typeof i48.MatCheckboxModule, typeof i49.MatSelectModule, typeof i50.MatInputModule, typeof i51.MatDatepickerModule, typeof i52.MatMomentDateModule, typeof i53.MatRadioModule, typeof i54.MatSlideToggleModule, typeof i55.MatAutocompleteModule, typeof i56.QuillModule, typeof i57.DragDropModule, typeof i58.YouTubePlayerModule, typeof i59.InputTextModule, typeof i60.MessagesModule, typeof i61.OverlayPanelModule, typeof i62.DropdownModule, typeof i63.MultiSelectModule, typeof i46.FormsModule, typeof i64.InputSwitchModule, typeof i65.InputNumberModule, typeof i66.TooltipModule, typeof i67.InputTextareaModule, typeof i68.ImageModule, typeof i69.FloatLabelModule, typeof i33.CommonModule, typeof i70.ToastModule, typeof i71.DynamicDialogModule, typeof i72.FileUploadModule, typeof i73.ChipsModule, typeof i74.CalendarModule, typeof i75.CheckboxModule, typeof i76.OrderListModule, typeof i77.InputMaskModule, typeof i78.EditorModule, typeof i79.MatMenuModule, typeof i40.SmartIconModule], [typeof i4.UiActionToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i10.SmartformComponent, typeof i12.SmartformwidgetComponent, typeof i11.UiActionDialogButtonComponent, typeof i13.SmartfileuploaderComponent, typeof i23.HighlightPipe, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i24.UiActionButtonComponent, typeof i25.ClickMenuComponent, typeof i27.UploadWidgetComponent, typeof i28.VoiceRecordWidgetComponent, typeof i29.PhotoCaptureWidgetComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i31.SmartEmbeddedSlotDirective]>;
|
|
82
84
|
static ɵinj: i0.ɵɵInjectorDeclaration<SmartViewContextModule>;
|
|
83
85
|
}
|
|
@@ -9,6 +9,7 @@ import { SmartViewContextDialogService } from './smart-view-context-dialog.servi
|
|
|
9
9
|
import { ComponentLibrary } from './utility/componentLibrary';
|
|
10
10
|
import { SlotKind } from './view-slot-resolution';
|
|
11
11
|
import { DefaultViewComponentEntry } from './default-view-components.token';
|
|
12
|
+
import { ThemeService } from '../theme/theme.service';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
export declare const SmartViewContextErrorDialogButtonLabel = "SmartViewContextErrorDialogButtonLabel";
|
|
14
15
|
export declare const SmartViewContextErrorDialogTitle = "SmartViewContextErrorDialogTitle";
|
|
@@ -20,6 +21,7 @@ export declare class SmartViewContextService implements OnDestroy {
|
|
|
20
21
|
private session;
|
|
21
22
|
private dialog;
|
|
22
23
|
private apiQueueService;
|
|
24
|
+
private themeService;
|
|
23
25
|
private inject;
|
|
24
26
|
private readonly viewContextUuidName;
|
|
25
27
|
private readonly viewContextUuidHeaderName;
|
|
@@ -54,7 +56,7 @@ export declare class SmartViewContextService implements OnDestroy {
|
|
|
54
56
|
private _translateService?;
|
|
55
57
|
translateServiceChanged: Subject<void>;
|
|
56
58
|
componentLibrary: ComponentLibrary | undefined;
|
|
57
|
-
constructor(view: ViewService, session: SmartSessionService, dialog: SmartViewContextDialogService, apiQueueService: ApiQueueService, inject: Injector, compLib?: ComponentLibrary, defaultViewComponents?: DefaultViewComponentEntry[]);
|
|
59
|
+
constructor(view: ViewService, session: SmartSessionService, dialog: SmartViewContextDialogService, apiQueueService: ApiQueueService, themeService: ThemeService, inject: Injector, compLib?: ComponentLibrary, defaultViewComponents?: DefaultViewComponentEntry[]);
|
|
58
60
|
ngOnDestroy(): void;
|
|
59
61
|
follow(uuid: string, detectChange: SmartSubject<any>): void;
|
|
60
62
|
unfollow(uuid: string): void;
|
|
@@ -147,7 +149,7 @@ export declare class SmartViewContextService implements OnDestroy {
|
|
|
147
149
|
load(uuid: string): Promise<ComponentModel | undefined>;
|
|
148
150
|
load2(uuid: string): Promise<ViewContextChange | undefined>;
|
|
149
151
|
getCurrentViewContext(): ViewContextData | undefined;
|
|
150
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SmartViewContextService, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
152
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SmartViewContextService, [null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
151
153
|
static ɵprov: i0.ɵɵInjectableDeclaration<SmartViewContextService>;
|
|
152
154
|
}
|
|
153
155
|
export declare const IS_ASYNC_PARAM_NAME = "isAsync";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartbit4all/ng-client",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.11",
|
|
4
4
|
"description": "Angular client library for the smartbit4all platform — a server-driven UI framework that renders views, pages, forms, grids, trees and dialogs from backend (ViewApi/PageApi) definitions. Provides reactive view-context state management, dynamic component layouts and OpenAPI-generated BFF clients.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/animations": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
|
package/projects.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './lib/smart-ng-client.service';
|
|
|
2
2
|
export * from './lib/smart-ng-client.module';
|
|
3
3
|
export * from './lib/smart-client/smart-file-uploader/smart-file-uploader.component';
|
|
4
4
|
export * from './lib/smart-client/projects';
|
|
5
|
+
export * from './lib/theme/theme.service';
|
|
5
6
|
export * from './lib/component-factory-service/projects';
|
|
6
7
|
export * from './lib/session/projects';
|
|
7
8
|
export * from './lib/smart-component-layout/projects';
|
|
Binary file
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostListener, Inject, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import { COMPONENT_LIBRARY, ComponentLibrary } from '../../../utility/componentLibrary';
|
|
4
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
|
5
|
-
import { SUBMENU_POSITIONS, ROOT_MENU_POSITIONS } from './menu.constants';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./menu.service";
|
|
8
|
-
import * as i2 from "@angular/cdk/overlay";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "../../../../smart-icon/smart-icon/smart-icon.component";
|
|
11
|
-
import * as i5 from "../../ui-action-button/ui-action-button.component";
|
|
12
|
-
import * as i6 from "../../../utility/componentLibrary";
|
|
13
|
-
export class MenuComponent {
|
|
14
|
-
constructor(menuService, overlay, viewContainerRef, overlayPositionBuilder, compLib) {
|
|
15
|
-
this.menuService = menuService;
|
|
16
|
-
this.overlay = overlay;
|
|
17
|
-
this.viewContainerRef = viewContainerRef;
|
|
18
|
-
this.overlayPositionBuilder = overlayPositionBuilder;
|
|
19
|
-
this.compLib = compLib;
|
|
20
|
-
this.overlayRef = null;
|
|
21
|
-
this.isSubmenu = false;
|
|
22
|
-
this.actionClick = new EventEmitter();
|
|
23
|
-
this.submenuOpened = new EventEmitter();
|
|
24
|
-
this.destroy$ = new Subject();
|
|
25
|
-
this.submenuOpenMap = new Map();
|
|
26
|
-
this.subActions = [];
|
|
27
|
-
this.hasCheckedChildren = false;
|
|
28
|
-
this.compLib = compLib ?? ComponentLibrary.PRIMENG;
|
|
29
|
-
if (this.compLib === ComponentLibrary.PRIMENG) {
|
|
30
|
-
this.icon = 'chevron-right';
|
|
31
|
-
}
|
|
32
|
-
else if (this.compLib === ComponentLibrary.MATERIAL) {
|
|
33
|
-
this.icon = 'chevron_right';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
this.menuService
|
|
38
|
-
.getCloseSignal()
|
|
39
|
-
.pipe(takeUntil(this.destroy$))
|
|
40
|
-
.subscribe(() => {
|
|
41
|
-
this.closeMenu();
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
ngAfterViewChecked() {
|
|
45
|
-
if (this.isOpen && !this.hasCheckedChildren && this.submenuComponents.length > 0) {
|
|
46
|
-
this.hasCheckedChildren = true;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
ngOnChanges(changes) {
|
|
50
|
-
if (changes['triggerAction']) {
|
|
51
|
-
const trigger = changes['triggerAction'].currentValue;
|
|
52
|
-
const previousTrigger = changes['triggerAction'].previousValue;
|
|
53
|
-
this.subActions = trigger?.subActions ?? [];
|
|
54
|
-
if (this.isOpen && previousTrigger) {
|
|
55
|
-
const hasSubActionsChanged = this.hasSubActionsChanged(previousTrigger?.subActions, trigger?.subActions);
|
|
56
|
-
if (hasSubActionsChanged) {
|
|
57
|
-
this.refreshOverlay();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
hasSubActionsChanged(oldSubActions, newSubActions) {
|
|
63
|
-
const oldLength = oldSubActions?.length ?? 0;
|
|
64
|
-
const newLength = newSubActions?.length ?? 0;
|
|
65
|
-
if (oldLength !== newLength) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
if (oldLength > 0 && newLength > 0) {
|
|
69
|
-
for (let i = 0; i < newLength; i++) {
|
|
70
|
-
if (oldSubActions[i].code !== newSubActions[i].code) {
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
ngOnDestroy() {
|
|
78
|
-
this.destroy$.next();
|
|
79
|
-
this.destroy$.complete();
|
|
80
|
-
}
|
|
81
|
-
onActionClick(action) {
|
|
82
|
-
if (!action.disabled) {
|
|
83
|
-
this.actionClick.emit(action);
|
|
84
|
-
this.menuService.closeAllMenus();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
onMenuClick(event) {
|
|
88
|
-
event.stopPropagation();
|
|
89
|
-
}
|
|
90
|
-
onDocumentClick(event) {
|
|
91
|
-
this.menuService.closeAllMenus();
|
|
92
|
-
if (this.overlayRef) {
|
|
93
|
-
this.closeMenu();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
get isOpen() {
|
|
97
|
-
return !!this.overlayRef;
|
|
98
|
-
}
|
|
99
|
-
closeMenu() {
|
|
100
|
-
if (this.overlayRef) {
|
|
101
|
-
this.overlayRef.dispose();
|
|
102
|
-
this.overlayRef = null;
|
|
103
|
-
this.hasCheckedChildren = false;
|
|
104
|
-
}
|
|
105
|
-
if (this.submenuComponents && this.submenuComponents.length > 0) {
|
|
106
|
-
this.submenuComponents.forEach((submenu) => {
|
|
107
|
-
submenu.closeMenu();
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
refreshOverlay() {
|
|
112
|
-
if (!this.overlayRef) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
this.overlayRef.detach();
|
|
116
|
-
let portal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);
|
|
117
|
-
this.overlayRef.attach(portal);
|
|
118
|
-
this.hasCheckedChildren = false;
|
|
119
|
-
}
|
|
120
|
-
openMenu(event) {
|
|
121
|
-
if (this.isOpen) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
if (this.isSubmenu) {
|
|
125
|
-
this.submenuOpened.emit(this.triggerAction);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
this.menuService.closeAllMenus();
|
|
129
|
-
}
|
|
130
|
-
let triggerElement = event.currentTarget;
|
|
131
|
-
const positions = this.isSubmenu ? SUBMENU_POSITIONS : ROOT_MENU_POSITIONS;
|
|
132
|
-
let positionStrategy = this.overlayPositionBuilder
|
|
133
|
-
.flexibleConnectedTo(triggerElement)
|
|
134
|
-
.withFlexibleDimensions(false)
|
|
135
|
-
.withPush(true)
|
|
136
|
-
.withPositions(positions);
|
|
137
|
-
this.overlayRef = this.overlay.create({
|
|
138
|
-
positionStrategy,
|
|
139
|
-
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
140
|
-
hasBackdrop: false,
|
|
141
|
-
});
|
|
142
|
-
let portal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);
|
|
143
|
-
this.overlayRef.attach(portal);
|
|
144
|
-
}
|
|
145
|
-
toggleMenu(event) {
|
|
146
|
-
if (!this.isOpen) {
|
|
147
|
-
this.openMenu(event);
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this.closeMenu();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
onSubmenuOpened(openedAction) {
|
|
154
|
-
// Check if submenuComponents is available
|
|
155
|
-
if (!this.submenuComponents || this.submenuComponents.length === 0) {
|
|
156
|
-
setTimeout(() => {
|
|
157
|
-
this.onSubmenuOpened(openedAction);
|
|
158
|
-
}, 0);
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
this.submenuComponents.forEach((submenu) => {
|
|
162
|
-
if (submenu.triggerAction.code !== openedAction.code && submenu.overlayRef) {
|
|
163
|
-
submenu.closeMenu();
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MenuComponent, deps: [{ token: i1.UiMenuService }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i2.OverlayPositionBuilder }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MenuComponent, selector: "ui-tiered-menu", inputs: { triggerAction: "triggerAction", isSubmenu: "isSubmenu" }, outputs: { actionClick: "actionClick", submenuOpened: "submenuOpened" }, host: { listeners: { "click": "onMenuClick($event)", "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true }, { propertyName: "submenuComponents", predicate: ["submenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isSubmenu) {\n <div class=\"submenu hoverEffect\" [class.activeSubmenu]=\"isOpen\" (mouseenter)=\"openMenu($event)\">\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n <smart-icon [icon]=\"icon\" color=\"black\"></smart-icon>\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n}\n\n<ng-template #menuTemplate>\n <ul class=\"ui-tiered-menu\">\n <li *ngFor=\"let action of subActions\" class=\"hoverEffect\" [class.disabled]=\"action.disabled\">\n @if (action.subActions && action.subActions.length > 0) {\n <ui-tiered-menu\n #submenu\n [triggerAction]=\"action\"\n [isSubmenu]=\"true\"\n [subActions]=\"action.subActions!\"\n (actionClick)=\"actionClick.emit($event)\"\n (submenuOpened)=\"onSubmenuOpened(submenu)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"action.descriptor!\"\n [code]=\"action.code\"\n [disabled]=\"!!action.disabled\"\n (actionClick)=\"!action.subActions?.length && onActionClick(action)\"\n ></ui-action-button>\n }\n </li>\n </ul>\n</ng-template>\n\n<ng-template #triggerTempalte>\n <ui-action-button\n [descriptor]=\"triggerAction.descriptor!\"\n [code]=\"triggerAction.code\"\n [disabled]=\"!!triggerAction.disabled\"\n (actionClick)=\"toggleMenu($event.event)\"\n [class.submenuTrigger]=\"isSubmenu\"\n >\n </ui-action-button>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}ul,.ui-tiered-menu{top:100%;left:0;list-style:none;padding-left:0;margin:0;background:#fff;width:fit-content;box-shadow:2px 2px 8px #0003;z-index:1000;border-radius:5px;padding:.1rem}.submenuTrigger,.ui-tiered-menu ::ng-deep button{background-color:#fff;box-shadow:unset;border:unset;border-radius:unset;color:#000;width:100%;justify-content:flex-start}.hoverEffect:hover,.hoverEffect ::ng-deep button:hover{background-color:#f1f5f9}.hoverEffect.activeSubmenu,.hoverEffect.activeSubmenu ::ng-deep button{background-color:#f1f5f9}.ui-tiered-menu ::ng-deep ui-action-button,.ui-tiered-menu ::ng-deep ui-badge{width:100%}.ui-tiered-menu>li{position:relative}.submenu{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.submenu ::ng-deep ui-action-button{flex:1}.disabled{color:#aaa;cursor:not-allowed}.ui-tiered-menu ui-tiered-menu{width:100%}smart-icon{align-content:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: MenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu"], outputs: ["actionClick", "submenuOpened"] }] }); }
|
|
169
|
-
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MenuComponent, decorators: [{
|
|
171
|
-
type: Component,
|
|
172
|
-
args: [{ selector: 'ui-tiered-menu', template: "@if (isSubmenu) {\n <div class=\"submenu hoverEffect\" [class.activeSubmenu]=\"isOpen\" (mouseenter)=\"openMenu($event)\">\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n <smart-icon [icon]=\"icon\" color=\"black\"></smart-icon>\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n}\n\n<ng-template #menuTemplate>\n <ul class=\"ui-tiered-menu\">\n <li *ngFor=\"let action of subActions\" class=\"hoverEffect\" [class.disabled]=\"action.disabled\">\n @if (action.subActions && action.subActions.length > 0) {\n <ui-tiered-menu\n #submenu\n [triggerAction]=\"action\"\n [isSubmenu]=\"true\"\n [subActions]=\"action.subActions!\"\n (actionClick)=\"actionClick.emit($event)\"\n (submenuOpened)=\"onSubmenuOpened(submenu)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"action.descriptor!\"\n [code]=\"action.code\"\n [disabled]=\"!!action.disabled\"\n (actionClick)=\"!action.subActions?.length && onActionClick(action)\"\n ></ui-action-button>\n }\n </li>\n </ul>\n</ng-template>\n\n<ng-template #triggerTempalte>\n <ui-action-button\n [descriptor]=\"triggerAction.descriptor!\"\n [code]=\"triggerAction.code\"\n [disabled]=\"!!triggerAction.disabled\"\n (actionClick)=\"toggleMenu($event.event)\"\n [class.submenuTrigger]=\"isSubmenu\"\n >\n </ui-action-button>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}ul,.ui-tiered-menu{top:100%;left:0;list-style:none;padding-left:0;margin:0;background:#fff;width:fit-content;box-shadow:2px 2px 8px #0003;z-index:1000;border-radius:5px;padding:.1rem}.submenuTrigger,.ui-tiered-menu ::ng-deep button{background-color:#fff;box-shadow:unset;border:unset;border-radius:unset;color:#000;width:100%;justify-content:flex-start}.hoverEffect:hover,.hoverEffect ::ng-deep button:hover{background-color:#f1f5f9}.hoverEffect.activeSubmenu,.hoverEffect.activeSubmenu ::ng-deep button{background-color:#f1f5f9}.ui-tiered-menu ::ng-deep ui-action-button,.ui-tiered-menu ::ng-deep ui-badge{width:100%}.ui-tiered-menu>li{position:relative}.submenu{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.submenu ::ng-deep ui-action-button{flex:1}.disabled{color:#aaa;cursor:not-allowed}.ui-tiered-menu ui-tiered-menu{width:100%}smart-icon{align-content:center}\n"] }]
|
|
173
|
-
}], ctorParameters: () => [{ type: i1.UiMenuService }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i2.OverlayPositionBuilder }, { type: i6.ComponentLibrary, decorators: [{
|
|
174
|
-
type: Inject,
|
|
175
|
-
args: [COMPONENT_LIBRARY]
|
|
176
|
-
}, {
|
|
177
|
-
type: Optional
|
|
178
|
-
}] }], propDecorators: { submenuComponents: [{
|
|
179
|
-
type: ViewChildren,
|
|
180
|
-
args: ['submenu']
|
|
181
|
-
}], menuTemplate: [{
|
|
182
|
-
type: ViewChild,
|
|
183
|
-
args: ['menuTemplate']
|
|
184
|
-
}], triggerAction: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], isSubmenu: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], actionClick: [{
|
|
189
|
-
type: Output
|
|
190
|
-
}], submenuOpened: [{
|
|
191
|
-
type: Output
|
|
192
|
-
}], onMenuClick: [{
|
|
193
|
-
type: HostListener,
|
|
194
|
-
args: ['click', ['$event']]
|
|
195
|
-
}], onDocumentClick: [{
|
|
196
|
-
type: HostListener,
|
|
197
|
-
args: ['document:click', ['$event']]
|
|
198
|
-
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFJTixTQUFTLEVBQ1QsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFPMUUsTUFBTSxPQUFPLGFBQWE7SUFrQnhCLFlBQ1UsV0FBMEIsRUFDMUIsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLHNCQUE4QyxFQUNSLE9BQTBCO1FBSmhFLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ1IsWUFBTyxHQUFQLE9BQU8sQ0FB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QUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2TVUsYUFBYSw0SUF1QmQsaUJBQWlCO21HQXZCaEIsYUFBYSw4ZkNuQzFCLDgvQ0EyQ0EsaW1ERFJhLGFBQWE7OzRGQUFiLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsZ0JBQWdCOzswQkEyQnZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFBRyxRQUFRO3lDQXRCYixpQkFBaUI7c0JBQXpDLFlBQVk7dUJBQUMsU0FBUztnQkFFSSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBR2hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBOEZQLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTWpDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBBZnRlclZpZXdDaGVja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVWlNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcbmltcG9ydCB7XG4gIENvbm5lY3RlZFBvc2l0aW9uLFxuICBPdmVybGF5LFxuICBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU1VCTUVOVV9QT1NJVElPTlMsIFJPT1RfTUVOVV9QT1NJVElPTlMgfSBmcm9tICcuL21lbnUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktdGllcmVkLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGRyZW4oJ3N1Ym1lbnUnKSBzdWJtZW51Q29tcG9uZW50cyE6IFF1ZXJ5TGlzdDxNZW51Q29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCdtZW51VGVtcGxhdGUnKSBtZW51VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgdHJpZ2dlckFjdGlvbiE6IFVpQWN0aW9uO1xuICBASW5wdXQoKSBpc1N1Ym1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFVpQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgc3VibWVudU9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8VWlBY3Rpb24+KCk7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGljb24hOiBzdHJpbmc7XG4gIHN1Ym1lbnVPcGVuTWFwID0gbmV3IE1hcDxVaUFjdGlvbiwgYm9vbGVhbj4oKTtcbiAgc3ViQWN0aW9uczogVWlBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIGhhc0NoZWNrZWRDaGlsZHJlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IFVpTWVudVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgQE9wdGlvbmFsKCkgcHVibGljIGNvbXBMaWI/OiBDb21wb25lbnRMaWJyYXJ5XG4gICkge1xuICAgIHRoaXMuY29tcExpYiA9IGNvbXBMaWIgPz8gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HO1xuXG4gICAgaWYgKHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gICAgICB0aGlzLmljb24gPSAnY2hldnJvbi1yaWdodCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuTUFURVJJQUwpIHtcbiAgICAgIHRoaXMuaWNvbiA9ICdjaGV2cm9uX3JpZ2h0JztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlXG4gICAgICAuZ2V0Q2xvc2VTaWduYWwoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4gJiYgIXRoaXMuaGFzQ2hlY2tlZENoaWxkcmVuICYmIHRoaXMuc3VibWVudUNvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5oYXNDaGVja2VkQ2hpbGRyZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sndHJpZ2dlckFjdGlvbiddKSB7XG4gICAgICBjb25zdCB0cmlnZ2VyID0gY2hhbmdlc1sndHJpZ2dlckFjdGlvbiddLmN1cnJlbnRWYWx1ZSBhcyBVaUFjdGlvbjtcbiAgICAgIGNvbnN0IHByZXZpb3VzVHJpZ2dlciA9IGNoYW5nZXNbJ3RyaWdnZXJBY3Rpb24nXS5wcmV2aW91c1ZhbHVlIGFzIFVpQWN0aW9uO1xuXG4gICAgICB0aGlzLnN1YkFjdGlvbnMgPSB0cmlnZ2VyPy5zdWJBY3Rpb25zID8/IFtdO1xuXG4gICAgICBpZiAodGhpcy5pc09wZW4gJiYgcHJldmlvdXNUcmlnZ2VyKSB7XG4gICAgICAgIGNvbnN0IGhhc1N1YkFjdGlvbnNDaGFuZ2VkID0gdGhpcy5oYXNTdWJBY3Rpb25zQ2hhbmdlZChcbiAgICAgICAgICBwcmV2aW91c1RyaWdnZXI/LnN1YkFjdGlvbnMsXG4gICAgICAgICAgdHJpZ2dlcj8uc3ViQWN0aW9uc1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoYXNTdWJBY3Rpb25zQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMucmVmcmVzaE92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzU3ViQWN0aW9uc0NoYW5nZWQoXG4gICAgb2xkU3ViQWN0aW9uczogVWlBY3Rpb25bXSB8IHVuZGVmaW5lZCxcbiAgICBuZXdTdWJBY3Rpb25zOiBVaUFjdGlvbltdIHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9sZExlbmd0aCA9IG9sZFN1YkFjdGlvbnM/Lmxlbmd0aCA/PyAwO1xuICAgIGNvbnN0IG5ld0xlbmd0aCA9IG5ld1N1YkFjdGlvbnM/Lmxlbmd0aCA/PyAwO1xuXG4gICAgaWYgKG9sZExlbmd0aCAhPT0gbmV3TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAob2xkTGVuZ3RoID4gMCAmJiBuZXdMZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld0xlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChvbGRTdWJBY3Rpb25zIVtpXS5jb2RlICE9PSBuZXdTdWJBY3Rpb25zIVtpXS5jb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogVWlBY3Rpb24pIHtcbiAgICBpZiAoIWFjdGlvbi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGFjdGlvbik7XG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uTWVudUNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5tZW51U2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5jbG9zZU1lbnUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcmxheVJlZjtcbiAgfVxuXG4gIGNsb3NlTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgIHRoaXMuaGFzQ2hlY2tlZENoaWxkcmVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3VibWVudUNvbXBvbmVudHMgJiYgdGhpcy5zdWJtZW51Q29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1Ym1lbnVDb21wb25lbnRzLmZvckVhY2goKHN1Ym1lbnUpID0+IHtcbiAgICAgICAgc3VibWVudS5jbG9zZU1lbnUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXG4gICAgbGV0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm1lbnVUZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICB0aGlzLmhhc0NoZWNrZWRDaGlsZHJlbiA9IGZhbHNlO1xuICB9XG5cbiAgb3Blbk1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1N1Ym1lbnUpIHtcbiAgICAgIHRoaXMuc3VibWVudU9wZW5lZC5lbWl0KHRoaXMudHJpZ2dlckFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVudVNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgIH1cblxuICAgIGxldCB0cmlnZ2VyRWxlbWVudCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gdGhpcy5pc1N1Ym1lbnUgPyBTVUJNRU5VX1BPU0lUSU9OUyA6IFJPT1RfTUVOVV9QT1NJVElPTlM7XG5cbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVBvc2l0aW9uQnVpbGRlclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odHJpZ2dlckVsZW1lbnQpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgLndpdGhQb3NpdGlvbnMocG9zaXRpb25zKTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBsZXQgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMubWVudVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW5NZW51KGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZU1lbnUoKTtcbiAgICB9XG4gIH1cblxuICBvblN1Ym1lbnVPcGVuZWQob3BlbmVkQWN0aW9uOiBVaUFjdGlvbikge1xuICAgIC8vIENoZWNrIGlmIHN1Ym1lbnVDb21wb25lbnRzIGlzIGF2YWlsYWJsZVxuICAgIGlmICghdGhpcy5zdWJtZW51Q29tcG9uZW50cyB8fCB0aGlzLnN1Ym1lbnVDb21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdWJtZW51T3BlbmVkKG9wZW5lZEFjdGlvbik7XG4gICAgICB9LCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1lbnVDb21wb25lbnRzLmZvckVhY2goKHN1Ym1lbnUpID0+IHtcbiAgICAgIGlmIChzdWJtZW51LnRyaWdnZXJBY3Rpb24uY29kZSAhPT0gb3BlbmVkQWN0aW9uLmNvZGUgJiYgc3VibWVudS5vdmVybGF5UmVmKSB7XG4gICAgICAgIHN1Ym1lbnUuY2xvc2VNZW51KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoaXNTdWJtZW51KSB7XG4gIDxkaXYgY2xhc3M9XCJzdWJtZW51IGhvdmVyRWZmZWN0XCIgW2NsYXNzLmFjdGl2ZVN1Ym1lbnVdPVwiaXNPcGVuXCIgKG1vdXNlZW50ZXIpPVwib3Blbk1lbnUoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmlnZ2VyVGVtcGFsdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c21hcnQtaWNvbiBbaWNvbl09XCJpY29uXCIgY29sb3I9XCJibGFja1wiPjwvc21hcnQtaWNvbj5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRyaWdnZXJUZW1wYWx0ZVwiPjwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZT5cbiAgPHVsIGNsYXNzPVwidWktdGllcmVkLW1lbnVcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBzdWJBY3Rpb25zXCIgY2xhc3M9XCJob3ZlckVmZmVjdFwiIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWRcIj5cbiAgICAgIEBpZiAoYWN0aW9uLnN1YkFjdGlvbnMgJiYgYWN0aW9uLnN1YkFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8dWktdGllcmVkLW1lbnVcbiAgICAgICAgICAjc3VibWVudVxuICAgICAgICAgIFt0cmlnZ2VyQWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgW2lzU3VibWVudV09XCJ0cnVlXCJcbiAgICAgICAgICBbc3ViQWN0aW9uc109XCJhY3Rpb24uc3ViQWN0aW9ucyFcIlxuICAgICAgICAgIChhY3Rpb25DbGljayk9XCJhY3Rpb25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgIChzdWJtZW51T3BlbmVkKT1cIm9uU3VibWVudU9wZW5lZChzdWJtZW51KVwiXG4gICAgICAgID48L3VpLXRpZXJlZC1tZW51PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiYWN0aW9uLmRlc2NyaXB0b3IhXCJcbiAgICAgICAgICBbY29kZV09XCJhY3Rpb24uY29kZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEhYWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAoYWN0aW9uQ2xpY2spPVwiIWFjdGlvbi5zdWJBY3Rpb25zPy5sZW5ndGggJiYgb25BY3Rpb25DbGljayhhY3Rpb24pXCJcbiAgICAgICAgPjwvdWktYWN0aW9uLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cmlnZ2VyVGVtcGFsdGU+XG4gIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgW2Rlc2NyaXB0b3JdPVwidHJpZ2dlckFjdGlvbi5kZXNjcmlwdG9yIVwiXG4gICAgW2NvZGVdPVwidHJpZ2dlckFjdGlvbi5jb2RlXCJcbiAgICBbZGlzYWJsZWRdPVwiISF0cmlnZ2VyQWN0aW9uLmRpc2FibGVkXCJcbiAgICAoYWN0aW9uQ2xpY2spPVwidG9nZ2xlTWVudSgkZXZlbnQuZXZlbnQpXCJcbiAgICBbY2xhc3Muc3VibWVudVRyaWdnZXJdPVwiaXNTdWJtZW51XCJcbiAgPlxuICA8L3VpLWFjdGlvbi1idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
Binary file
|