@smartbit4all/ng-client 4.2.66 → 4.2.67
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-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-authentication.service.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/api/api.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/index.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/param.mjs +1 -1
- package/esm2022/lib/smart-component-layout/api/variables.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-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/api/api.mjs +1 -1
- package/esm2022/lib/smart-form/api/api/default.service.mjs +1 -1
- package/esm2022/lib/smart-form/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-form/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-form/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-form/api/index.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
- package/esm2022/lib/smart-form/api/param.mjs +1 -1
- package/esm2022/lib/smart-form/api/variables.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-month-picker/smart-month-picker.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-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/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 +1 -1
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +3 -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.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/api/api.mjs +1 -1
- package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +1 -1
- package/esm2022/lib/smart-map/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-map/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-map/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-map/api/index.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-map/api/param.mjs +1 -1
- package/esm2022/lib/smart-map/api/variables.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.component.mjs +3 -3
- package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +1 -1
- package/esm2022/lib/smart-tab-group/smart-tab-group.service.mjs +1 -1
- package/esm2022/lib/smart-tab-group/tab-content/tab-content.component.mjs +3 -3
- package/esm2022/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +3 -3
- package/esm2022/lib/smart-tab-group/tabTile.model.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 +3 -3
- package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +3 -3
- package/esm2022/lib/smart-table/tables/table.mjs +1 -1
- 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/view-context/api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
- 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.module.mjs +1 -1
- package/esm2022/lib/view-context/api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/api/index.mjs +1 -1
- package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2022/lib/view-context/api/model/link.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/models.mjs +1 -1
- package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
- package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +1 -1
- package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
- package/esm2022/lib/view-context/api/model/style.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uploadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2022/lib/view-context/api/model/view.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2022/lib/view-context/api/param.mjs +1 -1
- package/esm2022/lib/view-context/api/variables.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 +1 -1
- package/esm2022/lib/view-context/property-definition-data.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/action-badge/action-badge.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +1 -1
- 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/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/photo-capture-widget/photo-capture-widget.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 +18 -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-file-upload-dialog/voice-record-widget/voice-record-widget.component.mjs +5 -5
- 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/ui-action-button/ui-action-button.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +79 -5
- 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 +1 -1
- 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 +1 -1
- package/esm2022/lib/view-context/smart-view-context.service.mjs +1 -1
- 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/projects.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartData.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartOrientation.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartType.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartValue.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/models.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/default-chart-options.provider.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart.component.mjs +19 -19
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart.module.mjs +1 -1
- package/esm2022/src/lib/smart-chart/smart-chart-projects.mjs +1 -1
- package/esm2022/src/lib/smart-chart/view-context/utility/componentLibrary.mjs +1 -1
- package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs +18 -18
- package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +1 -1
- package/fesm2022/smartbit4all-ng-client.mjs +190 -101
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +2 -0
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +20 -3
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.2.67.tgz +0 -0
- package/smartbit4all-ng-client-4.2.66.tgz +0 -0
package/README.md
CHANGED
|
@@ -1,386 +1,386 @@
|
|
|
1
|
-
# Smart Ng Client
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## How to use
|
|
6
|
-
|
|
7
|
-
### Installation
|
|
8
|
-
|
|
9
|
-
Go to your project, open the terminal and use the following command:
|
|
10
|
-
|
|
11
|
-
npm i @smartbit4all/ng-client
|
|
12
|
-
|
|
13
|
-
Provide the `SmartNgClientModule` in the app.module:
|
|
14
|
-
|
|
15
|
-
`app.module.ts:`
|
|
16
|
-
|
|
17
|
-
@NgModule({
|
|
18
|
-
declarations: [...],
|
|
19
|
-
imports: [
|
|
20
|
-
SmartNgClientModule,
|
|
21
|
-
...
|
|
22
|
-
],
|
|
23
|
-
providers: [
|
|
24
|
-
SmartSessionService,
|
|
25
|
-
SmartViewContextService,
|
|
26
|
-
...
|
|
27
|
-
],
|
|
28
|
-
...
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
### Usage
|
|
32
|
-
|
|
33
|
-
In order to use the SmartSessionService I recommend to follow the guideline belove.
|
|
34
|
-
|
|
35
|
-
**Generate a service** which will **handle the session and the authentication**.
|
|
36
|
-
|
|
37
|
-
`Terminal:`
|
|
38
|
-
|
|
39
|
-
>>> cd src/app
|
|
40
|
-
|
|
41
|
-
>>> mkdir services
|
|
42
|
-
|
|
43
|
-
>>> cd ./services
|
|
44
|
-
|
|
45
|
-
>>> ng g s authentication
|
|
46
|
-
|
|
47
|
-
Provide this new service as a **global service**:
|
|
48
|
-
|
|
49
|
-
`app.module.ts:`
|
|
50
|
-
|
|
51
|
-
@NgModule({
|
|
52
|
-
declarations: [...],
|
|
53
|
-
imports: [...],
|
|
54
|
-
providers: [
|
|
55
|
-
SmartSessionService,
|
|
56
|
-
AuthenticationService,
|
|
57
|
-
...
|
|
58
|
-
],
|
|
59
|
-
...
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
### Authentication state changed
|
|
63
|
-
|
|
64
|
-
The change of authentication state can be detected in any components. To handle it you must subscribe to the change itself.
|
|
65
|
-
|
|
66
|
-
**Note that in this version a user is authenticated when the response of the GET session contains a list of authentications.**
|
|
67
|
-
|
|
68
|
-
this.isAuthenticated = response.authentications.length > 0
|
|
69
|
-
|
|
70
|
-
`any.component.ts:`
|
|
71
|
-
|
|
72
|
-
constructor(
|
|
73
|
-
private auth: AuthenticationService,
|
|
74
|
-
private session: SmartSessionService
|
|
75
|
-
) {
|
|
76
|
-
this.session.authenticationStateChanged.subscribe((isAuth: boolean) => {
|
|
77
|
-
if (!isAuth) {
|
|
78
|
-
this.router.navigate(['/login']);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
### Using locales
|
|
84
|
-
|
|
85
|
-
The `SmartSessionService` supports the usage of locales in you application. It is important to note that the language is related to the session!
|
|
86
|
-
|
|
87
|
-
This example uses the [NgxTranslate/core](https://www.npmjs.com/package/@ngx-translate/core) package.
|
|
88
|
-
|
|
89
|
-
`authentication.service.ts:`
|
|
90
|
-
|
|
91
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
92
|
-
...
|
|
93
|
-
|
|
94
|
-
export class AuthenticationService {
|
|
95
|
-
...
|
|
96
|
-
|
|
97
|
-
constructor(
|
|
98
|
-
...
|
|
99
|
-
private translate: TranslateService
|
|
100
|
-
) {
|
|
101
|
-
this.session.localeChanged.subscribe(() => {
|
|
102
|
-
this.translate.use(this.session.getLocale());
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async changeLocale(locale: string): Promise<void> {
|
|
107
|
-
await this.session.changeLocale(locale);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getLocale(): string {
|
|
111
|
-
return this.session.getLocale();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
### SmartDevTool usage
|
|
116
|
-
|
|
117
|
-
Turn on and off the devTool:
|
|
118
|
-
|
|
119
|
-
// active
|
|
120
|
-
localStorage.setItem('smartDevToolActive', 'true');
|
|
121
|
-
// inactive
|
|
122
|
-
localStorage.setItem('smartDevToolActive', 'false');
|
|
123
|
-
|
|
124
|
-
Set the devTool's button visibility
|
|
125
|
-
|
|
126
|
-
// visible
|
|
127
|
-
localStorage.setItem('useDevTool', 'true');
|
|
128
|
-
// invisible
|
|
129
|
-
localStorage.setItem('useDevTool', 'false');
|
|
130
|
-
|
|
131
|
-
In order to use this package properly, please create a folder called `viewcontext` in which a `view-context.pages.model.ts` shall be created:
|
|
132
|
-
|
|
133
|
-
- src/app/viewcontext/
|
|
134
|
-
- view-context.pages.ts
|
|
135
|
-
- view-context.handlers.ts
|
|
136
|
-
|
|
137
|
-
`view-context.pages.ts:`
|
|
138
|
-
|
|
139
|
-
export enum Pages {
|
|
140
|
-
// mandatory
|
|
141
|
-
VIEW_CONTEXT = 'viewContextUuid',
|
|
142
|
-
|
|
143
|
-
// optionals
|
|
144
|
-
ANY_PAGE = 'anyPage',
|
|
145
|
-
ANY_DIALOG = 'anyDialog,
|
|
146
|
-
ANY_COMPONENT = 'anyComponent,
|
|
147
|
-
...
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
`view-context.handlers.ts:`
|
|
151
|
-
|
|
152
|
-
import { SmartViewHandlerModel, ViewType } from '@smartbit4all/view-context';
|
|
153
|
-
import { Pages } from './view-context.pages';
|
|
154
|
-
import { AnyDialogService } from '../any-dialog/any-dialog.service';
|
|
155
|
-
|
|
156
|
-
export const viewContextHandlers: SmartViewHandlerModel[] = [
|
|
157
|
-
// ViewType.Normal
|
|
158
|
-
{
|
|
159
|
-
name: Pages.ANY_PAGE,
|
|
160
|
-
route: 'any'
|
|
161
|
-
},
|
|
162
|
-
// ViewType.Dialog
|
|
163
|
-
{
|
|
164
|
-
name: Pages.ANY_DIALOG,
|
|
165
|
-
component: AnyDialogComponent
|
|
166
|
-
},
|
|
167
|
-
// ViewType.Normal or ViewType.Dialog
|
|
168
|
-
{
|
|
169
|
-
name: Pages.ANY_COMPONENT,
|
|
170
|
-
route: 'any',
|
|
171
|
-
component: AnyComponent
|
|
172
|
-
}
|
|
173
|
-
];
|
|
174
|
-
|
|
175
|
-
Don't forget to define some ApiErrors and inject it into the **AuthenticationService**:
|
|
176
|
-
|
|
177
|
-
`view-context.api-errors.ts:`
|
|
178
|
-
|
|
179
|
-
const viewContextApiErrors: SmartViewContextApiErrors = {
|
|
180
|
-
viewContextApiErrors: [
|
|
181
|
-
{
|
|
182
|
-
code: "001",
|
|
183
|
-
dialogTitle?: "Error"
|
|
184
|
-
message: "An error message"
|
|
185
|
-
buttonLabel?: "Ok"
|
|
186
|
-
}
|
|
187
|
-
]
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
### SmartLink
|
|
191
|
-
|
|
192
|
-
In order to use SmartLinks in your application, follow the instruction:
|
|
193
|
-
|
|
194
|
-
Firstly, set up the routing:
|
|
195
|
-
|
|
196
|
-
`app-routing.module.ts:`
|
|
197
|
-
|
|
198
|
-
const routes: Routes = [
|
|
199
|
-
// Out of the box solution
|
|
200
|
-
{
|
|
201
|
-
path: `redirect/:${SmartLinkChannelVariableInPath}/:${SmartLinkUuidVariableInPath}`,
|
|
202
|
-
component: SmartViewRedirect,
|
|
203
|
-
},
|
|
204
|
-
// Custom solution
|
|
205
|
-
{
|
|
206
|
-
path: `customRedirect/:${SmartLinkChannelVariableInPath}/:${SmartLinkUuidVariableInPath}`,
|
|
207
|
-
component: RedirectComponent,
|
|
208
|
-
},
|
|
209
|
-
...
|
|
210
|
-
]
|
|
211
|
-
|
|
212
|
-
Then you can set up your custom redirect component as you wish:
|
|
213
|
-
|
|
214
|
-
`redirect.component.ts:`
|
|
215
|
-
|
|
216
|
-
@Component({
|
|
217
|
-
selector: "app-redirect",
|
|
218
|
-
templateUrl: "./redirect.component.html",
|
|
219
|
-
styleUrls: ["./redirect.component.css"],
|
|
220
|
-
})
|
|
221
|
-
export class RedirectComponent extends SmartViewRedirect {
|
|
222
|
-
constructor(
|
|
223
|
-
service: SmartViewContextService,
|
|
224
|
-
navigation: SmartNavigationService,
|
|
225
|
-
route: ActivatedRoute
|
|
226
|
-
) {
|
|
227
|
-
super(
|
|
228
|
-
service,
|
|
229
|
-
navigation,
|
|
230
|
-
route
|
|
231
|
-
);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
Then subscribe for the _openSmartLink_ event and handle it in your AuthenticationService:
|
|
236
|
-
|
|
237
|
-
`authentication.service.ts:`
|
|
238
|
-
|
|
239
|
-
constructor(...) {
|
|
240
|
-
...
|
|
241
|
-
this.viewContext.openSmartLink.subscribe(() => {
|
|
242
|
-
this.handleOpenSmartLinkEvent();
|
|
243
|
-
})
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
private async handleOpenSmartLinkEvent(): Promise<void> {
|
|
247
|
-
// Do your business logic here
|
|
248
|
-
|
|
249
|
-
// If authentication is needed to open the link:
|
|
250
|
-
let isAuthenticated = await this.isAuthenticated();
|
|
251
|
-
if (isAuthenticated) {
|
|
252
|
-
this.viewContext.openSmartLink.complete();
|
|
253
|
-
} else {
|
|
254
|
-
// Navigate to login screen without reloading the site!
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// Modify this if authentication is needed to open links
|
|
259
|
-
async login(request: LocalAuthenticationLoginRequest): Promise<boolean> {
|
|
260
|
-
await this.auth.login(request);
|
|
261
|
-
let isAuth = await this.session.getIsAuthenticated();
|
|
262
|
-
if (isAuth) {
|
|
263
|
-
await this.viewContext.initialize();
|
|
264
|
-
|
|
265
|
-
await this.anyBffApi.startAnyPage().toPromise();
|
|
266
|
-
|
|
267
|
-
// If there is a smart link waiting for opening...
|
|
268
|
-
if (this.viewContext.isOpeningSmartLink) {
|
|
269
|
-
this.viewContext.openSmartLink.complete();
|
|
270
|
-
return isAuth;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
let uuid = this.viewContext.getUuidOfPage(Pages.VIEW_CONTEXT);
|
|
274
|
-
await this.viewContext.getAndSyncViewContext(uuid);
|
|
275
|
-
}
|
|
276
|
-
return isAuth;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
### UiActions
|
|
280
|
-
|
|
281
|
-
The ViewContext package contains a common manager for the UiActions. To use this tool, please follow the instructions.
|
|
282
|
-
|
|
283
|
-
`action.descriptors.ts:`
|
|
284
|
-
|
|
285
|
-
import {
|
|
286
|
-
UiActionButtonIconPos,
|
|
287
|
-
UiActionButtonType,
|
|
288
|
-
UiActionDescriptor
|
|
289
|
-
} from '@smartbit4all/view-context';
|
|
290
|
-
|
|
291
|
-
// Build your own action descriptors
|
|
292
|
-
export const ActionDescriptors: Map<string, UiActionDescriptor> = new Map([
|
|
293
|
-
[
|
|
294
|
-
'EXAMPLE',
|
|
295
|
-
{
|
|
296
|
-
title: 'Example action',
|
|
297
|
-
type: UiActionButtonType.Raised,
|
|
298
|
-
color: 'primary',
|
|
299
|
-
dialog: {
|
|
300
|
-
title: 'Example dialog title',
|
|
301
|
-
text: 'Example dialog text',
|
|
302
|
-
actionButton: {
|
|
303
|
-
caption: 'Example action',
|
|
304
|
-
color: 'primary'
|
|
305
|
-
},
|
|
306
|
-
cancelButton: {
|
|
307
|
-
caption: 'Cancel',
|
|
308
|
-
color: ''
|
|
309
|
-
}
|
|
310
|
-
},
|
|
311
|
-
inputDialog: { ... },
|
|
312
|
-
confirmDialog: { ... },
|
|
313
|
-
feedbackType: UiActionFeedbackType.SNACKBAR;
|
|
314
|
-
feedbackText: "Example feedback";
|
|
315
|
-
}
|
|
316
|
-
]
|
|
317
|
-
])
|
|
318
|
-
|
|
319
|
-
`authentication.service.ts:`
|
|
320
|
-
|
|
321
|
-
constructor(...) {
|
|
322
|
-
...
|
|
323
|
-
// Set your descriptors
|
|
324
|
-
this.viewContext.setActionDescriptors(ActionDescriptors);
|
|
325
|
-
|
|
326
|
-
// Set basic feedback
|
|
327
|
-
this.viewContext.commonFeedbackText = "Basic feedback."
|
|
328
|
-
...
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
`example.component.ts:`
|
|
332
|
-
|
|
333
|
-
@Component({
|
|
334
|
-
selector: 'app-example',
|
|
335
|
-
templateUrl: './example.component.html',
|
|
336
|
-
styleUrls: ['./example.component.css']
|
|
337
|
-
})
|
|
338
|
-
export class ExampleComponent implements UseUiAction {
|
|
339
|
-
possibleActions: UiAction[]; // Comes from the backend
|
|
340
|
-
actions: UiActionModel[] = [];
|
|
341
|
-
|
|
342
|
-
// UseUiAction properties
|
|
343
|
-
submit: Subject<void> = new Subject();
|
|
344
|
-
reSubscribeToChange: Subject<void> = new Subject();
|
|
345
|
-
|
|
346
|
-
constructor(private service: ExampleService) {}
|
|
347
|
-
|
|
348
|
-
// UseUiAction functions
|
|
349
|
-
getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams {
|
|
350
|
-
// return additional parameters if needed
|
|
351
|
-
throw new Error('Method not implemented.');
|
|
352
|
-
}
|
|
353
|
-
getModel() {
|
|
354
|
-
// return the model of the page
|
|
355
|
-
throw new Error('Method not implemented.');
|
|
356
|
-
}
|
|
357
|
-
async performUiActionRequest(uiActionRequest: UiActionRequest): Promise<any> {
|
|
358
|
-
// perform the uiActionRequest on the proper service
|
|
359
|
-
await this.service.performAction(uiActionRequest)
|
|
360
|
-
}
|
|
361
|
-
handleSpecificDemandsAsynchronously(uiAction: UiAction): Promise<UiActionSpecificDemandResponse> {
|
|
362
|
-
// handle specific demands if needed
|
|
363
|
-
throw new Error('Method not implemented.');
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// Construct
|
|
367
|
-
constructActions(): void {
|
|
368
|
-
this.actions = [];
|
|
369
|
-
let exceptions = ['EXCEPTION'];
|
|
370
|
-
this.possibleActions.map((uiAction: UiAction) => {
|
|
371
|
-
this.actions?.push({
|
|
372
|
-
uiAction,
|
|
373
|
-
serviceToUse: this, // bind a class which implements the UseUiAction
|
|
374
|
-
exception: exceptions.includes(uiAction.code!)
|
|
375
|
-
});
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
`example.component.html:`
|
|
381
|
-
|
|
382
|
-
<smart-ui-action-toolbar [uiActionModels]="actions"></smart-ui-action-toolbar>
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
## Version logs
|
|
1
|
+
# Smart Ng Client
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## How to use
|
|
6
|
+
|
|
7
|
+
### Installation
|
|
8
|
+
|
|
9
|
+
Go to your project, open the terminal and use the following command:
|
|
10
|
+
|
|
11
|
+
npm i @smartbit4all/ng-client
|
|
12
|
+
|
|
13
|
+
Provide the `SmartNgClientModule` in the app.module:
|
|
14
|
+
|
|
15
|
+
`app.module.ts:`
|
|
16
|
+
|
|
17
|
+
@NgModule({
|
|
18
|
+
declarations: [...],
|
|
19
|
+
imports: [
|
|
20
|
+
SmartNgClientModule,
|
|
21
|
+
...
|
|
22
|
+
],
|
|
23
|
+
providers: [
|
|
24
|
+
SmartSessionService,
|
|
25
|
+
SmartViewContextService,
|
|
26
|
+
...
|
|
27
|
+
],
|
|
28
|
+
...
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
### Usage
|
|
32
|
+
|
|
33
|
+
In order to use the SmartSessionService I recommend to follow the guideline belove.
|
|
34
|
+
|
|
35
|
+
**Generate a service** which will **handle the session and the authentication**.
|
|
36
|
+
|
|
37
|
+
`Terminal:`
|
|
38
|
+
|
|
39
|
+
>>> cd src/app
|
|
40
|
+
|
|
41
|
+
>>> mkdir services
|
|
42
|
+
|
|
43
|
+
>>> cd ./services
|
|
44
|
+
|
|
45
|
+
>>> ng g s authentication
|
|
46
|
+
|
|
47
|
+
Provide this new service as a **global service**:
|
|
48
|
+
|
|
49
|
+
`app.module.ts:`
|
|
50
|
+
|
|
51
|
+
@NgModule({
|
|
52
|
+
declarations: [...],
|
|
53
|
+
imports: [...],
|
|
54
|
+
providers: [
|
|
55
|
+
SmartSessionService,
|
|
56
|
+
AuthenticationService,
|
|
57
|
+
...
|
|
58
|
+
],
|
|
59
|
+
...
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
### Authentication state changed
|
|
63
|
+
|
|
64
|
+
The change of authentication state can be detected in any components. To handle it you must subscribe to the change itself.
|
|
65
|
+
|
|
66
|
+
**Note that in this version a user is authenticated when the response of the GET session contains a list of authentications.**
|
|
67
|
+
|
|
68
|
+
this.isAuthenticated = response.authentications.length > 0
|
|
69
|
+
|
|
70
|
+
`any.component.ts:`
|
|
71
|
+
|
|
72
|
+
constructor(
|
|
73
|
+
private auth: AuthenticationService,
|
|
74
|
+
private session: SmartSessionService
|
|
75
|
+
) {
|
|
76
|
+
this.session.authenticationStateChanged.subscribe((isAuth: boolean) => {
|
|
77
|
+
if (!isAuth) {
|
|
78
|
+
this.router.navigate(['/login']);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
### Using locales
|
|
84
|
+
|
|
85
|
+
The `SmartSessionService` supports the usage of locales in you application. It is important to note that the language is related to the session!
|
|
86
|
+
|
|
87
|
+
This example uses the [NgxTranslate/core](https://www.npmjs.com/package/@ngx-translate/core) package.
|
|
88
|
+
|
|
89
|
+
`authentication.service.ts:`
|
|
90
|
+
|
|
91
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
92
|
+
...
|
|
93
|
+
|
|
94
|
+
export class AuthenticationService {
|
|
95
|
+
...
|
|
96
|
+
|
|
97
|
+
constructor(
|
|
98
|
+
...
|
|
99
|
+
private translate: TranslateService
|
|
100
|
+
) {
|
|
101
|
+
this.session.localeChanged.subscribe(() => {
|
|
102
|
+
this.translate.use(this.session.getLocale());
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async changeLocale(locale: string): Promise<void> {
|
|
107
|
+
await this.session.changeLocale(locale);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
getLocale(): string {
|
|
111
|
+
return this.session.getLocale();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
### SmartDevTool usage
|
|
116
|
+
|
|
117
|
+
Turn on and off the devTool:
|
|
118
|
+
|
|
119
|
+
// active
|
|
120
|
+
localStorage.setItem('smartDevToolActive', 'true');
|
|
121
|
+
// inactive
|
|
122
|
+
localStorage.setItem('smartDevToolActive', 'false');
|
|
123
|
+
|
|
124
|
+
Set the devTool's button visibility
|
|
125
|
+
|
|
126
|
+
// visible
|
|
127
|
+
localStorage.setItem('useDevTool', 'true');
|
|
128
|
+
// invisible
|
|
129
|
+
localStorage.setItem('useDevTool', 'false');
|
|
130
|
+
|
|
131
|
+
In order to use this package properly, please create a folder called `viewcontext` in which a `view-context.pages.model.ts` shall be created:
|
|
132
|
+
|
|
133
|
+
- src/app/viewcontext/
|
|
134
|
+
- view-context.pages.ts
|
|
135
|
+
- view-context.handlers.ts
|
|
136
|
+
|
|
137
|
+
`view-context.pages.ts:`
|
|
138
|
+
|
|
139
|
+
export enum Pages {
|
|
140
|
+
// mandatory
|
|
141
|
+
VIEW_CONTEXT = 'viewContextUuid',
|
|
142
|
+
|
|
143
|
+
// optionals
|
|
144
|
+
ANY_PAGE = 'anyPage',
|
|
145
|
+
ANY_DIALOG = 'anyDialog,
|
|
146
|
+
ANY_COMPONENT = 'anyComponent,
|
|
147
|
+
...
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
`view-context.handlers.ts:`
|
|
151
|
+
|
|
152
|
+
import { SmartViewHandlerModel, ViewType } from '@smartbit4all/view-context';
|
|
153
|
+
import { Pages } from './view-context.pages';
|
|
154
|
+
import { AnyDialogService } from '../any-dialog/any-dialog.service';
|
|
155
|
+
|
|
156
|
+
export const viewContextHandlers: SmartViewHandlerModel[] = [
|
|
157
|
+
// ViewType.Normal
|
|
158
|
+
{
|
|
159
|
+
name: Pages.ANY_PAGE,
|
|
160
|
+
route: 'any'
|
|
161
|
+
},
|
|
162
|
+
// ViewType.Dialog
|
|
163
|
+
{
|
|
164
|
+
name: Pages.ANY_DIALOG,
|
|
165
|
+
component: AnyDialogComponent
|
|
166
|
+
},
|
|
167
|
+
// ViewType.Normal or ViewType.Dialog
|
|
168
|
+
{
|
|
169
|
+
name: Pages.ANY_COMPONENT,
|
|
170
|
+
route: 'any',
|
|
171
|
+
component: AnyComponent
|
|
172
|
+
}
|
|
173
|
+
];
|
|
174
|
+
|
|
175
|
+
Don't forget to define some ApiErrors and inject it into the **AuthenticationService**:
|
|
176
|
+
|
|
177
|
+
`view-context.api-errors.ts:`
|
|
178
|
+
|
|
179
|
+
const viewContextApiErrors: SmartViewContextApiErrors = {
|
|
180
|
+
viewContextApiErrors: [
|
|
181
|
+
{
|
|
182
|
+
code: "001",
|
|
183
|
+
dialogTitle?: "Error"
|
|
184
|
+
message: "An error message"
|
|
185
|
+
buttonLabel?: "Ok"
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
### SmartLink
|
|
191
|
+
|
|
192
|
+
In order to use SmartLinks in your application, follow the instruction:
|
|
193
|
+
|
|
194
|
+
Firstly, set up the routing:
|
|
195
|
+
|
|
196
|
+
`app-routing.module.ts:`
|
|
197
|
+
|
|
198
|
+
const routes: Routes = [
|
|
199
|
+
// Out of the box solution
|
|
200
|
+
{
|
|
201
|
+
path: `redirect/:${SmartLinkChannelVariableInPath}/:${SmartLinkUuidVariableInPath}`,
|
|
202
|
+
component: SmartViewRedirect,
|
|
203
|
+
},
|
|
204
|
+
// Custom solution
|
|
205
|
+
{
|
|
206
|
+
path: `customRedirect/:${SmartLinkChannelVariableInPath}/:${SmartLinkUuidVariableInPath}`,
|
|
207
|
+
component: RedirectComponent,
|
|
208
|
+
},
|
|
209
|
+
...
|
|
210
|
+
]
|
|
211
|
+
|
|
212
|
+
Then you can set up your custom redirect component as you wish:
|
|
213
|
+
|
|
214
|
+
`redirect.component.ts:`
|
|
215
|
+
|
|
216
|
+
@Component({
|
|
217
|
+
selector: "app-redirect",
|
|
218
|
+
templateUrl: "./redirect.component.html",
|
|
219
|
+
styleUrls: ["./redirect.component.css"],
|
|
220
|
+
})
|
|
221
|
+
export class RedirectComponent extends SmartViewRedirect {
|
|
222
|
+
constructor(
|
|
223
|
+
service: SmartViewContextService,
|
|
224
|
+
navigation: SmartNavigationService,
|
|
225
|
+
route: ActivatedRoute
|
|
226
|
+
) {
|
|
227
|
+
super(
|
|
228
|
+
service,
|
|
229
|
+
navigation,
|
|
230
|
+
route
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
Then subscribe for the _openSmartLink_ event and handle it in your AuthenticationService:
|
|
236
|
+
|
|
237
|
+
`authentication.service.ts:`
|
|
238
|
+
|
|
239
|
+
constructor(...) {
|
|
240
|
+
...
|
|
241
|
+
this.viewContext.openSmartLink.subscribe(() => {
|
|
242
|
+
this.handleOpenSmartLinkEvent();
|
|
243
|
+
})
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
private async handleOpenSmartLinkEvent(): Promise<void> {
|
|
247
|
+
// Do your business logic here
|
|
248
|
+
|
|
249
|
+
// If authentication is needed to open the link:
|
|
250
|
+
let isAuthenticated = await this.isAuthenticated();
|
|
251
|
+
if (isAuthenticated) {
|
|
252
|
+
this.viewContext.openSmartLink.complete();
|
|
253
|
+
} else {
|
|
254
|
+
// Navigate to login screen without reloading the site!
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Modify this if authentication is needed to open links
|
|
259
|
+
async login(request: LocalAuthenticationLoginRequest): Promise<boolean> {
|
|
260
|
+
await this.auth.login(request);
|
|
261
|
+
let isAuth = await this.session.getIsAuthenticated();
|
|
262
|
+
if (isAuth) {
|
|
263
|
+
await this.viewContext.initialize();
|
|
264
|
+
|
|
265
|
+
await this.anyBffApi.startAnyPage().toPromise();
|
|
266
|
+
|
|
267
|
+
// If there is a smart link waiting for opening...
|
|
268
|
+
if (this.viewContext.isOpeningSmartLink) {
|
|
269
|
+
this.viewContext.openSmartLink.complete();
|
|
270
|
+
return isAuth;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
let uuid = this.viewContext.getUuidOfPage(Pages.VIEW_CONTEXT);
|
|
274
|
+
await this.viewContext.getAndSyncViewContext(uuid);
|
|
275
|
+
}
|
|
276
|
+
return isAuth;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
### UiActions
|
|
280
|
+
|
|
281
|
+
The ViewContext package contains a common manager for the UiActions. To use this tool, please follow the instructions.
|
|
282
|
+
|
|
283
|
+
`action.descriptors.ts:`
|
|
284
|
+
|
|
285
|
+
import {
|
|
286
|
+
UiActionButtonIconPos,
|
|
287
|
+
UiActionButtonType,
|
|
288
|
+
UiActionDescriptor
|
|
289
|
+
} from '@smartbit4all/view-context';
|
|
290
|
+
|
|
291
|
+
// Build your own action descriptors
|
|
292
|
+
export const ActionDescriptors: Map<string, UiActionDescriptor> = new Map([
|
|
293
|
+
[
|
|
294
|
+
'EXAMPLE',
|
|
295
|
+
{
|
|
296
|
+
title: 'Example action',
|
|
297
|
+
type: UiActionButtonType.Raised,
|
|
298
|
+
color: 'primary',
|
|
299
|
+
dialog: {
|
|
300
|
+
title: 'Example dialog title',
|
|
301
|
+
text: 'Example dialog text',
|
|
302
|
+
actionButton: {
|
|
303
|
+
caption: 'Example action',
|
|
304
|
+
color: 'primary'
|
|
305
|
+
},
|
|
306
|
+
cancelButton: {
|
|
307
|
+
caption: 'Cancel',
|
|
308
|
+
color: ''
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
inputDialog: { ... },
|
|
312
|
+
confirmDialog: { ... },
|
|
313
|
+
feedbackType: UiActionFeedbackType.SNACKBAR;
|
|
314
|
+
feedbackText: "Example feedback";
|
|
315
|
+
}
|
|
316
|
+
]
|
|
317
|
+
])
|
|
318
|
+
|
|
319
|
+
`authentication.service.ts:`
|
|
320
|
+
|
|
321
|
+
constructor(...) {
|
|
322
|
+
...
|
|
323
|
+
// Set your descriptors
|
|
324
|
+
this.viewContext.setActionDescriptors(ActionDescriptors);
|
|
325
|
+
|
|
326
|
+
// Set basic feedback
|
|
327
|
+
this.viewContext.commonFeedbackText = "Basic feedback."
|
|
328
|
+
...
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
`example.component.ts:`
|
|
332
|
+
|
|
333
|
+
@Component({
|
|
334
|
+
selector: 'app-example',
|
|
335
|
+
templateUrl: './example.component.html',
|
|
336
|
+
styleUrls: ['./example.component.css']
|
|
337
|
+
})
|
|
338
|
+
export class ExampleComponent implements UseUiAction {
|
|
339
|
+
possibleActions: UiAction[]; // Comes from the backend
|
|
340
|
+
actions: UiActionModel[] = [];
|
|
341
|
+
|
|
342
|
+
// UseUiAction properties
|
|
343
|
+
submit: Subject<void> = new Subject();
|
|
344
|
+
reSubscribeToChange: Subject<void> = new Subject();
|
|
345
|
+
|
|
346
|
+
constructor(private service: ExampleService) {}
|
|
347
|
+
|
|
348
|
+
// UseUiAction functions
|
|
349
|
+
getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams {
|
|
350
|
+
// return additional parameters if needed
|
|
351
|
+
throw new Error('Method not implemented.');
|
|
352
|
+
}
|
|
353
|
+
getModel() {
|
|
354
|
+
// return the model of the page
|
|
355
|
+
throw new Error('Method not implemented.');
|
|
356
|
+
}
|
|
357
|
+
async performUiActionRequest(uiActionRequest: UiActionRequest): Promise<any> {
|
|
358
|
+
// perform the uiActionRequest on the proper service
|
|
359
|
+
await this.service.performAction(uiActionRequest)
|
|
360
|
+
}
|
|
361
|
+
handleSpecificDemandsAsynchronously(uiAction: UiAction): Promise<UiActionSpecificDemandResponse> {
|
|
362
|
+
// handle specific demands if needed
|
|
363
|
+
throw new Error('Method not implemented.');
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// Construct
|
|
367
|
+
constructActions(): void {
|
|
368
|
+
this.actions = [];
|
|
369
|
+
let exceptions = ['EXCEPTION'];
|
|
370
|
+
this.possibleActions.map((uiAction: UiAction) => {
|
|
371
|
+
this.actions?.push({
|
|
372
|
+
uiAction,
|
|
373
|
+
serviceToUse: this, // bind a class which implements the UseUiAction
|
|
374
|
+
exception: exceptions.includes(uiAction.code!)
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
`example.component.html:`
|
|
381
|
+
|
|
382
|
+
<smart-ui-action-toolbar [uiActionModels]="actions"></smart-ui-action-toolbar>
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## Version logs
|