@smartbit4all/ng-client 3.3.206 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +17 -0
- package/{esm2020 → esm2022}/lib/component-factory-service/component-factory-service.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/component-factory-service/projects.mjs +5 -5
- package/{esm2020 → esm2022}/lib/session/api/api/api.mjs +3 -3
- package/esm2022/lib/session/api/api/session.service.mjs +306 -0
- package/esm2022/lib/session/api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/session/api/encoder.mjs +18 -18
- package/{esm2020 → esm2022}/lib/session/api/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/session/api/model/accountInfo.mjs +12 -12
- package/{esm2020 → esm2022}/lib/session/api/model/apiError.mjs +12 -12
- package/{esm2020 → esm2022}/lib/session/api/model/authenticationProviderData.mjs +12 -12
- package/{esm2020 → esm2022}/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
- package/{esm2020 → esm2022}/lib/session/api/model/models.mjs +8 -8
- package/{esm2020 → esm2022}/lib/session/api/model/refreshSessionRequest.mjs +12 -12
- package/{esm2020 → esm2022}/lib/session/api/model/session.mjs +1 -1
- package/esm2022/lib/session/api/model/sessionInfoData.mjs +2 -0
- package/{esm2020 → esm2022}/lib/session/api/model/userActivityLog.mjs +12 -12
- package/{esm2020 → esm2022}/lib/session/api/param.mjs +1 -1
- package/{esm2020 → esm2022}/lib/session/api/variables.mjs +8 -8
- package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
- package/{esm2020 → esm2022}/lib/session/projects.mjs +9 -9
- package/esm2022/lib/session/smart-error-catching.interceptor.mjs +71 -0
- package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +46 -0
- package/{esm2020 → esm2022}/lib/session/smart-session-handler.service.mjs +5 -5
- package/esm2022/lib/session/smart-session.module.mjs +58 -0
- package/esm2022/lib/session/smart-session.service.mjs +225 -0
- package/{esm2020 → esm2022}/lib/session/smart-timer/smart-session-timer.component.mjs +35 -35
- package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +58 -0
- package/{esm2020 → esm2022}/lib/shared/projects.mjs +3 -3
- package/esm2022/lib/shared/shared.module.mjs +19 -0
- package/esm2022/lib/shared/smart-tooltip.directive.mjs +58 -0
- package/{esm2020 → esm2022}/lib/shared/smarttable.date-pipe.mjs +43 -43
- package/{esm2020 → esm2022}/lib/smart-client/projects.mjs +4 -4
- package/{esm2020 → esm2022}/lib/smart-client/smart-authentication.service.mjs +21 -21
- package/esm2022/lib/smart-client/smart-component-api-client.mjs +717 -0
- package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +53 -0
- package/{esm2020 → esm2022}/lib/smart-client/smart.component.mjs +77 -77
- package/{esm2020 → esm2022}/lib/smart-client/smart.service.mjs +75 -75
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/api/api.mjs +4 -4
- package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +133 -0
- package/esm2022/lib/smart-component-layout/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-component-layout/api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/encoder.mjs +19 -19
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/index.mjs +7 -7
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/componentType.mjs +18 -18
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/componentWidgetType.mjs +19 -19
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/layoutDirection.mjs +17 -17
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/models.mjs +6 -6
- package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/param.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-component-layout/api/variables.mjs +9 -9
- package/{esm2020 → esm2022}/lib/smart-component-layout/projects.mjs +7 -7
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +94 -0
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +259 -0
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +41 -0
- package/{esm2020 → esm2022}/lib/smart-dialog/projects.mjs +7 -7
- package/esm2022/lib/smart-dialog/smartdialog.component.mjs +54 -0
- package/{esm2020 → esm2022}/lib/smart-dialog/smartdialog.model.mjs +15 -15
- package/esm2022/lib/smart-dialog/smartdialog.module.mjs +46 -0
- package/{esm2020 → esm2022}/lib/smart-dialog/smartdialog.service.mjs +54 -54
- package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +88 -0
- package/{esm2020 → esm2022}/lib/smart-expandable-section/expandable-section.model.mjs +11 -11
- package/{esm2020 → esm2022}/lib/smart-expandable-section/projects.mjs +7 -7
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +49 -0
- package/{esm2020 → esm2022}/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -14
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +17 -17
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +8 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +20 -20
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +27 -27
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +32 -32
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +18 -18
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/model.mjs +15 -15
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +12 -12
- package/{esm2020 → esm2022}/lib/smart-filter/api/value/model/value.mjs +12 -12
- package/{esm2020 → esm2022}/lib/smart-filter/projects.mjs +8 -8
- package/{esm2020 → esm2022}/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -14
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +165 -0
- package/{esm2020 → esm2022}/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -45
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
- package/{esm2020 → esm2022}/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -31
- package/{esm2020 → esm2022}/lib/smart-filter/smart-filter.model.mjs +12 -12
- package/esm2022/lib/smart-filter/smart-filter.module.mjs +33 -0
- package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +198 -0
- package/esm2022/lib/smart-filter-editor/api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/encoder.mjs +19 -19
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +17 -17
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +13 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +8 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +7 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +20 -20
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +27 -27
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +32 -32
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +18 -18
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/smartFilterType.mjs +17 -17
- package/esm2022/lib/smart-filter-editor/api/param.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/api/variables.mjs +9 -9
- package/{esm2020 → esm2022}/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +14 -14
- package/{esm2020 → esm2022}/lib/smart-filter-editor/project.mjs +7 -7
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +73 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +40 -40
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +235 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +69 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +47 -0
- package/{esm2020 → esm2022}/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +24 -24
- package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +57 -0
- package/{esm2020 → esm2022}/lib/smart-form/api/api/api.mjs +3 -3
- package/esm2022/lib/smart-form/api/api/default.service.mjs +133 -0
- package/esm2022/lib/smart-form/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-form/api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/smart-form/api/encoder.mjs +18 -18
- package/{esm2020 → esm2022}/lib/smart-form/api/index.mjs +6 -6
- package/{esm2020 → esm2022}/lib/smart-form/api/model/models.mjs +10 -10
- package/{esm2020 → esm2022}/lib/smart-form/api/model/propertyMapping.mjs +12 -12
- package/{esm2020 → esm2022}/lib/smart-form/api/model/selectionDefinition.mjs +6 -6
- package/{esm2020 → esm2022}/lib/smart-form/api/model/smartFormInputMode.mjs +21 -21
- package/{esm2020 → esm2022}/lib/smart-form/api/model/smartFormWidgetDirection.mjs +16 -16
- package/{esm2020 → esm2022}/lib/smart-form/api/model/smartFormWidgetType.mjs +44 -44
- package/{esm2020 → esm2022}/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-form/api/model/smartWidgetHint.mjs +17 -17
- package/{esm2020 → esm2022}/lib/smart-form/api/model/valueChangeMode.mjs +19 -19
- package/{esm2020 → esm2022}/lib/smart-form/api/param.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-form/api/variables.mjs +8 -8
- package/{esm2020 → esm2022}/lib/smart-form/highlightMacthingString-pipe.mjs +20 -20
- package/{esm2020 → esm2022}/lib/smart-form/projects.mjs +12 -12
- package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +542 -0
- package/esm2022/lib/smart-form/services/smartform.service.mjs +640 -0
- package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +15 -0
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +78 -0
- package/{esm2020 → esm2022}/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
- package/esm2022/lib/smart-form/smartform.component.mjs +178 -0
- package/{esm2020 → esm2022}/lib/smart-form/smartform.form-model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-form/smartform.model.mjs +37 -37
- package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +84 -0
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +735 -0
- package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +59 -0
- package/{esm2020 → esm2022}/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -31
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/api/api.mjs +3 -3
- package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +451 -0
- package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
- package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/encoder.mjs +18 -18
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/index.mjs +6 -6
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +16 -16
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +19 -19
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +12 -12
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +17 -17
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +16 -16
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +7 -7
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/models.mjs +13 -13
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/param.mjs +1 -1
- package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/variables.mjs +8 -8
- package/{esm2020 → esm2022}/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -20
- package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +61 -0
- package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +182 -0
- package/{esm2020 → esm2022}/lib/smart-grid/models/model.mjs +28 -28
- package/{esm2020 → esm2022}/lib/smart-grid/projects.mjs +8 -8
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +767 -0
- package/esm2022/lib/smart-grid/smart-grid.module.mjs +76 -0
- package/esm2022/lib/smart-grid/smart-grid.service.mjs +80 -0
- package/{esm2020 → esm2022}/lib/smart-icon/projects.mjs +6 -6
- package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +40 -0
- package/esm2022/lib/smart-icon/smart-icon.module.mjs +22 -0
- package/esm2022/lib/smart-icon/smart-icon.service.mjs +74 -0
- package/{esm2020 → esm2022}/lib/smart-navbar/projects.mjs +7 -7
- package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +61 -0
- package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar.model.mjs +5 -5
- package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +63 -0
- package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar.service.mjs +14 -14
- package/{esm2020 → esm2022}/lib/smart-navigation/projects.mjs +5 -5
- package/{esm2020 → esm2022}/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
- package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +18 -0
- package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +56 -0
- package/esm2022/lib/smart-ng-client.module.mjs +126 -0
- package/{esm2020 → esm2022}/lib/smart-ng-client.service.mjs +19 -19
- package/{esm2020 → esm2022}/lib/smart-subject/projects.mjs +4 -4
- package/esm2022/lib/smart-subject/smart-subject.mjs +21 -0
- package/{esm2020 → esm2022}/lib/smart-tab-group/projects.mjs +8 -8
- package/esm2022/lib/smart-tab-group/smart-tab-group.component.mjs +43 -0
- package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +25 -0
- package/{esm2020 → esm2022}/lib/smart-tab-group/smart-tab-group.service.mjs +14 -14
- package/esm2022/lib/smart-tab-group/tab-content/tab-content.component.mjs +31 -0
- package/esm2022/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +66 -0
- package/{esm2020 → esm2022}/lib/smart-tab-group/tabTile.model.mjs +1 -1
- package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/smart-table/components/loading/loading.component.mjs +15 -15
- package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +52 -0
- package/{esm2020 → esm2022}/lib/smart-table/projects.mjs +7 -7
- package/esm2022/lib/smart-table/smarttable.component.mjs +98 -0
- package/esm2022/lib/smart-table/smarttable.model.mjs +169 -0
- package/esm2022/lib/smart-table/smarttable.module.mjs +105 -0
- package/{esm2020 → esm2022}/lib/smart-table/smarttable.service.mjs +14 -14
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +23 -23
- package/esm2022/lib/smart-table/tables/table.mjs +520 -0
- package/{esm2020 → esm2022}/lib/smart-tree/projects.mjs +8 -8
- package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +288 -0
- package/esm2022/lib/smart-tree/smarttree.component.mjs +181 -0
- package/{esm2020 → esm2022}/lib/smart-tree/smarttree.model.mjs +6 -6
- package/esm2022/lib/smart-tree/smarttree.module.mjs +60 -0
- package/{esm2020 → esm2022}/lib/smart-tree/smarttree.node.model.mjs +5 -5
- package/{esm2020 → esm2022}/lib/smart-tree/smarttree.service.interface.mjs +1 -1
- package/esm2022/lib/smart-tree/smarttree.service.mjs +47 -0
- package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1190 -0
- package/esm2022/lib/smart-tree/tree-api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/smart-tree/tree-api/encoder.mjs +19 -19
- package/esm2022/lib/smart-tree/tree-api/param.mjs +2 -0
- package/{esm2020 → esm2022}/lib/smart-tree/tree-api/variables.mjs +9 -9
- package/{esm2020 → esm2022}/lib/view-context/api/api/api.mjs +3 -3
- package/esm2022/lib/view-context/api/api/view.service.mjs +903 -0
- package/esm2022/lib/view-context/api/api.module.mjs +40 -0
- package/esm2022/lib/view-context/api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/view-context/api/encoder.mjs +18 -18
- package/{esm2020 → esm2022}/lib/view-context/api/index.mjs +6 -6
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +13 -0
- package/{esm2020 → esm2022}/lib/view-context/api/model/closeResult.mjs +17 -17
- package/{esm2020 → esm2022}/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/componentModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/componentModelChange.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/dataChange.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/dataChangeKind.mjs +20 -20
- package/{esm2020 → esm2022}/lib/view-context/api/model/downloadedFile.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/iconPosition.mjs +19 -19
- package/{esm2020 → esm2022}/lib/view-context/api/model/imageResource.mjs +7 -7
- package/{esm2020 → esm2022}/lib/view-context/api/model/link.mjs +19 -19
- package/{esm2020 → esm2022}/lib/view-context/api/model/messageData.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/messageOption.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/messageOptionType.mjs +17 -17
- package/{esm2020 → esm2022}/lib/view-context/api/model/messageResult.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/messageTextType.mjs +16 -16
- package/{esm2020 → esm2022}/lib/view-context/api/model/messageType.mjs +18 -18
- package/{esm2020 → esm2022}/lib/view-context/api/model/models.mjs +52 -52
- package/{esm2020 → esm2022}/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/serverRequestType.mjs +23 -23
- package/{esm2020 → esm2022}/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/statisticRecord.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/style.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiAction.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionButtonDescriptor.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionButtonType.mjs +26 -26
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionConstraint.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionFeedbackType.mjs +19 -19
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionInputType.mjs +20 -20
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionRequest.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionTooltip.mjs +21 -21
- package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionUploadDescriptor.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/uploadedFile.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2022/lib/view-context/api/model/view.mjs +2 -0
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewApiError.mjs +12 -12
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContext.mjs +2 -0
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +2 -0
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewData.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewEventHandler.mjs +17 -17
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +13 -0
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewState.mjs +21 -21
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/model/viewType.mjs +17 -17
- package/{esm2020 → esm2022}/lib/view-context/api/param.mjs +1 -1
- package/{esm2020 → esm2022}/lib/view-context/api/variables.mjs +8 -8
- package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +20 -0
- package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +66 -0
- package/{esm2020 → esm2022}/lib/view-context/projects.mjs +16 -16
- package/{esm2020 → esm2022}/lib/view-context/property-definition-data.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +56 -56
- package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +48 -48
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +72 -0
- package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +53 -53
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +126 -0
- package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +52 -52
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +146 -0
- package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +180 -0
- package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/ui-action.model.mjs +6 -6
- package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +211 -0
- package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +54 -0
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +29 -0
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +69 -0
- package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +39 -0
- package/{esm2020 → esm2022}/lib/view-context/smart-view-context.model.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.module.mjs +221 -0
- package/esm2022/lib/view-context/smart-view-context.service.mjs +685 -0
- package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +33 -0
- package/esm2022/lib/view-context/utility/smart-object-utility.mjs +30 -0
- package/esm2022/lib/view-context/utility/smart-style-utility.mjs +68 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/api/api.mjs +4 -4
- package/esm2022/lib/view-context/value-api/api/value.service.mjs +138 -0
- package/esm2022/lib/view-context/value-api/api.module.mjs +40 -0
- package/esm2022/lib/view-context/value-api/configuration.mjs +91 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/encoder.mjs +19 -19
- package/{esm2020 → esm2022}/lib/view-context/value-api/index.mjs +7 -7
- package/esm2022/lib/view-context/value-api/model/genericValue.mjs +13 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/model/models.mjs +11 -11
- package/esm2022/lib/view-context/value-api/model/value.mjs +13 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetData.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +2 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +13 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +23 -23
- package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
- package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +2 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetOperation.mjs +18 -18
- package/esm2022/lib/view-context/value-api/param.mjs +2 -0
- package/{esm2020 → esm2022}/lib/view-context/value-api/variables.mjs +9 -9
- package/{esm2020 → esm2022}/projects.mjs +25 -25
- package/{esm2020 → esm2022}/smartbit4all-ng-client.mjs +4 -4
- package/{fesm2020 → fesm2022}/smartbit4all-ng-client.mjs +15903 -15913
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -0
- package/{smartbit4all-ng-client.d.ts → index.d.ts} +5 -5
- package/lib/component-factory-service/component-factory-service.module.d.ts +6 -6
- package/lib/component-factory-service/component-factory-service.service.d.ts +13 -13
- package/lib/component-factory-service/projects.d.ts +2 -2
- package/lib/session/api/api/api.d.ts +3 -3
- package/lib/session/api/api/session.service.d.ts +107 -107
- package/lib/session/api/configuration.d.ts +104 -104
- package/lib/session/api/encoder.d.ts +11 -11
- package/lib/session/api/index.d.ts +2 -2
- package/lib/session/api/model/accountInfo.d.ts +22 -22
- package/lib/session/api/model/apiError.d.ts +15 -15
- package/lib/session/api/model/authenticationProviderData.d.ts +17 -17
- package/lib/session/api/model/getAuthenticationProvidersResponse.d.ts +15 -15
- package/lib/session/api/model/models.d.ts +8 -8
- package/lib/session/api/model/refreshSessionRequest.d.ts +14 -14
- package/lib/session/api/model/session.d.ts +32 -32
- package/lib/session/api/model/sessionInfoData.d.ts +26 -26
- package/lib/session/api/model/userActivityLog.d.ts +33 -33
- package/lib/session/api/param.d.ts +37 -37
- package/lib/session/api/variables.d.ts +8 -8
- package/lib/session/cookie-service/smart-cookie.service.d.ts +129 -129
- package/lib/session/projects.d.ts +6 -6
- package/lib/session/smart-error-catching.interceptor.d.ts +13 -13
- package/lib/session/smart-header-maintainer.interceptor.d.ts +11 -11
- package/lib/session/smart-session-handler.service.d.ts +11 -11
- package/lib/session/smart-session.module.d.ts +12 -12
- package/lib/session/smart-session.service.d.ts +54 -54
- package/lib/session/smart-timer/smart-session-timer.component.d.ts +14 -14
- package/lib/session/smart-timer/smart-session-timer.service.d.ts +21 -21
- package/lib/shared/projects.d.ts +3 -3
- package/lib/shared/shared.module.d.ts +9 -9
- package/lib/shared/smart-tooltip.directive.d.ts +16 -16
- package/lib/shared/smarttable.date-pipe.d.ts +18 -18
- package/lib/smart-client/projects.d.ts +4 -4
- package/lib/smart-client/smart-authentication.service.d.ts +15 -15
- package/lib/smart-client/smart-component-api-client.d.ts +111 -111
- package/lib/smart-client/smart-file-uploader/smart-file-uploader.component.d.ts +18 -18
- package/lib/smart-client/smart.component.d.ts +30 -30
- package/lib/smart-client/smart.service.d.ts +30 -30
- package/lib/smart-component-layout/api/api/api.d.ts +3 -3
- package/lib/smart-component-layout/api/api/default.service.d.ts +33 -33
- package/lib/smart-component-layout/api/api.module.d.ts +11 -11
- package/lib/smart-component-layout/api/configuration.d.ts +104 -104
- package/lib/smart-component-layout/api/encoder.d.ts +11 -11
- package/lib/smart-component-layout/api/index.d.ts +6 -6
- package/lib/smart-component-layout/api/model/componentType.d.ts +16 -16
- package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +17 -17
- package/lib/smart-component-layout/api/model/layoutDirection.d.ts +15 -15
- package/lib/smart-component-layout/api/model/models.d.ts +5 -5
- package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +26 -26
- package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +20 -20
- package/lib/smart-component-layout/api/param.d.ts +37 -37
- package/lib/smart-component-layout/api/variables.d.ts +8 -8
- package/lib/smart-component-layout/projects.d.ts +4 -4
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +14 -14
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +58 -58
- package/lib/smart-component-layout/smart-component-layout.module.d.ts +13 -13
- package/lib/smart-dialog/projects.d.ts +4 -4
- package/lib/smart-dialog/smartdialog.component.d.ts +19 -19
- package/lib/smart-dialog/smartdialog.model.d.ts +67 -67
- package/lib/smart-dialog/smartdialog.module.d.ts +14 -14
- package/lib/smart-dialog/smartdialog.service.d.ts +23 -23
- package/lib/smart-expandable-section/expandable-section.component.d.ts +25 -25
- package/lib/smart-expandable-section/expandable-section.model.d.ts +42 -42
- package/lib/smart-expandable-section/projects.d.ts +4 -4
- package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +15 -15
- package/lib/smart-expandable-section/smart-expandable-section.service.d.ts +6 -6
- package/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.d.ts +15 -15
- package/lib/smart-filter/api/filter/model/filterExpressionBuilderField.d.ts +27 -27
- package/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.d.ts +36 -36
- package/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.d.ts +27 -27
- package/lib/smart-filter/api/filter/model/filterExpressionData.d.ts +27 -27
- package/lib/smart-filter/api/filter/model/filterExpressionDataType.d.ts +18 -18
- package/lib/smart-filter/api/filter/model/filterExpressionField.d.ts +40 -40
- package/lib/smart-filter/api/filter/model/filterExpressionFieldList.d.ts +21 -21
- package/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.d.ts +25 -25
- package/lib/smart-filter/api/filter/model/filterExpressionList.d.ts +18 -18
- package/lib/smart-filter/api/filter/model/filterExpressionOperandData.d.ts +24 -24
- package/lib/smart-filter/api/filter/model/filterExpressionOperation.d.ts +30 -30
- package/lib/smart-filter/api/filter/model/filterExpressionOrderBy.d.ts +25 -25
- package/lib/smart-filter/api/filter/model/model.d.ts +15 -15
- package/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.d.ts +19 -19
- package/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.d.ts +18 -18
- package/lib/smart-filter/api/value/model/value.d.ts +29 -29
- package/lib/smart-filter/projects.d.ts +5 -5
- package/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.d.ts +8 -8
- package/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.d.ts +31 -31
- package/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.d.ts +18 -18
- package/lib/smart-filter/smart-filter/smart-filter.component.d.ts +15 -15
- package/lib/smart-filter/smart-filter/smart-filter.service.d.ts +16 -16
- package/lib/smart-filter/smart-filter.model.d.ts +25 -25
- package/lib/smart-filter/smart-filter.module.d.ts +15 -15
- package/lib/smart-filter-editor/api/api/filter.service.d.ts +57 -57
- package/lib/smart-filter-editor/api/configuration.d.ts +104 -104
- package/lib/smart-filter-editor/api/encoder.d.ts +11 -11
- package/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.d.ts +15 -15
- package/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.d.ts +16 -16
- package/lib/smart-filter-editor/api/model/filterExpressionBuilderField.d.ts +27 -27
- package/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.d.ts +36 -36
- package/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.d.ts +27 -27
- package/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.d.ts +38 -38
- package/lib/smart-filter-editor/api/model/filterExpressionData.d.ts +27 -27
- package/lib/smart-filter-editor/api/model/filterExpressionDataType.d.ts +18 -18
- package/lib/smart-filter-editor/api/model/filterExpressionField.d.ts +40 -40
- package/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.d.ts +17 -17
- package/lib/smart-filter-editor/api/model/filterExpressionFieldList.d.ts +21 -21
- package/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.d.ts +25 -25
- package/lib/smart-filter-editor/api/model/filterExpressionList.d.ts +18 -18
- package/lib/smart-filter-editor/api/model/filterExpressionOperandData.d.ts +24 -24
- package/lib/smart-filter-editor/api/model/filterExpressionOperation.d.ts +30 -30
- package/lib/smart-filter-editor/api/model/filterExpressionOrderBy.d.ts +28 -28
- package/lib/smart-filter-editor/api/model/smartFilterType.d.ts +15 -15
- package/lib/smart-filter-editor/api/param.d.ts +37 -37
- package/lib/smart-filter-editor/api/variables.d.ts +8 -8
- package/lib/smart-filter-editor/filterExpressionBuilderApiActions.d.ts +13 -13
- package/lib/smart-filter-editor/project.d.ts +7 -7
- package/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.d.ts +19 -19
- package/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.d.ts +17 -17
- package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +40 -40
- package/lib/smart-filter-editor/smart-filter-editor.model.d.ts +4 -4
- package/lib/smart-filter-editor/smart-filter-editor.module.d.ts +18 -18
- package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +35 -35
- package/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.d.ts +9 -9
- package/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.d.ts +21 -21
- package/lib/smart-form/api/api/api.d.ts +3 -3
- package/lib/smart-form/api/api/default.service.d.ts +33 -33
- package/lib/smart-form/api/api.module.d.ts +11 -11
- package/lib/smart-form/api/configuration.d.ts +104 -104
- package/lib/smart-form/api/encoder.d.ts +11 -11
- package/lib/smart-form/api/index.d.ts +6 -6
- package/lib/smart-form/api/model/models.d.ts +10 -10
- package/lib/smart-form/api/model/propertyMapping.d.ts +24 -24
- package/lib/smart-form/api/model/selectionDefinition.d.ts +41 -41
- package/lib/smart-form/api/model/smartFormInputMode.d.ts +20 -20
- package/lib/smart-form/api/model/smartFormWidgetDirection.d.ts +15 -15
- package/lib/smart-form/api/model/smartFormWidgetType.d.ts +43 -43
- package/lib/smart-form/api/model/smartLayoutDefinition.d.ts +15 -15
- package/lib/smart-form/api/model/smartMatrixModel.d.ts +29 -29
- package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +106 -106
- package/lib/smart-form/api/model/smartWidgetHint.d.ts +19 -19
- package/lib/smart-form/api/model/valueChangeMode.d.ts +18 -18
- package/lib/smart-form/api/param.d.ts +37 -37
- package/lib/smart-form/api/variables.d.ts +8 -8
- package/lib/smart-form/highlightMacthingString-pipe.d.ts +7 -7
- package/lib/smart-form/projects.d.ts +9 -9
- package/lib/smart-form/services/smartform.layout-definition.service.d.ts +45 -45
- package/lib/smart-form/services/smartform.service.d.ts +46 -46
- package/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.d.ts +8 -8
- package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +22 -22
- package/lib/smart-form/smartfileuploader/smartfileuploader.model.d.ts +7 -7
- package/lib/smart-form/smartform.component.d.ts +40 -40
- package/lib/smart-form/smartform.form-model.d.ts +631 -631
- package/lib/smart-form/smartform.model.d.ts +120 -120
- package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts +29 -29
- package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +132 -132
- package/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.d.ts +20 -20
- package/lib/smart-form/widgets/smartformwidget/trackCaps.directive.d.ts +9 -9
- package/lib/smart-grid/api/grid-api/api/api.d.ts +3 -3
- package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +161 -161
- package/lib/smart-grid/api/grid-api/api.module.d.ts +11 -11
- package/lib/smart-grid/api/grid-api/configuration.d.ts +104 -104
- package/lib/smart-grid/api/grid-api/encoder.d.ts +11 -11
- package/lib/smart-grid/api/grid-api/index.d.ts +6 -6
- package/lib/smart-grid/api/grid-api/model/gridColumnContentType.d.ts +15 -15
- package/lib/smart-grid/api/grid-api/model/gridColumnMeta.d.ts +33 -33
- package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +40 -40
- package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +34 -34
- package/lib/smart-grid/api/grid-api/model/gridPage.d.ts +26 -26
- package/lib/smart-grid/api/grid-api/model/gridRow.d.ts +39 -39
- package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +18 -18
- package/lib/smart-grid/api/grid-api/model/gridSelectionMode.d.ts +16 -16
- package/lib/smart-grid/api/grid-api/model/gridSelectionType.d.ts +15 -15
- package/lib/smart-grid/api/grid-api/model/gridServerModel.d.ts +22 -22
- package/lib/smart-grid/api/grid-api/model/gridUpdateData.d.ts +20 -20
- package/lib/smart-grid/api/grid-api/model/gridView.d.ts +21 -21
- package/lib/smart-grid/api/grid-api/model/gridViewDescriptor.d.ts +37 -37
- package/lib/smart-grid/api/grid-api/model/models.d.ts +13 -13
- package/lib/smart-grid/api/grid-api/param.d.ts +37 -37
- package/lib/smart-grid/api/grid-api/variables.d.ts +8 -8
- package/lib/smart-grid/components/expandable-grid/expandable-grid.component.d.ts +10 -10
- package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +23 -23
- package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +46 -46
- package/lib/smart-grid/models/model.d.ts +71 -71
- package/lib/smart-grid/projects.d.ts +5 -5
- package/lib/smart-grid/smart-grid.component.d.ts +103 -103
- package/lib/smart-grid/smart-grid.module.d.ts +22 -22
- package/lib/smart-grid/smart-grid.service.d.ts +23 -23
- package/lib/smart-icon/projects.d.ts +3 -3
- package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +16 -16
- package/lib/smart-icon/smart-icon.module.d.ts +10 -10
- package/lib/smart-icon/smart-icon.service.d.ts +28 -28
- package/lib/smart-navbar/projects.d.ts +4 -4
- package/lib/smart-navbar/smart-navbar.component.d.ts +20 -20
- package/lib/smart-navbar/smart-navbar.model.d.ts +48 -48
- package/lib/smart-navbar/smart-navbar.module.d.ts +18 -18
- package/lib/smart-navbar/smart-navbar.service.d.ts +6 -6
- package/lib/smart-navigation/projects.d.ts +2 -2
- package/lib/smart-navigation/smart-navigation.interface.d.ts +11 -11
- package/lib/smart-navigation/smart-navigation.module.d.ts +6 -6
- package/lib/smart-navigation/smart-navigation.service.d.ts +18 -18
- package/lib/smart-ng-client.module.d.ts +24 -24
- package/lib/smart-ng-client.service.d.ts +10 -10
- package/lib/smart-subject/projects.d.ts +1 -1
- package/lib/smart-subject/smart-subject.d.ts +6 -6
- package/lib/smart-tab-group/projects.d.ts +5 -5
- package/lib/smart-tab-group/smart-tab-group.component.d.ts +21 -21
- package/lib/smart-tab-group/smart-tab-group.module.d.ts +13 -13
- package/lib/smart-tab-group/smart-tab-group.service.d.ts +6 -6
- package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +14 -14
- package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +29 -29
- package/lib/smart-tab-group/tabTile.model.d.ts +8 -8
- package/lib/smart-table/components/default-actions-popup/default-actions-popup.component.d.ts +19 -19
- package/lib/smart-table/components/loading/loading.component.d.ts +8 -8
- package/lib/smart-table/directives/mat-context-menu-trigger-for.directive.d.ts +10 -10
- package/lib/smart-table/projects.d.ts +4 -4
- package/lib/smart-table/smarttable.component.d.ts +34 -34
- package/lib/smart-table/smarttable.model.d.ts +198 -198
- package/lib/smart-table/smarttable.module.d.ts +28 -28
- package/lib/smart-table/smarttable.service.d.ts +6 -6
- package/lib/smart-table/tables/material-table/material-table.component.d.ts +8 -8
- package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +8 -8
- package/lib/smart-table/tables/table.d.ts +85 -85
- package/lib/smart-tree/projects.d.ts +5 -5
- package/lib/smart-tree/smarttree-generic.service.d.ts +49 -49
- package/lib/smart-tree/smarttree.component.d.ts +42 -42
- package/lib/smart-tree/smarttree.model.d.ts +41 -41
- package/lib/smart-tree/smarttree.module.d.ts +15 -15
- package/lib/smart-tree/smarttree.node.model.d.ts +13 -13
- package/lib/smart-tree/smarttree.service.d.ts +24 -24
- package/lib/smart-tree/smarttree.service.interface.d.ts +43 -43
- package/lib/smart-tree/tree-api/api/tree.service.d.ts +336 -336
- package/lib/smart-tree/tree-api/configuration.d.ts +104 -104
- package/lib/smart-tree/tree-api/encoder.d.ts +11 -11
- package/lib/smart-tree/tree-api/param.d.ts +37 -37
- package/lib/smart-tree/tree-api/variables.d.ts +8 -8
- package/lib/view-context/api/api/api.d.ts +3 -3
- package/lib/view-context/api/api/view.service.d.ts +331 -331
- package/lib/view-context/api/api.module.d.ts +11 -11
- package/lib/view-context/api/configuration.d.ts +104 -104
- package/lib/view-context/api/encoder.d.ts +11 -11
- package/lib/view-context/api/index.d.ts +6 -6
- package/lib/view-context/api/model/clipboardData.d.ts +20 -20
- package/lib/view-context/api/model/closeResult.d.ts +16 -16
- package/lib/view-context/api/model/componentConstraint.d.ts +25 -25
- package/lib/view-context/api/model/componentModel.d.ts +42 -42
- package/lib/view-context/api/model/componentModelChange.d.ts +29 -29
- package/lib/view-context/api/model/dataChange.d.ts +25 -25
- package/lib/view-context/api/model/dataChangeEvent.d.ts +31 -31
- package/lib/view-context/api/model/dataChangeKind.d.ts +19 -19
- package/lib/view-context/api/model/downloadedFile.d.ts +19 -19
- package/lib/view-context/api/model/iconPosition.d.ts +18 -18
- package/lib/view-context/api/model/imageResource.d.ts +26 -26
- package/lib/view-context/api/model/link.d.ts +35 -35
- package/lib/view-context/api/model/messageData.d.ts +29 -29
- package/lib/view-context/api/model/messageOption.d.ts +18 -18
- package/lib/view-context/api/model/messageOptionType.d.ts +16 -16
- package/lib/view-context/api/model/messageResult.d.ts +16 -16
- package/lib/view-context/api/model/messageTextType.d.ts +15 -15
- package/lib/view-context/api/model/messageType.d.ts +17 -17
- package/lib/view-context/api/model/models.d.ts +51 -51
- package/lib/view-context/api/model/openPendingData.d.ts +29 -29
- package/lib/view-context/api/model/serverRequestExecutionStat.d.ts +40 -40
- package/lib/view-context/api/model/serverRequestTrack.d.ts +60 -60
- package/lib/view-context/api/model/serverRequestType.d.ts +22 -22
- package/lib/view-context/api/model/smartLinkData.d.ts +21 -21
- package/lib/view-context/api/model/statisticRecord.d.ts +36 -36
- package/lib/view-context/api/model/style.d.ts +21 -21
- package/lib/view-context/api/model/uiAction.d.ts +48 -48
- package/lib/view-context/api/model/uiActionButtonDescriptor.d.ts +18 -18
- package/lib/view-context/api/model/uiActionButtonType.d.ts +25 -25
- package/lib/view-context/api/model/uiActionConstraint.d.ts +22 -22
- package/lib/view-context/api/model/uiActionDescriptor.d.ts +36 -36
- package/lib/view-context/api/model/uiActionDialogDescriptor.d.ts +23 -23
- package/lib/view-context/api/model/uiActionFeedbackType.d.ts +18 -18
- package/lib/view-context/api/model/uiActionInputType.d.ts +19 -19
- package/lib/view-context/api/model/uiActionRequest.d.ts +28 -28
- package/lib/view-context/api/model/uiActionTooltip.d.ts +25 -25
- package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +23 -23
- package/lib/view-context/api/model/uploadedFile.d.ts +19 -19
- package/lib/view-context/api/model/valueSet.d.ts +20 -20
- package/lib/view-context/api/model/view.d.ts +80 -80
- package/lib/view-context/api/model/viewApiError.d.ts +18 -18
- package/lib/view-context/api/model/viewConstraint.d.ts +18 -18
- package/lib/view-context/api/model/viewContext.d.ts +30 -30
- package/lib/view-context/api/model/viewContextChange.d.ts +24 -24
- package/lib/view-context/api/model/viewContextData.d.ts +25 -25
- package/lib/view-context/api/model/viewContextUpdate.d.ts +22 -22
- package/lib/view-context/api/model/viewData.d.ts +25 -25
- package/lib/view-context/api/model/viewEventHandler.d.ts +30 -30
- package/lib/view-context/api/model/viewPlaceholder.d.ts +21 -21
- package/lib/view-context/api/model/viewState.d.ts +20 -20
- package/lib/view-context/api/model/viewStateUpdate.d.ts +22 -22
- package/lib/view-context/api/model/viewType.d.ts +16 -16
- package/lib/view-context/api/param.d.ts +37 -37
- package/lib/view-context/api/variables.d.ts +8 -8
- package/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.d.ts +9 -9
- package/lib/view-context/message-dialog/message-dialog.component.d.ts +18 -18
- package/lib/view-context/projects.d.ts +13 -13
- package/lib/view-context/property-definition-data.d.ts +5 -5
- package/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.d.ts +13 -13
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +25 -25
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +18 -18
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +30 -30
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +22 -22
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +29 -29
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +25 -25
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +36 -36
- package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +23 -23
- package/lib/view-context/smart-ui-action/ui-action.model.d.ts +43 -43
- package/lib/view-context/smart-ui-action/ui-action.service.d.ts +39 -39
- package/lib/view-context/smart-view-context-dialog.service.d.ts +16 -16
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +13 -13
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +19 -19
- package/lib/view-context/smart-view-context.interceptor.d.ts +13 -13
- package/lib/view-context/smart-view-context.model.d.ts +31 -31
- package/lib/view-context/smart-view-context.module.d.ts +46 -47
- package/lib/view-context/smart-view-context.service.d.ts +119 -119
- package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +14 -14
- package/lib/view-context/utility/smart-object-utility.d.ts +4 -4
- package/lib/view-context/utility/smart-style-utility.d.ts +12 -12
- package/lib/view-context/value-api/api/api.d.ts +3 -3
- package/lib/view-context/value-api/api/value.service.d.ts +35 -35
- package/lib/view-context/value-api/api.module.d.ts +11 -11
- package/lib/view-context/value-api/configuration.d.ts +104 -104
- package/lib/view-context/value-api/encoder.d.ts +11 -11
- package/lib/view-context/value-api/index.d.ts +6 -6
- package/lib/view-context/value-api/model/genericValue.d.ts +33 -33
- package/lib/view-context/value-api/model/models.d.ts +10 -10
- package/lib/view-context/value-api/model/value.d.ts +29 -29
- package/lib/view-context/value-api/model/valueSetData.d.ts +41 -41
- package/lib/view-context/value-api/model/valueSetDefinition.d.ts +16 -16
- package/lib/view-context/value-api/model/valueSetDefinitionData.d.ts +53 -53
- package/lib/view-context/value-api/model/valueSetDefinitionIdentifier.d.ts +21 -21
- package/lib/view-context/value-api/model/valueSetDefinitionKind.d.ts +22 -22
- package/lib/view-context/value-api/model/valueSetExpression.d.ts +18 -18
- package/lib/view-context/value-api/model/valueSetOperand.d.ts +25 -25
- package/lib/view-context/value-api/model/valueSetOperation.d.ts +17 -17
- package/lib/view-context/value-api/param.d.ts +37 -37
- package/lib/view-context/value-api/variables.d.ts +8 -8
- package/package.json +14 -20
- package/projects.d.ts +22 -22
- package/smartbit4all-ng-client-4.0.1.tgz +0 -0
- package/esm2020/lib/component-factory-service/component-factory-service.module.mjs +0 -17
- package/esm2020/lib/session/api/api/session.service.mjs +0 -306
- package/esm2020/lib/session/api/configuration.mjs +0 -91
- package/esm2020/lib/session/api/model/sessionInfoData.mjs +0 -2
- package/esm2020/lib/session/cookie-service/smart-cookie.service.mjs +0 -225
- package/esm2020/lib/session/smart-error-catching.interceptor.mjs +0 -71
- package/esm2020/lib/session/smart-header-maintainer.interceptor.mjs +0 -46
- package/esm2020/lib/session/smart-session.module.mjs +0 -58
- package/esm2020/lib/session/smart-session.service.mjs +0 -225
- package/esm2020/lib/session/smart-timer/smart-session-timer.service.mjs +0 -58
- package/esm2020/lib/shared/shared.module.mjs +0 -19
- package/esm2020/lib/shared/smart-tooltip.directive.mjs +0 -58
- package/esm2020/lib/smart-client/smart-component-api-client.mjs +0 -717
- package/esm2020/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +0 -53
- package/esm2020/lib/smart-component-layout/api/api/default.service.mjs +0 -133
- package/esm2020/lib/smart-component-layout/api/api.module.mjs +0 -40
- package/esm2020/lib/smart-component-layout/api/configuration.mjs +0 -91
- package/esm2020/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +0 -2
- package/esm2020/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +0 -2
- package/esm2020/lib/smart-component-layout/api/param.mjs +0 -2
- package/esm2020/lib/smart-component-layout/smart-component-layout-utility.mjs +0 -94
- package/esm2020/lib/smart-component-layout/smart-component-layout.component.mjs +0 -259
- package/esm2020/lib/smart-component-layout/smart-component-layout.module.mjs +0 -43
- package/esm2020/lib/smart-dialog/smartdialog.component.mjs +0 -54
- package/esm2020/lib/smart-dialog/smartdialog.module.mjs +0 -48
- package/esm2020/lib/smart-expandable-section/expandable-section.component.mjs +0 -88
- package/esm2020/lib/smart-expandable-section/smart-expandable-section.module.mjs +0 -51
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +0 -2
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +0 -8
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +0 -2
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionData.mjs +0 -2
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +0 -2
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionList.mjs +0 -2
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +0 -2
- package/esm2020/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +0 -165
- package/esm2020/lib/smart-filter/smart-filter/smart-filter.component.mjs +0 -36
- package/esm2020/lib/smart-filter/smart-filter.module.mjs +0 -33
- package/esm2020/lib/smart-filter-editor/api/api/filter.service.mjs +0 -198
- package/esm2020/lib/smart-filter-editor/api/configuration.mjs +0 -91
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +0 -13
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +0 -8
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +0 -7
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionData.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionList.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/api/param.mjs +0 -2
- package/esm2020/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +0 -73
- package/esm2020/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +0 -235
- package/esm2020/lib/smart-filter-editor/smart-filter-editor.module.mjs +0 -71
- package/esm2020/lib/smart-filter-editor/smart-filter-editor.service.mjs +0 -47
- package/esm2020/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +0 -57
- package/esm2020/lib/smart-form/api/api/default.service.mjs +0 -133
- package/esm2020/lib/smart-form/api/api.module.mjs +0 -40
- package/esm2020/lib/smart-form/api/configuration.mjs +0 -91
- package/esm2020/lib/smart-form/api/model/smartMatrixModel.mjs +0 -2
- package/esm2020/lib/smart-form/services/smartform.layout-definition.service.mjs +0 -542
- package/esm2020/lib/smart-form/services/smartform.service.mjs +0 -640
- package/esm2020/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +0 -14
- package/esm2020/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +0 -78
- package/esm2020/lib/smart-form/smartform.component.mjs +0 -178
- package/esm2020/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +0 -84
- package/esm2020/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +0 -736
- package/esm2020/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +0 -59
- package/esm2020/lib/smart-grid/api/grid-api/api/grid.service.mjs +0 -451
- package/esm2020/lib/smart-grid/api/grid-api/api.module.mjs +0 -40
- package/esm2020/lib/smart-grid/api/grid-api/configuration.mjs +0 -91
- package/esm2020/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +0 -61
- package/esm2020/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +0 -182
- package/esm2020/lib/smart-grid/smart-grid.component.mjs +0 -767
- package/esm2020/lib/smart-grid/smart-grid.module.mjs +0 -78
- package/esm2020/lib/smart-grid/smart-grid.service.mjs +0 -80
- package/esm2020/lib/smart-icon/smart-icon/smart-icon.component.mjs +0 -40
- package/esm2020/lib/smart-icon/smart-icon.module.mjs +0 -22
- package/esm2020/lib/smart-icon/smart-icon.service.mjs +0 -74
- package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +0 -61
- package/esm2020/lib/smart-navbar/smart-navbar.module.mjs +0 -65
- package/esm2020/lib/smart-navigation/smart-navigation.module.mjs +0 -18
- package/esm2020/lib/smart-navigation/smart-navigation.service.mjs +0 -56
- package/esm2020/lib/smart-ng-client.module.mjs +0 -128
- package/esm2020/lib/smart-subject/smart-subject.mjs +0 -21
- package/esm2020/lib/smart-tab-group/smart-tab-group.component.mjs +0 -43
- package/esm2020/lib/smart-tab-group/smart-tab-group.module.mjs +0 -25
- package/esm2020/lib/smart-tab-group/tab-content/tab-content.component.mjs +0 -31
- package/esm2020/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +0 -66
- package/esm2020/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +0 -43
- package/esm2020/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +0 -52
- package/esm2020/lib/smart-table/smarttable.component.mjs +0 -98
- package/esm2020/lib/smart-table/smarttable.model.mjs +0 -169
- package/esm2020/lib/smart-table/smarttable.module.mjs +0 -107
- package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +0 -39
- package/esm2020/lib/smart-table/tables/table.mjs +0 -520
- package/esm2020/lib/smart-tree/smarttree-generic.service.mjs +0 -288
- package/esm2020/lib/smart-tree/smarttree.component.mjs +0 -181
- package/esm2020/lib/smart-tree/smarttree.module.mjs +0 -62
- package/esm2020/lib/smart-tree/smarttree.service.mjs +0 -47
- package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +0 -1190
- package/esm2020/lib/smart-tree/tree-api/configuration.mjs +0 -91
- package/esm2020/lib/smart-tree/tree-api/param.mjs +0 -2
- package/esm2020/lib/view-context/api/api/view.service.mjs +0 -903
- package/esm2020/lib/view-context/api/api.module.mjs +0 -40
- package/esm2020/lib/view-context/api/configuration.mjs +0 -91
- package/esm2020/lib/view-context/api/model/clipboardData.mjs +0 -13
- package/esm2020/lib/view-context/api/model/view.mjs +0 -2
- package/esm2020/lib/view-context/api/model/viewContext.mjs +0 -2
- package/esm2020/lib/view-context/api/model/viewContextData.mjs +0 -2
- package/esm2020/lib/view-context/api/model/viewPlaceholder.mjs +0 -13
- package/esm2020/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +0 -19
- package/esm2020/lib/view-context/message-dialog/message-dialog.component.mjs +0 -66
- package/esm2020/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +0 -30
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +0 -72
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +0 -126
- package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +0 -146
- package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +0 -180
- package/esm2020/lib/view-context/smart-ui-action/ui-action.service.mjs +0 -211
- package/esm2020/lib/view-context/smart-view-context-dialog.service.mjs +0 -54
- package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +0 -29
- package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +0 -69
- package/esm2020/lib/view-context/smart-view-context.interceptor.mjs +0 -39
- package/esm2020/lib/view-context/smart-view-context.module.mjs +0 -222
- package/esm2020/lib/view-context/smart-view-context.service.mjs +0 -685
- package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +0 -33
- package/esm2020/lib/view-context/utility/smart-object-utility.mjs +0 -30
- package/esm2020/lib/view-context/utility/smart-style-utility.mjs +0 -68
- package/esm2020/lib/view-context/value-api/api/value.service.mjs +0 -138
- package/esm2020/lib/view-context/value-api/api.module.mjs +0 -40
- package/esm2020/lib/view-context/value-api/configuration.mjs +0 -91
- package/esm2020/lib/view-context/value-api/model/genericValue.mjs +0 -13
- package/esm2020/lib/view-context/value-api/model/value.mjs +0 -13
- package/esm2020/lib/view-context/value-api/model/valueSetDefinition.mjs +0 -2
- package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +0 -13
- package/esm2020/lib/view-context/value-api/model/valueSetOperand.mjs +0 -2
- package/esm2020/lib/view-context/value-api/param.mjs +0 -2
- package/fesm2015/smartbit4all-ng-client.mjs +0 -16437
- package/fesm2015/smartbit4all-ng-client.mjs.map +0 -1
- package/fesm2020/smartbit4all-ng-client.mjs.map +0 -1
- package/smartbit4all-ng-client-3.3.206.tgz +0 -0
- package/src/lib/component-factory-service/README.md +0 -99
- package/src/lib/session/api/README.md +0 -226
- package/src/lib/smart-component-layout/README.md +0 -31
- package/src/lib/smart-component-layout/api/README.md +0 -226
- package/src/lib/smart-dialog/README.md +0 -197
- package/src/lib/smart-expandable-section/README.md +0 -249
- package/src/lib/smart-filter/README.md +0 -101
- package/src/lib/smart-filter-editor/api/README.md +0 -226
- package/src/lib/smart-form/README.md +0 -1178
- package/src/lib/smart-form/api/README.md +0 -226
- package/src/lib/smart-grid/README.md +0 -24
- package/src/lib/smart-grid/api/grid-api/README.md +0 -226
- package/src/lib/smart-icon/README.md +0 -116
- package/src/lib/smart-navbar/README.md +0 -119
- package/src/lib/smart-navigation/README.md +0 -141
- package/src/lib/smart-tab-group/README.md +0 -155
- package/src/lib/smart-table/README.md +0 -667
- package/src/lib/smart-tree/tree-api/README.md +0 -226
- package/src/lib/view-context/api/README.md +0 -226
- package/src/lib/view-context/value-api/README.md +0 -226
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smartbit4all-ng-client.mjs","sources":["../../../projects/smart-ng-client/src/lib/smart-subject/smart-subject.ts","../../../projects/smart-ng-client/src/lib/smart-subject/projects.ts","../../../projects/smart-ng-client/src/lib/session/api/encoder.ts","../../../projects/smart-ng-client/src/lib/session/api/variables.ts","../../../projects/smart-ng-client/src/lib/session/api/configuration.ts","../../../projects/smart-ng-client/src/lib/session/api/api/session.service.ts","../../../projects/smart-ng-client/src/lib/session/api/api/api.ts","../../../projects/smart-ng-client/src/lib/session/cookie-service/smart-cookie.service.ts","../../../projects/smart-ng-client/src/lib/session/smart-session.service.ts","../../../projects/smart-ng-client/src/lib/view-context/api/encoder.ts","../../../projects/smart-ng-client/src/lib/view-context/api/variables.ts","../../../projects/smart-ng-client/src/lib/view-context/api/configuration.ts","../../../projects/smart-ng-client/src/lib/view-context/api/api/view.service.ts","../../../projects/smart-ng-client/src/lib/view-context/api/api/api.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/closeResult.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/dataChangeKind.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/iconPosition.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/imageResource.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/link.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageOptionType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageTextType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/serverRequestType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionFeedbackType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionInputType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionTooltip.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/viewEventHandler.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/viewState.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/viewType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/api.module.ts","../../../projects/smart-ng-client/src/lib/view-context/message-dialog/message-dialog.component.ts","../../../projects/smart-ng-client/src/lib/view-context/message-dialog/message-dialog.component.html","../../../projects/smart-ng-client/src/lib/smart-navigation/smart-navigation.service.ts","../../../projects/smart-ng-client/src/lib/smart-navigation/smart-navigation.module.ts","../../../projects/smart-ng-client/src/lib/smart-navigation/projects.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context-dialog.service.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context.service.ts","../../../projects/smart-ng-client/src/lib/smart-ng-client.service.ts","../../../projects/smart-ng-client/src/lib/component-factory-service/component-factory-service.service.ts","../../../projects/smart-ng-client/src/lib/component-factory-service/component-factory-service.module.ts","../../../projects/smart-ng-client/src/lib/component-factory-service/projects.ts","../../../projects/smart-ng-client/src/lib/smart-dialog/smartdialog.service.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/encoder.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/variables.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/configuration.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/api/default.service.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/api/api.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/selectionDefinition.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/smartFormInputMode.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/smartFormWidgetDirection.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/smartFormWidgetType.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/smartWidgetHint.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/valueChangeMode.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/api.module.ts","../../../projects/smart-ng-client/src/lib/smart-form/services/smartform.service.ts","../../../projects/smart-ng-client/src/lib/smart-form/smartform.model.ts","../../../projects/smart-ng-client/src/lib/view-context/utility/smart-style-utility.ts","../../../projects/smart-ng-client/src/lib/smart-icon/smart-icon.service.ts","../../../projects/smart-ng-client/src/lib/smart-icon/smart-icon/smart-icon.component.ts","../../../projects/smart-ng-client/src/lib/smart-icon/smart-icon/smart-icon.component.html","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/ui-action.descriptor.service.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.html","../../../projects/smart-ng-client/src/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.ts","../../../projects/smart-ng-client/src/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.html","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/ui-action.service.ts","../../../projects/smart-ng-client/src/lib/shared/smart-tooltip.directive.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/ui-action-toolbar.component.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/ui-action-toolbar.component.html","../../../projects/smart-ng-client/src/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.ts","../../../projects/smart-ng-client/src/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.html","../../../projects/smart-ng-client/src/lib/smart-form/smartfileuploader/smartfileuploader.component.ts","../../../projects/smart-ng-client/src/lib/smart-form/smartfileuploader/smartfileuploader.component.html","../../../projects/smart-ng-client/src/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.ts","../../../projects/smart-ng-client/src/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.html","../../../projects/smart-ng-client/src/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.ts","../../../projects/smart-ng-client/src/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.html","../../../projects/smart-ng-client/src/lib/smart-form/widgets/smartformwidget/trackCaps.directive.ts","../../../projects/smart-ng-client/src/lib/smart-form/highlightMacthingString-pipe.ts","../../../projects/smart-ng-client/src/lib/smart-form/widgets/smartformwidget/smartformwidget.component.ts","../../../projects/smart-ng-client/src/lib/smart-form/widgets/smartformwidget/smartformwidget.component.html","../../../projects/smart-ng-client/src/lib/smart-form/smartform.component.ts","../../../projects/smart-ng-client/src/lib/smart-form/smartform.component.html","../../../projects/smart-ng-client/src/lib/smart-table/smarttable.model.ts","../../../projects/smart-ng-client/src/lib/smart-table/directives/mat-context-menu-trigger-for.directive.ts","../../../projects/smart-ng-client/src/lib/smart-table/components/default-actions-popup/default-actions-popup.component.ts","../../../projects/smart-ng-client/src/lib/smart-table/components/default-actions-popup/default-actions-popup.component.html","../../../projects/smart-ng-client/src/lib/smart-table/components/loading/loading.component.ts","../../../projects/smart-ng-client/src/lib/smart-table/components/loading/loading.component.html","../../../projects/smart-ng-client/src/lib/view-context/utility/smart-object-utility.ts","../../../projects/smart-ng-client/src/lib/smart-table/tables/table.ts","../../../projects/smart-ng-client/src/lib/shared/smarttable.date-pipe.ts","../../../projects/smart-ng-client/src/lib/smart-table/tables/material-table/material-table.component.ts","../../../projects/smart-ng-client/src/lib/smart-table/tables/material-table/material-table.component.html","../../../projects/smart-ng-client/src/lib/smart-table/tables/mobile-table/mobile-table.component.ts","../../../projects/smart-ng-client/src/lib/smart-table/tables/mobile-table/mobile-table.component.html","../../../projects/smart-ng-client/src/lib/smart-table/smarttable.component.ts","../../../projects/smart-ng-client/src/lib/smart-table/smarttable.component.html","../../../projects/smart-ng-client/src/lib/smart-dialog/smartdialog.component.ts","../../../projects/smart-ng-client/src/lib/smart-dialog/smartdialog.component.html","../../../projects/smart-ng-client/src/lib/smart-table/smarttable.service.ts","../../../projects/smart-ng-client/src/lib/smart-icon/smart-icon.module.ts","../../../projects/smart-ng-client/src/lib/smart-icon/projects.ts","../../../projects/smart-ng-client/src/lib/shared/shared.module.ts","../../../projects/smart-ng-client/src/lib/smart-table/smarttable.module.ts","../../../projects/smart-ng-client/src/lib/smart-table/projects.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.html","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context.interceptor.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-redirect/smart-view-redirect.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.html","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.html","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.html","../../../projects/smart-ng-client/src/lib/smart-form/services/smartform.layout-definition.service.ts","../../../projects/smart-ng-client/src/lib/smart-form/projects.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-view-context.module.ts","../../../projects/smart-ng-client/src/lib/smart-dialog/smartdialog.module.ts","../../../projects/smart-ng-client/src/lib/smart-dialog/smartdialog.model.ts","../../../projects/smart-ng-client/src/lib/smart-dialog/projects.ts","../../../projects/smart-ng-client/src/lib/session/smart-session-handler.service.ts","../../../projects/smart-ng-client/src/lib/session/smart-timer/smart-session-timer.service.ts","../../../projects/smart-ng-client/src/lib/session/smart-timer/smart-session-timer.component.ts","../../../projects/smart-ng-client/src/lib/session/smart-timer/smart-session-timer.component.html","../../../projects/smart-ng-client/src/lib/session/projects.ts","../../../projects/smart-ng-client/src/lib/session/smart-error-catching.interceptor.ts","../../../projects/smart-ng-client/src/lib/session/smart-header-maintainer.interceptor.ts","../../../projects/smart-ng-client/src/lib/session/smart-session.module.ts","../../../projects/smart-ng-client/src/lib/view-context/smart-ui-action/ui-action.model.ts","../../../projects/smart-ng-client/src/lib/view-context/projects.ts","../../../projects/smart-ng-client/src/lib/smart-client/smart-file-uploader/smart-file-uploader.component.ts","../../../projects/smart-ng-client/src/lib/smart-client/smart-file-uploader/smart-file-uploader.component.html","../../../projects/smart-ng-client/src/lib/smart-grid/components/expandable-grid/expandable-grid.component.ts","../../../projects/smart-ng-client/src/lib/smart-grid/components/expandable-grid/expandable-grid.component.html","../../../projects/smart-ng-client/src/lib/smart-grid/models/model.ts","../../../projects/smart-ng-client/src/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.ts","../../../projects/smart-ng-client/src/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.html","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/model/filterExpressionOrderBy.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/encoder.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/variables.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/configuration.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/api/grid.service.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/api/api.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/model/gridColumnContentType.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/model/gridSelectionMode.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/model/gridSelectionType.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/model/gridViewDescriptor.ts","../../../projects/smart-ng-client/src/lib/smart-grid/api/grid-api/api.module.ts","../../../projects/smart-ng-client/src/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.ts","../../../projects/smart-ng-client/src/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.html","../../../projects/smart-ng-client/src/lib/smart-grid/smart-grid.service.ts","../../../projects/smart-ng-client/src/lib/smart-expandable-section/expandable-section.model.ts","../../../projects/smart-ng-client/src/lib/smart-expandable-section/expandable-section.component.ts","../../../projects/smart-ng-client/src/lib/smart-expandable-section/expandable-section.component.html","../../../projects/smart-ng-client/src/lib/smart-grid/smart-grid.component.ts","../../../projects/smart-ng-client/src/lib/smart-grid/smart-grid.component.html","../../../projects/smart-ng-client/src/lib/smart-expandable-section/smart-expandable-section.service.ts","../../../projects/smart-ng-client/src/lib/smart-expandable-section/smart-expandable-section.module.ts","../../../projects/smart-ng-client/src/lib/smart-expandable-section/projects.ts","../../../projects/smart-ng-client/src/lib/smart-grid/smart-grid.module.ts","../../../projects/smart-ng-client/src/lib/smart-tree/tree-api/encoder.ts","../../../projects/smart-ng-client/src/lib/smart-tree/tree-api/variables.ts","../../../projects/smart-ng-client/src/lib/smart-tree/tree-api/configuration.ts","../../../projects/smart-ng-client/src/lib/smart-tree/tree-api/api/tree.service.ts","../../../projects/smart-ng-client/src/lib/smart-tree/smarttree.model.ts","../../../projects/smart-ng-client/src/lib/smart-tree/smarttree.service.ts","../../../projects/smart-ng-client/src/lib/smart-tree/smarttree-generic.service.ts","../../../projects/smart-ng-client/src/lib/smart-tree/smarttree.component.ts","../../../projects/smart-ng-client/src/lib/smart-tree/smarttree.component.html","../../../projects/smart-ng-client/src/lib/smart-tree/smarttree.module.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/encoder.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/variables.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/configuration.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/api/default.service.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/api/api.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/model/componentType.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/model/componentWidgetType.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/model/layoutDirection.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/api/api.module.ts","../../../projects/smart-ng-client/src/lib/smart-grid/projects.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/smart-component-layout.component.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/smart-component-layout.component.html","../../../projects/smart-ng-client/src/lib/smart-component-layout/smart-component-layout.module.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.html","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.html","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/smart-filter.service.ts","../../../projects/smart-ng-client/src/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.ts","../../../projects/smart-ng-client/src/lib/smart-filter/api/filter/model/filterExpressionDataType.ts","../../../projects/smart-ng-client/src/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.ts","../../../projects/smart-ng-client/src/lib/smart-filter/api/filter/model/filterExpressionOperation.ts","../../../projects/smart-ng-client/src/lib/smart-filter/api/filter/model/filterExpressionOrderBy.ts","../../../projects/smart-ng-client/src/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.ts","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.html","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.html","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/smart-filter.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/smart-filter.component.html","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.html","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter.module.ts","../../../projects/smart-ng-client/src/lib/smart-filter/smart-filter.model.ts","../../../projects/smart-ng-client/src/lib/smart-filter/projects.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/filterExpressionBuilderApiActions.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.html","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.html","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.html","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor.module.ts","../../../projects/smart-ng-client/src/lib/smart-navbar/smart-navbar.model.ts","../../../projects/smart-ng-client/src/lib/smart-navbar/smart-navbar.component.ts","../../../projects/smart-ng-client/src/lib/smart-navbar/smart-navbar.component.html","../../../projects/smart-ng-client/src/lib/smart-navbar/smart-navbar.module.ts","../../../projects/smart-ng-client/src/lib/smart-tab-group/smart-tab-group.component.ts","../../../projects/smart-ng-client/src/lib/smart-tab-group/smart-tab-group.component.html","../../../projects/smart-ng-client/src/lib/smart-tab-group/tab-content/tab-content.component.ts","../../../projects/smart-ng-client/src/lib/smart-tab-group/tab-content/tab-content.component.html","../../../projects/smart-ng-client/src/lib/smart-tab-group/tab-group-simplified/tab-group.component.ts","../../../projects/smart-ng-client/src/lib/smart-tab-group/tab-group-simplified/tab-group.component.html","../../../projects/smart-ng-client/src/lib/smart-tab-group/smart-tab-group.module.ts","../../../projects/smart-ng-client/src/lib/smart-ng-client.module.ts","../../../projects/smart-ng-client/src/lib/smart-client/smart-authentication.service.ts","../../../projects/smart-ng-client/src/lib/smart-tree/projects.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/smart-component-layout-utility.ts","../../../projects/smart-ng-client/src/lib/smart-component-layout/projects.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/encoder.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/variables.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/configuration.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/api/api/filter.service.ts","../../../projects/smart-ng-client/src/lib/smart-filter-editor/smart-filter-editor.service.ts","../../../projects/smart-ng-client/src/lib/smart-client/smart-component-api-client.ts","../../../projects/smart-ng-client/src/lib/smart-client/smart.component.ts","../../../projects/smart-ng-client/src/lib/smart-client/smart.service.ts","../../../projects/smart-ng-client/src/lib/smart-navbar/smart-navbar.service.ts","../../../projects/smart-ng-client/src/lib/smart-navbar/projects.ts","../../../projects/smart-ng-client/src/lib/smart-tab-group/smart-tab-group.service.ts","../../../projects/smart-ng-client/src/lib/smart-tab-group/projects.ts","../../../projects/smart-ng-client/src/projects.ts","../../../projects/smart-ng-client/src/smartbit4all-ng-client.ts"],"sourcesContent":["import { Observer, Subject, Subscription } from 'rxjs';\r\n\r\nexport class SmartSubject<T> extends Subject<T> {\r\n constructor(private unsubscribe$: Subject<void>) {\r\n super();\r\n }\r\n\r\n override subscribe(\r\n observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\r\n error?: (error: any) => void,\r\n complete?: () => void\r\n ): Subscription {\r\n if (typeof observerOrNext === 'object') {\r\n const next = observerOrNext!.next;\r\n observerOrNext!.next = (value: T) => {\r\n if (next) {\r\n next.call(observerOrNext, value);\r\n }\r\n };\r\n }\r\n\r\n const subscription = super.subscribe(\r\n observerOrNext as ((value: T) => void) | null,\r\n error,\r\n complete\r\n );\r\n\r\n subscription.add(this.unsubscribe$.subscribe());\r\n\r\n return subscription;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of smart-subject\r\n */\r\n\r\nexport * from './smart-subject';\r\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Override the default method for encoding path parameters in various\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam?: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Encoding of various path parameter\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.encodeParam) {\n this.encodeParam = configurationParameters.encodeParam;\n }\n else {\n this.encodeParam = param => this.defaultEncodeParam(param);\n }\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n\n private defaultEncodeParam(param: Param): string {\n // This implementation exists as fallback for missing configuration\n // and for backwards compatibility to older typescript-angular generator versions.\n // It only works for the 'simple' parameter style.\n // Date-handling only works for the 'date-time' format.\n // All other styles and Date-formats are probably handled incorrectly.\n //\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\n ? (param.value as Date).toISOString()\n : param.value;\n\n return encodeURIComponent(String(value));\n }\n}\n","/**\n * Session api\n * Session api...\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { ApiError } from '../model/apiError';\n// @ts-ignore\nimport { GetAuthenticationProvidersResponse } from '../model/getAuthenticationProvidersResponse';\n// @ts-ignore\nimport { RefreshSessionRequest } from '../model/refreshSessionRequest';\n// @ts-ignore\nimport { SessionInfoData } from '../model/sessionInfoData';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Returns the available authentication providers\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAuthenticationProviders(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GetAuthenticationProvidersResponse>;\n public getAuthenticationProviders(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GetAuthenticationProvidersResponse>>;\n public getAuthenticationProviders(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GetAuthenticationProvidersResponse>>;\n public getAuthenticationProviders(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/authenticationProviders`;\n return this.httpClient.request<GetAuthenticationProvidersResponse>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns the existing session info\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSession(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\n public getSession(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\n public getSession(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\n public getSession(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/session`;\n return this.httpClient.request<SessionInfoData>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Refreshes the session\n * @param refreshSessionRequest \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (refreshSessionRequest === null || refreshSessionRequest === undefined) {\n throw new Error('Required parameter refreshSessionRequest was null or undefined when calling refreshSession.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/refresh`;\n return this.httpClient.request<SessionInfoData>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: refreshSessionRequest,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Sets the locale of the session\n * Sets the locale of the current session and returns the SessionInfoData\n * @param locale \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setLocale(locale: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\n public setLocale(locale: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\n public setLocale(locale: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\n public setLocale(locale: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (locale === null || locale === undefined) {\n throw new Error('Required parameter locale was null or undefined when calling setLocale.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/locale/${this.configuration.encodeParam({name: \"locale\", value: locale, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n return this.httpClient.request<SessionInfoData>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Creates a new session\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public startSession(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\n public startSession(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\n public startSession(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\n public startSession(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/session`;\n return this.httpClient.request<SessionInfoData>('put', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from \"./session.service\";\r\nimport { SessionService } from \"./session.service\";\r\nexport const SessionAPIS = [SessionService];\r\n","// This service is based on the `ng2-cookies` package which sadly is not a service and does\r\n// not use `DOCUMENT` injection and therefore doesn't work well with AoT production builds.\r\n// Package: https://github.com/BCJTI/ng2-cookies\r\n\r\nimport { Inject, Injectable, PLATFORM_ID } from \"@angular/core\";\r\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\n\r\nexport type SameSite = \"Lax\" | \"None\" | \"Strict\";\r\n\r\nexport interface CookieOptions {\r\n expires?: number | Date;\r\n path?: string;\r\n domain?: string;\r\n secure?: boolean;\r\n sameSite?: SameSite;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SmartCookieService {\r\n private readonly documentIsAccessible: boolean;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n // Get the `PLATFORM_ID` so we can check if we're in a browser.\r\n @Inject(PLATFORM_ID) private platformId: any\r\n ) {\r\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\r\n }\r\n\r\n /**\r\n * Get cookie Regular Expression\r\n *\r\n * @param name Cookie name\r\n * @returns property RegExp\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n private static getCookieRegExp(name: string): RegExp {\r\n const escapedName: string = name.replace(/([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi, \"\\\\$1\");\r\n\r\n return new RegExp(\"(?:^\" + escapedName + \"|;\\\\s*\" + escapedName + \")=(.*?)(?:;|$)\", \"g\");\r\n }\r\n\r\n /**\r\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n *\r\n * @param encodedURIComponent A value representing an encoded URI component.\r\n *\r\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n private static safeDecodeURIComponent(encodedURIComponent: string): string {\r\n try {\r\n return decodeURIComponent(encodedURIComponent);\r\n } catch {\r\n // probably it is not uri encoded. return as is\r\n return encodedURIComponent;\r\n }\r\n }\r\n\r\n /**\r\n * Return `true` if {@link Document} is accessible, otherwise return `false`\r\n *\r\n * @param name Cookie name\r\n * @returns boolean - whether cookie with specified name exists\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n check(name: string): boolean {\r\n if (!this.documentIsAccessible) {\r\n return false;\r\n }\r\n name = encodeURIComponent(name);\r\n const regExp: RegExp = SmartCookieService.getCookieRegExp(name);\r\n return regExp.test(this.document.cookie);\r\n }\r\n\r\n /**\r\n * Get cookies by name\r\n *\r\n * @param name Cookie name\r\n * @returns property value\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n get(name: string): string {\r\n if (this.documentIsAccessible && this.check(name)) {\r\n name = encodeURIComponent(name);\r\n\r\n const regExp: RegExp = SmartCookieService.getCookieRegExp(name);\r\n const result: RegExpExecArray = regExp.exec(this.document.cookie)!;\r\n let results = result.input.split(\";\");\r\n\r\n let value: string | undefined;\r\n\r\n results.forEach((r: string) => {\r\n let values = r.split(`${name}=`);\r\n if (values[1] !== \"null\") {\r\n value = values[1];\r\n }\r\n });\r\n\r\n return value ?? \"\";\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n /**\r\n * Get all cookies in JSON format\r\n *\r\n * @returns all the cookies in json\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n getAll(): { [key: string]: string } {\r\n if (!this.documentIsAccessible) {\r\n return {};\r\n }\r\n\r\n const cookies: { [key: string]: string } = {};\r\n const document: any = this.document;\r\n\r\n if (document.cookie && document.cookie !== \"\") {\r\n document.cookie.split(\";\").forEach((currentCookie: any) => {\r\n const [cookieName, cookieValue] = currentCookie.split(\"=\");\r\n cookies[SmartCookieService.safeDecodeURIComponent(cookieName.replace(/^ /, \"\"))] =\r\n SmartCookieService.safeDecodeURIComponent(cookieValue);\r\n });\r\n }\r\n\r\n return cookies;\r\n }\r\n\r\n /**\r\n * Set cookie based on provided information\r\n *\r\n * @param name Cookie name\r\n * @param value Cookie value\r\n * @param expires Number of days until the cookies expires or an actual `Date`\r\n * @param path Cookie path\r\n * @param domain Cookie domain\r\n * @param secure Secure flag\r\n * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n set(\r\n name: string,\r\n value: string,\r\n expires?: CookieOptions[\"expires\"],\r\n path?: CookieOptions[\"path\"],\r\n domain?: CookieOptions[\"domain\"],\r\n secure?: CookieOptions[\"secure\"],\r\n sameSite?: SameSite\r\n ): void;\r\n\r\n /**\r\n * Set cookie based on provided information\r\n *\r\n * Cookie's parameters:\r\n * <pre>\r\n * expires Number of days until the cookies expires or an actual `Date`\r\n * path Cookie path\r\n * domain Cookie domain\r\n * secure Secure flag\r\n * sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\r\n * </pre>\r\n *\r\n * @param name Cookie name\r\n * @param value Cookie value\r\n * @param options Body with cookie's params\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n set(name: string, value: string, options?: CookieOptions): void;\r\n\r\n set(\r\n name: string,\r\n value: string,\r\n expiresOrOptions?: CookieOptions[\"expires\"] | CookieOptions,\r\n path?: CookieOptions[\"path\"],\r\n domain?: CookieOptions[\"domain\"],\r\n secure?: CookieOptions[\"secure\"],\r\n sameSite?: SameSite\r\n ): void {\r\n if (!this.documentIsAccessible) {\r\n return;\r\n }\r\n\r\n if (\r\n typeof expiresOrOptions === \"number\" ||\r\n expiresOrOptions instanceof Date ||\r\n path ||\r\n domain ||\r\n secure ||\r\n sameSite\r\n ) {\r\n const optionsBody = {\r\n expires: expiresOrOptions as CookieOptions[\"expires\"],\r\n path,\r\n domain,\r\n secure,\r\n sameSite: sameSite ? sameSite : \"Lax\",\r\n };\r\n\r\n this.set(name, value, optionsBody);\r\n return;\r\n }\r\n\r\n let cookieString: string = encodeURIComponent(name) + \"=\" + encodeURIComponent(value) + \";\";\r\n\r\n const options = expiresOrOptions ? expiresOrOptions : {};\r\n\r\n if (options.expires) {\r\n if (typeof options.expires === \"number\") {\r\n const dateExpires: Date = new Date(\r\n new Date().getTime() + options.expires * 1000 * 60 * 60 * 24\r\n );\r\n\r\n cookieString += \"expires=\" + dateExpires.toUTCString() + \";\";\r\n } else {\r\n cookieString += \"expires=\" + options.expires.toUTCString() + \";\";\r\n }\r\n }\r\n\r\n if (options.path) {\r\n cookieString += \"path=\" + options.path + \";\";\r\n } else {\r\n cookieString += \"path=/;\";\r\n }\r\n\r\n if (options.domain) {\r\n cookieString += \"domain=\" + options.domain + \";\";\r\n }\r\n\r\n if (options.secure === false && options.sameSite === \"None\") {\r\n options.secure = true;\r\n console.warn(\r\n `[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +\r\n `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`\r\n );\r\n }\r\n if (options.secure) {\r\n cookieString += \"secure;\";\r\n }\r\n\r\n if (!options.sameSite) {\r\n options.sameSite = \"Lax\";\r\n }\r\n cookieString += \"sameSite=\" + options.sameSite + \";\";\r\n this.document.cookie = cookieString;\r\n }\r\n\r\n /**\r\n * Delete cookie by name\r\n *\r\n * @param name Cookie name\r\n * @param path Cookie path\r\n * @param domain Cookie domain\r\n * @param secure Cookie secure flag\r\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n delete(\r\n name: string,\r\n path?: CookieOptions[\"path\"],\r\n domain?: CookieOptions[\"domain\"],\r\n secure?: CookieOptions[\"secure\"],\r\n sameSite: SameSite = \"Lax\"\r\n ): void {\r\n if (!this.documentIsAccessible) {\r\n return;\r\n }\r\n const expiresDate = new Date(\"Thu, 01 Jan 1970 00:00:01 GMT\");\r\n this.set(name, \"\", { expires: expiresDate, path, domain, secure, sameSite });\r\n }\r\n\r\n /**\r\n * Delete all cookies\r\n *\r\n * @param path Cookie path\r\n * @param domain Cookie domain\r\n * @param secure Is the Cookie secure\r\n * @param sameSite Is the cookie same site\r\n *\r\n * @author: Stepan Suvorov\r\n * @since: 1.0.0\r\n */\r\n deleteAll(\r\n path?: CookieOptions[\"path\"],\r\n domain?: CookieOptions[\"domain\"],\r\n secure?: CookieOptions[\"secure\"],\r\n sameSite: SameSite = \"Lax\"\r\n ): void {\r\n if (!this.documentIsAccessible) {\r\n return;\r\n }\r\n\r\n const cookies: any = this.getAll();\r\n\r\n for (const cookieName in cookies) {\r\n if (cookies.hasOwnProperty(cookieName)) {\r\n this.delete(cookieName, path, domain, secure, sameSite);\r\n }\r\n }\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n ApiError,\r\n AuthenticationProviderData,\r\n GetAuthenticationProvidersResponse,\r\n SessionInfoData,\r\n SessionService,\r\n} from './api';\r\nimport { SmartCookieService } from './cookie-service/smart-cookie.service';\r\nimport { SessionError, SmartSessionHandlerService } from './smart-session-handler.service';\r\nimport { SmartSubject } from '../smart-subject/projects';\r\n\r\nexport interface HeaderParam {\r\n headerName: string;\r\n value: string;\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartSessionService implements OnDestroy {\r\n private basePath?: string;\r\n private token?: string;\r\n private _sessionInfoData?: SessionInfoData;\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n public get sessionInfoData(): SessionInfoData | undefined {\r\n return this._sessionInfoData;\r\n }\r\n private set sessionInfoData(sessionInfoData: SessionInfoData | undefined) {\r\n let expiracyChanged = this.sessionInfoData?.expiration !== sessionInfoData?.expiration;\r\n\r\n this._sessionInfoData = sessionInfoData;\r\n\r\n if (expiracyChanged) {\r\n this.sessionExpiracyChanged.next();\r\n }\r\n }\r\n\r\n private providers?: Array<AuthenticationProviderData>;\r\n private cookieName?: string;\r\n public isAuthenticated: boolean = false;\r\n\r\n public authenticationStateChanged: Subject<boolean> = new SmartSubject(this._destroy$);\r\n\r\n public headerParams: Array<HeaderParam> = new Array();\r\n public headersUpdated: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n // Locale\r\n private localStorageLocaleName: string = 'locale';\r\n public localeChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n private initializeRunning: Subject<void> | undefined;\r\n\r\n public sessionExpiracyChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n private sessionHandlerService?: SmartSessionHandlerService;\r\n\r\n constructor(private apiService: SessionService, private cookieService: SmartCookieService) {}\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n public setSessionHandlerService(smartSessionHandlerService: SmartSessionHandlerService): void {\r\n this.sessionHandlerService = smartSessionHandlerService;\r\n }\r\n\r\n public async handleSessionError(sessionError: SessionError): Promise<void> {\r\n if (this.sessionHandlerService) {\r\n await this.sessionHandlerService.handleSessionError(sessionError);\r\n }\r\n throw new Error(`sessionHandlerService was not initialized. Error: ${sessionError.code}`);\r\n }\r\n\r\n public addHeaderParam(headerParam: HeaderParam): void {\r\n if (this.headerParams.find((h: HeaderParam) => h.headerName === headerParam.headerName)) {\r\n let index = this.headerParams.findIndex(\r\n (h: HeaderParam) => h.headerName === headerParam.headerName\r\n );\r\n this.headerParams[index!].value = headerParam.value;\r\n } else {\r\n this.headerParams.push(headerParam);\r\n }\r\n this.headersUpdated.next();\r\n }\r\n\r\n private setUpTokenForSessionService(): void {\r\n this.addHeaderParam({\r\n headerName: 'Authorization',\r\n value: `Bearer ${this.token!}`,\r\n });\r\n }\r\n\r\n public setUrl(url: string): void {\r\n this.basePath = url;\r\n }\r\n public getBasePath(): string {\r\n if (!this.basePath) {\r\n throw new Error('BasePath has not been set in SmartSessionService!');\r\n }\r\n return this.basePath;\r\n }\r\n\r\n public setCookieName(name: string): void {\r\n this.cookieName = name;\r\n }\r\n\r\n private saveTokenToLocalStorage(): void {\r\n if (this.sessionInfoData && this.cookieName) {\r\n localStorage.setItem('token', this.sessionInfoData.sid);\r\n if (\r\n this.sessionInfoData.refreshToken &&\r\n this.sessionInfoData.refreshToken !== localStorage.getItem('refreshToken')\r\n ) {\r\n localStorage.setItem('refreshToken', this.sessionInfoData.refreshToken);\r\n }\r\n this.cookieService.set(this.cookieName, this.token!);\r\n }\r\n }\r\n\r\n private setAuthenticationStatus(): void {\r\n if (this.sessionInfoData && this.sessionInfoData.authentications) {\r\n this.isAuthenticated = this.sessionInfoData.authentications.length > 0;\r\n }\r\n this.authenticationStateChanged.next(this.isAuthenticated);\r\n }\r\n\r\n private checkStatements(): void {\r\n if (!this.basePath) {\r\n throw new Error('The url of the backend api has not been set!');\r\n } else if (!this.cookieName) {\r\n throw new Error('The name of the cookie required by the backend has not been set!');\r\n }\r\n }\r\n\r\n public async initialize(): Promise<void> {\r\n if (this.initializeRunning) {\r\n return this.initializeRunning.toPromise();\r\n } else {\r\n this.initializeRunning = new SmartSubject(this._destroy$);\r\n try {\r\n this.checkStatements();\r\n\r\n let tokenFromLocalStorage = localStorage.getItem('token');\r\n let tokenFromCookies = this.cookieService.get(this.cookieName!);\r\n\r\n if (\r\n tokenFromLocalStorage &&\r\n tokenFromCookies &&\r\n tokenFromLocalStorage === tokenFromCookies\r\n ) {\r\n this.token = tokenFromLocalStorage;\r\n this.setUpTokenForSessionService();\r\n try {\r\n await this.getSession();\r\n } catch (err) {\r\n await this.startSession();\r\n }\r\n } else {\r\n await this.clearAndStartNewSession();\r\n }\r\n if (this.sessionInfoData && this.sessionInfoData.locale) {\r\n localStorage.setItem(this.localStorageLocaleName, this.sessionInfoData.locale);\r\n this.localeChanged.next();\r\n }\r\n } finally {\r\n this.initializeRunning.complete();\r\n this.initializeRunning = undefined;\r\n }\r\n }\r\n }\r\n\r\n private async startSession(): Promise<SessionInfoData> {\r\n let sessionInfo = await this.apiService.startSession().toPromise();\r\n if (sessionInfo) {\r\n this.sessionInfoData = sessionInfo;\r\n this.token = sessionInfo.sid;\r\n this.saveTokenToLocalStorage();\r\n this.setAuthenticationStatus();\r\n this.setUpTokenForSessionService();\r\n }\r\n\r\n return this.sessionInfoData!;\r\n }\r\n\r\n public async getSession(): Promise<SessionInfoData> {\r\n let sessionInfo = await this.apiService.getSession().toPromise();\r\n if (sessionInfo) {\r\n this.sessionInfoData = sessionInfo;\r\n this.token = sessionInfo.sid;\r\n this.saveTokenToLocalStorage();\r\n this.setAuthenticationStatus();\r\n }\r\n\r\n return this.sessionInfoData!;\r\n }\r\n\r\n public async refreshSession(): Promise<SessionInfoData> {\r\n let refreshToken = localStorage.getItem('refreshToken');\r\n if (!refreshToken) {\r\n return await this.startSession();\r\n }\r\n\r\n let sessionInfo = await this.apiService\r\n .refreshSession({\r\n refreshToken,\r\n })\r\n .toPromise()\r\n .catch(async (error: HttpErrorResponse) => {\r\n if (\r\n error.error &&\r\n (error.error as ApiError).code &&\r\n (error.error as ApiError).code === 'session.refreshtoken.invalid'\r\n ) {\r\n await this.startSession();\r\n }\r\n });\r\n\r\n if (sessionInfo) {\r\n this.sessionInfoData = sessionInfo;\r\n this.token = sessionInfo.sid;\r\n this.saveTokenToLocalStorage();\r\n this.setAuthenticationStatus();\r\n this.setUpTokenForSessionService();\r\n }\r\n\r\n return this.sessionInfoData!;\r\n }\r\n\r\n public async getAuthenticationProviders(): Promise<Array<AuthenticationProviderData>> {\r\n let providers: GetAuthenticationProvidersResponse | undefined = await this.apiService\r\n .getAuthenticationProviders()\r\n .toPromise();\r\n\r\n this.providers = providers?.authenticationProviders;\r\n\r\n return this.providers!;\r\n }\r\n\r\n public async getIsAuthenticated(): Promise<boolean> {\r\n if (this.sessionInfoData) {\r\n return this.isAuthenticated;\r\n }\r\n await this.getSession();\r\n return this.isAuthenticated;\r\n }\r\n\r\n public async clearAndStartNewSession(): Promise<void> {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.headerParams = [];\r\n this.cookieService.delete(this.cookieName!);\r\n\r\n await this.startSession();\r\n }\r\n\r\n public getLocale(): string {\r\n if (this.sessionInfoData && this.sessionInfoData.locale) {\r\n if (localStorage.getItem(this.localStorageLocaleName) !== this.sessionInfoData.locale) {\r\n localStorage.setItem(this.localStorageLocaleName, this.sessionInfoData.locale);\r\n }\r\n return this.sessionInfoData.locale;\r\n }\r\n throw new Error('There is no SessionInfoData or locale is undefined.');\r\n }\r\n\r\n public async changeLocale(locale: string): Promise<void> {\r\n this.sessionInfoData = await this.apiService.setLocale(locale).toPromise();\r\n if (this.sessionInfoData && this.sessionInfoData.locale) {\r\n localStorage.setItem(this.localStorageLocaleName, this.sessionInfoData.locale);\r\n this.localeChanged.next();\r\n }\r\n }\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Override the default method for encoding path parameters in various\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam?: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Encoding of various path parameter\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.encodeParam) {\n this.encodeParam = configurationParameters.encodeParam;\n }\n else {\n this.encodeParam = param => this.defaultEncodeParam(param);\n }\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n\n private defaultEncodeParam(param: Param): string {\n // This implementation exists as fallback for missing configuration\n // and for backwards compatibility to older typescript-angular generator versions.\n // It only works for the 'simple' parameter style.\n // Date-handling only works for the 'date-time' format.\n // All other styles and Date-formats are probably handled incorrectly.\n //\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\n ? (param.value as Date).toISOString()\n : param.value;\n\n return encodeURIComponent(String(value));\n }\n}\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { ComponentModel } from '../model/componentModel';\n// @ts-ignore\nimport { DataChange } from '../model/dataChange';\n// @ts-ignore\nimport { MessageResult } from '../model/messageResult';\n// @ts-ignore\nimport { UiActionRequest } from '../model/uiActionRequest';\n// @ts-ignore\nimport { ViewConstraint } from '../model/viewConstraint';\n// @ts-ignore\nimport { ViewContextChange } from '../model/viewContextChange';\n// @ts-ignore\nimport { ViewContextData } from '../model/viewContextData';\n// @ts-ignore\nimport { ViewContextUpdate } from '../model/viewContextUpdate';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Creates a new ViewContext\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createViewContext(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextData>;\n public createViewContext(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextData>>;\n public createViewContext(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextData>>;\n public createViewContext(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/context`;\n return this.httpClient.request<ViewContextData>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Notification of a data change event.. \n * @param uuid \n * @param dataChange \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public dataChanged(uuid: string, dataChange: DataChange, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public dataChanged(uuid: string, dataChange: DataChange, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public dataChanged(uuid: string, dataChange: DataChange, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public dataChanged(uuid: string, dataChange: DataChange, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling dataChanged.');\n }\n if (dataChange === null || dataChange === undefined) {\n throw new Error('Required parameter dataChange was null or undefined when calling dataChanged.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/data`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: dataChange,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param uuid \n * @param item \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public downloadItem(uuid: string, item: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<Blob>;\n public downloadItem(uuid: string, item: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpResponse<Blob>>;\n public downloadItem(uuid: string, item: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpEvent<Blob>>;\n public downloadItem(uuid: string, item: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling downloadItem.');\n }\n if (item === null || item === undefined) {\n throw new Error('Required parameter item was null or undefined when calling downloadItem.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/octet-stream'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/download/${this.configuration.encodeParam({name: \"item\", value: item, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param uuid \n * @param item \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public downloadItemDeprecated(uuid: string, item: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<Blob>;\n public downloadItemDeprecated(uuid: string, item: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpResponse<Blob>>;\n public downloadItemDeprecated(uuid: string, item: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpEvent<Blob>>;\n public downloadItemDeprecated(uuid: string, item: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling downloadItemDeprecated.');\n }\n if (item === null || item === undefined) {\n throw new Error('Required parameter item was null or undefined when calling downloadItemDeprecated.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/octet-stream'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let localVarPath = `/view/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/download/${this.configuration.encodeParam({name: \"item\", value: item, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns component\\'s model.\n * @param uuid Component\\'s unique identifier.\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getComponentModel(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ComponentModel>;\n public getComponentModel(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ComponentModel>>;\n public getComponentModel(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ComponentModel>>;\n public getComponentModel(uuid: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling getComponentModel.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}`;\n return this.httpClient.request<ComponentModel>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns component\\'s model in a ViewContextChange.\n * @param uuid Component\\'s unique identifier.\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getComponentModel2(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public getComponentModel2(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public getComponentModel2(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public getComponentModel2(uuid: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling getComponentModel2.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/load`;\n return this.httpClient.request<ViewContextChange>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns the view constraint object belongs to the given view\n * @param uuid View\\'s unique identifier.\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getViewConstraint(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewConstraint>;\n public getViewConstraint(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewConstraint>>;\n public getViewConstraint(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewConstraint>>;\n public getViewConstraint(uuid: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling getViewConstraint.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/view/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/constraint`;\n return this.httpClient.request<ViewConstraint>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns the existing session info\n * @param uuid ViewContext\\'s unique identifier.\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getViewContext(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextData>;\n public getViewContext(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextData>>;\n public getViewContext(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextData>>;\n public getViewContext(uuid: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling getViewContext.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/context/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}`;\n return this.httpClient.request<ViewContextData>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param viewUuid View UUID.\n * @param messageUuid Message UUID.\n * @param messageResult \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (viewUuid === null || viewUuid === undefined) {\n throw new Error('Required parameter viewUuid was null or undefined when calling message.');\n }\n if (messageUuid === null || messageUuid === undefined) {\n throw new Error('Required parameter messageUuid was null or undefined when calling message.');\n }\n if (messageResult === null || messageResult === undefined) {\n throw new Error('Required parameter messageResult was null or undefined when calling message.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/message/${this.configuration.encodeParam({name: \"viewUuid\", value: viewUuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"messageUuid\", value: messageUuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: messageResult,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Performs a generic UI action. \n * @param uuid \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public performAction(uuid: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public performAction(uuid: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public performAction(uuid: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public performAction(uuid: string, body: UiActionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling performAction.');\n }\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling performAction.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/action`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: body,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Performs a widget UI action. \n * @param uuid \n * @param widgetId \n * @param nodeId \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling performWidgetAction.');\n }\n if (widgetId === null || widgetId === undefined) {\n throw new Error('Required parameter widgetId was null or undefined when calling performWidgetAction.');\n }\n if (nodeId === null || nodeId === undefined) {\n throw new Error('Required parameter nodeId was null or undefined when calling performWidgetAction.');\n }\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling performWidgetAction.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"widgetId\", value: widgetId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/${this.configuration.encodeParam({name: \"nodeId\", value: nodeId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/action`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: body,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Performs a widget UI action. \n * @param uuid \n * @param widgetId \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling performWidgetMainAction.');\n }\n if (widgetId === null || widgetId === undefined) {\n throw new Error('Required parameter widgetId was null or undefined when calling performWidgetMainAction.');\n }\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling performWidgetMainAction.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"widgetId\", value: widgetId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/action`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: body,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param channel Smartlink\\'s channel.\n * @param uuid Smartlink\\'s unique identifier\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public showPublishedView(channel: string, uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n public showPublishedView(channel: string, uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n public showPublishedView(channel: string, uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n public showPublishedView(channel: string, uuid: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n if (channel === null || channel === undefined) {\n throw new Error('Required parameter channel was null or undefined when calling showPublishedView.');\n }\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling showPublishedView.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/smartlink/${this.configuration.encodeParam({name: \"channel\", value: channel, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}`;\n return this.httpClient.request<any>('put', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Updates an existing ViewContext\n * @param viewContextUpdate \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextData>;\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextData>>;\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextData>>;\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (viewContextUpdate === null || viewContextUpdate === undefined) {\n throw new Error('Required parameter viewContextUpdate was null or undefined when calling updateViewContext.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/context`;\n return this.httpClient.request<ViewContextData>('put', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: viewContextUpdate,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Performs an upload UI action. \n * @param uuid \n * @param uiActionRequest Stringify-d UiActionRequest.\n * @param param Parameter name to use when converting uploaded file to BinaryData.\n * @param content \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling uploadAction.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let localVarFormParams: { append(param: string, value: any): any; };\n let localVarUseForm = false;\n let localVarConvertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n localVarUseForm = canConsumeForm;\n if (localVarUseForm) {\n localVarFormParams = new FormData();\n } else {\n localVarFormParams = new HttpParams({encoder: this.encoder});\n }\n\n if (uiActionRequest !== undefined) {\n localVarFormParams = localVarFormParams.append('uiActionRequest', <any>uiActionRequest) as any || localVarFormParams;\n }\n if (param !== undefined) {\n localVarFormParams = localVarFormParams.append('param', <any>param) as any || localVarFormParams;\n }\n if (content !== undefined) {\n localVarFormParams = localVarFormParams.append('content', <any>content) as any || localVarFormParams;\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/upload`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Performs a generic UI action. \n * @param uuid \n * @param uiActionRequest Stringify-d UiActionRequest.\n * @param param Parameter name to use when converting uploaded file to BinaryData.\n * @param contents \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadMultipleAction(uuid: string, uiActionRequest?: string, param?: string, contents?: Array<Blob>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public uploadMultipleAction(uuid: string, uiActionRequest?: string, param?: string, contents?: Array<Blob>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public uploadMultipleAction(uuid: string, uiActionRequest?: string, param?: string, contents?: Array<Blob>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public uploadMultipleAction(uuid: string, uiActionRequest?: string, param?: string, contents?: Array<Blob>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling uploadMultipleAction.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let localVarFormParams: { append(param: string, value: any): any; };\n let localVarUseForm = false;\n let localVarConvertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n localVarUseForm = canConsumeForm;\n if (localVarUseForm) {\n localVarFormParams = new FormData();\n } else {\n localVarFormParams = new HttpParams({encoder: this.encoder});\n }\n\n if (uiActionRequest !== undefined) {\n localVarFormParams = localVarFormParams.append('uiActionRequest', <any>uiActionRequest) as any || localVarFormParams;\n }\n if (param !== undefined) {\n localVarFormParams = localVarFormParams.append('param', <any>param) as any || localVarFormParams;\n }\n if (contents) {\n if (localVarUseForm) {\n contents.forEach((element) => {\n localVarFormParams = localVarFormParams.append('contents', <any>element) as any || localVarFormParams;\n })\n } else {\n localVarFormParams = localVarFormParams.append('contents', [...contents].join(COLLECTION_FORMATS['csv'])) as any || localVarFormParams;\n }\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/uploadMultiple`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './view.service';\nimport { ViewService } from './view.service';\nexport const APIS = [ViewService];\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum CloseResult {\n APPROVED = 'approved',\n PENDING = 'pending',\n REJECTED = 'rejected'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Defines the kind of the source of this event.. \n */\nexport enum DataChangeKind {\n WIDGET = 'WIDGET',\n SELECTION = 'SELECTION',\n LOOKUP = 'LOOKUP'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Defines the position of an icon related to the button\\'s label. \n */\nexport enum IconPosition {\n PRE = 'PRE',\n POST = 'POST'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { UiActionTooltip } from './uiActionTooltip';\nimport { Style } from './style';\n\n\nexport interface ImageResource { \n kind?: ImageResourceKindEnum;\n source?: string;\n identifier?: string;\n color?: string;\n style?: Style;\n tooltip?: UiActionTooltip;\n}\nexport enum ImageResourceKindEnum {\n FE = 'FE',\n BE = 'BE',\n URL = 'URL'\n};\n\n\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * An anchor with a href representing a hyperlink object, which the client will open. For possible attributes see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \n */\nexport interface Link { \n /**\n * The URL that this link points to. It will be anchor\\'s href attribute\\'s value.\n */\n url: string;\n /**\n * Specifies if created anchor should contain download attribute.\n */\n download?: boolean;\n /**\n * Used only when download is true, it will download attribute\\'s value\n */\n filename?: string;\n target?: LinkTargetEnum;\n}\nexport enum LinkTargetEnum {\n SELF = 'SELF',\n BLANK = 'BLANK',\n PARENT = 'PARENT',\n TOP = 'TOP'\n};\n\n\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum MessageOptionType {\n CONFIRM = 'confirm',\n REJECT = 'reject',\n CANCEL = 'cancel'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum MessageTextType {\n PLAIN = 'plain',\n HTML = 'html'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum MessageType {\n INFO = 'info',\n QUESTION = 'question',\n WARNING = 'warning',\n ERROR = 'error'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ServerRequestType {\n ACTION = 'ACTION',\n WIDGET_ACTION = 'WIDGET_ACTION',\n CREATE_VIEW_CONTEXT = 'CREATE_VIEW_CONTEXT',\n UPDATE_VIEW_CONTEXT = 'UPDATE_VIEW_CONTEXT',\n GET_VIEW_CONTEXT = 'GET_VIEW_CONTEXT',\n HANDLE_MESSAGE_RESULT = 'HANDLE_MESSAGE_RESULT',\n SHOW_SMARTLINK = 'SHOW_SMARTLINK',\n DOWNLOAD = 'DOWNLOAD',\n GET_COMPONENT_MODEL = 'GET_COMPONENT_MODEL'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Defines the type of the button. \n */\nexport enum UiActionButtonType {\n NORMAL = 'NORMAL',\n FLAT = 'FLAT',\n STROKED = 'STROKED',\n RAISED = 'RAISED',\n ICON = 'ICON',\n MINI_FAB = 'MINI_FAB',\n FAB = 'FAB',\n SEPARATOR = 'SEPARATOR',\n SUBMENU = 'SUBMENU'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Defines the possible feedback types which are shown if a UiAction was completed. \n */\nexport enum UiActionFeedbackType {\n NONE = 'NONE',\n SNACKBAR = 'SNACKBAR'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum UiActionInputType {\n NONE = 'none',\n TEXTFIELD = 'textfield',\n TEXTAREA = 'textarea',\n USER_SELECT = 'user_select',\n FILE = 'file',\n MULTIPLE_FILES = 'multiple_files'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UiActionTooltip { \n tooltip?: string;\n tooltipPosition?: UiActionTooltipTooltipPositionEnum;\n tooltipDelay?: number;\n tooltipHideDelay?: number;\n}\nexport enum UiActionTooltipTooltipPositionEnum {\n AFTER = 'AFTER',\n BEFORE = 'BEFORE',\n ABOVE = 'ABOVE',\n BELOW = 'BELOW',\n LEFT = 'LEFT',\n RIGHT = 'RIGHT'\n};\n\n\n\n","/**\r\n * View API\r\n * View API\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * An event handler is a special callback function to call when the given event is occurred. So the event handler can be an action as is or can be fired on a before or after event\r\n */\r\nexport interface ViewEventHandler {\r\n /**\r\n * The event handler path defines the location of the event. We can use regular expressions to fine tune the event definition. In this way we can add before event handler for all the actions we have. The actions will have a predefined path. The path of the normal actions is the action code itself.\r\n */\r\n path?: Array<string>;\r\n viewEventType?: ViewEventHandlerViewEventTypeEnum;\r\n /**\r\n * This is the method to call when the event occurs. It\\'s signature is the same as the event which it specifies, like ActionHandler or WidgetActionHandler.\r\n */\r\n invocationRequest?: any;\r\n}\r\nexport enum ViewEventHandlerViewEventTypeEnum {\r\n BEFORE = 'before',\r\n INSTEAD = 'instead',\r\n AFTER = 'after',\r\n}\r\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ViewState {\n OPEN_PENDING = 'open_pending',\n TO_OPEN = 'to_open',\n OPENED = 'opened',\n CLOSE_PENDING = 'close_pending',\n CLOSE_APPROVED = 'close_approved',\n TO_CLOSE = 'to_close',\n CLOSED = 'closed'\n}\n\n","/**\n * View API\n * View API\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ViewType {\n NORMAL = 'normal',\n DIALOG = 'dialog',\n EMBEDDED = 'embedded'\n}\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MessageData, MessageOption, MessageOptionType, MessageTextType } from '../api';\r\nimport { SmartViewContextService } from '../smart-view-context.service';\r\n\r\n@Component({\r\n selector: 'app-message-dialog',\r\n templateUrl: './message-dialog.component.html',\r\n styleUrls: ['./message-dialog.component.css'],\r\n})\r\nexport class MessageDialogComponent implements OnInit, OnDestroy {\r\n messageData!: MessageData;\r\n\r\n constructor(private viewContext: SmartViewContextService) {}\r\n ngOnInit(): void {\r\n this.getMessageData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!this.messageData.options || !this.messageData.options.length) {\r\n this.viewContext.message(this.messageData, {\r\n selectedOption: {\r\n code: MessageOptionType.CANCEL,\r\n label: '',\r\n },\r\n });\r\n }\r\n }\r\n\r\n async getMessageData(): Promise<void> {\r\n let messageDialogName = this.viewContext.messageDialogname;\r\n let viewData = await this.viewContext.getViewContextDataByPageName(messageDialogName!);\r\n this.messageData = viewData.message!;\r\n }\r\n\r\n getColor(option: MessageOption): string {\r\n switch (option.type) {\r\n case MessageOptionType.CANCEL:\r\n return 'accent';\r\n case MessageOptionType.CONFIRM:\r\n return 'primary';\r\n case MessageOptionType.REJECT:\r\n return 'warn';\r\n default:\r\n return 'accent';\r\n }\r\n }\r\n\r\n getType(option: MessageOption): string {\r\n switch (option.type) {\r\n case MessageOptionType.CONFIRM:\r\n case MessageOptionType.REJECT:\r\n return 'mat-raised-button';\r\n default:\r\n return 'mat-button';\r\n }\r\n }\r\n\r\n onClick(selectedOption: MessageOption): void {\r\n this.viewContext.message(this.messageData, {\r\n selectedOption,\r\n });\r\n }\r\n\r\n isHtmlText(): boolean {\r\n return this.messageData.textType === MessageTextType.HTML;\r\n }\r\n}\r\n","<div class=\"taskDialogContainer\" *ngIf=\"messageData\">\r\n <h2 class=\"{{ messageData.type }}\">\r\n {{ messageData.header }}\r\n </h2>\r\n <p *ngIf=\"!isHtmlText()\" class=\"{{ messageData.type }}\">{{ messageData.text }}</p>\r\n <div *ngIf=\"isHtmlText()\" [innerHTML]=\"messageData.text\"></div>\r\n <div class=\"buttonsContainer\">\r\n <button\r\n *ngFor=\"let option of messageData.options\"\r\n mat-button\r\n class=\"taskDialogButton\"\r\n [ngClass]=\"getType(option)\"\r\n color=\"{{ getColor(option) }}\"\r\n (click)=\"onClick(option)\"\r\n >\r\n <mat-icon *ngIf=\"option.icon\">\r\n {{ option.icon }}\r\n </mat-icon>\r\n {{ option.label }}\r\n </button>\r\n </div>\r\n</div>\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n ActivatedRoute,\r\n NavigationExtras,\r\n Params,\r\n QueryParamsHandling,\r\n Router,\r\n UrlSegment,\r\n} from \"@angular/router\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SmartNavigation } from \"./smart-navigation.interface\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SmartNavigationService implements SmartNavigation {\r\n route?: ActivatedRoute;\r\n\r\n constructor(private router: Router) {}\r\n urlSubscription?: Subscription;\r\n querySubscription?: Subscription;\r\n\r\n navigateTo(\r\n urls: string[],\r\n queryParams?: Params | undefined,\r\n queryParamsHandling?: QueryParamsHandling | undefined,\r\n relativeToThis?: boolean\r\n ): void {\r\n let navigationExtras: NavigationExtras = {\r\n queryParams,\r\n queryParamsHandling,\r\n relativeTo: relativeToThis ? this.route : undefined,\r\n };\r\n this.router.navigate(urls, navigationExtras);\r\n }\r\n\r\n subscribeToUrlChange(callback: (url: string) => void): Subscription {\r\n if (this.route) {\r\n return this.route.url.subscribe((urlSegments: UrlSegment[]) => {\r\n let url = this.getCurrentPath();\r\n if (callback) {\r\n callback(url);\r\n }\r\n });\r\n } else {\r\n throw new Error(\"The route: ActivatedRoute has not been set yet.\");\r\n }\r\n }\r\n\r\n subscribeToQueryChange(callback: (params: Params) => void): void {\r\n if (this.route) {\r\n this.querySubscription = this.route.queryParams.subscribe((params: Params) => {\r\n callback(params);\r\n });\r\n } else {\r\n throw new Error(\"The route: ActivatedRoute has not been set yet.\");\r\n }\r\n }\r\n\r\n unsubscribeFromQueryChanges(): void {\r\n if (this.querySubscription) {\r\n this.querySubscription.unsubscribe();\r\n }\r\n }\r\n\r\n getCurrentPath(): string {\r\n return this.router.url;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { SmartNavigationService } from \"./smart-navigation.service\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n exports: [],\r\n providers: [SmartNavigationService],\r\n})\r\nexport class SmartNavigationModule {}\r\n","/*\r\n * Public API Surface of smart-navigation\r\n */\r\n\r\nexport * from './smart-navigation.service';\r\nexport * from './smart-navigation.module';\r\n","import { ComponentType } from '@angular/cdk/portal';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData } from '../smart-dialog/smartdialog.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartViewContextDialogService {\r\n private constructor(protected dialog: MatDialog, protected router: Router) {}\r\n\r\n createDialog(\r\n smartDialog: SmartDialogData,\r\n component: ComponentType<any>\r\n ): MatDialogRef<any, any> {\r\n let dialogData = smartDialog;\r\n\r\n let dialogRef = this.dialog.open(component, { data: dialogData });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.closeDialog(dialogRef, dialogData);\r\n });\r\n return dialogRef;\r\n }\r\n\r\n createDialogRef(\r\n smartDialog: SmartDialogData,\r\n component: ComponentType<any>\r\n ): MatDialogRef<any, any> {\r\n const dialogRef = this.dialog.open(component, { data: smartDialog });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n dialogRef.close();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n openComponentAsDialog(component: ComponentType<any>, viewName: string): MatDialogRef<any, any> {\r\n let smartDialog: SmartDialogData = {\r\n size: {},\r\n content: {\r\n title: viewName,\r\n },\r\n customComponent: component,\r\n };\r\n\r\n return this.createDialog(smartDialog, component);\r\n }\r\n\r\n async closeDialog(dialogRef: MatDialogRef<any, any>, dialogData: SmartDialogData): Promise<void> {\r\n if (dialogData?.outlets) {\r\n await this.router.navigate([\r\n {\r\n outlets: dialogData.outlets,\r\n },\r\n ]);\r\n }\r\n dialogRef?.close();\r\n }\r\n}\r\n","import { Injectable, InjectionToken, Injector, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSessionService } from '../session/smart-session.service';\r\nimport {\r\n ClipboardData,\r\n ComponentModel,\r\n ComponentModelChange,\r\n DataChange,\r\n DownloadedFile,\r\n Link,\r\n LinkTargetEnum,\r\n MessageData,\r\n MessageResult,\r\n UiActionDescriptor,\r\n UiActionRequest,\r\n ViewConstraint,\r\n ViewContextChange,\r\n ViewContextData,\r\n ViewContextUpdate,\r\n ViewData,\r\n ViewService,\r\n ViewState,\r\n ViewStateUpdate,\r\n ViewType,\r\n} from './api';\r\nimport { MessageDialogComponent } from './message-dialog/message-dialog.component';\r\nimport {\r\n SmartTranslateService,\r\n SmartViewContextApiError,\r\n SmartViewContextApiErrors,\r\n SmartViewDialogRef,\r\n SmartViewHandlerModel,\r\n} from './smart-view-context.model';\r\nimport { SmartSubject } from '../smart-subject/projects';\r\nimport { SmartNavigationService } from '../smart-navigation/projects';\r\nimport { SmartViewContextDialogService } from './smart-view-context-dialog.service';\r\n\r\nexport const SmartViewContextErrorDialogButtonLabel = 'SmartViewContextErrorDialogButtonLabel';\r\nexport const SmartViewContextErrorDialogTitle = 'SmartViewContextErrorDialogTitle';\r\nexport const SmartViewContextErrorDialogMessage = 'SmartViewContextErrorDialogMessage';\r\nexport const DefaultUiActionCode_CLOSE = 'DEFAULT_CLOSE';\r\n\r\nexport const DIALOG_DISABLE_CLOSE = new InjectionToken<boolean>('dialogDisableClose');\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartViewContextService implements OnDestroy {\r\n private readonly viewContextUuidName: string = 'viewContextUuid';\r\n private readonly viewContextUuidHeaderName: string = 'viewContextUuid';\r\n private readonly pageNamePrefix: string = 'page.';\r\n private readonly componentNamePrefix: string = 'component.';\r\n public messageDialogname: string | undefined;\r\n private url?: string;\r\n private viewContext?: ViewContextData;\r\n private viewHandlers: Array<SmartViewHandlerModel> = new Array();\r\n private openedViewUuids: Array<string> = new Array();\r\n private openedViewData: Array<ViewData> = new Array();\r\n\r\n private _destroy$: Subject<void> = new Subject();\r\n public uuidOfPageHasBeenChanged: Subject<string> = new SmartSubject(this._destroy$);\r\n public viewContextHasBeenSynced: Subject<void> = new SmartSubject(this._destroy$);\r\n private initializeRunning: Subject<ViewContextData> | undefined;\r\n\r\n public smartViewContextApiErrors?: SmartViewContextApiErrors;\r\n\r\n public openSmartLink: Subject<void> = new SmartSubject(this._destroy$);\r\n public isOpeningSmartLink: boolean = false;\r\n\r\n private dialogRefs: SmartViewDialogRef[] = [];\r\n\r\n private actionDescriptors?: Map<string, UiActionDescriptor>;\r\n\r\n public commonFeedbackText?: string;\r\n\r\n public smartApiClients: Map<string, SmartSubject<any>> = new Map();\r\n\r\n public set translateService(translateService: SmartTranslateService | undefined) {\r\n this._translateService = translateService;\r\n this.translateServiceChanged.next();\r\n this.translateServiceChanged.complete();\r\n }\r\n\r\n public get translateService(): SmartTranslateService | undefined {\r\n if (this._translateService) {\r\n return this._translateService;\r\n }\r\n return undefined;\r\n }\r\n\r\n private _translateService?: SmartTranslateService;\r\n public translateServiceChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n constructor(\r\n private view: ViewService,\r\n private session: SmartSessionService,\r\n private navigation: SmartNavigationService,\r\n private dialog: SmartViewContextDialogService,\r\n private apiQueueService: ApiQueueService,\r\n private inject: Injector\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n public follow(uuid: string, detectChange: SmartSubject<any>): void {\r\n this.smartApiClients.set(uuid, detectChange);\r\n }\r\n public unfollow(uuid: string): void {\r\n this.smartApiClients.delete(uuid);\r\n }\r\n\r\n public setActionDescriptors(actionDescriptors: Map<string, UiActionDescriptor>): void {\r\n this.actionDescriptors = actionDescriptors;\r\n }\r\n\r\n public getActionDescriptors(): Map<string, UiActionDescriptor> | undefined {\r\n if (!this.actionDescriptors) {\r\n console.error('No action descriptors has been set to ViewContext.');\r\n }\r\n return this.actionDescriptors;\r\n }\r\n\r\n public setViewHandlers(viewHandlers: Array<SmartViewHandlerModel>): void {\r\n this.viewHandlers = viewHandlers;\r\n }\r\n\r\n public setViewApiErrors(viewApiErrors: SmartViewContextApiErrors): void {\r\n this.smartViewContextApiErrors = viewApiErrors;\r\n }\r\n\r\n public setMessageDialogName(messageDialogName: string): void {\r\n this.messageDialogname = messageDialogName;\r\n this.viewHandlers.push({\r\n name: messageDialogName,\r\n component: MessageDialogComponent,\r\n });\r\n }\r\n\r\n private setUpUrlForViewService(): void {\r\n this.view.configuration.basePath = this.url;\r\n }\r\n\r\n public setUrl(url: string): void {\r\n this.url = url + '/view';\r\n this.setUpUrlForViewService();\r\n }\r\n\r\n public async getAndSyncViewContext(uuid?: string): Promise<void> {\r\n if (!uuid) {\r\n uuid = this.getViewContextUuid();\r\n }\r\n await this.getViewContext(uuid).then(() => {\r\n this.syncView();\r\n });\r\n }\r\n\r\n public async getViewContext(uuid: string): Promise<ViewContextData> {\r\n this.viewContext = await this.view.getViewContext(uuid).toPromise();\r\n if (!this.viewContext) {\r\n throw new Error('ViewContext does not exist with the given uuid.');\r\n }\r\n return this.viewContext;\r\n }\r\n\r\n public async getViewContextDataByPageName(pageName: string): Promise<ViewData> {\r\n if (!this.viewContext) {\r\n await this.getViewContext(this.getViewContextUuid());\r\n }\r\n let pageUuid = this.getUuidOfPage(pageName);\r\n\r\n let viewContextByPageName = this.viewContext?.views.find((view) => view.uuid === pageUuid);\r\n if (!viewContextByPageName) {\r\n throw new Error(`The ViewData of ${pageName} is not found!`);\r\n }\r\n return viewContextByPageName;\r\n }\r\n\r\n public async updateViewContext(\r\n viewContextUpdate: ViewContextUpdate\r\n ): Promise<ViewContextData | undefined> {\r\n this.viewContext = await this.view.updateViewContext(viewContextUpdate).toPromise();\r\n\r\n return this.viewContext;\r\n }\r\n\r\n private clearSessionStorage(): void {\r\n sessionStorage.clear();\r\n this.openedViewData = [];\r\n this.openedViewUuids = [];\r\n }\r\n\r\n public async startViewContext(): Promise<ViewContextData> {\r\n this.clearSessionStorage();\r\n\r\n let newViewContext: ViewContextData | undefined = await this.view\r\n .createViewContext()\r\n .toPromise();\r\n if (!newViewContext) {\r\n throw new Error('No ViewContext was created');\r\n }\r\n this.viewContext = newViewContext;\r\n this.setViewContextUuid(newViewContext.uuid!);\r\n\r\n return this.viewContext;\r\n }\r\n\r\n public async initialize(uuid?: string): Promise<ViewContextData | undefined> {\r\n if (this.initializeRunning) {\r\n return this.initializeRunning.toPromise();\r\n } else {\r\n this.initializeRunning = new SmartSubject(this._destroy$);\r\n try {\r\n if (this.viewHandlers.length === 0) {\r\n throw new Error(\r\n \"There aren't any viewHandlers in SmartViewContextService! Provide some to use its functions.\"\r\n );\r\n }\r\n if (!this.messageDialogname) {\r\n throw new Error('The messageDialogName provided by the backend has not been set.');\r\n }\r\n if (uuid) {\r\n this.setViewContextUuid(uuid);\r\n try {\r\n await this.getViewContext(uuid);\r\n } catch (err) {\r\n await this.startViewContext();\r\n }\r\n } else {\r\n await this.startViewContext();\r\n }\r\n\r\n return this.viewContext!;\r\n } finally {\r\n this.initializeRunning.next(this.viewContext!);\r\n this.initializeRunning.complete();\r\n this.initializeRunning = undefined;\r\n }\r\n }\r\n }\r\n\r\n public openView(view: ViewData): ViewStateUpdate | undefined {\r\n let alreadyOpened = this.openedViewUuids.some((uuid) => uuid === view.uuid);\r\n if (alreadyOpened) return undefined;\r\n\r\n let viewHandler: SmartViewHandlerModel | undefined = this.viewHandlers.find(\r\n (handler) => handler.name === view.viewName\r\n );\r\n\r\n if (!viewHandler) {\r\n throw new Error(`SmartViewHandlerModel was not found by view name: ${view.viewName}`);\r\n }\r\n if (view.type === ViewType.DIALOG) {\r\n if (!viewHandler.component) {\r\n throw new Error(\r\n `Component is undefined in SmartViewHandlerModel with name: ${view.viewName}`\r\n );\r\n }\r\n let refIsAlradyAdded = this.dialogRefs.some(\r\n (ref: SmartViewDialogRef) => ref.uuid === view.uuid\r\n );\r\n if (!refIsAlradyAdded) {\r\n let dialogRef;\r\n try {\r\n this.openedViewUuids.push(view.uuid);\r\n this.openedViewData.push(view);\r\n this.setUuidOfPage(view.viewName, view.uuid, viewHandler.componentName);\r\n dialogRef = this.dialog.openComponentAsDialog(viewHandler.component, viewHandler.name);\r\n } finally {\r\n const index = this.openedViewUuids.indexOf(view.uuid);\r\n if (index >= 0) {\r\n this.openedViewUuids.splice(index, 1);\r\n this.openedViewData.splice(index, 1);\r\n this.clearUuidOfPage(view.viewName, viewHandler.componentName);\r\n }\r\n\r\n this.setUuidOfPage(view.viewName, view.uuid, viewHandler.componentName);\r\n }\r\n let dialogDisableClose = true;\r\n let isMessageDialog = view.viewName === this.messageDialogname;\r\n if (!isMessageDialog) {\r\n try {\r\n dialogDisableClose = this.inject.get(DIALOG_DISABLE_CLOSE);\r\n } catch {\r\n console.error('Error during reading DIALOG_DISABLE_CLOSE');\r\n }\r\n }\r\n\r\n dialogRef.disableClose = dialogDisableClose;\r\n // if (isMessageDialog) {\r\n // if (view.message?.options && view.message.options.length) {\r\n // }\r\n // }\r\n if (!dialogDisableClose) {\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(() => {\r\n this.performAction(view.uuid, { code: DefaultUiActionCode_CLOSE, params: {} });\r\n });\r\n }\r\n\r\n this.dialogRefs.push({\r\n uuid: view.uuid,\r\n dialogRef,\r\n });\r\n }\r\n } else if (view.type === ViewType.NORMAL) {\r\n if (viewHandler.route === undefined) {\r\n throw new Error(`Route is undefined in SmartViewHandlerModel with name: ${view.viewName}`);\r\n }\r\n this.navigation.navigateTo(viewHandler.route.split('/'));\r\n } else {\r\n throw new Error('The type of the view and its viewHandler is not the same!');\r\n }\r\n\r\n view.state = ViewState.OPENED;\r\n\r\n this.openedViewUuids.push(view.uuid);\r\n this.openedViewData.push(view);\r\n\r\n this.setUuidOfPage(view.viewName, view.uuid, viewHandler.componentName);\r\n this.uuidOfPageHasBeenChanged.next(view.viewName);\r\n\r\n return {\r\n state: ViewState.OPENED,\r\n uuid: view.uuid,\r\n };\r\n }\r\n\r\n public closeView(view: ViewData): ViewStateUpdate {\r\n let viewHandler: SmartViewHandlerModel | undefined = this.viewHandlers.find(\r\n (handler) => handler.name === view.viewName\r\n );\r\n\r\n if (!viewHandler) {\r\n throw new Error(`SmartViewHandlerModel was not found by view name: ${view.viewName}`);\r\n }\r\n\r\n if (view.type === ViewType.DIALOG) {\r\n let dialogRef = this.dialogRefs.find(\r\n (dialogRef: SmartViewDialogRef) => dialogRef.uuid === view.uuid\r\n );\r\n if (dialogRef) {\r\n dialogRef.dialogRef.close();\r\n let index = this.dialogRefs.indexOf(dialogRef);\r\n this.dialogRefs.splice(index, 1);\r\n } else {\r\n console.log('DialogRef is not found by uuid.');\r\n }\r\n } else if (view.type === ViewType.NORMAL) {\r\n // TODO: close normal page???\r\n // this.navigation.navigateTo(viewHandler.route.split(\"/\"));\r\n } else {\r\n throw new Error('The type of the view and its viewHandler is not the same!');\r\n }\r\n\r\n view.state = ViewState.CLOSED;\r\n\r\n const index = this.openedViewUuids.indexOf(view.uuid);\r\n if (index >= 0) {\r\n this.openedViewUuids.splice(index, 1);\r\n this.openedViewData.splice(index, 1);\r\n this.clearUuidOfPage(view.viewName, viewHandler.componentName);\r\n }\r\n\r\n return {\r\n state: ViewState.CLOSED,\r\n uuid: view.uuid,\r\n };\r\n }\r\n\r\n private sendViewContextUpdates(updatesToSend: (ViewStateUpdate | undefined)[]) {\r\n const updates: ViewStateUpdate[] = [];\r\n updatesToSend.forEach((update) => {\r\n if (update !== undefined && update !== null) updates.push(update);\r\n });\r\n if (updates.length > 0) {\r\n this.updateViewContext({\r\n updates,\r\n uuid: this.viewContext?.uuid,\r\n });\r\n }\r\n }\r\n public async restoreViews(uuid: string): Promise<void> {\r\n const updates: ViewStateUpdate[] = [];\r\n if (!this.viewContext) {\r\n await this.getViewContext(uuid);\r\n }\r\n\r\n this.viewContext!.views.filter(\r\n (view) => view.state === ViewState.OPENED || view.state === ViewState.TO_OPEN\r\n ).map((view: ViewData) => {\r\n const update = this.openView(view);\r\n if (update) {\r\n updates.push(update);\r\n }\r\n });\r\n this.sendViewContextUpdates(updates);\r\n }\r\n\r\n public syncView(): void {\r\n const updates: (ViewStateUpdate | undefined)[] = [];\r\n this.viewContext?.views.map((view: ViewData) => {\r\n switch (view.state) {\r\n case ViewState.TO_OPEN:\r\n updates.push(this.openView(view));\r\n break;\r\n case ViewState.TO_CLOSE:\r\n updates.push(this.closeView(view));\r\n break;\r\n }\r\n });\r\n\r\n const viewDataToClose = this.openedViewData.filter(\r\n (viewData: ViewData) =>\r\n !this.viewContext?.views\r\n .flatMap((viewData: ViewData) => viewData.uuid)\r\n .includes(viewData.uuid)\r\n );\r\n if (viewDataToClose?.length) {\r\n viewDataToClose.map((viewData: ViewData) => {\r\n updates.push(this.closeView(viewData));\r\n });\r\n }\r\n this.sendViewContextUpdates(updates);\r\n\r\n this.viewContext?.links?.map((data: Link) => {\r\n const link = document.createElement('a');\r\n let target = '_blank'; // default\r\n switch (data.target ?? LinkTargetEnum.BLANK) {\r\n case 'SELF':\r\n target = '_self';\r\n break;\r\n case 'BLANK':\r\n target = '_blank';\r\n break;\r\n case 'PARENT':\r\n target = '_parent';\r\n break;\r\n case 'TOP':\r\n target = '_top';\r\n break;\r\n }\r\n link.setAttribute('target', target);\r\n link.setAttribute('href', data.url);\r\n if (data.download) {\r\n link.setAttribute('download', data.filename ?? '');\r\n }\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n });\r\n\r\n this.viewContext?.downloads?.map(async (file: DownloadedFile): Promise<void> => {\r\n try {\r\n let blob = await this.downloadResource(file.uuid!, file.identifier!);\r\n let url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.setAttribute('target', '_blank');\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', file.filename!);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n } catch (e) {\r\n console.error('Error downloading file');\r\n console.error(e);\r\n }\r\n });\r\n\r\n const clipboardText = this.viewContext?.clipboardData\r\n ?.map((cd: ClipboardData) => cd.text || '')\r\n .join('');\r\n if (clipboardText) {\r\n const clipboard = navigator.clipboard;\r\n // available only in secure contexts.\r\n if (clipboard) {\r\n try {\r\n clipboard\r\n .writeText(clipboardText)\r\n .catch((e) => console.error('Failed to copy text to clipboard', e));\r\n } catch (e) {\r\n console.error('Error accessing clipboard', e);\r\n }\r\n }\r\n }\r\n\r\n this.viewContextHasBeenSynced.next();\r\n }\r\n\r\n private setViewContextUuid(uuid: string): void {\r\n sessionStorage.setItem(this.viewContextUuidName, uuid);\r\n this.session.addHeaderParam({\r\n headerName: this.viewContextUuidHeaderName,\r\n value: uuid,\r\n });\r\n }\r\n\r\n public getViewContextUuid(): string {\r\n let viewContextUuid = sessionStorage.getItem(this.viewContextUuidName);\r\n if (!viewContextUuid) {\r\n throw new Error('View context is not initialized!');\r\n }\r\n return viewContextUuid;\r\n }\r\n\r\n public hasViewContextUuid(): boolean {\r\n let viewContextUuid = sessionStorage.getItem(this.viewContextUuidName);\r\n return viewContextUuid !== null && viewContextUuid !== undefined;\r\n }\r\n\r\n public setUuidOfPage(pageName: string, uuid: string, componentName?: string): void {\r\n sessionStorage.setItem(this.pageNamePrefix + pageName, uuid);\r\n if (componentName) {\r\n sessionStorage.setItem(this.componentNamePrefix + componentName, pageName);\r\n }\r\n }\r\n\r\n public clearUuidOfPage(pageName: string, componentName?: string): void {\r\n sessionStorage.removeItem(this.pageNamePrefix + pageName);\r\n if (componentName) {\r\n sessionStorage.removeItem(this.componentNamePrefix + componentName);\r\n }\r\n }\r\n\r\n public getUuidOfPage(pageName: string): string {\r\n let uuid = sessionStorage.getItem(this.pageNamePrefix + pageName);\r\n if (!uuid) {\r\n throw new Error(`The uuid of ${pageName} is not available.`);\r\n }\r\n return uuid;\r\n }\r\n\r\n public getPageNameOfComponent(componentName: string): string {\r\n let pageName = sessionStorage.getItem(this.componentNamePrefix + componentName);\r\n if (!pageName) {\r\n throw new Error(`The pageName of ${componentName} is not available.`);\r\n }\r\n return pageName;\r\n }\r\n\r\n public async message(messageData: MessageData, messageResult: MessageResult): Promise<void> {\r\n return await this.handlePerformActionResponse(\r\n await this.view\r\n .message(messageData.viewUuid ?? '', messageData.uuid, messageResult)\r\n .toPromise()\r\n );\r\n // in future use this.apiQueueService.addToQueue\r\n }\r\n\r\n public async getSmartViewContextApiErrorByCode(code: string): Promise<SmartViewContextApiError> {\r\n let buttonLabel;\r\n let dialogTitle;\r\n let message;\r\n if (this.translateService) {\r\n buttonLabel = await this.translateService\r\n .get(SmartViewContextErrorDialogButtonLabel)\r\n .toPromise();\r\n dialogTitle = await this.translateService.get(SmartViewContextErrorDialogTitle).toPromise();\r\n message = await this.translateService.get(SmartViewContextErrorDialogMessage).toPromise();\r\n } else {\r\n buttonLabel = 'Ok';\r\n dialogTitle = 'Hiba';\r\n message = 'An error has occured.';\r\n }\r\n\r\n if (!this.smartViewContextApiErrors) {\r\n return {\r\n code,\r\n message,\r\n buttonLabel,\r\n dialogTitle,\r\n };\r\n }\r\n let apiErrorsWithCode = this.smartViewContextApiErrors.viewContextApiErrors.filter(\r\n (apiError: SmartViewContextApiError) => {\r\n return apiError.code === code;\r\n }\r\n );\r\n if (!apiErrorsWithCode || (apiErrorsWithCode && !apiErrorsWithCode.length)) {\r\n console.error(`SmartViewContextApiError with code ${code} could not be found.`);\r\n\r\n return {\r\n code,\r\n message,\r\n buttonLabel,\r\n dialogTitle,\r\n };\r\n }\r\n return apiErrorsWithCode[0];\r\n }\r\n\r\n public async getViewConstraint(uuid: string): Promise<ViewConstraint> {\r\n let viewConstraintResponse = await this.view.getViewConstraint(uuid).toPromise();\r\n if (!viewConstraintResponse)\r\n throw new Error('Could not get ViewConstraint with the given uuid.');\r\n return viewConstraintResponse;\r\n }\r\n\r\n public async showPublishedView(channel: string, uuid: string): Promise<void> {\r\n await this.session.initialize();\r\n // TODO init view context automatically\r\n // await this.initialize();\r\n\r\n this.isOpeningSmartLink = true;\r\n this.openSmartLink.next();\r\n await this.openSmartLink.toPromise();\r\n\r\n await this.view.showPublishedView(channel, uuid).toPromise();\r\n await this.getAndSyncViewContext();\r\n this.isOpeningSmartLink = false;\r\n }\r\n\r\n public async downloadResource(uuid: string, item: string): Promise<any> {\r\n return await this.view.downloadItem(uuid, item).toPromise();\r\n }\r\n\r\n public async performAction(uuid: string, uiActionRequest: UiActionRequest): Promise<void> {\r\n return await this._performAction({\r\n uuid,\r\n uiActionRequest,\r\n });\r\n // const isCompleted = new Subject<void>();\r\n // this.apiQueueService.addToQueue({\r\n // callback: this._performAction.bind(this),\r\n // config: {\r\n // uuid,\r\n // uiActionRequest,\r\n // },\r\n // isCompleted,\r\n // });\r\n // return await isCompleted.toPromise();\r\n }\r\n\r\n public async performWidgetAction(\r\n uuid: string,\r\n widgetId: string,\r\n nodeId: string,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<void> {\r\n return await this._performWidgetAction({ uuid, widgetId, nodeId, uiActionRequest });\r\n // const isCompleted = new Subject<void>();\r\n // this.apiQueueService.addToQueue({\r\n // callback: this._performWidgetAction.bind(this),\r\n // config: {\r\n // uuid,\r\n // widgetId,\r\n // nodeId,\r\n // uiActionRequest,\r\n // },\r\n // isCompleted,\r\n // });\r\n // return await isCompleted.toPromise();\r\n }\r\n\r\n public async performWidgetMainAction(\r\n uuid: string,\r\n widgetId: string,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<void> {\r\n return await this._performWidgetMainAction({ uuid, widgetId, uiActionRequest });\r\n // const isCompleted = new Subject<void>();\r\n // this.apiQueueService.addToQueue({\r\n // callback: this._performWidgetMainAction.bind(this),\r\n // config: {\r\n // uuid,\r\n // widgetId,\r\n // uiActionRequest,\r\n // },\r\n // isCompleted,\r\n // });\r\n // return await isCompleted.toPromise();\r\n }\r\n\r\n public async performUploadAction(\r\n uuid: string,\r\n uiActionRequest: UiActionRequest,\r\n param: 'input' | 'input\"',\r\n content: any\r\n ): Promise<void> {\r\n this._performUploadAction({\r\n uuid,\r\n uiActionRequest,\r\n param,\r\n content,\r\n });\r\n }\r\n\r\n public async performUploadMultipleAction(\r\n uuid: string,\r\n uiActionRequest: UiActionRequest,\r\n param: 'input' | 'input2',\r\n content: any[]\r\n ): Promise<void> {\r\n this._performUploadMultipleAction({\r\n uuid,\r\n uiActionRequest,\r\n param,\r\n content,\r\n });\r\n }\r\n\r\n public async dataChanged(uuid: string, dataChange: DataChange): Promise<void> {\r\n return await this._dataChanged({ uuid, dataChange });\r\n // const isCompleted = new Subject<void>();\r\n // this.apiQueueService.addToQueue(\r\n // {\r\n // callback: this._dataChanged.bind(this),\r\n // config: {\r\n // uuid,\r\n // dataChange,\r\n // },\r\n // isCompleted,\r\n // },\r\n // true\r\n // );\r\n // return await isCompleted.toPromise();\r\n }\r\n\r\n private async _performAction(config: any): Promise<void> {\r\n return await this.handlePerformActionResponse(\r\n await this.view.performAction(config.uuid, config.uiActionRequest).toPromise()\r\n );\r\n }\r\n\r\n private async _performWidgetAction(config: any): Promise<void> {\r\n return await this.handlePerformActionResponse(\r\n await this.view\r\n .performWidgetAction(config.uuid, config.widgetId, config.nodeId, config.uiActionRequest)\r\n .toPromise()\r\n );\r\n }\r\n\r\n private async _performWidgetMainAction(config: any): Promise<void> {\r\n return await this.handlePerformActionResponse(\r\n await this.view\r\n .performWidgetMainAction(config.uuid, config.widgetId, config.uiActionRequest)\r\n .toPromise()\r\n );\r\n }\r\n\r\n private async _performUploadAction(config: any): Promise<void> {\r\n return await this.handlePerformActionResponse(\r\n await this.view\r\n .uploadAction(\r\n config.uuid,\r\n JSON.stringify(config.uiActionRequest),\r\n config.param,\r\n config.content\r\n )\r\n .toPromise()\r\n );\r\n }\r\n private async _performUploadMultipleAction(config: any): Promise<void> {\r\n return await this.handlePerformActionResponse(\r\n await this.view\r\n .uploadMultipleAction(\r\n config.uuid,\r\n JSON.stringify(config.uiActionRequest),\r\n config.param,\r\n config.content\r\n )\r\n .toPromise()\r\n );\r\n }\r\n\r\n private async _dataChanged(config: any): Promise<any> {\r\n return await this.handlePerformActionResponse(\r\n await this.view.dataChanged(config.uuid, config.dataChange).toPromise()\r\n );\r\n }\r\n\r\n public async handlePerformActionResponse(\r\n viewContextChange: ViewContextChange | undefined\r\n ): Promise<any> {\r\n this.viewContext = viewContextChange?.viewContext;\r\n this.syncView();\r\n\r\n if (viewContextChange?.changes) {\r\n this.handleChanges(viewContextChange.changes);\r\n }\r\n return viewContextChange?.result;\r\n }\r\n\r\n private handleChanges(changes: Array<ComponentModelChange>): void {\r\n changes.forEach((componentModelChange: ComponentModelChange) => {\r\n let detectChange: SmartSubject<ComponentModelChange> | undefined = this.smartApiClients.get(\r\n componentModelChange.uuid\r\n );\r\n if (detectChange) {\r\n detectChange.next(componentModelChange);\r\n }\r\n });\r\n }\r\n\r\n public async load(uuid: string): Promise<ComponentModel | undefined> {\r\n return await this.view.getComponentModel(uuid).toPromise();\r\n }\r\n\r\n public async load2(uuid: string): Promise<ViewContextChange | undefined> {\r\n let change = await this.view.getComponentModel2(uuid).toPromise();\r\n this.handlePerformActionResponse(change);\r\n return change;\r\n }\r\n\r\n getCurrentViewContext(): ViewContextData | undefined {\r\n return this.viewContext;\r\n }\r\n}\r\n\r\nexport const IS_ASYNC_PARAM_NAME = 'isAsync';\r\n\r\nexport interface ApiQueueCall {\r\n callback: (config: any) => Promise<any>;\r\n config: any;\r\n isCompleted: Subject<void>;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiQueueService implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n private queue: ApiQueueCall[] = [];\r\n private isProcessing = false;\r\n private queueSubject: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n constructor() {\r\n this.queueSubject.pipe(takeUntil(this._destroy$)).subscribe(() => this.processQueue());\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n addToQueue(call: ApiQueueCall, priority: boolean = false) {\r\n if (priority) {\r\n this.queue.unshift(call); // Add at the beginning of the queue if it has higher priority\r\n } else {\r\n this.queue.push(call); // Add at the end of the queue if it has lower priority\r\n }\r\n if (!this.isProcessing) {\r\n this.processQueue();\r\n }\r\n }\r\n\r\n async processQueue(): Promise<void> {\r\n if (this.queue.length === 0) {\r\n this.isProcessing = false;\r\n return;\r\n }\r\n\r\n const apiQueueCall = this.queue.shift();\r\n if (apiQueueCall) {\r\n await apiQueueCall.callback(apiQueueCall.config);\r\n apiQueueCall.isCompleted.complete();\r\n this.queueSubject.next();\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { SmartSessionService } from \"./session/smart-session.service\";\r\nimport { SmartViewContextService } from \"./view-context/smart-view-context.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SmartNgClientService {\r\n constructor(\r\n private session: SmartSessionService,\r\n private viewContext: SmartViewContextService\r\n ) {}\r\n}\r\n","import { ComponentFactory, ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentFactoryService {\r\n\r\n factory?: ComponentFactory<any>;\r\n\r\n constructor(private resolver: ComponentFactoryResolver) { }\r\n\r\n createComponent(vcRef: ViewContainerRef, componentType: any, inputs?: Map<string, any>): ComponentRef<any> {\r\n this.setComponentFactory(componentType);\r\n const componentRef = vcRef.createComponent(this.factory!);\r\n if (inputs) this.setComponentInputParameters(componentRef, inputs);\r\n componentRef.changeDetectorRef.detectChanges();\r\n return componentRef;\r\n }\r\n\r\n destroyComponent(componentRef: ComponentRef<any>) {\r\n componentRef.destroy();\r\n }\r\n\r\n private setComponentFactory(componentType: any) {\r\n this.factory = this.resolver.resolveComponentFactory(componentType);\r\n }\r\n\r\n private setComponentInputParameters(ref: ComponentRef<any>, inputs: Map<string, any>) {\r\n for (let [key, value] of inputs)\r\n if (value) ref.instance[key] = value\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ComponentFactoryService } from './component-factory-service.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [],\r\n providers: [ComponentFactoryService]\r\n})\r\nexport class ComponentFactoryServiceModule { }\r\n","/*\r\n * Public API Surface of component-factory-service\r\n */\r\n\r\nexport * from './component-factory-service.service';\r\nexport * from './component-factory-service.module';\r\n","import { ComponentType } from '@angular/cdk/portal';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData } from './smartdialog.model';\r\n\r\nexport abstract class SmartdialogService {\r\n constructor(protected dialog: MatDialog, protected router: Router) {}\r\n\r\n dialogRef!: MatDialogRef<any>;\r\n dialogData!: SmartDialogData;\r\n\r\n defaultDialogSizes = {\r\n maxHeight: 100,\r\n minHeight: 100,\r\n maxWidth: 100,\r\n minWidth: 100\r\n }\r\n\r\n createDialog(\r\n smartDialog: SmartDialogData,\r\n component: ComponentType<any>\r\n ): MatDialogRef<any, any> {\r\n this.dialogData = smartDialog;\r\n\r\n this.dialogRef = this.dialog.open(component, { data: this.dialogData});\r\n\r\n this.dialogRef.afterClosed().subscribe((result) => {\r\n this.handleAfterClosed(result);\r\n this.closeDialog();\r\n });\r\n return this.dialogRef;\r\n }\r\n\r\n createDialogRef(\r\n smartDialog: SmartDialogData,\r\n component: ComponentType<any>\r\n ): MatDialogRef<any, any> {\r\n const dialogRef = this.dialog.open(component, { data: smartDialog });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.handleAfterClosed(result);\r\n dialogRef.close();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n openComponentAsDialog(component: ComponentType<any>, viewName: string): MatDialogRef<any, any> {\r\n let smartDialog: SmartDialogData = {\r\n size: {},\r\n content: {\r\n title: viewName,\r\n },\r\n customComponent: component,\r\n };\r\n\r\n return this.createDialog(smartDialog, component);\r\n }\r\n\r\n handleAfterClosed(result: any): void {}\r\n\r\n openDialog(): void {\r\n throw new Error('openDialog function is not implemented!');\r\n }\r\n\r\n async closeDialog(): Promise<void> {\r\n if (this.dialogData?.outlets) {\r\n await this.router.navigate([\r\n {\r\n outlets: this.dialogData.outlets,\r\n },\r\n ]);\r\n }\r\n this.dialogRef?.close();\r\n }\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Override the default method for encoding path parameters in various\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam?: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Encoding of various path parameter\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.encodeParam) {\n this.encodeParam = configurationParameters.encodeParam;\n }\n else {\n this.encodeParam = param => this.defaultEncodeParam(param);\n }\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n\n private defaultEncodeParam(param: Param): string {\n // This implementation exists as fallback for missing configuration\n // and for backwards compatibility to older typescript-angular generator versions.\n // It only works for the 'simple' parameter style.\n // Date-handling only works for the 'date-time' format.\n // All other styles and Date-formats are probably handled incorrectly.\n //\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\n ? (param.value as Date).toISOString()\n : param.value;\n\n return encodeURIComponent(String(value));\n }\n}\n","/**\n * Form layout definition\n * Contains form layout definition objects.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DefaultService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Placeholder for generation\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public nopePost(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n public nopePost(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n public nopePost(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n public nopePost(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/nope`;\n return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './default.service';\nimport { DefaultService } from './default.service';\nexport const APIS = [DefaultService];\n","/**\n * Form layout definition\n * Contains form layout definition objects.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PropertyMapping } from './propertyMapping';\n\n\n/**\n * The definition of an arbitrary selection.\n */\nexport interface SelectionDefinition { \n /**\n * Name of the ValueSet used for this selection.\n */\n valueSetName: string;\n /**\n * Defines how the selection should work: for properties or the whole selected Object. \n */\n type: SelectionDefinitionTypeEnum;\n /**\n * Specifies which property from ValueSetData.values as Object should be used in selection widget. \n */\n displayProperty?: string;\n /**\n * Mapping between data and selection model. It may be possible to omit mapping, in this case the default mapping is: data = widget.key, selection = valueSetData.keyProperty \n */\n mapping: Array<PropertyMapping>;\n /**\n * Optional value, used for empty valueList entry, this will be the label.\n */\n emptyLabel?: string;\n}\nexport enum SelectionDefinitionTypeEnum {\n PROPERTY = 'PROPERTY',\n OBJECT = 'OBJECT'\n};\n\n\n\n","/**\r\n * Form layout definition\r\n * Contains form layout definition objects.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum SmartFormInputMode {\r\n NONE = 'NONE',\r\n URL = 'URL',\r\n SEARCH = 'SEARCH',\r\n NUMERIC = 'NUMERIC',\r\n TEL = 'TEL',\r\n DECIMAL = 'DECIMAL',\r\n EMAIL = 'EMAIL'\r\n}\r\n\r\n","/**\n * Form layout definition\n * Contains form layout definition objects.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum SmartFormWidgetDirection {\n COL = 'COL',\n ROW = 'ROW'\n}\n\n","/**\n * Form layout definition\n * Contains form layout definition objects.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum SmartFormWidgetType {\n CHECK_BOX = 'CHECK_BOX',\n CHECK_BOX_2 = 'CHECK_BOX_2',\n CONTAINER = 'CONTAINER',\n DATE_PICKER = 'DATE_PICKER',\n DATE_TIME_PICKER = 'DATE_TIME_PICKER',\n INDICATOR = 'INDICATOR',\n ITEM = 'ITEM',\n ITEM_GROUP = 'ITEM_GROUP',\n LABEL = 'LABEL',\n RADIO_BUTTON = 'RADIO_BUTTON',\n SELECT = 'SELECT',\n SELECT_MULTIPLE = 'SELECT_MULTIPLE',\n TEXT_BOX = 'TEXT_BOX',\n TEXT_FIELD = 'TEXT_FIELD',\n TEXT_FIELD_CHIPS = 'TEXT_FIELD_CHIPS',\n TEXT_FIELD_NUMBER = 'TEXT_FIELD_NUMBER',\n TIME = 'TIME',\n TOGGLE = 'TOGGLE',\n IMAGE = 'IMAGE',\n FILE_UPLOADER = 'FILE_UPLOADER',\n MEDIA = 'MEDIA',\n BUTTON = 'BUTTON',\n DIVIDER = 'DIVIDER',\n COMPONENT = 'COMPONENT',\n RICH_TEXT = 'RICH_TEXT',\n SORTABLE = 'SORTABLE',\n MATRIX = 'MATRIX',\n MONTH_PICKER = 'MONTH_PICKER',\n YOUTUBE_PLAYER = 'YOUTUBE_PLAYER',\n SVG = 'SVG'\n}\n\n","/**\n * Form layout definition\n * Contains form layout definition objects.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SmartWidgetHint { \n text?: string;\n position?: SmartWidgetHintPositionEnum;\n}\nexport enum SmartWidgetHintPositionEnum {\n LABEL = 'UNDER_LABEL',\n INPUT = 'UNDER_INPUT'\n};\n\n\n\n","/**\n * Form layout definition\n * Contains form layout definition objects.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * This enum defines the value change handling strategy. Currently only one method is supported, IMMEDIATE_ACTION, which will trigger an executeUiAction when the value is changed. \n */\nexport enum ValueChangeMode {\n NONE = 'NONE',\n IMMEDIATE_ACTION = 'IMMEDIATE_ACTION'\n}\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SelectionDefinition, SelectionDefinitionTypeEnum, SmartFormWidgetType } from '../api';\r\nimport { SmartFormWidget, SmartItem, SmartItems, SmartSelect } from '../smartform.form-model';\r\nimport { SmartForm, SmartFormComponentConstraint, SmartValidator, Value } from '../smartform.model';\r\n\r\n@Injectable()\r\nexport class SmartFormService {\r\n private readonly emptyKey: string = 'e#m%p@t*y';\r\n\r\n group: any = {};\r\n\r\n formGroup?: FormGroup;\r\n\r\n smartForm?: SmartForm;\r\n\r\n getSmartFormWidgetByKey(key: string): SmartFormWidget<any> | undefined {\r\n return this.findSmartFormWidgetByKey(this.smartForm?.widgets!, key);\r\n }\r\n\r\n private collectKeysFromSmartForm(\r\n widgets: SmartFormWidget<any>[] | SmartItems<any>[],\r\n keys: string[]\r\n ): string[] {\r\n widgets.forEach((w) => {\r\n if (\r\n w.type !== SmartFormWidgetType.CONTAINER &&\r\n w.type !== SmartFormWidgetType.LABEL &&\r\n w.type !== SmartFormWidgetType.CHECK_BOX_2 &&\r\n w.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n keys.push(w.key);\r\n }\r\n if (\r\n w.type === SmartFormWidgetType.TEXT_FIELD_CHIPS ||\r\n w.type === SmartFormWidgetType.SELECT ||\r\n w.type === SmartFormWidgetType.SELECT_MULTIPLE ||\r\n w.type === SmartFormWidgetType.CHECK_BOX ||\r\n w.type === SmartFormWidgetType.RADIO_BUTTON ||\r\n w.type === SmartFormWidgetType.CONTAINER\r\n ) {\r\n if (w.valueList?.length) {\r\n keys = this.collectKeysFromSmartForm(w.valueList, keys);\r\n }\r\n } else if (w.type === SmartFormWidgetType.CHECK_BOX_2) {\r\n if (w.valueList?.length) {\r\n let childrenKeys = this.collectKeysFromSmartForm(w.valueList, []);\r\n childrenKeys = childrenKeys\r\n .filter((key: string) => key !== w.key)\r\n .flatMap((key: string) => `${w.key}.${key}`);\r\n\r\n keys.push(...childrenKeys);\r\n }\r\n }\r\n });\r\n\r\n return keys;\r\n }\r\n\r\n private findSmartFormWidgetByKey(\r\n widgets: SmartFormWidget<any>[],\r\n key: string\r\n ): SmartFormWidget<any> | undefined {\r\n let widgetFoundByKey: SmartFormWidget<any> | undefined;\r\n\r\n for (let w of widgets) {\r\n if (w.key === key) {\r\n return w;\r\n } else if (w.type === SmartFormWidgetType.CONTAINER && w.valueList?.length) {\r\n widgetFoundByKey = this.findSmartFormWidgetByKey(w.valueList, key);\r\n if (widgetFoundByKey) {\r\n return widgetFoundByKey;\r\n }\r\n }\r\n }\r\n return widgetFoundByKey;\r\n }\r\n\r\n private getValueDeeply(model: any, key: string): any {\r\n let splittedKey = key.split('.');\r\n let value: any;\r\n\r\n splittedKey.forEach((k: string) => {\r\n if (!value) {\r\n value = model[k];\r\n } else {\r\n if (\r\n value[k] === undefined ||\r\n value[k] === null ||\r\n (!value && typeof value[k] !== 'boolean')\r\n ) {\r\n value = '';\r\n return value;\r\n } else {\r\n value = value[k];\r\n }\r\n }\r\n });\r\n return value;\r\n }\r\n private setValueDeeply(model: any, key: string, value: any): void {\r\n let splittedKeys = key.split('.');\r\n\r\n let deepModel: any[] = [model];\r\n let tempModel: any;\r\n\r\n for (let index = 0; index < splittedKeys.length; index++) {\r\n tempModel = deepModel[index];\r\n\r\n if (\r\n typeof tempModel[splittedKeys[index]] !== 'string' &&\r\n typeof tempModel[splittedKeys[index]] !== 'boolean' &&\r\n typeof tempModel[splittedKeys[index]] !== 'number' &&\r\n tempModel[splittedKeys[index]] !== undefined\r\n ) {\r\n deepModel.push(tempModel[splittedKeys[index]]);\r\n }\r\n\r\n if (index === splittedKeys.length - 1) {\r\n let oldValue = tempModel[splittedKeys[index]];\r\n // if (value === '' && (oldValue === null || oldValue === undefined) then don't change value.\r\n if (value !== '' || (oldValue !== null && oldValue !== undefined)) {\r\n tempModel[splittedKeys[index]] = value;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getPropertyNamesDeeply(element: any): string[] {\r\n let properties = Object.keys(element);\r\n properties.forEach((property) => {\r\n if (\r\n typeof element[property] === 'string' ||\r\n typeof element[property] === 'boolean' ||\r\n typeof element[property] === 'number' ||\r\n element[property] === undefined ||\r\n element[property] === null ||\r\n !element[property] ||\r\n !element\r\n ) {\r\n return;\r\n }\r\n let innerProperties = this.getPropertyNamesDeeply(element[property]);\r\n innerProperties = innerProperties.map(\r\n (innerProperty: string) => `${property}.${innerProperty}`\r\n );\r\n\r\n properties.push(...innerProperties);\r\n });\r\n return properties;\r\n }\r\n\r\n setValuesFromModel(widgets?: SmartFormWidget<any>[]): void {\r\n const smartForm = this.smartForm!;\r\n const data = smartForm.componentModel?.data;\r\n if (!data) {\r\n return;\r\n }\r\n\r\n if (!widgets) {\r\n widgets = smartForm.widgets;\r\n }\r\n const keys: string[] = this.collectKeysFromSmartForm(widgets, []);\r\n\r\n let widget: SmartFormWidget<any> | undefined;\r\n for (const key of this.getPropertyNamesDeeply(data)) {\r\n if (keys.includes(key)) {\r\n widget = this.findSmartFormWidgetByKey(widgets, key);\r\n if (widget) {\r\n let value = this.getValueDeeply(data, key);\r\n if (typeof value === 'boolean' && widget.type !== SmartFormWidgetType.TOGGLE) {\r\n value = `${value}`;\r\n }\r\n if (\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.CONTAINER &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.COMPONENT &&\r\n widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n widget.value = value;\r\n if (widget.showLabel === undefined && smartForm.showLabel) {\r\n widget.showLabel = true;\r\n }\r\n }\r\n\r\n this.copyFromValueSetToValuesList(widget, smartForm.componentModel.valueSets);\r\n\r\n if (\r\n widget &&\r\n widget.type === SmartFormWidgetType.CHECK_BOX &&\r\n widget.valueList.length === 1\r\n ) {\r\n widget.valueList = widget.valueList.map((item: SmartItem<any>) => {\r\n let value = this.getValueDeeply(data, key);\r\n item.value = value;\r\n return item;\r\n });\r\n }\r\n } else {\r\n // In case of CheckBox2\r\n let splittedKeys = key.split('.');\r\n splittedKeys.splice(splittedKeys.length - 1, 1);\r\n widget = this.findSmartFormWidgetByKey(widgets, splittedKeys.join('.'));\r\n if (widget && widget.type === SmartFormWidgetType.CHECK_BOX_2) {\r\n this.copyFromValueSetToValuesList(widget, smartForm.componentModel.valueSets);\r\n if (widget.valueList) {\r\n widget.valueList = widget.valueList.map((item: SmartItem<any>) => {\r\n let value = this.getValueDeeply(data, `${widget?.key}.${item.key}`);\r\n item.value = value;\r\n return item;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private copyFromValueSetToValuesList(widget: SmartFormWidget<any>, valueSets: any) {\r\n if (\r\n widget.type === SmartFormWidgetType.SELECT ||\r\n widget.type === SmartFormWidgetType.SELECT_MULTIPLE ||\r\n widget.type === SmartFormWidgetType.RADIO_BUTTON ||\r\n widget.type === SmartFormWidgetType.CHECK_BOX ||\r\n widget.type === SmartFormWidgetType.CHECK_BOX_2 ||\r\n widget.type === SmartFormWidgetType.TEXT_FIELD\r\n ) {\r\n if (widget.selection && valueSets) {\r\n let valueSet = valueSets[widget.selection.valueSetName];\r\n if (!valueSet) {\r\n console.warn('valueSet not found', widget.selection.valueSetName);\r\n } else {\r\n let valueSetData = valueSet.valueSetData;\r\n let values = valueSetData.values;\r\n let displayProperty =\r\n (widget as SmartSelect<any>).selection?.displayProperty ?? 'displayValue';\r\n // check is displayProperty exists, fallback for common display properties\r\n if (!this.checkProperty(values, displayProperty)) {\r\n displayProperty = 'name'; // GenericValue.name\r\n if (!this.checkProperty(values, displayProperty)) {\r\n displayProperty = 'displayValue'; // Value.displayValue\r\n }\r\n }\r\n if (\r\n widget.selection.type === SelectionDefinitionTypeEnum.PROPERTY &&\r\n !widget.selection.mapping.length\r\n ) {\r\n let keyProperty = valueSetData.keyProperty ?? 'objectUri';\r\n if (!this.checkProperty(values, keyProperty)) {\r\n keyProperty = 'uri'; // GenericValue.uri\r\n if (!this.checkProperty(values, keyProperty)) {\r\n keyProperty = 'objectUri'; // Value.objectUri\r\n }\r\n }\r\n widget.valueList = values.map((value: any) => {\r\n return {\r\n key: value[keyProperty],\r\n label: value[displayProperty],\r\n type: SmartFormWidgetType.ITEM,\r\n value: value[keyProperty],\r\n };\r\n });\r\n this.addEmptyItemToValueList(widget, widget.selection.emptyLabel);\r\n } else if (\r\n widget.selection.type === SelectionDefinitionTypeEnum.OBJECT &&\r\n !widget.selection.mapping.length\r\n ) {\r\n widget.valueList = values.map((value: any, index: number) => {\r\n return {\r\n key: `${index}`,\r\n label: value[displayProperty],\r\n type: SmartFormWidgetType.ITEM,\r\n value: value,\r\n };\r\n });\r\n this.addEmptyItemToValueList(widget);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private checkProperty(values: object[], property: string): boolean {\r\n if (!values?.length) {\r\n // no sample data, assume existance\r\n return true;\r\n }\r\n return property in values[0];\r\n }\r\n\r\n toFormGroup(): FormGroup {\r\n this.createFormControls(this.smartForm!.widgets);\r\n\r\n if (this.formGroup) {\r\n this.formGroup.controls = this.group;\r\n } else {\r\n this.formGroup = new FormGroup(this.group);\r\n }\r\n\r\n if (this.smartForm!.validators && this.smartForm!.validators.length) {\r\n this.formGroup.setValidators(\r\n this.smartForm!.validators.map((validator: SmartValidator) => {\r\n return validator.validator;\r\n })\r\n );\r\n }\r\n\r\n return this.formGroup;\r\n }\r\n\r\n createFormControls(widgets: SmartFormWidget<any>[] | SmartItem<any>[], parentKey?: string): void {\r\n widgets.map((widget) => {\r\n if (\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.CONTAINER &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.IMAGE &&\r\n widget.type !== SmartFormWidgetType.SVG &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.CHECK_BOX_2 &&\r\n widget.type !== SmartFormWidgetType.ITEM &&\r\n widget.type !== SmartFormWidgetType.COMPONENT &&\r\n widget.type !== SmartFormWidgetType.MATRIX &&\r\n widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n this.createFormControl(`${widget.key}`, widget.value, widget.isDisabled, widget.validators);\r\n }\r\n if (widget.type === SmartFormWidgetType.MATRIX) {\r\n if (widget.isMultiple) {\r\n let dataKeys = Object.keys(widget.value.data);\r\n let itemKeys = widget.value.columns.map((value: Value) => value.code);\r\n dataKeys.forEach((key: string) => {\r\n itemKeys.forEach((item: string) => {\r\n this.createFormControl(\r\n `${widget.key}.data.${key}.${item}`,\r\n widget.value.data[key][item],\r\n undefined, // TODO really we don't pass widget.isDisabled?\r\n widget.validators\r\n );\r\n });\r\n });\r\n } else {\r\n Object.keys(widget.value.data).map((key: string) => {\r\n this.createFormControl(\r\n `${widget.key}.${key}`,\r\n widget.isMultiple ? widget.value.data[key] : widget.value.data[key][0],\r\n widget.isDisabled,\r\n widget.validators\r\n );\r\n });\r\n }\r\n }\r\n if (widget.type === SmartFormWidgetType.ITEM && parentKey) {\r\n this.createFormControl(\r\n `${parentKey}.${widget.key}`,\r\n widget.value,\r\n widget.isDisabled,\r\n undefined\r\n );\r\n }\r\n\r\n if (widget.type === SmartFormWidgetType.CONTAINER && widget.valueList?.length) {\r\n this.createFormControls(widget.valueList);\r\n }\r\n if (widget.type === SmartFormWidgetType.CHECK_BOX_2 && widget.valueList?.length) {\r\n this.createFormControls(widget.valueList, widget.key);\r\n }\r\n });\r\n }\r\n\r\n isValidatorInList(validator: SmartValidator, list?: SmartValidator[]): boolean {\r\n return list !== undefined && list.length > 0 && list.some((v) => v === validator);\r\n }\r\n\r\n private createFormControl(\r\n key: string,\r\n value?: string,\r\n isDisabled?: boolean,\r\n validators?: SmartValidator[]\r\n ): FormControl {\r\n let formControl: FormControl = this.group[key];\r\n if (!formControl) {\r\n formControl = new FormControl();\r\n this.group[key] = formControl;\r\n }\r\n formControl.setValue(value || '', { emitEvent: false });\r\n formControl.clearValidators();\r\n validators?.map((validator: SmartValidator) => {\r\n formControl.addValidators(validator.validator);\r\n });\r\n\r\n if (isDisabled !== undefined) {\r\n if (isDisabled) {\r\n formControl.disable({ emitEvent: false });\r\n } else {\r\n formControl.enable({ emitEvent: false });\r\n }\r\n }\r\n return formControl;\r\n }\r\n\r\n private copyValueFromFormToWidgetBeans(widgets: SmartFormWidget<any>[], group: FormGroup): void {\r\n widgets.forEach((widget) => {\r\n if (widget.type === SmartFormWidgetType.CONTAINER && widget.valueList?.length) {\r\n this.copyValueFromFormToWidgetBeans(widget.valueList, group);\r\n } else if (widget.type === SmartFormWidgetType.MATRIX) {\r\n if (widget.isMultiple) {\r\n let dataKeys = Object.keys(widget.value.data);\r\n let itemKeys = widget.value.columns.map((value: Value) => value.code);\r\n dataKeys.forEach((key: string) => {\r\n itemKeys.forEach((item: string) => {\r\n widget.value.data[key][item] = [\r\n group.controls[`${widget.key}.data.${key}.${item}`].value,\r\n ];\r\n });\r\n });\r\n\r\n let datakeys = Object.keys(widget.value.data);\r\n //Map checkbox key - boolean value to string key array\r\n let valueKeys = widget.value.columns.map((value: Value) => value.code);\r\n datakeys.forEach((key: string) => {\r\n let newData: any[] = [];\r\n valueKeys.forEach((valueKey: string) => {\r\n let value = widget.value.data[key][valueKey];\r\n if (value[0]) {\r\n newData.push(valueKey);\r\n }\r\n });\r\n widget.value.data[key] = newData;\r\n });\r\n } else {\r\n Object.keys(widget.value.data).map((key: string) => {\r\n widget.value.data[key] = [group.controls[`${widget.key}.${key}`].value];\r\n });\r\n }\r\n } else if (\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.CONTAINER &&\r\n widget.type !== SmartFormWidgetType.IMAGE &&\r\n widget.type !== SmartFormWidgetType.SVG &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.CHECK_BOX_2 &&\r\n widget.type !== SmartFormWidgetType.COMPONENT &&\r\n widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n widget.value = group.controls[widget.key].value;\r\n }\r\n });\r\n }\r\n\r\n toSmartForm(group: FormGroup): SmartForm {\r\n if (this.smartForm) {\r\n this.copyValueFromFormToWidgetBeans(this.smartForm.widgets, group);\r\n const data = this.smartForm.componentModel?.data;\r\n if (data) {\r\n for (const key of this.getPropertyNamesDeeply(data)) {\r\n if (group.controls[key]) {\r\n this.setValueDeeply(data, key, group.controls[key].value);\r\n }\r\n }\r\n }\r\n }\r\n return this.smartForm!;\r\n }\r\n\r\n getModel(group: FormGroup): any {\r\n if (!this.smartForm?.componentModel) {\r\n return {};\r\n }\r\n let originalModel = this.smartForm.componentModel.data;\r\n let copyOfModel = { ...originalModel };\r\n\r\n // copyOfModel should be the current model\r\n this.smartForm.componentModel.data = copyOfModel;\r\n // copy value from FormGroup into model\r\n this.toSmartForm(group);\r\n\r\n let newModel = this.smartForm.componentModel.data;\r\n this.smartForm.componentModel.data = originalModel;\r\n\r\n return newModel;\r\n }\r\n\r\n private applyComponentConstraints(\r\n widgets: SmartFormWidget<any>[],\r\n constraints: SmartFormComponentConstraint[]\r\n ) {\r\n widgets.forEach((widget: SmartFormWidget<any>) => {\r\n let widgetConstraints = constraints?.filter(\r\n //(constraint: SmartFormComponentConstraint) => constraint.dataName === widget.key\r\n (constraint) => this.antPathMatcher(constraint.dataName, widget.key)\r\n );\r\n\r\n if (widgetConstraints && widgetConstraints.length) {\r\n widgetConstraints.forEach((constraint) => {\r\n if (constraint.visible === undefined) {\r\n if (widget.isVisible === undefined) {\r\n widget.isVisible = true;\r\n }\r\n } else {\r\n widget.isVisible = constraint.visible;\r\n }\r\n if (\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.CONTAINER &&\r\n widget.type !== SmartFormWidgetType.IMAGE &&\r\n widget.type !== SmartFormWidgetType.SVG &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.COMPONENT &&\r\n widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n let validators = widget.validators ?? [];\r\n let requiredIndex = validators.findIndex((v) => v.validator === Validators.required);\r\n let wasMandatory = requiredIndex >= 0;\r\n let tobeMandatory = false;\r\n if (constraint.mandatory === undefined) {\r\n // not specified on server, use client state\r\n // if widget is not visible, client should default to not mandatory\r\n tobeMandatory = widget.isVisible && wasMandatory;\r\n } else {\r\n tobeMandatory = constraint.mandatory;\r\n }\r\n if (!wasMandatory && tobeMandatory) {\r\n // add required validator\r\n widget.validators = [\r\n ...validators,\r\n {\r\n validator: Validators.required,\r\n isCustom: false,\r\n errorMessage: '',\r\n name: 'required',\r\n },\r\n ];\r\n // remove empty item\r\n this.removeEmptyItemFromValueList(widget);\r\n }\r\n if (wasMandatory && !tobeMandatory) {\r\n // remove required validator\r\n widget.validators?.splice(requiredIndex, 1);\r\n // add empty item\r\n let emptyLabel = '';\r\n if ('selection' in widget) {\r\n emptyLabel = widget.selection?.emptyLabel ?? '';\r\n }\r\n this.addEmptyItemToValueList(widget, emptyLabel);\r\n }\r\n if (constraint.enabled === undefined) {\r\n if (widget.isDisabled === undefined) {\r\n widget.isDisabled = false;\r\n }\r\n } else {\r\n widget.isDisabled = !constraint.enabled;\r\n }\r\n }\r\n });\r\n }\r\n if (\r\n widget.type === SmartFormWidgetType.CONTAINER &&\r\n widget.valueList &&\r\n widget.valueList.length\r\n ) {\r\n this.applyComponentConstraints(widget.valueList, constraints);\r\n }\r\n });\r\n }\r\n\r\n private readonly regexRegexChars = new RegExp(/[\\.\\-\\[\\]\\/\\{\\}\\(\\)\\+\\^\\$\\\\\\|]/g);\r\n private readonly regexAsteriskInTheMiddle = new RegExp(/([^\\*])\\*([^\\*])/g);\r\n private readonly regexAsteriskInTheEnd = new RegExp(/([^\\*])\\*$/g);\r\n private readonly regexAsteriskInTheBeginning = new RegExp(/^\\*([^\\*])/g);\r\n private readonly regexAsteriskOnly = new RegExp(/^\\*$/g);\r\n private readonly regexDoubleAsteriskWithDot = new RegExp(/\\*\\*\\\\\\./g);\r\n private readonly regexDoubleAsterisk = new RegExp(/\\*\\*/g);\r\n private readonly regexQuestionMark = new RegExp(/\\?/g);\r\n private regexByPattern: Map<string, RegExp> = new Map();\r\n\r\n antPathMatcher(pattern?: string, path?: string): boolean {\r\n if (!pattern || !path) {\r\n // empty pattern or path -> not evaluated, true or false?\r\n return false;\r\n }\r\n let regex = this.regexByPattern.get(pattern);\r\n if (regex === undefined) {\r\n // escape regex characters except for ?, *, **\r\n let regexPattern = pattern.replace(this.regexRegexChars, '\\\\$&');\r\n\r\n // replace ant-style wildcards with regex equivalents\r\n\r\n // replace * with a pattern that matches any character except for '.'\r\n regexPattern = regexPattern.replace(this.regexAsteriskInTheMiddle, '$1[^.]*$2'); // not* * not*\r\n regexPattern = regexPattern.replace(this.regexAsteriskInTheEnd, '$1[^.]*'); // not* * EOL\r\n regexPattern = regexPattern.replace(this.regexAsteriskInTheBeginning, '[^.]*$1'); // BOL * not*\r\n regexPattern = regexPattern.replace(this.regexAsteriskOnly, '[^.]*'); // BOL * EOL\r\n\r\n // replace ** with a pattern that matches any character including '.'\r\n regexPattern = regexPattern.replace(this.regexDoubleAsteriskWithDot, '.*'); // **.\r\n regexPattern = regexPattern.replace(this.regexDoubleAsterisk, '.*'); // **\r\n\r\n // replace ? with a single character matcher\r\n regexPattern = regexPattern.replace(this.regexQuestionMark, '.');\r\n\r\n // create a RegExp object\r\n regex = new RegExp('^' + regexPattern + '$');\r\n this.regexByPattern.set(pattern, regex);\r\n }\r\n\r\n // test the path against the generated regex\r\n return regex.test(path);\r\n }\r\n\r\n applyConstraints(widgets?: SmartFormWidget<any>[]): void {\r\n if (\r\n this.smartForm!.componentModel?.constraints &&\r\n this.smartForm!.componentModel?.constraints.length\r\n ) {\r\n if (!widgets) {\r\n widgets = this.smartForm!.widgets;\r\n }\r\n this.applyComponentConstraints(widgets, this.smartForm!.componentModel?.constraints);\r\n }\r\n }\r\n\r\n addEmptyItemToValueList(widget: SmartFormWidget<any>, emptyLabel?: string) {\r\n if (widget.type == SmartFormWidgetType.SELECT) {\r\n const containsEmptyKey = widget.valueList.some((v) => v.key === this.emptyKey);\r\n if (!containsEmptyKey) {\r\n widget.valueList?.unshift({\r\n key: this.emptyKey,\r\n label: emptyLabel ?? '',\r\n type: SmartFormWidgetType.ITEM,\r\n value: '', // this should be undefined, but FormControl cannot be null, from v14 it will\r\n });\r\n }\r\n }\r\n }\r\n\r\n removeEmptyItemFromValueList(widget: SmartFormWidget<any>) {\r\n if ('valueList' in widget) {\r\n if (widget.valueList?.length) {\r\n let firstItem = widget.valueList[0];\r\n if (firstItem?.key === this.emptyKey) {\r\n widget.valueList.shift();\r\n }\r\n }\r\n }\r\n }\r\n\r\n filterWidgetsByVisibility(widgets: SmartFormWidget<any>[]): SmartFormWidget<any>[] {\r\n return widgets.filter((widget: SmartFormWidget<any>) =>\r\n widget.isVisible === undefined ? true : widget.isVisible\r\n );\r\n }\r\n\r\n private async getTranslationOfKey(key: string): Promise<string> {\r\n return await this.smartForm!.translateService!.get(key).toPromise();\r\n }\r\n\r\n async translateWidgets(widgets: SmartFormWidget<any>[]): Promise<void> {\r\n Promise.all(\r\n widgets.map(async (widget: SmartFormWidget<any>) => {\r\n if (widget.type === SmartFormWidgetType.YOUTUBE_PLAYER) return;\r\n if (widget.type !== SmartFormWidgetType.CONTAINER) {\r\n if (!widget.originalLabel) {\r\n widget.originalLabel = `${widget.label}`;\r\n }\r\n // Label\r\n widget.label = await this.getTranslationOfKey(widget.originalLabel);\r\n\r\n // Placeholder\r\n if (\r\n (widget.type === SmartFormWidgetType.TEXT_FIELD ||\r\n widget.type === SmartFormWidgetType.TEXT_FIELD_NUMBER ||\r\n widget.type === SmartFormWidgetType.TEXT_FIELD_CHIPS ||\r\n widget.type === SmartFormWidgetType.RICH_TEXT ||\r\n widget.type === SmartFormWidgetType.TEXT_BOX) &&\r\n widget.placeholder\r\n ) {\r\n if (!widget.originalPlaceholder) {\r\n widget.originalPlaceholder = `${widget.placeholder}`;\r\n }\r\n widget.placeholder = await this.getTranslationOfKey(widget.originalPlaceholder);\r\n }\r\n\r\n // Validators\r\n if (\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.IMAGE &&\r\n widget.type !== SmartFormWidgetType.SVG &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.COMPONENT &&\r\n widget.validators\r\n ) {\r\n widget.validators = await Promise.all(\r\n widget.validators.map(async (validator: SmartValidator) => {\r\n if (!validator.originalErrorMessage) {\r\n validator.originalErrorMessage = `${validator.errorMessage}`;\r\n }\r\n validator.errorMessage = await this.getTranslationOfKey(\r\n validator.originalErrorMessage\r\n );\r\n return validator;\r\n })\r\n );\r\n }\r\n // Indicator\r\n if (widget.type === SmartFormWidgetType.INDICATOR && widget.indicator) {\r\n if (!widget.indicator.originalIndicatorStatusLabels) {\r\n widget.indicator.originalIndicatorStatusLabels =\r\n widget.indicator.indicatorStatusLabels.map((label: string) => label);\r\n }\r\n widget.indicator.indicatorStatusLabels = await Promise.all(\r\n widget.indicator.indicatorStatusLabels.map(\r\n async (label: string, index: number) =>\r\n await this.getTranslationOfKey(\r\n widget.indicator!.originalIndicatorStatusLabels![index]\r\n )\r\n )\r\n );\r\n }\r\n\r\n if (\r\n (widget.type === SmartFormWidgetType.TEXT_FIELD_CHIPS ||\r\n widget.type === SmartFormWidgetType.SELECT ||\r\n widget.type === SmartFormWidgetType.SELECT_MULTIPLE ||\r\n widget.type === SmartFormWidgetType.CHECK_BOX ||\r\n widget.type === SmartFormWidgetType.CHECK_BOX_2 ||\r\n widget.type === SmartFormWidgetType.RADIO_BUTTON) &&\r\n widget.valueList\r\n ) {\r\n this.translateWidgetItems(widget.valueList);\r\n }\r\n } else {\r\n this.translateWidgets(widget.valueList!);\r\n }\r\n })\r\n );\r\n }\r\n\r\n async translateWidgetItems(widgets: SmartItems<any>[]): Promise<void> {\r\n Promise.all(\r\n widgets.map(async (widget: SmartItems<any>) => {\r\n if (!widget.originalLabel) {\r\n widget.originalLabel = `${widget.label}`;\r\n }\r\n // Label\r\n widget.label = await this.getTranslationOfKey(widget.originalLabel);\r\n })\r\n );\r\n }\r\n}\r\n","import { ValidatorFn } from '@angular/forms';\r\nimport { SmartFormWidget } from './smartform.form-model';\r\nimport { SmartFormWidgetDirection } from './api';\r\nimport { SmartTranslateService } from '../view-context/smart-view-context.model';\r\n\r\nexport interface SophisticatedValueChange {\r\n key: string;\r\n value: any;\r\n kind: 'basic' | 'selection';\r\n}\r\n\r\nexport interface SmartFormComponentConstraint {\r\n /**\r\n * The data name to identify the related component or componenets. If it is a path the format is the following - dataSheet.field.\r\n */\r\n dataName?: string;\r\n visible?: boolean;\r\n mandatory?: boolean;\r\n enabled?: boolean;\r\n}\r\n\r\nexport enum SmartFormWidgetWidth {\r\n SMALL = 150,\r\n MEDIUM = 250,\r\n LARGE = 350,\r\n EXTRA_LARGE = 450,\r\n}\r\n\r\nexport enum SmartFormTextFieldButtonIconPosition {\r\n PRE,\r\n POST,\r\n}\r\n\r\nexport interface SmartFormTextFieldButton {\r\n icon?: string;\r\n iconPosition?: SmartFormTextFieldButtonIconPosition;\r\n label?: string;\r\n callback: (widget: SmartFormWidget<any>) => any;\r\n color?: string;\r\n iconColor?: string;\r\n}\r\n\r\nexport enum ToggleLabelPosition {\r\n BEFORE = 'before',\r\n AFTER = 'after',\r\n}\r\n\r\nexport interface SmartFormInvalidFields {\r\n invalidFieldNames: string[];\r\n invalidFieldKeys: string[];\r\n}\r\n\r\nexport interface SmartIndicator {\r\n indicateProperty: string;\r\n indicatorLength: number;\r\n indicatorStatusLabels: string[];\r\n originalIndicatorStatusLabels?: string[];\r\n indicatorValue: number;\r\n changeIndicatorStatus: (valueToCheck: string) => number;\r\n}\r\n\r\nexport interface SmartValidator {\r\n validator: ValidatorFn;\r\n isCustom?: boolean;\r\n errorMessage?: string;\r\n originalErrorMessage?: string;\r\n name: SmartValidatorName | string;\r\n icon?: string;\r\n iconColor?: string;\r\n}\r\n\r\nexport enum SmartValidatorName {\r\n // Angular validators\r\n required = 'required',\r\n requiredTrue = 'required',\r\n email = 'email',\r\n max = 'max',\r\n maxLength = 'maxlength',\r\n min = 'min',\r\n minLength = 'minlength',\r\n pattern = 'pattern',\r\n passwordValidator = 'passwordValidator',\r\n // Custom validators\r\n fieldMatchingValidator = 'fieldsMatch',\r\n}\r\n\r\n/**\r\n * Dynamic forms can be easily defined with this interface.\r\n *\r\n * @param name The name of the form\r\n * @param widgets The widgets presented in the form\r\n *\r\n * @author Roland Fényes\r\n */\r\nexport interface SmartForm {\r\n name?: string;\r\n direction: SmartFormWidgetDirection;\r\n widgets: SmartFormWidget<any>[];\r\n componentModel?: any;\r\n useOnBlurEvent?: boolean;\r\n useOnValueChangeEvent?: boolean;\r\n showLabel?: boolean;\r\n submitOnEnter?: () => void;\r\n labelTheme?: string;\r\n validators?: SmartValidator[];\r\n translateService?: SmartTranslateService;\r\n invalidFields?: SmartFormInvalidFields;\r\n}\r\n\r\nexport interface Value {\r\n /**\r\n * The uri the object of the value can be accessed.\r\n */\r\n objectUri: string;\r\n /**\r\n * The logical code of the selectable value.\r\n */\r\n code?: string;\r\n /**\r\n * The string value that can be shown on ui. It might be a label code or the exact label.\r\n */\r\n displayValue: string;\r\n /**\r\n * The code of icon that can be associatied with the value. It may be a uri.\r\n */\r\n iconCode?: string;\r\n}\r\n\r\nexport enum SmartWidgetHintPosition {\r\n UNDER_LABEL,\r\n UNDER_INPUT,\r\n}\r\n\r\nexport interface SmartWidgetHintConfig {\r\n position: SmartWidgetHintPosition;\r\n}\r\n","import { ElementRef, Renderer2, RendererStyleFlags2 } from '@angular/core';\r\nimport { Style } from '../api/model/style';\r\n\r\nexport class SmartStyleUtility {\r\n // static counterApplyStyle = 0;\r\n // static counterNgClasses = 0;\r\n // static counterNgStyle = 0;\r\n\r\n public static applyStyle(\r\n style: Style | undefined,\r\n elementRef?: ElementRef,\r\n renderer?: Renderer2,\r\n parent?: boolean\r\n ) {\r\n // console.log('applyStyle', this.counterApplyStyle++);\r\n if (style && elementRef && renderer) {\r\n let element = elementRef.nativeElement;\r\n if (parent && element && element.parentNode) {\r\n element = element.parentNode;\r\n }\r\n // css style properties\r\n if (style.style) {\r\n Object.entries(style.style).forEach(([key, value]) => {\r\n renderer.setStyle(element, key, value, RendererStyleFlags2.Important);\r\n });\r\n }\r\n // add classes\r\n if (style.classesToAdd) {\r\n style.classesToAdd.forEach((cl) => renderer.addClass(element, cl));\r\n }\r\n // remove classes\r\n if (style.classesToRemove) {\r\n style.classesToRemove.forEach((cl) => renderer.removeClass(element, cl));\r\n }\r\n }\r\n }\r\n\r\n public static getNgClasses(\r\n style: Style | undefined,\r\n classesToAdd?: string[],\r\n classesToRemove?: string[]\r\n ) {\r\n // console.log('getNgClasses', this.counterNgClasses++);\r\n if (classesToAdd === undefined || classesToAdd === null) {\r\n classesToAdd = [];\r\n }\r\n if (classesToRemove === undefined || classesToRemove === null) {\r\n classesToRemove = [];\r\n }\r\n if (style) {\r\n style.classesToAdd.forEach((s) => classesToAdd!.push(s));\r\n style.classesToRemove.forEach((s) => classesToRemove!.push(s));\r\n }\r\n const classes: { [className: string]: boolean } = {};\r\n // Add classes to the object with true values\r\n classesToAdd.forEach((className) => {\r\n classes[className] = true;\r\n });\r\n\r\n // Add classes to remove to the object with false values\r\n classesToRemove.forEach((className) => {\r\n classes[className] = false;\r\n });\r\n return classes;\r\n }\r\n\r\n public static getNgStyles(style: Style | undefined): { [key: string]: string | number } {\r\n const styles: { [key: string]: string | number } = {};\r\n // console.log('getNgStyles', this.counterNgStyle++);\r\n if (style) {\r\n for (const key in style.style) {\r\n styles[this.toCamelCase(key)] = style.style[key];\r\n }\r\n }\r\n return styles;\r\n }\r\n\r\n private static toCamelCase(css: string): string {\r\n return css.replace(/-([a-z])/g, function (g) {\r\n return g[1].toUpperCase();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\nexport interface SmartIconSet {\r\n iconSetName: string;\r\n iconSetEnum: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartIconService {\r\n private assets = 'assets';\r\n private environmentIconSets?: any;\r\n public smartIconSets?: SmartIconSet[];\r\n\r\n constructor(private matIconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) {}\r\n\r\n public setSourceFolder(path: string): void {\r\n this.assets = path;\r\n }\r\n\r\n public iconSets(iconSets: any): void {\r\n this.environmentIconSets = iconSets;\r\n this.setUpIcons();\r\n }\r\n\r\n private setUpIcons(): void {\r\n this.smartIconSets = this.environmentIconSets.map((iconSet: any) => {\r\n let iconSetName = Object.keys(iconSet)[0];\r\n let iconSetEnum = iconSet[iconSetName];\r\n return {\r\n iconSetEnum,\r\n iconSetName,\r\n };\r\n });\r\n\r\n this.smartIconSets!.forEach((iconSet: SmartIconSet) => {\r\n this.load(iconSet);\r\n });\r\n }\r\n\r\n private load(iconSet: SmartIconSet): void {\r\n Object.keys(iconSet.iconSetEnum).forEach((icon: string) => {\r\n this.matIconRegistry.addSvgIconInNamespace(\r\n iconSet.iconSetName,\r\n icon,\r\n this.sanitizer.bypassSecurityTrustResourceUrl(\r\n `${this.assets}/${iconSet.iconSetName}/${iconSet.iconSetEnum[icon]}.svg`\r\n )\r\n );\r\n });\r\n }\r\n\r\n private fullyQualifiedIconByIcon: Map<string, string | undefined> = new Map();\r\n\r\n /**\r\n * Returns fully qualified icon name with namespace if found in iconSets, otherwise returns undefined.\r\n * @param iconWithoutNamespace\r\n * @returns\r\n */\r\n async getFullyQualifiedIcon(iconWithoutNamespace: string): Promise<string | undefined> {\r\n if (this.fullyQualifiedIconByIcon.has(iconWithoutNamespace)) {\r\n return this.fullyQualifiedIconByIcon.get(iconWithoutNamespace);\r\n }\r\n let icon = undefined;\r\n if (this.smartIconSets) {\r\n for (let iconSet of this.smartIconSets) {\r\n if (!icon) {\r\n let namespace = iconSet.iconSetName;\r\n let svgIcon = await this.matIconRegistry\r\n .getNamedSvgIcon(iconWithoutNamespace, namespace)\r\n .toPromise()\r\n .catch((err) => {});\r\n if (svgIcon) {\r\n icon = `${namespace}:${iconWithoutNamespace}`;\r\n }\r\n }\r\n }\r\n }\r\n // if icon is undefined (not found in iconset), we indicate it in map, so we don't search every time.\r\n this.fullyQualifiedIconByIcon.set(iconWithoutNamespace, icon);\r\n return icon;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SmartIconService } from '../smart-icon.service';\r\n\r\n@Component({\r\n selector: 'smart-icon',\r\n templateUrl: './smart-icon.component.html',\r\n styleUrls: ['./smart-icon.component.css'],\r\n})\r\nexport class SmartIconComponent implements OnChanges {\r\n @Input('icon') iconWithoutNamespace!: string;\r\n icon!: string;\r\n @Input() color?: string;\r\n isCustom: boolean = false;\r\n\r\n constructor(private service: SmartIconService, public changeDetector: ChangeDetectorRef) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.isCustom = false;\r\n this.checkIcon();\r\n }\r\n\r\n async checkIcon(): Promise<void> {\r\n let fullyQualifiedIcon = await this.service.getFullyQualifiedIcon(this.iconWithoutNamespace);\r\n if (fullyQualifiedIcon) {\r\n this.isCustom = true;\r\n this.icon = fullyQualifiedIcon;\r\n } else {\r\n this.isCustom = false;\r\n this.icon = this.iconWithoutNamespace;\r\n }\r\n this.changeDetector.markForCheck();\r\n }\r\n}\r\n","<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"isCustom\" svgIcon=\"{{ icon }}\"></mat-icon>\r\n<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"!isCustom\"> {{ icon }} </mat-icon>\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSubject } from '../../smart-subject/projects';\r\nimport {\r\n UiAction,\r\n IconPosition,\r\n UiActionButtonType,\r\n UiActionDescriptor,\r\n UiActionDialogDescriptor,\r\n UiActionFeedbackType,\r\n} from '../api';\r\nimport { SmartViewContextService } from '../smart-view-context.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UiActionDescriptorService implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n languageChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n keysToTranslate: string[] = ['title', 'text', 'placeholder', 'caption', 'feedbackText'];\r\n\r\n constructor(private viewContext: SmartViewContextService) {\r\n if (this.viewContext.translateService) {\r\n this.subscribeToTranslateService();\r\n } else {\r\n this.viewContext.translateServiceChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.subscribeToTranslateService();\r\n });\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n private subscribeToTranslateService(): void {\r\n this.viewContext\r\n .translateService!.onLangChange.pipe(takeUntil(this._destroy$))\r\n .subscribe(() => {\r\n this.languageChanged.next();\r\n });\r\n }\r\n\r\n public async getActionDescriptor(uiAction: UiAction): Promise<UiActionDescriptor> {\r\n let code = uiAction.code!;\r\n let isUnkown = false;\r\n\r\n let server: UiActionDescriptor | undefined | null = uiAction.descriptor;\r\n let client: UiActionDescriptor | undefined | null = null;\r\n\r\n let actionDescriptorFromDescriptors = this.viewContext.getActionDescriptors()?.get(code);\r\n if (actionDescriptorFromDescriptors) {\r\n client = JSON.parse(JSON.stringify(actionDescriptorFromDescriptors));\r\n }\r\n\r\n let actionDescriptor: UiActionDescriptor | undefined | null;\r\n if (!client) {\r\n // server only\r\n actionDescriptor = server;\r\n } else {\r\n // client exists\r\n if (server) {\r\n // server & client -> merge into client what's filled from server\r\n this.mergeActionDescriptorIntoClient(server, client);\r\n }\r\n actionDescriptor = client;\r\n }\r\n\r\n if (!actionDescriptor) {\r\n isUnkown = true;\r\n let unkownActionDescriptor = this.basicActionDescriptors.get('UNKOWN');\r\n actionDescriptor = { ...unkownActionDescriptor! };\r\n actionDescriptor!.title = code;\r\n }\r\n\r\n if (!actionDescriptor!.dialog) {\r\n actionDescriptor = this.setUpUnkownDialogDescriptor(code, actionDescriptor!, 'dialog');\r\n }\r\n\r\n if (!actionDescriptor!.feedbackType && uiAction.submit) {\r\n actionDescriptor!.feedbackType = UiActionFeedbackType.SNACKBAR;\r\n }\r\n\r\n if (this.viewContext.translateService && !isUnkown && !server) {\r\n actionDescriptor = await this.translateUiActionDescriptor(actionDescriptor);\r\n }\r\n\r\n return actionDescriptor!;\r\n }\r\n\r\n public mergeActionDescriptorIntoClient(\r\n server: UiActionDescriptor,\r\n client: UiActionDescriptor\r\n ): void {\r\n if (server.title) {\r\n client.title = server.title;\r\n }\r\n if (server.icon) {\r\n client.icon = server.icon;\r\n }\r\n if (server.color) {\r\n client.color = server.color;\r\n }\r\n if (server.confirmDialog) {\r\n if (!client.confirmDialog) {\r\n client.confirmDialog = server.confirmDialog;\r\n }\r\n this.mergeActionDialogDescriptorIntoClient(server.confirmDialog, client.confirmDialog);\r\n client.confirmDialog = server.confirmDialog;\r\n }\r\n if (server.feedbackType) {\r\n client.feedbackType = server.feedbackType;\r\n }\r\n }\r\n\r\n // TODO use prop name to handle all dialogs\r\n // private mergeActionDescriptorDialog(\r\n // server: UiActionDescriptor,\r\n // client: UiActionDescriptor,\r\n // prop: string\r\n // ): void {\r\n // //let serverDialog: UiActionDialogDescriptor = server[prop] as UiActionDialogDescriptor;\r\n // if (server.confirmDialog) {\r\n // if (!client.confirmDialog) {\r\n // client.confirmDialog = server.confirmDialog;\r\n // }\r\n // this.mergeActionDialogDescriptorIntoClient(server.confirmDialog, client.confirmDialog);\r\n // client.confirmDialog = server.confirmDialog;\r\n // }\r\n // }\r\n\r\n private mergeActionDialogDescriptorIntoClient(\r\n serverDialog: UiActionDialogDescriptor,\r\n clientDialog: UiActionDialogDescriptor\r\n ): void {\r\n if (serverDialog.title) {\r\n clientDialog.title = serverDialog.title;\r\n }\r\n if (serverDialog.placeholder) {\r\n clientDialog.placeholder = serverDialog.placeholder;\r\n }\r\n if (serverDialog.text) {\r\n clientDialog.text = serverDialog.text;\r\n }\r\n }\r\n\r\n private async translateUiActionDescriptor(\r\n uiActionDescriptor: UiActionDescriptor\r\n ): Promise<UiActionDescriptor> {\r\n uiActionDescriptor = await this.deepTranslate(uiActionDescriptor);\r\n\r\n return uiActionDescriptor;\r\n }\r\n\r\n private async deepTranslate(_model: any): Promise<any> {\r\n let model = { ..._model };\r\n await Promise.all(\r\n Object.keys(model).map(async (key: string) => {\r\n if (\r\n model[key] !== undefined &&\r\n typeof model[key] === 'string' &&\r\n model[key].length &&\r\n this.keysToTranslate.includes(key)\r\n ) {\r\n model[key] = await this.viewContext.translateService!.get(model[key]).toPromise();\r\n } else if (model[key] !== undefined && typeof model[key] === 'object') {\r\n model[key] = await this.deepTranslate(model[key]);\r\n }\r\n return model;\r\n })\r\n );\r\n\r\n return model;\r\n }\r\n\r\n private setUpUnkownDialogDescriptor(\r\n code: string,\r\n uiActionDescriptor: UiActionDescriptor,\r\n dialogType: 'dialog' | 'confirmDialog' | 'inputDialog' | 'input2Dialog'\r\n ): UiActionDescriptor {\r\n let unkownDescriptor = this.basicActionDescriptors.get('UNKOWN');\r\n\r\n uiActionDescriptor[dialogType] = unkownDescriptor!.dialog;\r\n uiActionDescriptor[dialogType]!.title = code;\r\n uiActionDescriptor[dialogType]!.actionButton.caption = code;\r\n\r\n return uiActionDescriptor;\r\n }\r\n\r\n private basicActionDescriptors: Map<string, UiActionDescriptor> = new Map([\r\n [\r\n 'UNKOWN',\r\n {\r\n title: '',\r\n type: UiActionButtonType.NORMAL,\r\n color: 'accent',\r\n icon: 'Question',\r\n iconColor: `text-primary`,\r\n iconPosition: IconPosition.POST,\r\n dialog: {\r\n title: '',\r\n placeholder: 'placeholder',\r\n actionButton: {\r\n caption: '',\r\n color: 'accent',\r\n },\r\n cancelButton: {\r\n caption: 'Mégse',\r\n color: '',\r\n },\r\n },\r\n },\r\n ],\r\n ]);\r\n}\r\n","import { Component, Inject } from \"@angular/core\";\r\nimport { MAT_SNACK_BAR_DATA } from \"@angular/material/snack-bar\";\r\nimport { UiAction } from \"../../../api\";\r\n\r\nimport { SmartViewContextService } from \"../../../smart-view-context.service\";\r\nimport { UiActionDescriptorService } from \"../../ui-action.descriptor.service\";\r\n\r\n@Component({\r\n selector: \"app-success-snack-bar\",\r\n templateUrl: \"./success-snack-bar.component.html\",\r\n styleUrls: [\"./success-snack-bar.component.css\"],\r\n})\r\nexport class SuccessSnackBarComponent {\r\n text?: string;\r\n\r\n constructor(\r\n @Inject(MAT_SNACK_BAR_DATA) public data: UiAction,\r\n private viewContext: SmartViewContextService,\r\n private manager: UiActionDescriptorService\r\n ) {\r\n this.manager.getActionDescriptor(data).then((descriptor) => {\r\n if (descriptor.feedbackText) {\r\n this.text = descriptor.feedbackText;\r\n } else {\r\n this.text = this.viewContext.commonFeedbackText ?? \"A mentés sikeres volt!\";\r\n }\r\n });\r\n }\r\n}\r\n","<span class=\"successSnakBarContainer\" matSnackBarLabel> {{ text }} </span>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-invalid-fields-snack-bar',\r\n templateUrl: './invalid-fields-snack-bar.component.html',\r\n styleUrls: ['./invalid-fields-snack-bar.component.css'],\r\n})\r\nexport class InvalidFieldsSnackBarComponent implements OnInit {\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"invalidFieldsSnackBar\">\r\n <!-- <div class=\"invalidFieldsSnackBarContainer\" *ngIf=\"data.message\">\r\n <span class=\"successSnakBarContainer\" matSnackBarLabel>\r\n {{ data.message }}\r\n </span>\r\n </div> -->\r\n <div class=\"invalidFieldsSnackBarContainer\">\r\n <span class=\"invalidFieldsMessage\" matSnackBarLabel> Hiányos vagy hibás adatok! </span>\r\n </div>\r\n</div>\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction, UiActionFeedbackType, UiActionInputType, UiActionRequest } from '../api';\r\nimport { SuccessSnackBarComponent } from './components/success-snack-bar/success-snack-bar.component';\r\n\r\nimport type { UiActionConfirmDialogService } from './dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service';\r\nimport type { UiActionInputDialogService } from './dialogs/ui-action-input-dialog/ui-action-input-dialog.service';\r\nimport { UiActionModel } from './ui-action.model';\r\nimport type { UiActionFileUploadDialogService } from './dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service';\r\nimport { SmartSubject } from '../../smart-subject/projects';\r\nimport { InvalidFieldsSnackBarComponent } from '../invalid-fields-snack-bar/invalid-fields-snack-bar.component';\r\nimport { SmartFormInvalidFields } from '../../smart-form/smartform.model';\r\n\r\nexport interface ExecuteUiActionOptions {\r\n /**\r\n * In case of using a grid: grid.identifier\r\n */\r\n widgetId?: string;\r\n /**\r\n * In case of using a grid: gridRow.id\r\n */\r\n nodeId?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UiActionService implements OnDestroy {\r\n uiActionModel!: UiActionModel;\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n constructor(\r\n @Inject('confirmDialogService') private confirmDialogService: UiActionConfirmDialogService,\r\n @Inject('textFieldDialogService') private textFieldDialogService: UiActionInputDialogService,\r\n @Inject('fileUploadDialogService')\r\n private fileUploadDialogService: UiActionFileUploadDialogService,\r\n private _snackBar: MatSnackBar\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n async execute(uiAction: UiAction, options?: ExecuteUiActionOptions): Promise<void> {\r\n let uiActionRequest: UiActionRequest | undefined;\r\n\r\n uiActionRequest = {\r\n code: uiAction.code!,\r\n identifier: uiAction.identifier,\r\n params: uiAction.params ?? {},\r\n };\r\n\r\n if (uiAction.submit || uiAction.model) {\r\n // submit: with validation, model: without validation. both can be undefined\r\n const validate = uiAction.submit || !uiAction.model;\r\n\r\n if ('reSubscribeToChange' in this.uiActionModel.serviceToUse) {\r\n if (!validate) {\r\n console.error(`Validate = false, but UseUiAction doesn't support it`);\r\n }\r\n this.uiActionModel.serviceToUse.submit.next();\r\n try {\r\n await this.uiActionModel.serviceToUse.submit.toPromise();\r\n this.uiActionModel.serviceToUse.submit = new SmartSubject(this._destroy$);\r\n this.uiActionModel.serviceToUse.reSubscribeToChange.next();\r\n } catch (error: any) {\r\n console.error(error);\r\n this.uiActionModel.serviceToUse.submit = new SmartSubject(this._destroy$);\r\n this.uiActionModel.serviceToUse.reSubscribeToChange.next();\r\n return;\r\n }\r\n } else {\r\n this.uiActionModel.serviceToUse.submitForm(validate);\r\n let invalidFields = this.uiActionModel.serviceToUse.getInvalidFields();\r\n if (validate && invalidFields.invalidFieldKeys.length) {\r\n this.showInvalidFieldsSnackbar(invalidFields);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (uiAction.confirm) {\r\n this.confirmDialogService.action = uiAction;\r\n this.confirmDialogService.openDialog();\r\n await this.confirmDialogService.onAction.toPromise();\r\n if (!this.confirmDialogService.shouldDoAction) {\r\n return;\r\n }\r\n }\r\n\r\n // InputType\r\n if (uiAction.inputType && uiAction.inputType !== UiActionInputType.NONE) {\r\n uiActionRequest = await this.handleInputType(\r\n uiAction.inputType,\r\n uiAction,\r\n uiActionRequest,\r\n 'inputDialog'\r\n );\r\n if (!uiActionRequest) {\r\n return;\r\n }\r\n await new Promise((resolve) => setTimeout(resolve, 250));\r\n }\r\n // Input2Type\r\n if (uiAction.input2Type && uiAction.input2Type !== UiActionInputType.NONE) {\r\n uiActionRequest = await this.handleInputType(\r\n uiAction.input2Type,\r\n uiAction,\r\n uiActionRequest,\r\n 'input2Dialog'\r\n );\r\n if (!uiActionRequest) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.uiActionModel.exception) {\r\n let response = await this.uiActionModel.serviceToUse.handleSpecificDemandsAsynchronously(\r\n uiAction,\r\n uiActionRequest\r\n );\r\n\r\n if (!response.shouldPerformAction || !response.uiActionRequest) {\r\n return;\r\n }\r\n uiActionRequest = response.uiActionRequest;\r\n }\r\n\r\n await this.performAction(uiAction, uiActionRequest, options);\r\n }\r\n\r\n private async handleInputType(\r\n inputType: UiActionInputType,\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest,\r\n inputTypeName: 'inputDialog' | 'input2Dialog'\r\n ): Promise<UiActionRequest | undefined> {\r\n switch (inputType) {\r\n case UiActionInputType.NONE:\r\n return uiActionRequest;\r\n case UiActionInputType.TEXTAREA:\r\n case UiActionInputType.TEXTFIELD:\r\n return await this.handleInputTypeTextField(inputTypeName, uiAction, uiActionRequest);\r\n case UiActionInputType.USER_SELECT:\r\n return await this.handleInputTypeUserSelect(inputTypeName, uiAction, uiActionRequest);\r\n case UiActionInputType.FILE:\r\n return await this.handleInputTypeUpload(inputTypeName, uiAction, uiActionRequest, false);\r\n case UiActionInputType.MULTIPLE_FILES:\r\n return await this.handleInputTypeUpload(inputTypeName, uiAction, uiActionRequest, true);\r\n default:\r\n return uiActionRequest;\r\n }\r\n }\r\n\r\n private async handleInputTypeTextField(\r\n inputTypeName: 'inputDialog' | 'input2Dialog',\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionRequest | undefined> {\r\n let additionalParams = this.uiActionModel.serviceToUse.getAdditionalParams(uiAction);\r\n let inputType: 'inputType' | 'input2Type' =\r\n inputTypeName === 'inputDialog' ? 'inputType' : 'input2Type';\r\n\r\n if (uiAction[inputType] === UiActionInputType.TEXTFIELD) {\r\n this.textFieldDialogService.nodeName = additionalParams.forTextField;\r\n } else if (uiAction[inputType] === UiActionInputType.TEXTAREA) {\r\n this.textFieldDialogService.nodeName = additionalParams.forTextArea;\r\n }\r\n\r\n this.textFieldDialogService.inputTypeName = inputTypeName;\r\n this.textFieldDialogService.action = uiAction;\r\n\r\n this.textFieldDialogService.openDialog();\r\n\r\n await this.textFieldDialogService.onAction.toPromise();\r\n let params = this.textFieldDialogService.params;\r\n\r\n if (!params) {\r\n console.error('There was no response from InputDialog');\r\n return;\r\n }\r\n uiActionRequest.params = {\r\n ...uiActionRequest.params,\r\n ...params,\r\n };\r\n return uiActionRequest;\r\n }\r\n\r\n private async handleInputTypeUpload(\r\n inputTypeName: 'inputDialog' | 'input2Dialog',\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest,\r\n isMultiple: boolean\r\n ): Promise<UiActionRequest | undefined> {\r\n this.fileUploadDialogService.inputTypeName = inputTypeName;\r\n this.fileUploadDialogService.action = uiAction;\r\n this.fileUploadDialogService.isMultiple = isMultiple;\r\n\r\n this.fileUploadDialogService.openDialog();\r\n\r\n await this.fileUploadDialogService.onAction.toPromise();\r\n let files = this.fileUploadDialogService.files;\r\n\r\n if (!files || !files.length) {\r\n console.error('There was no response from InputDialog');\r\n return;\r\n }\r\n uiActionRequest.params = {\r\n ...uiActionRequest.params,\r\n _files: files,\r\n isMultiple,\r\n param:\r\n uiAction.inputType === 'file' || uiAction.inputType === 'multiple_files'\r\n ? 'input'\r\n : 'input2',\r\n };\r\n return uiActionRequest;\r\n }\r\n\r\n private async handleInputTypeUserSelect(\r\n inputTypeName: 'inputDialog' | 'input2Dialog',\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionRequest | undefined> {\r\n let response = await this.uiActionModel.serviceToUse.handleSpecificDemandsAsynchronously(\r\n uiAction,\r\n uiActionRequest\r\n );\r\n\r\n if (!response.shouldPerformAction || !response.uiActionRequest) {\r\n return;\r\n }\r\n uiActionRequest = response.uiActionRequest;\r\n return uiActionRequest;\r\n }\r\n\r\n private async performAction(\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest,\r\n options?: ExecuteUiActionOptions\r\n ): Promise<void> {\r\n if (\r\n !uiActionRequest.params ||\r\n (uiActionRequest.params && !Object.keys(uiActionRequest.params).length)\r\n ) {\r\n uiActionRequest.params = {\r\n model: this.uiActionModel.serviceToUse.getModel(),\r\n };\r\n } else if (uiAction.submit || uiAction.model) {\r\n uiActionRequest.params['model'] = this.uiActionModel.serviceToUse.getModel();\r\n }\r\n\r\n try {\r\n await this.uiActionModel.serviceToUse.performUiActionRequest(\r\n uiActionRequest,\r\n options?.widgetId,\r\n options?.nodeId\r\n );\r\n\r\n if (this.uiActionModel.descriptor?.feedbackType === UiActionFeedbackType.SNACKBAR) {\r\n this.showSavedSnackbar(uiAction);\r\n }\r\n } catch (error: any) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n showSavedSnackbar(uiAction: UiAction): void {\r\n this._snackBar.openFromComponent(SuccessSnackBarComponent, {\r\n duration: 5 * 1000,\r\n panelClass: ['backgroundColor-accent'],\r\n data: uiAction,\r\n });\r\n }\r\n\r\n showInvalidFieldsSnackbar(invalidFields: SmartFormInvalidFields): void {\r\n this._snackBar.openFromComponent(InvalidFieldsSnackBarComponent, {\r\n duration: 5 * 1000,\r\n panelClass: ['backgroundColor-warn'],\r\n data: invalidFields,\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\r\nimport {\r\n UiActionTooltip,\r\n UiActionTooltipTooltipPositionEnum,\r\n} from '../view-context/api/model/models';\r\n\r\n@Directive({\r\n selector: '[smartTooltip]',\r\n providers: [MatTooltip],\r\n})\r\nexport class SmartTooltipDirective {\r\n @Input() smartTooltip?: UiActionTooltip;\r\n\r\n constructor(private tooltip: MatTooltip) {}\r\n\r\n @HostBinding('style.cursor') cursor: string = 'pointer';\r\n\r\n @HostListener('mouseover') mouseover() {\r\n if (!this.smartTooltip) return;\r\n this.tooltip.message = this.smartTooltip.tooltip!;\r\n this.tooltip.position = this.getTooltipPos(this.smartTooltip.tooltipPosition);\r\n this.tooltip.showDelay = this.getTooltipDelay(this.smartTooltip.tooltipDelay);\r\n this.tooltip.tooltipClass = 'override-mouse-over-display';\r\n this.tooltip.show();\r\n }\r\n @HostListener('mouseleave') mouseleave() {\r\n this.tooltip.tooltipClass = 'override-mouse-out-display';\r\n this.tooltip.hide();\r\n }\r\n\r\n getTooltipPos(pos?: UiActionTooltipTooltipPositionEnum): TooltipPosition {\r\n if (pos) {\r\n return pos.toLowerCase() as TooltipPosition;\r\n } else {\r\n return 'before';\r\n }\r\n }\r\n\r\n getTooltipDelay(delay?: number): number {\r\n return delay ? delay : 1000;\r\n }\r\n\r\n getTooltipHideDelay(delay?: number): number {\r\n return delay ? delay : 2000;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { TooltipPosition } from '@angular/material/tooltip';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { IconPosition, UiActionTooltipTooltipPositionEnum } from '../api';\r\nimport { UiActionButtonType } from '../api/model/uiActionButtonType';\r\nimport { UiActionDescriptorService } from './ui-action.descriptor.service';\r\nimport { UiActionModel } from './ui-action.model';\r\nimport { UiActionService } from './ui-action.service';\r\n\r\n@Component({\r\n selector: 'smart-ui-action-toolbar',\r\n templateUrl: './ui-action-toolbar.component.html',\r\n styleUrls: ['./ui-action-toolbar.component.css'],\r\n})\r\nexport class UiActionToolbarComponent implements OnInit, OnChanges, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n pressedButtonActive: boolean = true;\r\n\r\n @Input() uiActionModels?: UiActionModel[];\r\n @Input() uiActionDescriptorService?: UiActionDescriptorService;\r\n @Input() id?: string;\r\n\r\n uiActionModelsWithDescriptions?: UiActionModel[];\r\n\r\n private manager!: UiActionDescriptorService;\r\n private languageChangedSubscription?: Subscription;\r\n\r\n constructor(\r\n private service: UiActionService,\r\n private inject: Injector,\r\n public changeDetector: ChangeDetectorRef\r\n ) {\r\n // Injects the basic UiActionDescriptorService provided by the AppModule\r\n this.manager = inject.get(UiActionDescriptorService);\r\n\r\n this.subscribeToLanguageChange();\r\n }\r\n\r\n ngOnInit(): void {\r\n // Overrides the basic UiActionDescriptorService with a custom one if there is one\r\n if (this.uiActionDescriptorService) {\r\n this.manager = this.uiActionDescriptorService;\r\n this.subscribeToLanguageChange();\r\n }\r\n\r\n this.setUp();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['uiActionModels']) {\r\n let uiActionModels = changes['uiActionModels'].currentValue;\r\n if (uiActionModels) {\r\n this.uiActionModels = uiActionModels;\r\n this.setUp();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n private subscribeToLanguageChange(): void {\r\n this.languageChangedSubscription?.unsubscribe();\r\n\r\n this.languageChangedSubscription = this.manager.languageChanged\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(() => {\r\n this.setUp();\r\n });\r\n }\r\n\r\n async setUp(): Promise<void> {\r\n if (this.uiActionModels) {\r\n let uiActionModelsWithDescriptions = [];\r\n for (const uiActionModel of this.uiActionModels) {\r\n const uiAction = uiActionModel.uiAction;\r\n\r\n // using equality is a must here, undefined and null should be equal\r\n if (this.id == uiAction.toolbar) {\r\n uiActionModel.descriptor = await this.manager.getActionDescriptor(uiActionModel.uiAction);\r\n uiActionModelsWithDescriptions.push(uiActionModel);\r\n }\r\n }\r\n this.uiActionModelsWithDescriptions = uiActionModelsWithDescriptions;\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n async onActionClicked(event: any, uiActionModel: UiActionModel): Promise<void> {\r\n event.stopPropagation();\r\n\r\n if (uiActionModel.uiAction.disabled) {\r\n return;\r\n }\r\n\r\n if (this.pressedButtonActive) {\r\n this.pressedButtonActive = false;\r\n\r\n this.service.uiActionModel = uiActionModel;\r\n let options = {\r\n nodeId: uiActionModel.nodeId,\r\n widgetId: uiActionModel.widgetId,\r\n };\r\n\r\n await this.service.execute(uiActionModel.uiAction, options);\r\n\r\n this.pressedButtonActive = true;\r\n }\r\n }\r\n\r\n onActionDoubleClicked(event: any, uiActionModel: UiActionModel): void {\r\n event.stopPropagation();\r\n // We do not handle double clicks\r\n }\r\n\r\n getType(uiActionModel: UiActionModel): string {\r\n if (!uiActionModel.descriptor?.type) {\r\n console.log(`Action button type unset: ${uiActionModel?.uiAction?.code}`);\r\n }\r\n switch (uiActionModel.descriptor?.type) {\r\n case UiActionButtonType.NORMAL:\r\n return 'mat-button';\r\n case UiActionButtonType.FLAT:\r\n return 'mat-flat-button';\r\n case UiActionButtonType.RAISED:\r\n return 'mat-raised-button';\r\n case UiActionButtonType.STROKED:\r\n return 'mat-stroked-button';\r\n case UiActionButtonType.ICON:\r\n return 'mat-icon-button';\r\n case UiActionButtonType.MINI_FAB:\r\n return 'mat-mini-fab';\r\n case UiActionButtonType.FAB:\r\n return 'mat-fab';\r\n default:\r\n console.log(`Unhandled action button type case: ${uiActionModel.descriptor?.type}`);\r\n return `mat-button`;\r\n }\r\n }\r\n\r\n iconPosition(): typeof IconPosition {\r\n return IconPosition;\r\n }\r\n\r\n isOnlyIcon(uiActionModel: UiActionModel): boolean {\r\n return (\r\n uiActionModel.descriptor?.type === UiActionButtonType.ICON ||\r\n uiActionModel.descriptor?.type === UiActionButtonType.MINI_FAB ||\r\n uiActionModel.descriptor?.type === UiActionButtonType.FAB\r\n );\r\n }\r\n\r\n getTooltipPos(pos?: UiActionTooltipTooltipPositionEnum): TooltipPosition {\r\n if (pos) {\r\n return pos.toLowerCase() as TooltipPosition;\r\n } else {\r\n return 'before';\r\n }\r\n }\r\n\r\n getTooltipDelay(delay?: number): number {\r\n return delay ? delay : 1000;\r\n }\r\n\r\n getTooltipHideDelay(delay?: number): number {\r\n return delay ? delay : 2000;\r\n }\r\n}\r\n","<div class=\"uiActionButtonsContainer\">\r\n <button\r\n *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions\"\r\n mat-button\r\n [smartTooltip]=\"uiActionModel?.descriptor?.tooltip!\"\r\n [ngClass]=\"getType(uiActionModel)\"\r\n class=\"{{ uiActionModel.cssClass }}\"\r\n [color]=\"uiActionModel.descriptor?.color\"\r\n (click)=\"onActionClicked($event, uiActionModel)\"\r\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\r\n (dblclick)=\"onActionDoubleClicked($event, uiActionModel)\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(uiActionModel); then iconOnly; else text\"></div>\r\n <ng-template #iconOnly>\r\n <smart-icon\r\n *ngIf=\"uiActionModel.descriptor?.icon\"\r\n [icon]=\"uiActionModel.descriptor!.icon!\"\r\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\r\n ></smart-icon>\r\n </ng-template>\r\n <ng-template #text>\r\n <smart-icon\r\n *ngIf=\"\r\n uiActionModel.descriptor?.icon &&\r\n uiActionModel.descriptor?.iconPosition === iconPosition().PRE\r\n \"\r\n [icon]=\"uiActionModel.descriptor!.icon!\"\r\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\r\n ></smart-icon>\r\n {{ uiActionModel.descriptor?.title }}\r\n <smart-icon\r\n *ngIf=\"\r\n uiActionModel.descriptor?.icon &&\r\n uiActionModel.descriptor?.iconPosition === iconPosition().POST\r\n \"\r\n [icon]=\"uiActionModel.descriptor!.icon!\"\r\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\r\n ></smart-icon>\r\n </ng-template>\r\n </button>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-large-file-snack-bar',\r\n templateUrl: './large-file-snack-bar.component.html',\r\n styleUrls: ['./large-file-snack-bar.component.css']\r\n})\r\nexport class LargeFileSnackBarComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<span class=\"largeFileSnakBarContainer\" matSnackBarLabel\r\n >A kiválasztott fájl(ok) mérete túl nagy.</span\r\n>\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { LargeFileSnackBarComponent } from './large-file-snack-bar/large-file-snack-bar.component';\r\nimport { SmartFileUploaderI18n } from './smartfileuploader.model';\r\n\r\n@Component({\r\n selector: 'smartfileuploader',\r\n templateUrl: './smartfileuploader.component.html',\r\n styleUrls: ['./smartfileuploader.component.css'],\r\n})\r\nexport class SmartfileuploaderComponent implements OnInit {\r\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n files: any[] = [];\r\n @Input() uploadCallback!: (files: any[]) => void;\r\n @Input() fileFormats?: string[] = [];\r\n @Input() maxSizeMb?: number = 25;\r\n @Input() i18n?: SmartFileUploaderI18n;\r\n @Input() useIconButton: boolean = true;\r\n @Input() isMultiple?: boolean = true;\r\n\r\n constructor(private _snackBar: MatSnackBar) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.i18n || this.i18n === undefined) {\r\n this.i18n = {\r\n addFile: 'dokumentum hozzáadása',\r\n browseOrDrag: 'tallózás vagy behúzás',\r\n maxSize: 'max. 25 MB',\r\n formats: 'PDF, docx, xls formátum',\r\n upload: 'Feltöltés',\r\n };\r\n }\r\n }\r\n\r\n getFile(event: any): void {\r\n if (event.target.files && event.target.files.length) {\r\n let fileList: File[] = [...event.target.files];\r\n fileList.forEach((file: File) => {\r\n if (file.size > this.maxSizeMb! * 1000000) {\r\n this._snackBar.openFromComponent(LargeFileSnackBarComponent, {\r\n duration: 5 * 1000,\r\n });\r\n } else {\r\n if (this.isMultiple) {\r\n this.files = [...this.files, file];\r\n } else {\r\n this.files = [file];\r\n }\r\n }\r\n });\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n }\r\n\r\n remove(index: number): void {\r\n this.files.splice(index, 1);\r\n }\r\n\r\n uploadFile(): void {\r\n this.uploadCallback(this.files);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"fileContainer\">\r\n <div class=\"fileInnerContainer\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary\"> {{ i18n!.addFile }} </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <mat-label class=\"fileNameLabel\"> {{ file.name }} </mat-label>\r\n <button mat-icon-button (click)=\"remove(i)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <button class=\"uploadButton\" mat-raised-button color=\"primary\" (click)=\"uploadFile()\">\r\n {{ i18n!.upload ?? 'Feltöltés' }}\r\n </button>\r\n </div>\r\n</div>\r\n","import { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport {\r\n Component,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n forwardRef,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { SmartSortable } from \"../../../smartform.form-model\";\r\n\r\n@Component({\r\n selector: \"lib-sortable-widget\",\r\n templateUrl: \"./sortable-widget.component.html\",\r\n styleUrls: [\"./sortable-widget.component.css\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SortableWidgetComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SortableWidgetComponent\r\n implements ControlValueAccessor, OnChanges\r\n{\r\n @Input() widgetInstance!: SmartSortable<any>;\r\n\r\n // ControlValueAccessor interface methods\r\n private onChange: (value: any[]) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n isDisabled: boolean = false;\r\n\r\n constructor() {}\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (\r\n changes[\"widgetInstance\"] &&\r\n !changes[\"widgetInstance\"].isFirstChange()\r\n ) {\r\n this.onChange(this.widgetInstance.valueList!);\r\n }\r\n }\r\n\r\n onDrop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(\r\n this.widgetInstance.valueList!,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n this.onChange(this.widgetInstance.valueList!);\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: any[]): void {\r\n this.widgetInstance.valueList = value || [];\r\n }\r\n\r\n registerOnChange(fn: (value: string[]) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n}\r\n","<div cdkDropList (cdkDropListDropped)=\"onDrop($event)\" class=\"dropList\">\r\n <div\r\n cdkDrag\r\n [cdkDragDisabled]=\"isDisabled\"\r\n *ngFor=\"let item of widgetInstance.valueList!; let i = index\"\r\n class=\"draggableItem\"\r\n >\r\n <smart-icon\r\n class=\"cdkDragHandle\"\r\n cdkDragHandle\r\n color=\"drag-indicator\"\r\n icon=\"drag_indicator\"\r\n ></smart-icon>\r\n <div class=\"indexCircle\">\r\n {{ i + 1 }}\r\n </div>\r\n <span class=\"valueLabel\"> {{ item }} </span>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport {\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n MomentDateAdapter,\r\n} from '@angular/material-moment-adapter';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { Moment } from 'moment';\r\nimport { SmartMonthPicker } from '../../../smartform.form-model';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport moment from 'moment';\r\nimport { Y } from '@angular/cdk/keycodes';\r\nimport { SmartValidator, SmartWidgetHintPosition } from '../../../smartform.model';\r\nimport { SmartWidgetHint, SmartWidgetHintPositionEnum } from '../../../api';\r\n\r\nexport const YEARH_MONTH_FORMAT = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY' || 'YYYY/MM',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'lib-smart-month-picker',\r\n templateUrl: './smart-month-picker.component.html',\r\n styleUrls: ['./smart-month-picker.component.css'],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },\r\n ],\r\n})\r\nexport class SmartMonthPickerComponent implements OnInit {\r\n @Input() widgetInstance!: SmartMonthPicker;\r\n @Output() valueChange = new EventEmitter();\r\n date!: FormControl;\r\n SmartWidgetHintPosition = SmartWidgetHintPositionEnum;\r\n\r\n ngOnInit(): void {\r\n // if (this.widgetInstance.value && this.widgetInstance.value.length) {\r\n // let date = new Date(this.widgetInstance.value);\r\n // let valueInMoment = moment(date);\r\n // this.date = new FormControl(valueInMoment);\r\n // } else {\r\n // this.date = new FormControl(moment());\r\n // this.valueChange.next(this.date.value);\r\n // }\r\n\r\n moment(this.widgetInstance.value || '');\r\n\r\n if (this.widgetInstance.value) {\r\n let momemtValue = moment(this.widgetInstance.value);\r\n this.date = new FormControl(momemtValue);\r\n } else {\r\n // let momemtValue = moment();\r\n this.date = new FormControl('');\r\n }\r\n }\r\n\r\n chosenMonthHandler(moment: Moment, datepicker: MatDatepicker<Moment>) {\r\n // const ctrlValue = this.date.value;\r\n // ctrlValue.month(moment.month());\r\n // ctrlValue.year(moment.year());\r\n\r\n this.date.setValue(moment);\r\n\r\n this.valueChange.next(moment);\r\n datepicker.close();\r\n }\r\n\r\n handleChange(event: any): void {\r\n this.valueChange.next(this.date.value);\r\n }\r\n}\r\n","<div class=\"smart-month-picker-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n [matDatepicker]=\"dp\"\r\n placeholder=\"Month and Year\"\r\n [formControl]=\"date\"\r\n (input)=\"handleChange($event)\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #dp\r\n startView=\"multi-year\"\r\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\r\n panelClass=\"example-month-picker\"\r\n >\r\n </mat-datepicker>\r\n </mat-form-field>\r\n <div class=\"smart-month-picker-hint\">\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n</div>\r\n","import { Directive, EventEmitter, HostListener, Output } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[capsLock]\" })\r\nexport class TrackCapsDirective {\r\n @Output(\"capsLock\") capsLock = new EventEmitter<Boolean>();\r\n\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent): void {\r\n const capsOn = event.getModifierState && event.getModifierState(\"CapsLock\");\r\n this.capsLock.emit(capsOn);\r\n }\r\n @HostListener(\"window:keyup\", [\"$event\"])\r\n onKeyUp(event: KeyboardEvent): void {\r\n const capsOn = event.getModifierState && event.getModifierState(\"CapsLock\");\r\n this.capsLock.emit(capsOn);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'highlight' })\r\nexport class HighlightPipe implements PipeTransform {\r\n transform(text: string, search: string): string {\r\n const pattern = search\r\n .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&')\r\n .split(' ')\r\n .filter((t) => t.length > 0)\r\n .join('|');\r\n const regex = new RegExp(pattern, 'gi');\r\n\r\n return search ? text.replace(regex, (match) => `<b>${match}</b>`) : text;\r\n }\r\n}\r\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentRef,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { deepEqual } from 'fast-equals';\r\nimport moment from 'moment';\r\nimport { ContentChange, QuillEditorComponent, QuillModules } from 'ngx-quill';\r\nimport { Observable, Subject, distinctUntilChanged, map, startWith, takeUntil } from 'rxjs';\r\nimport { ComponentFactoryService } from '../../../component-factory-service/projects';\r\nimport { UiActionToolbarComponent } from '../../../view-context/smart-ui-action/ui-action-toolbar.component';\r\nimport {\r\n SmartFormWidgetDirection,\r\n SmartFormWidgetType,\r\n SmartWidgetHintPositionEnum,\r\n} from '../../api/model/models';\r\nimport { SmartFormService } from '../../services/smartform.service';\r\nimport { SmartButton, SmartFormWidget, SmartItem, SmartMatrix } from '../../smartform.form-model';\r\nimport {\r\n SmartFormTextFieldButtonIconPosition,\r\n SmartValidator,\r\n SophisticatedValueChange,\r\n Value,\r\n} from '../../smartform.model';\r\nimport { SmartStyleUtility } from '../../../view-context/utility/smart-style-utility';\r\n\r\nexport class SmartWidgetSettings {\r\n public static useUtc = false;\r\n}\r\n\r\n@Component({\r\n selector: 'smartformwidget',\r\n templateUrl: './smartformwidget.component.html',\r\n styleUrls: ['./smartformwidget.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SmartformwidgetComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n hidePassword: boolean = true;\r\n\r\n @Input() form!: FormGroup;\r\n @Input() widgetInstance!: SmartFormWidget<any>;\r\n @Input() onBlur?: Subject<any>;\r\n @Input() onValueChange?: Subject<any>;\r\n @Input() labelColor?: string;\r\n @Input() sophisticatedValueChange!: Subject<SophisticatedValueChange>;\r\n\r\n smartFormWidgetType = SmartFormWidgetType;\r\n\r\n capsOn: any;\r\n\r\n @ViewChild('chipInput') chipInputChild?: ElementRef<HTMLInputElement>;\r\n\r\n filteredValueList?: Observable<string[] | undefined>;\r\n\r\n hasError: boolean = false;\r\n errorKey?: string;\r\n\r\n indicatorItems?: any[];\r\n\r\n // customComponent\r\n @ViewChild('customComponent', { read: ViewContainerRef })\r\n customComponentVcRef?: ViewContainerRef;\r\n customComponentRef?: ComponentRef<any>;\r\n\r\n filteredOptions?: Observable<SmartItem<any>[]>;\r\n toHighlight: string = '';\r\n\r\n @ViewChild('quillEditor') quill?: QuillEditorComponent;\r\n\r\n isEnterPressed: boolean = false;\r\n\r\n isDatePickerRequired: boolean = false;\r\n\r\n SmartWidgetHintPosition = SmartWidgetHintPositionEnum;\r\n\r\n // toolbar\r\n @ViewChild('toolbar') toolbar?: UiActionToolbarComponent;\r\n\r\n @ViewChildren(SmartformwidgetComponent)\r\n childrenWidgetsQL?: QueryList<SmartformwidgetComponent>;\r\n\r\n emptyQuillToolbar: QuillModules = {\r\n toolbar: false,\r\n };\r\n\r\n constructor(\r\n private service: SmartFormService,\r\n private cfService: ComponentFactoryService,\r\n private sanitizer: DomSanitizer,\r\n public changeDetector: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (\r\n this.widgetInstance.type === SmartFormWidgetType.CONTAINER &&\r\n this.widgetInstance.valueList\r\n ) {\r\n this.widgetInstance.valueList = this.service.filterWidgetsByVisibility(\r\n this.widgetInstance.valueList\r\n );\r\n }\r\n this.form.valueChanges.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.getErrorMessage(this.widgetInstance);\r\n });\r\n this.onBlur?.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.getErrorMessage(this.widgetInstance);\r\n });\r\n if (\r\n this.widgetInstance.type === SmartFormWidgetType.INDICATOR &&\r\n this.widgetInstance.indicator\r\n ) {\r\n if (this.widgetInstance.indicator?.indicatorLength) {\r\n this.indicatorItems = new Array<any>(this.widgetInstance.indicator.indicatorLength);\r\n }\r\n this.form.controls[this.widgetInstance.indicator!.indicateProperty].valueChanges\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((value: any) => {\r\n if (this.widgetInstance.type === SmartFormWidgetType.INDICATOR) {\r\n this.widgetInstance.indicator!.indicatorValue =\r\n this.widgetInstance.indicator!.changeIndicatorStatus(value);\r\n }\r\n });\r\n }\r\n\r\n if (\r\n this.widgetInstance.type === SmartFormWidgetType.TEXT_FIELD &&\r\n this.widgetInstance.selection\r\n ) {\r\n this.filteredOptions = this.onValueChange!.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value || '')),\r\n takeUntil(this._destroy$)\r\n );\r\n }\r\n\r\n if (this.widgetInstance.type === SmartFormWidgetType.YOUTUBE_PLAYER) {\r\n let videoId = this.parseYoutubeUrl(this.widgetInstance.link!);\r\n if (videoId) this.widgetInstance.videoId = videoId;\r\n const tag = document.createElement('script');\r\n\r\n tag.src = 'https://www.youtube.com/iframe_api';\r\n document.body.appendChild(tag);\r\n }\r\n\r\n let formControls: string[] = Object.keys(this.form.controls).filter(\r\n (key: string) =>\r\n key === this.widgetInstance.key || key.startsWith(`${this.widgetInstance.key}.`)\r\n );\r\n\r\n formControls.map((key: string) => {\r\n this.form.controls[key].valueChanges\r\n .pipe(distinctUntilChanged(), takeUntil(this._destroy$))\r\n .subscribe((value: string) => {\r\n const valueChange: SophisticatedValueChange = {\r\n key,\r\n value,\r\n kind:\r\n this.widgetInstance.type === SmartFormWidgetType.SELECT ||\r\n this.widgetInstance.type === SmartFormWidgetType.SELECT_MULTIPLE ||\r\n this.widgetInstance.type === SmartFormWidgetType.RADIO_BUTTON\r\n ? 'selection'\r\n : 'basic',\r\n };\r\n\r\n this.sophisticatedValueChange.next(valueChange);\r\n });\r\n });\r\n }\r\n\r\n parseYoutubeUrl(url: string) {\r\n url.replace('/shorts/', '/watch?v=');\r\n\r\n var regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/;\r\n var match = url.match(regExp);\r\n\r\n return match && match[7].length == 11 ? match[7] : false;\r\n }\r\n\r\n _hasJustChanged: boolean = false;\r\n\r\n get hasJustChanged(): boolean {\r\n return this._hasJustChanged;\r\n }\r\n set hasJustChanged(hasJustChanged: boolean) {\r\n this._hasJustChanged = hasJustChanged;\r\n new Promise((resolve) => setTimeout(resolve, 250)).then(() => {\r\n this._hasJustChanged = false;\r\n });\r\n }\r\n\r\n hasCreated: boolean = false;\r\n\r\n @ViewChild('dateInput') dateInputChild?: ElementRef;\r\n @ViewChild('timeInput') timeInputChild?: ElementRef;\r\n\r\n onDatePickerBlur(event: any): void {\r\n event.stopPropagation();\r\n\r\n this.onBlur?.next(this.widgetInstance);\r\n this.handleDateChanged(this.form.controls[this.widgetInstance.key!].value);\r\n }\r\n\r\n onTimePickerBlur(event: any): void {\r\n event.stopPropagation();\r\n\r\n this.onBlur?.next(this.widgetInstance);\r\n this.handleTimeChanged(this.form.controls[`${this.widgetInstance.key}-time`].value);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.widgetInstance.type === SmartFormWidgetType.COMPONENT) {\r\n this.customComponentRef = this.cfService.createComponent(\r\n this.customComponentVcRef!,\r\n this.widgetInstance.component,\r\n this.widgetInstance.input\r\n );\r\n }\r\n\r\n if (\r\n this.widgetInstance.type === SmartFormWidgetType.DATE_TIME_PICKER ||\r\n this.widgetInstance.type === SmartFormWidgetType.MONTH_PICKER\r\n ) {\r\n this.isDatePickerRequired = !!this.widgetInstance.validators?.some(\r\n (smartValidator: SmartValidator) => smartValidator.validator === Validators.required\r\n );\r\n\r\n let time;\r\n if (this.widgetInstance.value) {\r\n let date = new Date(this.widgetInstance.value);\r\n let hour = SmartWidgetSettings.useUtc ? date.getUTCHours() : date.getHours();\r\n let min = SmartWidgetSettings.useUtc ? date.getUTCMinutes() : date.getMinutes();\r\n time = String(hour).padStart(2, '0') + ':' + String(min).padStart(2, '0');\r\n this.widgetInstance.value = moment(date);\r\n const dateFormControl = this.form.controls[this.widgetInstance.key];\r\n if (dateFormControl) {\r\n dateFormControl.setValue(this.widgetInstance.value);\r\n }\r\n } else {\r\n time = '';\r\n }\r\n\r\n let validators: ValidatorFn[] = [];\r\n if (this.widgetInstance.validators) {\r\n validators = this.widgetInstance.validators?.map((validator: SmartValidator) => {\r\n return validator.validator;\r\n });\r\n }\r\n\r\n const timeFormControl = new FormControl(time, validators);\r\n\r\n if (this.widgetInstance.isDisabled) {\r\n timeFormControl.disable();\r\n }\r\n\r\n this.form.addControl(`${this.widgetInstance.key}-time`, timeFormControl);\r\n\r\n this.hasCreated = true;\r\n\r\n this.form.controls[this.widgetInstance.key!].valueChanges\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((_moment: any) => {\r\n this.handleDateChanged(_moment);\r\n });\r\n this.form.controls[`${this.widgetInstance.key}-time`].valueChanges\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((timeValue: string) => {\r\n this.handleTimeChanged(timeValue);\r\n });\r\n }\r\n }\r\n\r\n handleDateChanged(_moment: any): void {\r\n const isDateFocused = document.activeElement === this.dateInputChild?.nativeElement;\r\n const isTimeFocused = document.activeElement === this.timeInputChild?.nativeElement;\r\n const dateFormControl = this.form.controls[this.widgetInstance.key!];\r\n const timeFormControl = this.form.controls[`${this.widgetInstance.key}-time`];\r\n\r\n if (\r\n !this.isDatePickerRequired &&\r\n timeFormControl.hasValidator(Validators.required) &&\r\n !_moment\r\n ) {\r\n timeFormControl.removeValidators(Validators.required);\r\n timeFormControl.setValue('');\r\n } else if (\r\n !this.isDatePickerRequired &&\r\n !timeFormControl.hasValidator(Validators.required) &&\r\n _moment\r\n ) {\r\n timeFormControl.addValidators(Validators.required);\r\n\r\n if (timeFormControl.value === '') {\r\n timeFormControl.setValue(undefined);\r\n timeFormControl.markAsUntouched();\r\n }\r\n }\r\n\r\n if (!_moment || isDateFocused || isTimeFocused) {\r\n return;\r\n }\r\n\r\n if (this.hasJustChanged) {\r\n this.hasJustChanged = false;\r\n return;\r\n }\r\n\r\n const timeValue = timeFormControl.value || '00:00';\r\n this.hasJustChanged = true;\r\n\r\n if (this.widgetInstance.type === SmartFormWidgetType.DATE_TIME_PICKER) {\r\n this.setDateFormControl(dateFormControl, _moment, timeValue);\r\n this.widgetInstance.value = dateFormControl.value;\r\n }\r\n }\r\n\r\n handleTimeChanged(timeValue: string): void {\r\n const isFocused = document.activeElement === this.timeInputChild?.nativeElement;\r\n const dateFormControl = this.form.controls[this.widgetInstance.key!];\r\n const timeFormControl = this.form.controls[`${this.widgetInstance.key}-time`];\r\n\r\n if (\r\n !this.isDatePickerRequired &&\r\n dateFormControl.hasValidator(Validators.required) &&\r\n !timeValue\r\n ) {\r\n dateFormControl.removeValidators(Validators.required);\r\n dateFormControl.setValue(dateFormControl.value ?? '');\r\n } else if (\r\n !this.isDatePickerRequired &&\r\n !dateFormControl.hasValidator(Validators.required) &&\r\n timeValue\r\n ) {\r\n dateFormControl.setValidators(Validators.required);\r\n }\r\n\r\n if (isFocused) {\r\n return;\r\n }\r\n\r\n if (this.hasJustChanged) {\r\n this.hasJustChanged = false;\r\n return;\r\n }\r\n\r\n if (!timeValue) {\r\n if (timeFormControl.hasValidator(Validators.required)) {\r\n timeFormControl.markAsDirty();\r\n }\r\n return;\r\n }\r\n\r\n let _moment = dateFormControl.value;\r\n\r\n if (!_moment) {\r\n return;\r\n }\r\n\r\n this.hasJustChanged = true;\r\n if (this.widgetInstance.type === SmartFormWidgetType.DATE_TIME_PICKER) {\r\n this.setDateFormControl(dateFormControl, _moment, timeValue);\r\n }\r\n }\r\n\r\n private setDateFormControl(dateFormControl: any, _moment: any, timeValue: string) {\r\n if (_moment) {\r\n let hour = timeValue.substring(0, 2);\r\n let min = timeValue.substring(3, 5);\r\n _moment.hour(hour);\r\n _moment.minute(min);\r\n dateFormControl.setValue(_moment);\r\n }\r\n }\r\n\r\n getTime(): string {\r\n if (this.widgetInstance.type === SmartFormWidgetType.DATE_TIME_PICKER) {\r\n return this.widgetInstance.value.toISOString().split('T')[1].substring(0, 5);\r\n }\r\n return '';\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n onKeydown(): void {\r\n this.isEnterPressed = true;\r\n\r\n new Promise((resolve) => setTimeout(resolve, 500)).then(() => {\r\n this.isEnterPressed = false;\r\n });\r\n }\r\n\r\n togglePasswordVisibility(event: any): void {\r\n if (!this.isEnterPressed) {\r\n this.hidePassword = !this.hidePassword;\r\n }\r\n }\r\n\r\n getNgClass(): { [className: string]: boolean } {\r\n return SmartStyleUtility.getNgClasses(this.widgetInstance.style);\r\n }\r\n\r\n getStyle(): { [key: string]: string | number } {\r\n if (!this.widgetInstance.style) {\r\n this.widgetInstance.style = {\r\n classesToAdd: [],\r\n classesToRemove: [],\r\n style: {},\r\n };\r\n }\r\n\r\n if (!('width' in this.widgetInstance.style.style) && 'minWidth' in this.widgetInstance) {\r\n this.widgetInstance.style.style['width'] = `${this.widgetInstance.minWidth}px`;\r\n }\r\n return SmartStyleUtility.getNgStyles(this.widgetInstance.style);\r\n }\r\n\r\n getLabelNgClass(): { [className: string]: boolean } {\r\n if ('labelStyle' in this.widgetInstance) {\r\n return SmartStyleUtility.getNgClasses(this.widgetInstance.labelStyle);\r\n }\r\n\r\n return {};\r\n }\r\n\r\n getLabelStyle(): { [key: string]: string | number } {\r\n if ('labelStyle' in this.widgetInstance) {\r\n return SmartStyleUtility.getNgStyles(this.widgetInstance.labelStyle);\r\n }\r\n\r\n return {};\r\n }\r\n\r\n /**\r\n * Change handler for the potentially present Quill editor, enforcing max length limits if\r\n * necessary.\r\n *\r\n * @param change the {@link ContentChange} the Quill editor emits\r\n * @returns {@code void}\r\n */\r\n onRichTextEditorContentChanged(change: ContentChange): void {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.RICH_TEXT) {\r\n return;\r\n }\r\n\r\n if (!this.widgetInstance.maxLength) {\r\n return;\r\n }\r\n\r\n // we are permitted a number one greater than the requested: The quill editor contains an\r\n // unremovable new-line character at the end of its content.\r\n const maxLength: number = this.widgetInstance.maxLength + 1;\r\n if (change.text.length <= maxLength) {\r\n return;\r\n }\r\n\r\n const insertOpCount: number = change.delta.ops?.filter((it) => !!it.insert).length ?? 0;\r\n if (insertOpCount > 0) {\r\n this.quill?.quillEditor.setContents(change.oldDelta);\r\n }\r\n }\r\n\r\n /**\r\n * Calculates the number of remaining user-space characters allowed to be entered into the Quill\r\n * editor.\r\n *\r\n * <p>\r\n * The real length of the editor's content may be much longer - as it is persisted as an HTML\r\n * document fragment behind the scenes. This method is concerned by the number of characters the\r\n * user perceives.\r\n *\r\n * @returns the {@link number} of remaining permitted characters the user may input, or {@code -1}\r\n * if the leeway is not interpreted in the component's current state\r\n */\r\n getRichTextEditorLengthLeeway(): number {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.RICH_TEXT) {\r\n return -1;\r\n }\r\n\r\n if (!this.widgetInstance.maxLength) {\r\n return -1;\r\n }\r\n\r\n // we are permitted a number one greater than the requested: The quill editor contains an\r\n // unremovable new-line character at the end of its content.\r\n const maxLength: number = this.widgetInstance.maxLength + 1;\r\n if (this.quill) {\r\n // this is the intended path (user input):\r\n return maxLength - this.quill.quillEditor.getText().length;\r\n }\r\n\r\n // fallback to the raw HTML content:\r\n return maxLength - this.form.controls[this.widgetInstance.key].value.length;\r\n }\r\n\r\n addOnBlur = true;\r\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\r\n\r\n add(event: MatChipInputEvent): void {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.TEXT_FIELD_CHIPS) {\r\n return;\r\n }\r\n\r\n const value = (event.value || '').trim();\r\n this.setTextFieldChipsValue(value);\r\n\r\n // Clear the input value\r\n event.chipInput!.clear();\r\n this.form.controls[this.widgetInstance.key].markAsTouched();\r\n }\r\n\r\n remove(value: SmartFormWidget<any>): void {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.TEXT_FIELD_CHIPS) {\r\n return;\r\n }\r\n const index = this.form.controls[this.widgetInstance.key].value.indexOf(value);\r\n\r\n if (index >= 0) {\r\n this.form.controls[this.widgetInstance.key].value.splice(index, 1);\r\n this.form.controls[this.widgetInstance.key].updateValueAndValidity();\r\n }\r\n }\r\n\r\n selected(event: MatAutocompleteSelectedEvent, widgetInstance: SmartFormWidget<any>): void {\r\n let value = event.option.viewValue;\r\n this.setTextFieldChipsValue(value);\r\n }\r\n\r\n private setTextFieldChipsValue(value: string) {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.TEXT_FIELD_CHIPS) {\r\n return;\r\n }\r\n\r\n if (value) {\r\n if (\r\n (this.widgetInstance.maxValues &&\r\n this.widgetInstance.value!.length < this.widgetInstance.maxValues) ||\r\n !this.widgetInstance.maxValues\r\n ) {\r\n if (!this.form.controls[this.widgetInstance.key].value) {\r\n let values = new Array<Object>();\r\n this.widgetInstance.value = values;\r\n this.form.controls[this.widgetInstance.key].setValue(values);\r\n this.form.controls[this.widgetInstance.key].updateValueAndValidity();\r\n }\r\n this.form.controls[this.widgetInstance.key].value.push(value);\r\n this.form.controls[this.widgetInstance.key].updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n getDirection(): string {\r\n if (\r\n this.widgetInstance.type !== SmartFormWidgetType.CONTAINER &&\r\n this.widgetInstance.type !== SmartFormWidgetType.CHECK_BOX &&\r\n this.widgetInstance.type !== SmartFormWidgetType.RADIO_BUTTON\r\n ) {\r\n return '';\r\n }\r\n if (this.widgetInstance.direction === undefined) {\r\n return 'direction-row';\r\n } else if (this.widgetInstance.direction === SmartFormWidgetDirection.COL) {\r\n return 'direction-col';\r\n } else {\r\n return 'direction-row';\r\n }\r\n }\r\n\r\n smartFormTextFieldButtonIconPosition(): typeof SmartFormTextFieldButtonIconPosition {\r\n return SmartFormTextFieldButtonIconPosition;\r\n }\r\n\r\n getType(): typeof SmartFormWidgetType {\r\n return SmartFormWidgetType;\r\n }\r\n\r\n getWidgetLabel(widget: SmartFormWidget<any>): string {\r\n if (widget.type === SmartFormWidgetType.CONTAINER) {\r\n return '';\r\n }\r\n if (widget.label === '') {\r\n return widget.label;\r\n }\r\n let isRequired = false;\r\n if (\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.TIME &&\r\n widget.type !== SmartFormWidgetType.TOGGLE &&\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.IMAGE &&\r\n widget.type !== SmartFormWidgetType.SVG &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.COMPONENT\r\n ) {\r\n isRequired = widget.validators?.length ? this.fieldIsRequired() && !!widget.showLabel : false;\r\n } else if (widget.type === SmartFormWidgetType.LABEL) {\r\n isRequired = widget.markAsRequired ? true : false;\r\n }\r\n return `${widget.label}${isRequired ? ' *' : ''}`;\r\n }\r\n\r\n getWidgetSvg(value?: string): SafeHtml | null {\r\n let safeValue = value ?? '';\r\n return this.sanitizer.bypassSecurityTrustHtml(safeValue);\r\n }\r\n\r\n private fieldIsRequired(): boolean {\r\n let value = false;\r\n if (\r\n this.widgetInstance.type !== SmartFormWidgetType.CONTAINER &&\r\n this.widgetInstance.type !== SmartFormWidgetType.LABEL &&\r\n this.widgetInstance.type !== SmartFormWidgetType.TIME &&\r\n this.widgetInstance.type !== SmartFormWidgetType.TOGGLE &&\r\n this.widgetInstance.type !== SmartFormWidgetType.INDICATOR &&\r\n this.widgetInstance.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n this.widgetInstance.type !== SmartFormWidgetType.IMAGE &&\r\n this.widgetInstance.type !== SmartFormWidgetType.SVG &&\r\n this.widgetInstance.type !== SmartFormWidgetType.DIVIDER &&\r\n this.widgetInstance.type !== SmartFormWidgetType.BUTTON &&\r\n this.widgetInstance.type !== SmartFormWidgetType.COMPONENT &&\r\n this.widgetInstance.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n this.widgetInstance.validators?.forEach((validator: SmartValidator) => {\r\n if (validator.validator == Validators.required) value = true;\r\n });\r\n }\r\n return value;\r\n }\r\n\r\n public hasCustomError(widget: SmartFormWidget<any>, validator: SmartValidator): boolean {\r\n if (\r\n widget.type !== SmartFormWidgetType.CONTAINER &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n if (this.form.controls[widget.key] && this.form.controls[widget.key].errors) {\r\n let hasError = Object.keys(this.form.controls[widget.key].errors!).length\r\n ? this.form.controls[widget.key]?.dirty ||\r\n (this.form.controls[widget.key]?.touched &&\r\n validator &&\r\n (this.form.controls[widget.key]?.errors)![validator.name])\r\n : false;\r\n if (\r\n (validator && hasError && !this.errorKey) ||\r\n (validator && hasError && this.errorKey === validator.name)\r\n ) {\r\n this.hasError = true;\r\n this.errorKey = validator.name;\r\n } else if (!hasError && validator && this.errorKey === validator.name) {\r\n this.hasError = false;\r\n this.errorKey = undefined;\r\n } else {\r\n hasError = false;\r\n }\r\n return hasError;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getErrorMessage(widgetInstance: SmartFormWidget<any>): boolean {\r\n let errorMessage: string;\r\n let errorIcon: string | undefined;\r\n let errorIconColor: string | undefined;\r\n let validator: SmartValidator;\r\n if (\r\n widgetInstance.type !== SmartFormWidgetType.CONTAINER &&\r\n widgetInstance.type !== SmartFormWidgetType.LABEL &&\r\n widgetInstance.type !== SmartFormWidgetType.INDICATOR &&\r\n widgetInstance.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widgetInstance.type !== SmartFormWidgetType.IMAGE &&\r\n widgetInstance.type !== SmartFormWidgetType.SVG &&\r\n widgetInstance.type !== SmartFormWidgetType.DIVIDER &&\r\n widgetInstance.type !== SmartFormWidgetType.BUTTON &&\r\n widgetInstance.type !== SmartFormWidgetType.COMPONENT &&\r\n widgetInstance.type !== SmartFormWidgetType.YOUTUBE_PLAYER\r\n ) {\r\n if (this.form.controls[widgetInstance.key] && this.form.controls[widgetInstance.key].errors) {\r\n if (\r\n this.errorKey &&\r\n !Object.keys(this.form.controls[widgetInstance.key].errors!).includes(this.errorKey!)\r\n ) {\r\n this.errorKey = undefined;\r\n }\r\n for (\r\n let index = 0;\r\n index < Object.keys(this.form.controls[widgetInstance.key].errors!).length;\r\n index++\r\n ) {\r\n const errorKey = Object.keys(this.form.controls[widgetInstance.key].errors!)[index];\r\n let customValidatorOnWidget = widgetInstance.validators?.filter(\r\n (validator: SmartValidator) => validator.name === errorKey\r\n );\r\n if (customValidatorOnWidget && customValidatorOnWidget.length) {\r\n errorMessage = customValidatorOnWidget[0].errorMessage!;\r\n errorIcon = customValidatorOnWidget[0].icon;\r\n errorIconColor = customValidatorOnWidget[0].iconColor;\r\n validator = customValidatorOnWidget[0];\r\n break;\r\n }\r\n let customValidatorOnForm = this.service.smartForm?.validators?.filter(\r\n (validator: SmartValidator) => validator.name === errorKey\r\n );\r\n if (customValidatorOnForm && customValidatorOnForm.length) {\r\n errorMessage = customValidatorOnForm[0].errorMessage!;\r\n validator = customValidatorOnForm[0];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (this.hasCustomError(widgetInstance, validator!)) {\r\n widgetInstance.error = errorMessage!;\r\n widgetInstance.errorIcon = errorIcon;\r\n widgetInstance.errorIconColor = errorIconColor;\r\n return true;\r\n }\r\n\r\n widgetInstance.error = undefined;\r\n }\r\n return false;\r\n }\r\n\r\n getIndicatorItemClass(index: number): string {\r\n if (this.widgetInstance.type === SmartFormWidgetType.INDICATOR) {\r\n if (this.widgetInstance.indicator.indicatorValue >= index) {\r\n return `smart-indicator-${index}`;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n getIndicatorStatusLabelColor(): string {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.INDICATOR) {\r\n return '';\r\n }\r\n let value = Math.floor(this.widgetInstance.indicator!.indicatorValue);\r\n if (value > this.widgetInstance.indicator!.indicatorLength - 1) {\r\n return `smart-indicator-label-${this.widgetInstance.indicator!.indicatorLength - 1}`;\r\n }\r\n return `smart-indicator-label-${value}`;\r\n }\r\n getIndicatorStatusLabel(): string {\r\n if (this.widgetInstance.type !== SmartFormWidgetType.INDICATOR) {\r\n return '';\r\n }\r\n let value = Math.floor(this.widgetInstance.indicator!.indicatorValue);\r\n if (value > this.widgetInstance.indicator!.indicatorLength - 1) {\r\n return this.widgetInstance.indicator!.indicatorStatusLabels[\r\n this.widgetInstance.indicator!.indicatorLength - 1\r\n ];\r\n }\r\n return this.widgetInstance.indicator!.indicatorStatusLabels[value];\r\n }\r\n\r\n upload(files: any[]): void {\r\n if (this.widgetInstance.type === SmartFormWidgetType.FILE_UPLOADER) {\r\n this.widgetInstance.uploadCallback(this.widgetInstance.key, files);\r\n }\r\n }\r\n\r\n getButtonType(descriptor: any): string {\r\n switch (descriptor.type) {\r\n case 'NORMAL':\r\n return 'mat-button';\r\n case 'FLAT':\r\n return 'mat-flat-button';\r\n case 'RAISED':\r\n return 'mat-raised-button';\r\n case 'STROKED':\r\n return 'mat-stroked-button';\r\n case 'ICON':\r\n return 'mat-icon-button';\r\n case 'MINI_FAB':\r\n return 'mat-mini-fab';\r\n case 'FAB':\r\n return 'mat-fab';\r\n default:\r\n console.log(`Unhandled action button type case: ${descriptor.type}`);\r\n return `mat-button`;\r\n }\r\n }\r\n\r\n isOnlyIcon(descriptor: any): boolean {\r\n return (\r\n descriptor.type === 'ICON' || descriptor.type === 'MINI_FAB' || descriptor.type === 'FAB'\r\n );\r\n }\r\n\r\n onButtonClicked(instance: SmartButton): void {\r\n if (instance.uiAction) {\r\n instance.callback(instance.uiAction);\r\n } else {\r\n instance.callback(instance.key);\r\n }\r\n }\r\n\r\n private _filter(value: InputEvent): SmartItem<any>[] {\r\n let filterValue = (value.target as HTMLInputElement)?.value;\r\n this.toHighlight = filterValue;\r\n\r\n if (!filterValue) {\r\n filterValue = '';\r\n this.toHighlight = filterValue;\r\n }\r\n filterValue = filterValue.toLowerCase();\r\n\r\n if (\r\n this.widgetInstance.type === SmartFormWidgetType.TEXT_FIELD &&\r\n this.widgetInstance.valueList\r\n ) {\r\n const result: SmartItem<any>[] = filterValue\r\n ? this.widgetInstance.valueList.filter((option: SmartItem<any>) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n )\r\n : this.widgetInstance.valueList;\r\n if (result.length === 0 && this.widgetInstance.valueList.length !== 0) {\r\n // there could be values after the filter operation but we found none:\r\n this.widgetInstance.error = this.widgetInstance.filterErrorMessage;\r\n } else {\r\n // we either found values, or there were no values to begin with:\r\n this.widgetInstance.error = undefined;\r\n }\r\n return result;\r\n }\r\n\r\n return [];\r\n }\r\n\r\n dateFilter(d: Date | null): boolean {\r\n return true;\r\n }\r\n\r\n getMatrixDisplayValue(question: Value, key: string) {\r\n (this.widgetInstance as SmartMatrix).value[key].find((value: Value) => {\r\n if (value.code == question.code) return question.displayValue;\r\n else return question.code;\r\n });\r\n }\r\n\r\n handleYearMonthPicked(yearMonthValue: any) {\r\n this.setDateFormControl(this.form.controls[this.widgetInstance.key!], yearMonthValue, '00:00');\r\n }\r\n\r\n compareItems(o1: any, o2: any): boolean {\r\n function convert(obj: any): any {\r\n if (obj && typeof obj === 'string') {\r\n return obj.replace(/\\.v[0-9]+$/, '');\r\n }\r\n return obj;\r\n }\r\n // calling this.truncateUri didn't work\r\n // TODO: use widget.selection.parameter for ignoreUriVersion / strictUriComparison;\r\n\r\n let v1 = convert(o1);\r\n let v2 = convert(o2);\r\n return deepEqual(v1, v2);\r\n }\r\n\r\n truncateUri(uri: any): any {\r\n if (uri && typeof uri === 'string') {\r\n return uri.replace(/\\.v[0-9]+$/, '');\r\n }\r\n return uri;\r\n }\r\n\r\n removeMatrixRow(question: any): void {\r\n console.log(question);\r\n (this.widgetInstance as SmartMatrix).button?.callback(this.widgetInstance, question);\r\n }\r\n\r\n isToolbarPresent(): boolean {\r\n if (this.widgetInstance.type == SmartFormWidgetType.TEXT_FIELD) {\r\n return this.widgetInstance.toolbarId !== undefined && this.widgetInstance.toolbarId !== null;\r\n }\r\n return false;\r\n }\r\n}\r\n","<div class=\"container\" [formGroup]=\"form\">\r\n <div\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n class=\"container\"\r\n *ngIf=\"widgetInstance.isVisible === undefined ? true : widgetInstance.isVisible\"\r\n >\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.CONTAINER\" [ngClass]=\"getDirection()\">\r\n <smartformwidget\r\n *ngFor=\"let widget of widgetInstance.valueList\"\r\n [form]=\"form\"\r\n [widgetInstance]=\"widget\"\r\n class=\"container-item\"\r\n [ngClass]=\"widget.cssClass ?? ''\"\r\n [onBlur]=\"onBlur\"\r\n [onValueChange]=\"onValueChange\"\r\n [sophisticatedValueChange]=\"sophisticatedValueChange\"\r\n class=\"{{ widget.key }}\"\r\n [labelColor]=\"labelColor\"\r\n ></smartformwidget>\r\n </div>\r\n\r\n <div\r\n (capsLock)=\"capsOn = $event\"\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.TEXT_FIELD\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input textField widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n\r\n <input\r\n *ngIf=\"!widgetInstance.selection\"\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [attr.inputmode]=\"\r\n widgetInstance.inputMode ? widgetInstance.inputMode.toLocaleLowerCase() : 'text'\r\n \"\r\n [type]=\"'string'\"\r\n [value]=\"widgetInstance.value\"\r\n [readonly]=\"widgetInstance.isReadonly\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n matInput\r\n (blur)=\"onBlur?.next($event)\"\r\n (input)=\"onValueChange?.next($event)\"\r\n type=\"{{ widgetInstance.isPassword ? (hidePassword ? 'password' : 'text') : '' }}\"\r\n [mask]=\"widgetInstance.mask ?? ''\"\r\n (keydown.enter)=\"onKeydown()\"\r\n maxlength=\"{{ widgetInstance.maxLength }}\"\r\n />\r\n <input\r\n *ngIf=\"widgetInstance.selection\"\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [type]=\"'string'\"\r\n [value]=\"widgetInstance.value\"\r\n [readonly]=\"widgetInstance.isReadonly\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n matInput\r\n (blur)=\"onBlur?.next($event)\"\r\n (input)=\"onValueChange?.next($event)\"\r\n type=\"{{ widgetInstance.isPassword ? 'password' : '' }}\"\r\n [matAutocomplete]=\"textFieldAuto\"\r\n (keydown.enter)=\"onKeydown()\"\r\n />\r\n <button\r\n *ngIf=\"widgetInstance.isPassword\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"togglePasswordVisibility($event)\"\r\n >\r\n <mat-icon>{{ hidePassword ? 'visibility_off' : 'visibility' }}</mat-icon>\r\n </button>\r\n <mat-autocomplete #textFieldAuto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.label\">\r\n <span [innerHTML]=\"option.label | highlight : toHighlight\"></span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"mat-error\" *ngIf=\"capsOn && widgetInstance.isPassword\">\r\n {{ widgetInstance.capsLockWarning }}\r\n </span>\r\n\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n\r\n <span matPrefix>\r\n <smart-icon\r\n *ngIf=\"capsOn && widgetInstance.isPassword\"\r\n [icon]=\"widgetInstance.capsLockWarningIcon ?? 'keyboard_capslock'\"\r\n color=\"warn\"\r\n ></smart-icon>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.icon && widgetInstance.iconPosition === 'PRE'\"\r\n [icon]=\"widgetInstance.icon\"\r\n [color]=\"widgetInstance.iconColor ?? 'primary'\"\r\n ></smart-icon>\r\n {{ widgetInstance.prefix }}\r\n </span>\r\n <span matSuffix>\r\n {{ widgetInstance.suffix }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.icon &&\r\n (!widgetInstance.iconPosition || widgetInstance.iconPosition === 'POST')\r\n \"\r\n [icon]=\"widgetInstance.icon\"\r\n [color]=\"widgetInstance.iconColor ?? 'primary'\"\r\n matSuffix\r\n ></smart-icon>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n\r\n <smart-ui-action-toolbar\r\n #toolbar\r\n *ngIf=\"isToolbarPresent()\"\r\n matSuffix\r\n [id]=\"widgetInstance.toolbarId\"\r\n ></smart-ui-action-toolbar>\r\n <button\r\n *ngIf=\"widgetInstance.textFieldButton\"\r\n matSuffix\r\n mat-button\r\n color=\"{{ widgetInstance.textFieldButton.color }}\"\r\n (click)=\"widgetInstance.textFieldButton.callback(widgetInstance)\"\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.textFieldButton.iconPosition ===\r\n smartFormTextFieldButtonIconPosition().PRE && widgetInstance.textFieldButton.icon\r\n \"\r\n [icon]=\"widgetInstance.textFieldButton.icon\"\r\n [color]=\"widgetInstance.textFieldButton.iconColor\"\r\n >\r\n </smart-icon>\r\n {{ widgetInstance.textFieldButton.label }}\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.textFieldButton.iconPosition ===\r\n smartFormTextFieldButtonIconPosition().POST && widgetInstance.textFieldButton.icon\r\n \"\r\n [icon]=\"widgetInstance.textFieldButton.icon\"\r\n >\r\n </smart-icon>\r\n </button>\r\n <mat-hint\r\n *ngIf=\"widgetInstance.showCharacterLimitSuffix && widgetInstance.maxLength\"\r\n matSuffix\r\n align=\"end\"\r\n >{{ widgetInstance.maxLength - form.controls[widgetInstance.key].value.length }}</mat-hint\r\n >\r\n </mat-form-field>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.TEXT_FIELD_NUMBER\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input textField widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <input\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [value]=\"widgetInstance.value\"\r\n [readonly]=\"widgetInstance.isReadonly\"\r\n [type]=\"'number'\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n [min]=\"widgetInstance.minValues ?? null\"\r\n [max]=\"widgetInstance.maxValues ?? null\"\r\n matInput\r\n (blur)=\"onBlur?.next($event)\"\r\n (input)=\"onValueChange?.next($event)\"\r\n />\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <span matPrefix>\r\n {{ widgetInstance.prefix }}\r\n </span>\r\n <span matSuffix>\r\n {{ widgetInstance.suffix }}\r\n </span>\r\n <smart-icon *ngIf=\"widgetInstance.icon\" [icon]=\"widgetInstance.icon\" matSuffix>\r\n </smart-icon>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n <button\r\n *ngIf=\"widgetInstance.textFieldButton\"\r\n matSuffix\r\n mat-button\r\n color=\"{{ widgetInstance.textFieldButton.color }}\"\r\n (click)=\"widgetInstance.textFieldButton.callback(widgetInstance)\"\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.textFieldButton.iconPosition ===\r\n smartFormTextFieldButtonIconPosition().PRE && widgetInstance.textFieldButton.icon\r\n \"\r\n [icon]=\"widgetInstance.textFieldButton.icon\"\r\n >\r\n </smart-icon>\r\n {{ widgetInstance.textFieldButton.label }}\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.textFieldButton.iconPosition ===\r\n smartFormTextFieldButtonIconPosition().POST && widgetInstance.textFieldButton.icon\r\n \"\r\n [icon]=\"widgetInstance.textFieldButton.icon\"\r\n >\r\n </smart-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.TEXT_FIELD_CHIPS\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <mat-chip-list #chipList aria-label=\"{{ widgetInstance.label }}\">\r\n <mat-chip\r\n [disabled]=\"widgetInstance.isDisabled\"\r\n *ngFor=\"let value of widgetInstance.value\"\r\n (removed)=\"remove(value)\"\r\n >\r\n {{ value }}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input\r\n #chipInput\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n [readonly]=\"widgetInstance.isReadonly\"\r\n [matAutocomplete]=\"chipAuto\"\r\n (matChipInputTokenEnd)=\"add($event)\"\r\n (blur)=\"onBlur?.next($event)\"\r\n (input)=\"onValueChange?.next($event)\"\r\n [disabled]=\"widgetInstance.isDisabled\"\r\n />\r\n <mat-autocomplete\r\n #chipAuto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event, widgetInstance)\"\r\n >\r\n <mat-option\r\n [disabled]=\"widgetInstance.isDisabled\"\r\n *ngFor=\"let item of widgetInstance.valueList\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-chip-list>\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.TEXT_BOX\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <textarea\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [type]=\"'string'\"\r\n [value]=\"widgetInstance.value\"\r\n [readonly]=\"widgetInstance.isReadonly\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n matInput\r\n (blur)=\"onBlur?.next($event)\"\r\n maxlength=\"{{ widgetInstance.maxLength }}\"\r\n ></textarea>\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n <mat-hint\r\n *ngIf=\"widgetInstance.showCharacterLimitSuffix && widgetInstance.maxLength\"\r\n matSuffix\r\n align=\"end\"\r\n >{{ widgetInstance.maxLength - form.controls[widgetInstance.key].value.length }}</mat-hint\r\n >\r\n </mat-form-field>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance.hint || widgetInstance.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.CHECK_BOX\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <div\r\n class=\"input checkbox widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label class=\"radioLabel\" *ngIf=\"!widgetInstance.showLabel\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <section class=\"checkbox-section\" [ngClass]=\"getDirection()\">\r\n <div\r\n class=\"checkbox-item-container\"\r\n *ngFor=\"let checkbox of widgetInstance.valueList; let i = index\"\r\n >\r\n <img\r\n *ngIf=\"checkbox.imageUrl\"\r\n title=\"{{ widgetInstance.key }}\"\r\n class=\"checkbox-item-image\"\r\n [src]=\"checkbox.imageUrl\"\r\n />\r\n <mat-checkbox\r\n class=\"selecatbleObject\"\r\n formControlName=\"{{ widgetInstance.key }}\"\r\n [ngModel]=\"checkbox.value\"\r\n (change)=\"onValueChange?.next(checkbox)\"\r\n >\r\n {{ checkbox.label }}\r\n </mat-checkbox>\r\n </div>\r\n <div class=\"radio-error\">\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n ></smart-icon>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.CHECK_BOX_2\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <div\r\n class=\"input checkbox widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label class=\"radioLabel\" *ngIf=\"!widgetInstance.showLabel\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <section class=\"checkbox-section\" [ngClass]=\"getDirection()\">\r\n <div\r\n class=\"checkbox-item-container\"\r\n *ngFor=\"let checkbox of widgetInstance.valueList; let i = index\"\r\n >\r\n <img\r\n *ngIf=\"checkbox.imageUrl\"\r\n title=\"{{ widgetInstance.key }}\"\r\n class=\"checkbox-item-image\"\r\n [src]=\"checkbox.imageUrl\"\r\n />\r\n <mat-checkbox\r\n class=\"selecatbleObject\"\r\n formControlName=\"{{ widgetInstance.key + '.' + checkbox.key }}\"\r\n [value]=\"checkbox.value\"\r\n (change)=\"onValueChange?.next(checkbox)\"\r\n [disabled]=\"widgetInstance.isDisabled!\"\r\n >\r\n {{ checkbox.label }}\r\n </mat-checkbox>\r\n </div>\r\n <div class=\"radio-error\">\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n ></smart-icon>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.RADIO_BUTTON\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-radio-group\r\n class=\"input radio-section widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n aria-label=\"{{ widgetInstance.label }}\"\r\n appearance=\"outline\"\r\n formControlName=\"{{ widgetInstance.key }}\"\r\n >\r\n <mat-label class=\"radioLabel\" *ngIf=\"!widgetInstance.showLabel\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <div [ngClass]=\"getDirection()\">\r\n <div class=\"radio-item-container\" *ngFor=\"let radio of widgetInstance.valueList\">\r\n <img\r\n *ngIf=\"radio.imageUrl\"\r\n title=\"{{ widgetInstance.key }}\"\r\n class=\"radio-item-image\"\r\n [src]=\"radio.imageUrl\"\r\n />\r\n <mat-radio-button\r\n class=\"selecatbleObject\"\r\n value=\"{{ radio.value }}\"\r\n [ngClass]=\"getDirection()\"\r\n (change)=\"onValueChange?.next(radio.value)\"\r\n [disabled]=\"widgetInstance.isDisabled\"\r\n >\r\n {{ radio.label }}\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"radio-error\">\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n ></smart-icon>\r\n </div>\r\n </div>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.DATE_PICKER\"\r\n class=\"datePicker widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent date {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker (closed)=\"onBlur?.next(widgetInstance)\"></mat-datepicker>\r\n <input\r\n matInput\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [value]=\"widgetInstance.value\"\r\n [min]=\"widgetInstance.minDate ?? null\"\r\n [max]=\"widgetInstance.maxDate ?? null\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onBlur?.next(widgetInstance)\"\r\n (dateChange)=\"onValueChange?.next(widgetInstance)\"\r\n [matDatepickerFilter]=\"widgetInstance.filter ?? dateFilter\"\r\n />\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n <mat-hint>\r\n {{ widgetInstance.dateFormatHint }}\r\n </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n\r\n <!-- <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.DATE_TIME_PICKER\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }} smart-form-widget-label\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent\"\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <mat-datepicker-toggle matSuffix [for]=\"$any(picker)\"></mat-datepicker-toggle>\r\n <ngx-mat-datetime-picker\r\n #picker\r\n [showSpinners]=\"true\"\r\n [showSeconds]=\"false\"\r\n [stepHour]=\"1\"\r\n [stepMinute]=\"1\"\r\n [stepSecond]=\"10\"\r\n [touchUi]=\"false\"\r\n [color]=\"'primary'\"\r\n [enableMeridian]=\"false\"\r\n [disableMinute]=\"false\"\r\n [hideTime]=\"false\"\r\n >\r\n </ngx-mat-datetime-picker>\r\n <input\r\n matInput\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [value]=\"widgetInstance.value\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n [ngxMatDatetimePicker]=\"picker\"\r\n [ngxMatDatetimePickerFilter]=\"widgetInstance.filter ?? dateFilter\"\r\n (blur)=\"onBlur?.next(widgetInstance)\"\r\n />\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n <mat-hint>\r\n {{ widgetInstance.dateFormatHint }}\r\n </mat-hint>\r\n </mat-form-field>\r\n </div> -->\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.DATE_TIME_PICKER\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <div class=\"dateTimePickerContainer\">\r\n <mat-form-field\r\n class=\"input widgetContent date {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker (closed)=\"onBlur?.next(widgetInstance)\"></mat-datepicker>\r\n <input\r\n #dateInput\r\n matInput\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [value]=\"widgetInstance.value\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onDatePickerBlur($event)\"\r\n (dateChange)=\"onValueChange?.next(widgetInstance)\"\r\n [matDatepickerFilter]=\"widgetInstance.filter ?? dateFilter\"\r\n />\r\n\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n <mat-hint>\r\n {{ widgetInstance.dateFormatHint }}\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field\r\n *ngIf=\"hasCreated\"\r\n class=\"input widgetContent time\"\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\r\n appearance=\"outline\"\r\n >\r\n <input\r\n #timeInput\r\n [formControlName]=\"widgetInstance.key + '-time'\"\r\n [id]=\"widgetInstance.key\"\r\n [type]=\"'time'\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n (blur)=\"onTimePickerBlur($event)\"\r\n matInput\r\n />\r\n </mat-form-field>\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.SELECT\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <mat-select\r\n [formControlName]=\"widgetInstance.key\"\r\n (selectionChange)=\"onValueChange?.next($event.value)\"\r\n (closed)=\"onBlur?.next(widgetInstance)\"\r\n [disabled]=\"widgetInstance.isDisabled!\"\r\n [compareWith]=\"\r\n widgetInstance.compareWith == null ? compareItems : widgetInstance.compareWith\r\n \"\r\n placeholder=\"{{ widgetInstance.placeholder ? widgetInstance.placeholder : '' }}\"\r\n >\r\n <div *ngFor=\"let option of widgetInstance.valueList\">\r\n <mat-optgroup\r\n *ngIf=\"option.type === getType().ITEM_GROUP\"\r\n [label]=\"option.label\"\r\n [disabled]=\"option.isDisabled\"\r\n >\r\n <mat-option\r\n *ngFor=\"let innerOption of option.valueList\"\r\n [value]=\"innerOption.value\"\r\n [disabled]=\"innerOption.isDisabled\"\r\n >\r\n <smart-icon\r\n *ngIf=\"innerOption.icon\"\r\n [icon]=\"innerOption.icon\"\r\n [color]=\"innerOption.iconColor\"\r\n ></smart-icon>\r\n {{ innerOption.label }}\r\n </mat-option>\r\n </mat-optgroup>\r\n <mat-option\r\n *ngIf=\"option.type === getType().ITEM\"\r\n [value]=\"option.value\"\r\n [disabled]=\"option.isDisabled\"\r\n >\r\n <smart-icon\r\n *ngIf=\"option.icon\"\r\n [icon]=\"option.icon\"\r\n [color]=\"option.iconColor\"\r\n ></smart-icon\r\n >{{ option.label }}</mat-option\r\n >\r\n </div>\r\n </mat-select>\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n </mat-form-field>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.SELECT_MULTIPLE\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <mat-select\r\n [formControlName]=\"widgetInstance.key\"\r\n multiple\r\n (selectionChange)=\"onValueChange?.next($event.value)\"\r\n (closed)=\"onBlur?.next(widgetInstance)\"\r\n [disabled]=\"widgetInstance.isDisabled!\"\r\n [compareWith]=\"\r\n widgetInstance.compareWith == null ? compareItems : widgetInstance.compareWith\r\n \"\r\n placeholder=\"{{ widgetInstance.placeholder ? widgetInstance.placeholder : '' }}\"\r\n >\r\n <div *ngFor=\"let option of widgetInstance.valueList\">\r\n <mat-optgroup\r\n *ngIf=\"option.type === getType().ITEM_GROUP\"\r\n [label]=\"option.label\"\r\n [disabled]=\"option.isDisabled\"\r\n >\r\n <mat-option\r\n *ngFor=\"let innerOption of option.valueList\"\r\n [value]=\"innerOption.value\"\r\n [disabled]=\"innerOption.isDisabled\"\r\n >\r\n <smart-icon\r\n *ngIf=\"innerOption.icon\"\r\n [icon]=\"innerOption.icon\"\r\n [color]=\"innerOption.iconColor\"\r\n ></smart-icon\r\n >{{ innerOption.label }}</mat-option\r\n >\r\n </mat-optgroup>\r\n <mat-option\r\n *ngIf=\"option.type === getType().ITEM\"\r\n [value]=\"option.value\"\r\n [disabled]=\"option.isDisabled\"\r\n >\r\n <smart-icon\r\n *ngIf=\"option.icon\"\r\n [icon]=\"option.icon\"\r\n [color]=\"option.iconColor\"\r\n ></smart-icon\r\n >{{ option.label }}</mat-option\r\n >\r\n </div>\r\n </mat-select>\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n </mat-form-field>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.LABEL\"\r\n class=\"label widgetContainer\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\r\n >\r\n <div class=\"label-title labelContainer\" [ngClass]=\"widgetInstance.cssClass ?? ''\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <p>{{ widgetInstance.widgetDescription }}</p>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.TIME\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent time {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n appearance=\"outline\"\r\n >\r\n <mat-label\r\n class=\"label\"\r\n [ngClass]=\"widgetInstance.cssLabelClass ?? ''\"\r\n *ngIf=\"!widgetInstance.showLabel\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </mat-label>\r\n <input\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [type]=\"'time'\"\r\n [value]=\"getTime()\"\r\n placeholder=\"{{ widgetInstance.placeholder }}\"\r\n matInput\r\n (blur)=\"onBlur?.next(widgetInstance)\"\r\n />\r\n <span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n matSuffix\r\n ></smart-icon>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.TOGGLE\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4\r\n class=\"{{ labelColor }} smart-form-widget-label {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <div\r\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n >\r\n <mat-slide-toggle\r\n formControlName=\"{{ widgetInstance.key }}\"\r\n value=\"{{ widgetInstance.value }}\"\r\n (change)=\"onValueChange?.next($event)\"\r\n [labelPosition]=\"widgetInstance.toggleLabelPosition ?? 'before'\"\r\n >{{ !widgetInstance.showLabel ? widgetInstance.label : '' }}</mat-slide-toggle\r\n ><span class=\"mat-error\">\r\n {{ widgetInstance.error }}\r\n </span>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.error && widgetInstance.errorIcon\"\r\n [icon]=\"widgetInstance.errorIcon\"\r\n [color]=\"widgetInstance.errorIconColor ?? 'warn'\"\r\n ></smart-icon>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.INDICATOR\" class=\"widgetContainer\">\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"{{ labelColor }} labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <div class=\"smartIndicator widgetContent\">\r\n <div class=\"indicatorItems {{ widgetInstance.cssClass ?? '' }}\" [ngClass]=\"getNgClass()\">\r\n <div\r\n *ngFor=\"let item of indicatorItems; let i = index\"\r\n class=\"indicatorItem\"\r\n [ngClass]=\"getIndicatorItemClass(i)\"\r\n ></div>\r\n </div>\r\n <p [ngClass]=\"getIndicatorStatusLabelColor()\">\r\n {{ getIndicatorStatusLabel() }}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.FILE_UPLOADER\" class=\"widgetContainer\">\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"labelContainer {{ labelColor }} {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <smartfileuploader\r\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n [uploadCallback]=\"upload.bind(this)\"\r\n [fileFormats]=\"widgetInstance.fileFormats\"\r\n [maxSizeMb]=\"widgetInstance.maxSizeMb\"\r\n [i18n]=\"widgetInstance.i18n\"\r\n ></smartfileuploader>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.IMAGE\" class=\"widgetContainer\">\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"labelContainer {{ labelColor }} {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <img\r\n class=\"widgetContent {{ widgetInstance.imageCss ?? '' }}\"\r\n title=\"{{ widgetInstance.key }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n [src]=\"widgetInstance.value\"\r\n />\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.SVG\" class=\"widgetContainer\">\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"labelContainer {{ labelColor }} {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <div\r\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [innerHTML]=\"getWidgetSvg(widgetInstance.value)\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n ></div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.DIVIDER\" class=\"widgetContainer\">\r\n <hr\r\n class=\"smartDivider {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n />\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.BUTTON\" class=\"widgetContainer\">\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"labelContainer {{ labelColor }} {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <div\r\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n >\r\n <button\r\n mat-button\r\n [ngClass]=\"getButtonType(widgetInstance.uiActionDescriptor)\"\r\n [color]=\"widgetInstance.uiActionDescriptor?.color\"\r\n (click)=\"onButtonClicked(widgetInstance)\"\r\n >\r\n <div\r\n *ngIf=\"isOnlyIcon(widgetInstance.uiActionDescriptor); then iconOnly; else text\"\r\n ></div>\r\n <ng-template #iconOnly>\r\n <smart-icon\r\n *ngIf=\"widgetInstance.uiActionDescriptor?.icon\"\r\n [icon]=\"widgetInstance.uiActionDescriptor!.icon!\"\r\n [color]=\"\r\n widgetInstance.uiActionDescriptor?.iconColor ??\r\n widgetInstance.uiActionDescriptor?.color\r\n \"\r\n ></smart-icon>\r\n </ng-template>\r\n <ng-template #text>\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.uiActionDescriptor?.icon &&\r\n widgetInstance.uiActionDescriptor?.iconPosition === 'PRE'\r\n \"\r\n [icon]=\"widgetInstance.uiActionDescriptor!.icon!\"\r\n [color]=\"\r\n widgetInstance.uiActionDescriptor?.iconColor ??\r\n widgetInstance.uiActionDescriptor?.color\r\n \"\r\n ></smart-icon>\r\n {{ widgetInstance.uiActionDescriptor?.title }}\r\n <smart-icon\r\n *ngIf=\"\r\n widgetInstance.uiActionDescriptor?.icon &&\r\n widgetInstance.uiActionDescriptor?.iconPosition === 'POST'\r\n \"\r\n [icon]=\"widgetInstance.uiActionDescriptor!.icon!\"\r\n [color]=\"\r\n widgetInstance.uiActionDescriptor?.iconColor ??\r\n widgetInstance.uiActionDescriptor?.color\r\n \"\r\n ></smart-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"widgetContainer\">\r\n <h4\r\n class=\"labelContainer\"\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.COMPONENT && widgetInstance.showLabel\"\r\n class=\"{{ labelColor }}\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <div class=\"widgetContent\">\r\n <ng-template #customComponent></ng-template>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.RICH_TEXT\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <div class=\"widgetContent\">\r\n <quill-editor\r\n #quillEditor\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [modules]=\"widgetInstance.isDisabled ? emptyQuillToolbar : widgetInstance.quillModules\"\r\n [placeholder]=\"widgetInstance.placeholder\"\r\n [readOnly]=\"widgetInstance.isReadonly\"\r\n [maxLength]=\"widgetInstance.maxLength\"\r\n (onContentChanged)=\"onRichTextEditorContentChanged($event)\"\r\n ></quill-editor>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint ||\r\n widgetInstance?.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n <mat-hint\r\n *ngIf=\"widgetInstance.showCharacterLimitSuffix && widgetInstance.maxLength\"\r\n matSuffix\r\n align=\"end\"\r\n class=\"rich-text-editor-leeway-counter\"\r\n >{{ getRichTextEditorLengthLeeway() }}</mat-hint\r\n >\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.SORTABLE\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <div class=\"widgetContent\">\r\n <lib-sortable-widget\r\n [formControlName]=\"widgetInstance.key\"\r\n [widgetInstance]=\"widgetInstance\"\r\n ></lib-sortable-widget>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.MATRIX\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n\r\n <table class=\"matrixTable widgetContent\">\r\n <tr>\r\n <th></th>\r\n <th class=\"optionLabel\" *ngFor=\"let option of widgetInstance.value.columns\">\r\n {{ option.displayValue }}\r\n </th>\r\n </tr>\r\n <tr *ngFor=\"let question of widgetInstance.value.rows; let i = index\">\r\n <th class=\"questionLabel\">\r\n <label>{{ question.displayValue }}</label>\r\n </th>\r\n\r\n <td class=\"selectTd\" *ngFor=\"let option of widgetInstance.value.columns; let j = index\">\r\n <mat-radio-group\r\n *ngIf=\"!widgetInstance.isMultiple\"\r\n [formControlName]=\"widgetInstance.key + '.' + question.code\"\r\n [name]=\"'q' + i\"\r\n >\r\n <mat-radio-button [value]=\"option.code\"> </mat-radio-button>\r\n </mat-radio-group>\r\n <div *ngIf=\"widgetInstance.isMultiple\">\r\n <mat-checkbox\r\n [formControlName]=\"widgetInstance.key + '.data.' + question.code + '.' + option.code\"\r\n [value]=\"widgetInstance.value['data'][question.code][option.code]\"\r\n [checked]=\"true\"\r\n ></mat-checkbox>\r\n </div>\r\n </td>\r\n <br />\r\n <button *ngIf=\"widgetInstance.button\" mat-icon-button (click)=\"removeMatrixRow(question)\"\r\n ><smart-icon icon=\"close\"></smart-icon\r\n ></button>\r\n </tr>\r\n </table>\r\n </div>\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.YOUTUBE_PLAYER\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\">\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"{{ labelColor }} {{ widgetInstance.cssLabelClass }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <youtube-player\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n videoId=\"{{ widgetInstance.videoId }}\"\r\n [width]=\"widgetInstance.width\"\r\n [height]=\"widgetInstance.height\"\r\n [startSeconds]=\"widgetInstance.startSeconds\"\r\n [endSeconds]=\"widgetInstance.endSeconds\"\r\n ></youtube-player>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hint || widgetInstance?.hint?.position === SmartWidgetHintPosition.INPUT\r\n \"\r\n >{{ widgetInstance.hint?.text }}</mat-hint\r\n >\r\n </div>\r\n <div *ngIf=\"widgetInstance.type === smartFormWidgetType.MONTH_PICKER\" class=\"widgetContainer\">\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }} smart-form-widget-label\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint *ngIf=\"widgetInstance?.hint?.position === SmartWidgetHintPosition.LABEL\">{{\r\n widgetInstance.hint?.text\r\n }}</mat-hint>\r\n </div>\r\n <lib-smart-month-picker\r\n [widgetInstance]=\"widgetInstance\"\r\n (valueChange)=\"handleYearMonthPicked($event)\"\r\n ></lib-smart-month-picker>\r\n </div>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartFormWidgetDirection, SmartFormWidgetType } from './api';\r\nimport { SmartFormService } from './services/smartform.service';\r\nimport { SmartForm, SmartFormInvalidFields, SophisticatedValueChange } from './smartform.model';\r\nimport { SmartSubject } from '../smart-subject/projects';\r\n// import { UiActionToolbarComponent } from '../view-context/smart-ui-action/ui-action-toolbar.component';\r\nimport { SmartFormWidget } from './smartform.form-model';\r\nimport { SmartformwidgetComponent } from './widgets/smartformwidget/smartformwidget.component';\r\nimport { UiActionToolbarComponent } from '../view-context/smart-ui-action/ui-action-toolbar.component';\r\n\r\n@Component({\r\n selector: 'smartform',\r\n templateUrl: './smartform.component.html',\r\n styleUrls: ['./smartform.component.css'],\r\n providers: [SmartFormService],\r\n})\r\nexport class SmartformComponent implements OnInit, OnDestroy, OnChanges {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n @Input() smartForm?: SmartForm;\r\n onBlurSubject?: Subject<any>;\r\n onValueChangeSubject?: Subject<any>;\r\n originalWidgets: SmartFormWidget<any>[] = [];\r\n\r\n sophisticatedValueChange: Subject<SophisticatedValueChange> = new SmartSubject(this._destroy$);\r\n\r\n form!: FormGroup;\r\n\r\n direction = SmartFormWidgetDirection;\r\n\r\n @ViewChildren(SmartformwidgetComponent)\r\n smartWidgetsQL?: QueryList<SmartformwidgetComponent>;\r\n\r\n constructor(private service: SmartFormService) {}\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.smartForm = changes['smartForm'].currentValue;\r\n this.originalWidgets = [];\r\n if (this.smartForm) {\r\n this.constructForm();\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.smartForm) {\r\n this.constructForm();\r\n }\r\n this.onBlurSubject = new SmartSubject(this._destroy$);\r\n }\r\n\r\n // ngAfterViewInit(): void {\r\n // if (this.smartWidgetsQL) {\r\n // this.handleQueryList(this.smartWidgetsQL, (widget) => {\r\n // // ???\r\n // });\r\n // }\r\n // }\r\n\r\n // // TODO this is a duplicate from SmartFormApiClient -> move it to a utility\r\n // protected handleQueryList<T>(ql: QueryList<T>, handler: (el: T) => void) {\r\n // ql.forEach((el) => handler(el));\r\n // ql.changes\r\n // .pipe(takeUntil(this._destroy$))\r\n // .subscribe((list) => (list as QueryList<T>).forEach((el) => handler(el)));\r\n // }\r\n\r\n refresh(): void {\r\n this.service.setValuesFromModel();\r\n }\r\n\r\n constructForm(): void {\r\n if (!this.smartForm) {\r\n throw new Error('Smartform has not been defined!');\r\n }\r\n\r\n if (this.smartForm.useOnValueChangeEvent && !this.onValueChangeSubject) {\r\n this.onValueChangeSubject = new SmartSubject(this._destroy$);\r\n }\r\n\r\n this.service.smartForm = this.smartForm;\r\n if (!this.originalWidgets || this.originalWidgets.length === 0) {\r\n this.originalWidgets = this.smartForm.widgets;\r\n }\r\n this.service.setValuesFromModel(this.originalWidgets);\r\n this.service.applyConstraints(this.originalWidgets);\r\n this.smartForm.widgets = this.service.filterWidgetsByVisibility(this.originalWidgets);\r\n this.form = this.service.toFormGroup();\r\n\r\n if (this.smartForm.translateService) {\r\n this.smartForm.translateService.onLangChange.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.translateWidgets(this.smartForm!.widgets);\r\n });\r\n this.translateWidgets(this.smartForm.widgets);\r\n }\r\n }\r\n\r\n private async translateWidgets(widgets: SmartFormWidget<any>[]): Promise<void> {\r\n await this.service.translateWidgets(this.smartForm!.widgets);\r\n this.markAllWidgetsForChangeDetection();\r\n }\r\n\r\n public markAllWidgetsForChangeDetection() {\r\n this.getAllSmartWidgets().forEach((widget) => widget.changeDetector.markForCheck());\r\n }\r\n private getAllSmartWidgets(): SmartformwidgetComponent[] {\r\n const result: SmartformwidgetComponent[] = [];\r\n this.smartWidgetsQL?.forEach((widget) => {\r\n result.push(...this.getChildWidgets(widget));\r\n });\r\n return result;\r\n }\r\n\r\n private getChildWidgets(widget: SmartformwidgetComponent): SmartformwidgetComponent[] {\r\n if (widget.widgetInstance.type == SmartFormWidgetType.CONTAINER) {\r\n const result: SmartformwidgetComponent[] = [];\r\n widget.childrenWidgetsQL?.forEach((child) => result.push(...this.getChildWidgets(child)));\r\n return result;\r\n } else {\r\n return [widget];\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n getForm(): FormGroup {\r\n return this.form;\r\n }\r\n\r\n getInvalidFields(): SmartFormInvalidFields {\r\n let invalidFields: SmartFormInvalidFields = {\r\n invalidFieldKeys: [],\r\n invalidFieldNames: [],\r\n };\r\n if (this.form) {\r\n for (const control of Object.keys(this.form.controls)) {\r\n if (!this.form.controls[control].valid) {\r\n let widget = this.service.getSmartFormWidgetByKey(control);\r\n if (\r\n widget &&\r\n widget.type !== SmartFormWidgetType.CONTAINER &&\r\n widget.type !== SmartFormWidgetType.INDICATOR &&\r\n widget.type !== SmartFormWidgetType.LABEL &&\r\n widget.type !== SmartFormWidgetType.FILE_UPLOADER &&\r\n widget.type !== SmartFormWidgetType.IMAGE &&\r\n widget.type !== SmartFormWidgetType.SVG &&\r\n widget.type !== SmartFormWidgetType.DIVIDER &&\r\n widget.type !== SmartFormWidgetType.BUTTON &&\r\n widget.type !== SmartFormWidgetType.COMPONENT &&\r\n widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER &&\r\n !widget.isDisabled\r\n ) {\r\n invalidFields.invalidFieldNames.push(widget.label);\r\n invalidFields.invalidFieldKeys.push(widget.key);\r\n }\r\n }\r\n }\r\n }\r\n return invalidFields;\r\n }\r\n\r\n submitForm(validate = true): SmartForm {\r\n if (validate) {\r\n this.smartForm!.invalidFields = undefined;\r\n\r\n if (this.form && this.form.invalid) {\r\n for (const control of Object.keys(this.form.controls)) {\r\n this.form.controls[control].markAsTouched();\r\n this.form.controls[control].markAsDirty();\r\n // this.form.controls[control].setValue(value);\r\n }\r\n\r\n this.smartForm!.invalidFields = this.getInvalidFields();\r\n return this.smartForm!;\r\n }\r\n }\r\n return this.service.toSmartForm(this.form);\r\n }\r\n\r\n keyDownFunction(event: any): void {\r\n if (event.keyCode === 13 && this.smartForm!.submitOnEnter) {\r\n this.smartForm!.submitOnEnter();\r\n }\r\n }\r\n\r\n getModel(): any {\r\n return this.service.getModel(this.form);\r\n }\r\n\r\n getToolbars(): UiActionToolbarComponent[] {\r\n if (this.smartWidgetsQL) {\r\n let toolbars = this.smartWidgetsQL\r\n .filter((widget) => widget.toolbar !== undefined && widget.toolbar !== null)\r\n .map((widget) => widget.toolbar!);\r\n if (toolbars) {\r\n return toolbars;\r\n }\r\n }\r\n return [];\r\n }\r\n}\r\n","<form *ngIf=\"smartForm\" (keydown)=\"keyDownFunction($event)\" [formGroup]=\"form\" class=\"flex form\">\r\n <h2 *ngIf=\"smartForm.name\">\r\n {{ smartForm.name }}\r\n </h2>\r\n <div [ngClass]=\"smartForm.direction === direction.ROW ? 'row' : 'col'\">\r\n <div *ngFor=\"let widget of smartForm.widgets\" class=\"item\">\r\n <smartformwidget\r\n *ngIf=\"widget.isVisible === undefined ? true : widget.isVisible\"\r\n [widgetInstance]=\"widget\"\r\n [form]=\"form\"\r\n class=\"grid-item\"\r\n [onBlur]=\"onBlurSubject\"\r\n [onValueChange]=\"onValueChangeSubject\"\r\n [sophisticatedValueChange]=\"sophisticatedValueChange\"\r\n class=\"{{ widget.key }}\"\r\n [labelColor]=\"smartForm.labelTheme\"\r\n ></smartformwidget>\r\n </div>\r\n </div>\r\n</form>\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Style, UiAction, UiActionDescriptor } from '../view-context/api';\r\n\r\nexport enum SmartTableType {\r\n INHERITED = 'Inherited',\r\n CHECK_BOX = 'CheckBox',\r\n ROW_SELECT = 'RowSelect',\r\n}\r\n\r\nexport interface SmartTableOption {\r\n label: string;\r\n icon?: string;\r\n callback: (id: string) => any;\r\n}\r\n\r\nexport enum SmartTableHeaderPropertyType {\r\n DATE,\r\n TIME,\r\n DATETIME,\r\n ICON,\r\n CHECKBOX,\r\n}\r\n\r\nexport interface SmartTableHeaderIcons {\r\n icon: string;\r\n color: ThemePalette;\r\n showIconIfValueEqualsWithString?: string;\r\n showIconIfValueEqualsWithNumber?: number;\r\n showIconIfValueSmallerThanNumber?: number;\r\n showIconIfValueBiggerThanNumber?: number;\r\n showIconIfValueBoolean?: boolean;\r\n showIconIfValueNull?: any;\r\n}\r\n\r\nexport interface SmartTableHeaderProperties {\r\n type: SmartTableHeaderPropertyType;\r\n dateFormat?: string;\r\n icons?: SmartTableHeaderIcons[];\r\n toolTipColumn?: string;\r\n}\r\n\r\nexport interface SmartTableIcon {\r\n icon: string;\r\n color?: ThemePalette;\r\n cssClass?: string;\r\n}\r\n\r\nexport interface SmartTableHeader {\r\n propertyName: string;\r\n label: string;\r\n isHidden?: boolean;\r\n properties?: SmartTableHeaderProperties;\r\n buttons?: SmartTableButton[];\r\n icon?: SmartTableIcon;\r\n translator?: ((value: string) => string) | ((value: string) => Promise<string>);\r\n showCheckboxInHeader?: boolean | undefined;\r\n order?: SmartTableOrder;\r\n orderNumber?: number;\r\n isSortable?: boolean;\r\n style?: Style;\r\n}\r\n\r\nexport enum SmartTableOrder {\r\n ASC = 'ASC',\r\n DESC = 'DESC',\r\n}\r\n\r\nexport interface SmartTableButton {\r\n icon?: string;\r\n label?: string;\r\n color?: ThemePalette;\r\n code?: string;\r\n type: SmartTableButtonType;\r\n menuItemButtons?: SmartTableButton[];\r\n menuItemButtonsPropertyName?: string;\r\n translator?: (uiAction: UiAction) => UiActionDescriptor;\r\n callback?: (...args: any[]) => any;\r\n args?: any[];\r\n showButtonIf?: (row: any) => boolean;\r\n}\r\n\r\nexport enum SmartTableButtonType {\r\n MENU = 'MENU',\r\n ICON = 'ICON',\r\n NORMAL = 'NORMAL',\r\n RAISED = 'RAISED',\r\n SEPARATOR = 'SEPARATOR',\r\n}\r\n\r\nexport enum SmartTableOptionButtonDirection {\r\n HORIZONTAL,\r\n VERTICAL,\r\n}\r\n\r\nexport declare type SmartTableInterfaceType<T> =\r\n | SmartTableInterface<T>\r\n | SmartTableGridInterface<T>;\r\n\r\nexport enum SmartTableInterfaceTypeEnum {\r\n NORMAL,\r\n GRID,\r\n}\r\n\r\nexport interface SmartTableInterface<T> {\r\n type: SmartTableInterfaceTypeEnum.NORMAL;\r\n title?: string;\r\n tableHeaders?: string[];\r\n customSmartTableHeaders?: SmartTableHeader[];\r\n customTableHeaders?: string[];\r\n tableRows: T[];\r\n tableType: SmartTableType;\r\n options?: SmartTableOption[];\r\n tableOptionButtonDirection?: SmartTableOptionButtonDirection;\r\n onRowClick?: (row: T) => void;\r\n onRowDoubleClick?: (row: T) => void;\r\n defaultActionCodes?: string[];\r\n defaultActions?: SmartTableButton[];\r\n highlightOnRowClick?: boolean;\r\n highlightClass?: string;\r\n hover?: boolean;\r\n expandable?: boolean;\r\n expandedComponent?: any;\r\n asyncOnExpand?: boolean;\r\n sortIconAsc?: string;\r\n sortIconDesc?: string;\r\n sortIconNeutral?: string;\r\n sortable?: boolean;\r\n maxNumOfSelectableRows?: number;\r\n selectionProperty?: string;\r\n isMultiple?: boolean;\r\n selection?: SelectionModel<any>;\r\n showCheckboxInHeader?: boolean;\r\n isRowDisabledPropertyName?: string;\r\n selectablePropertyName?: string;\r\n onSelection?: (row: any) => Promise<void>;\r\n onAllSelection?: (selected: boolean) => Promise<void>;\r\n rowExpander?: SmartTableRowExpander<T>;\r\n highlightProperty?: string;\r\n}\r\nexport interface SmartTableGridInterface<T> {\r\n type: SmartTableInterfaceTypeEnum.GRID;\r\n customSmartTableHeaders?: SmartTableHeader[];\r\n tableType: SmartTableType;\r\n options?: SmartTableOption[];\r\n tableOptionButtonDirection?: SmartTableOptionButtonDirection;\r\n onRowClick?: (row: T) => void;\r\n onRowDoubleClick?: (row: T) => void;\r\n defaultActionCodes?: string[];\r\n defaultActions?: SmartTableButton[];\r\n highlightOnRowClick?: boolean;\r\n highlightClass?: string;\r\n hover?: boolean;\r\n sortIconAsc?: string;\r\n sortIconDesc?: string;\r\n sortIconNeutral?: string;\r\n sortable?: boolean;\r\n maxNumOfSelectableRows?: number;\r\n selectionProperty?: string;\r\n isMultiple?: boolean;\r\n selection?: SelectionModel<any>;\r\n showCheckboxInHeader?: boolean;\r\n isRowDisabledPropertyName?: string;\r\n selectablePropertyName?: string;\r\n onSelection?: (row: any) => Promise<void>;\r\n onAllSelection?: (selected: boolean) => Promise<void>;\r\n asyncOnExpand?: boolean;\r\n rowExpander?: SmartTableRowExpander<T>;\r\n highlightProperty?: string;\r\n}\r\n\r\nexport interface SmartTableRowExpander<T> {\r\n expand(rowId: number): T;\r\n expandAsync(rowId: number): Promise<T>;\r\n}\r\n\r\nexport class SmartTable<T> implements SmartTableInterface<T> {\r\n type: SmartTableInterfaceTypeEnum.NORMAL = SmartTableInterfaceTypeEnum.NORMAL;\r\n title?: string | undefined;\r\n tableHeaders: string[];\r\n customSmartTableHeaders?: SmartTableHeader[];\r\n customTableHeaders!: string[];\r\n tableRows: T[];\r\n tableType: SmartTableType;\r\n selection?: SelectionModel<any>;\r\n isMultiple?: boolean;\r\n options?: SmartTableOption[];\r\n tableOptionButtonDirection?: SmartTableOptionButtonDirection;\r\n onRowClick?: (row: T) => void;\r\n onRowDoubleClick?: (row: T) => void;\r\n defaultActionCodes?: string[];\r\n defaultActions?: SmartTableButton[];\r\n highlightOnRowClick?: boolean;\r\n highlightClass?: string;\r\n hover?: boolean;\r\n expandable?: boolean;\r\n expandedComponent?: any;\r\n asyncOnExpand?: boolean;\r\n sortIconAsc?: string;\r\n sortIconDesc?: string;\r\n sortIconNeutral?: string;\r\n sortable?: boolean;\r\n maxNumOfSelectableRows?: number;\r\n selectionProperty?: string;\r\n isRowDisabledPropertyName?: string;\r\n selectablePropertyName?: string;\r\n onSelection?: (row: any) => Promise<void>;\r\n onAllSelection?: (selected: boolean) => Promise<void>;\r\n rowExpander?: SmartTableRowExpander<T>;\r\n highlightProperty?: string;\r\n\r\n constructor(config: SmartTableInterface<T>) {\r\n this.expandable = config.expandable;\r\n this.expandedComponent = config.expandedComponent;\r\n this.asyncOnExpand = config.asyncOnExpand;\r\n this.highlightProperty = config.highlightProperty;\r\n\r\n this.customSmartTableHeaders = config.customSmartTableHeaders;\r\n\r\n if (this.expandable) {\r\n this.customSmartTableHeaders?.push({\r\n label: '',\r\n propertyName: 'expand',\r\n });\r\n }\r\n this.tableType = config.tableType;\r\n\r\n if (this.tableType === SmartTableType.CHECK_BOX) {\r\n this.customSmartTableHeaders = [\r\n {\r\n label: '',\r\n propertyName: 'select',\r\n showCheckboxInHeader:\r\n typeof config.showCheckboxInHeader === 'undefined' ? true : config.showCheckboxInHeader,\r\n },\r\n ...this.customSmartTableHeaders!,\r\n ];\r\n }\r\n if (\r\n this.tableType === SmartTableType.CHECK_BOX ||\r\n this.tableType === SmartTableType.ROW_SELECT\r\n ) {\r\n this.isMultiple = config.isMultiple;\r\n\r\n this.selectionProperty = config.selectionProperty;\r\n this.selection = config.selection ?? new SelectionModel<T>(this.isMultiple, []);\r\n }\r\n\r\n this.tableHeaders = this.getPropertyNamesDeeply(config.tableRows[0]);\r\n\r\n this.setTableHeaders();\r\n\r\n this.tableRows = config.tableRows;\r\n this.title = config.title;\r\n this.options = config.options;\r\n this.tableOptionButtonDirection = config.tableOptionButtonDirection;\r\n this.onRowClick = config.onRowClick;\r\n this.onRowDoubleClick = config.onRowDoubleClick;\r\n this.defaultActions = config.defaultActions;\r\n this.defaultActionCodes = config.defaultActionCodes;\r\n this.highlightOnRowClick = config.highlightOnRowClick;\r\n this.highlightClass = config.highlightClass;\r\n this.hover = config.hover;\r\n this.sortIconAsc = config.sortIconAsc;\r\n this.sortIconDesc = config.sortIconDesc;\r\n this.sortIconNeutral = config.sortIconNeutral;\r\n this.sortable = config.sortable;\r\n this.maxNumOfSelectableRows = config.maxNumOfSelectableRows;\r\n this.isRowDisabledPropertyName = config.isRowDisabledPropertyName;\r\n this.selectablePropertyName = config.selectablePropertyName;\r\n this.onSelection = config.onSelection;\r\n this.onAllSelection = config.onAllSelection;\r\n this.rowExpander = config.rowExpander;\r\n\r\n this.pushOptions();\r\n }\r\n\r\n getPropertyNamesDeeply(element: any): string[] {\r\n if (element === undefined) {\r\n return [];\r\n }\r\n let properties = Object.keys(element);\r\n properties.forEach((property) => {\r\n if (\r\n element === undefined ||\r\n typeof element[property] === 'string' ||\r\n typeof element[property] === 'boolean' ||\r\n typeof element[property] === 'number' ||\r\n element[property] === undefined ||\r\n element[property] === null ||\r\n !element[property] ||\r\n !element\r\n ) {\r\n return;\r\n }\r\n let innerProperties = this.getPropertyNamesDeeply(element[property]);\r\n properties.push(...innerProperties);\r\n });\r\n return properties;\r\n }\r\n\r\n getValueDeeply(model: any, key: string): any {\r\n let splittedKey = key.split('.');\r\n let value: any;\r\n\r\n splittedKey.forEach((k: string) => {\r\n if (!value) {\r\n value = model[k];\r\n } else {\r\n if (value === undefined) {\r\n return undefined;\r\n } else if (value[k] === undefined || value[k] === null || !value) {\r\n value = '';\r\n return value;\r\n } else {\r\n value = value[k];\r\n }\r\n }\r\n });\r\n return value;\r\n }\r\n\r\n pushOptions(): void {\r\n if (this.options && this.options.length) {\r\n this.tableHeaders.push('options');\r\n }\r\n }\r\n\r\n setTableHeaders(): void {\r\n if (this.customSmartTableHeaders && this.customSmartTableHeaders.length) {\r\n let originalHeaders = this.tableHeaders;\r\n this.tableHeaders = [];\r\n this.customTableHeaders = [];\r\n this.customSmartTableHeaders.forEach((tableHeader) => {\r\n let propertyNames = tableHeader.propertyName.split('.');\r\n if (\r\n propertyNames.filter((property) => originalHeaders.includes(property)) &&\r\n !tableHeader.isHidden\r\n ) {\r\n this.tableHeaders.push(tableHeader.propertyName);\r\n this.customTableHeaders.push(tableHeader.label);\r\n } else if (\r\n tableHeader.buttons ||\r\n tableHeader.icon ||\r\n tableHeader.propertyName === 'expand' ||\r\n tableHeader.propertyName === 'select'\r\n ) {\r\n this.tableHeaders.push(tableHeader.propertyName);\r\n this.customTableHeaders.push(tableHeader.label);\r\n }\r\n });\r\n } else {\r\n this.customTableHeaders = this.tableHeaders;\r\n }\r\n }\r\n}\r\n","import { ConnectedPosition, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\r\nimport { Directive, Input } from '@angular/core';\r\nimport { MatMenuPanel, _MatMenuTriggerBase } from '@angular/material/menu';\r\n\r\n@Directive({\r\n selector: '[matContextMenuTriggerFor]',\r\n host: {\r\n class: 'mat-menu-trigger',\r\n },\r\n exportAs: 'matContextMenuTriggerDirective',\r\n})\r\nexport class MatContextMenuTriggerForDirective extends _MatMenuTriggerBase {\r\n public lastMouseEvent: MouseEvent | null = null;\r\n\r\n // Duplicate the code for the matMenuTriggerFor binding\r\n // using a new property and the public menu accessors.\r\n @Input('matContextMenuTriggerFor')\r\n get menu_again() {\r\n return this.menu!;\r\n }\r\n set menu_again(menu: MatMenuPanel) {\r\n this.menu = menu;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n // Can't just override a private method due to how the lib is compiled\r\n this['_setPosition'] = (positionStrategy: FlexibleConnectedPositionStrategy) => {\r\n let positions: ConnectedPosition[] = [];\r\n super['_setPosition'](positionStrategy, {\r\n withPositions: (p: any) => {\r\n positions = p;\r\n },\r\n });\r\n // positionStrategy?.withPositions(positions);\r\n if (this.lastMouseEvent) {\r\n positionStrategy?.setOrigin({\r\n x: this.lastMouseEvent.clientX,\r\n y: this.lastMouseEvent.clientY,\r\n });\r\n }\r\n positionStrategy?.withViewportMargin(10);\r\n };\r\n }\r\n}\r\n","import { Component, Input, ViewChild } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\n\r\nimport { SmartTableButton, SmartTableButtonType } from '../../smarttable.model';\r\nimport { GridRow } from '../../../smart-grid/api/grid-api/model/models';\r\nimport { UiAction } from '../../../view-context/api/model/models';\r\nimport { MatContextMenuTriggerForDirective } from '../../directives/mat-context-menu-trigger-for.directive';\r\nimport { KeyValue } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-default-actions-popup',\r\n templateUrl: './default-actions-popup.component.html',\r\n styleUrls: ['./default-actions-popup.component.css'],\r\n})\r\nexport class DefaultActionsPopupComponent {\r\n @ViewChild('defaultActionsMenuTrigger', { read: MatContextMenuTriggerForDirective })\r\n trigger!: MatContextMenuTriggerForDirective;\r\n\r\n public readonly ACTION_SEPERATOR = SmartTableButtonType.SEPARATOR;\r\n @Input() buttons!: Map<SmartTableButton, UiAction>;\r\n @Input() row!: GridRow;\r\n @Input() colIdx?: number;\r\n\r\n smartTableButtonType = SmartTableButtonType;\r\n\r\n constructor() {}\r\n\r\n openDefaultActionsMenu(e: MouseEvent): void {\r\n if (this.buttons) {\r\n this.trigger.lastMouseEvent = e;\r\n this.trigger.openMenu();\r\n }\r\n }\r\n\r\n defaultActionButtonClicked(button: KeyValue<SmartTableButton, UiAction>): void {\r\n if (button.key.callback) {\r\n button.key.callback(button.key.args, this.row, button.value);\r\n }\r\n }\r\n}\r\n","<div #defaultActionsMenuTrigger [matContextMenuTriggerFor]=\"defaultActionsMenu\"></div>\r\n<mat-menu #defaultActionsMenu=\"matMenu\">\r\n <div *ngFor=\"let button of buttons | keyvalue\">\r\n <button\r\n *ngIf=\"button.key.type !== ACTION_SEPERATOR\"\r\n (click)=\"defaultActionButtonClicked(button)\"\r\n mat-menu-item\r\n [disabled]=\"button.value.disabled\"\r\n [smartTooltip]=\"\r\n button.value.descriptor?.tooltip\r\n ? button.value.descriptor?.tooltip\r\n : button.key.translator!(button.value).tooltip\r\n \"\r\n >\r\n <div\r\n class=\"smart-table-icon-container\"\r\n [ngClass]=\"button.key.translator!(button.value).iconPosition === 'POST' ? 'reversed' : ''\"\r\n ><smart-icon\r\n *ngIf=\"button.key.translator!(button.value).icon\"\r\n [icon]=\"button.key.translator!(button.value).icon!\"\r\n ></smart-icon>\r\n {{ button.key.translator!(button.value).title }}</div\r\n >\r\n </button>\r\n <mat-divider *ngIf=\"button.key.type === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n</mat-menu>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-loading',\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.css']\r\n})\r\nexport class LoadingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"spinnerContainer\">\r\n <div class=\"spinner\">\r\n <mat-spinner color=\"accent\" #mainSpinner></mat-spinner>\r\n </div>\r\n</div>\r\n","export class SmartObjectUtility {\r\n public static getValueByPath(model: any, key: string): any {\r\n // Attempt to directly access the key in case it's fully represented with dots\r\n if (key in model) {\r\n return model[key];\r\n }\r\n\r\n // Split the key into parts on the dot for deeper checks\r\n const keys = key.split('.');\r\n\r\n // Use a recursive helper function to traverse the object\r\n return this.traverse(model, keys, 0);\r\n }\r\n\r\n private static traverse(currentModel: any, keys: string[], index: number): any {\r\n if (index >= keys.length) {\r\n return currentModel;\r\n }\r\n\r\n if (!currentModel) {\r\n return undefined;\r\n }\r\n\r\n // Reconstruct possible keys with dots\r\n for (let i = index; i < keys.length; i++) {\r\n const reconstructedKey = keys.slice(index, i + 1).join('.');\r\n if (reconstructedKey in currentModel) {\r\n // Recursively continue with the next index past the current reconstructed key\r\n return this.traverse(currentModel[reconstructedKey], keys, i + 1);\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentFactoryService } from '../../component-factory-service/projects';\r\nimport { ImageResource, UiAction, UiActionTooltip } from '../../view-context/api/model/models';\r\nimport { SmartStyleUtility } from '../../view-context/utility/smart-style-utility';\r\nimport { DefaultActionsPopupComponent } from '../components/default-actions-popup/default-actions-popup.component';\r\nimport { LoadingComponent } from '../components/loading/loading.component';\r\nimport {\r\n SmartTable,\r\n SmartTableButton,\r\n SmartTableButtonType,\r\n SmartTableHeader,\r\n SmartTableHeaderPropertyType,\r\n SmartTableOptionButtonDirection,\r\n SmartTableOrder,\r\n SmartTableType,\r\n} from '../smarttable.model';\r\nimport { SmartObjectUtility } from '../../view-context/utility/smart-object-utility';\r\n@Component({\r\n template: '',\r\n})\r\nexport class Table implements OnInit, OnDestroy {\r\n public _destroy$: Subject<void> = new Subject();\r\n @ViewChildren(MatMenuTrigger) triggers!: QueryList<MatMenuTrigger>;\r\n @ViewChildren('expandedArea', { read: ViewContainerRef })\r\n vcRef?: ViewContainerRef[];\r\n componentRef?: ComponentRef<any>;\r\n\r\n @ViewChildren(DefaultActionsPopupComponent)\r\n defaultActionMenuComponents!: QueryList<DefaultActionsPopupComponent>;\r\n\r\n @ViewChild('myTable') myTableChild!: MatTable<any>;\r\n\r\n @Input() smartTable!: SmartTable<any>;\r\n tableType = SmartTableType;\r\n smartTableButtonType = SmartTableButtonType;\r\n highlightedRows: any[] = [];\r\n sortEvent: Subject<SmartTableHeader> = new Subject();\r\n expandedElement: any | null;\r\n\r\n element?: any;\r\n\r\n onSelectionChanged: Subject<void> = new Subject();\r\n\r\n constructor(protected cfService: ComponentFactoryService) {}\r\n\r\n public asyncTranslationResult = (translator: any, param: string) => translator(param);\r\n\r\n public readonly ACTION_SEPERATOR = '_actionSeparator_';\r\n\r\n ngOnInit(): void {\r\n if (this.smartTable.sortable) this.sortEvent = new Subject();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n handleOnRowClick(element: any): void {\r\n if (this.smartTable.tableType === SmartTableType.INHERITED) {\r\n this.onRowClick(element);\r\n } else if (this.smartTable.tableType === SmartTableType.CHECK_BOX) {\r\n if (!this.smartTable.onRowDoubleClick && !this.smartTable.onRowClick) {\r\n this.setSelection(\r\n this.smartTable.selectionProperty\r\n ? this.smartTable.getValueDeeply(element, this.smartTable.selectionProperty)\r\n : element\r\n );\r\n } else if (this.smartTable.onRowClick) {\r\n this.onRowClick(element);\r\n }\r\n } else if (this.smartTable.tableType === SmartTableType.ROW_SELECT) {\r\n this.setSelection(\r\n this.smartTable.selectionProperty\r\n ? this.smartTable.getValueDeeply(element, this.smartTable.selectionProperty)\r\n : element\r\n );\r\n }\r\n }\r\n\r\n updateSmartTable(smartTable: SmartTable<any>): void {\r\n this.smartTable = smartTable;\r\n this.renderRows();\r\n }\r\n\r\n renderRows(): void {\r\n this.myTableChild.renderRows();\r\n }\r\n\r\n handleOnRowDoubleClick(event: any, element: any): void {\r\n if (this.smartTable.defaultActions && this.smartTable.defaultActions.length > 0) {\r\n this.openDefaultActionsMenu(event, element);\r\n } else {\r\n if (this.smartTable.tableType === SmartTableType.INHERITED) {\r\n this.onRowDoubleClick(element);\r\n } else if (this.smartTable.tableType === SmartTableType.CHECK_BOX) {\r\n if (this.smartTable.onRowDoubleClick) {\r\n this.onRowDoubleClick(element);\r\n }\r\n }\r\n }\r\n }\r\n\r\n type(): typeof SmartTableHeaderPropertyType {\r\n return SmartTableHeaderPropertyType;\r\n }\r\n\r\n sortButtonClicked(event: any, header: SmartTableHeader) {\r\n event.stopPropagation();\r\n this.sortEvent.next(header);\r\n }\r\n\r\n customButtonClicked(\r\n event: any,\r\n button: SmartTableButton,\r\n element: any,\r\n btn?: any,\r\n close?: boolean\r\n ) {\r\n event.stopPropagation();\r\n if (btn?.disabled) {\r\n return;\r\n }\r\n\r\n if (button.type === SmartTableButtonType.MENU && btn === undefined) return;\r\n\r\n if (!button.callback) {\r\n throw new Error(`Button with name ${button.label || button.icon} does not have a callback!`);\r\n }\r\n button.callback(button.args, element, btn);\r\n if (close) {\r\n let openMenus = this.triggers.filter(\r\n (matMenuTrigger: MatMenuTrigger) => matMenuTrigger.menuOpen\r\n );\r\n openMenus.forEach((matMenuTrigger: MatMenuTrigger) => {\r\n matMenuTrigger.closeMenu();\r\n });\r\n }\r\n }\r\n\r\n isSortable(header: SmartTableHeader): boolean {\r\n let isSortableTable = this.smartTable.sortable;\r\n if (isSortableTable) {\r\n return header.isSortable !== undefined ? header.isSortable : true;\r\n }\r\n return false;\r\n }\r\n\r\n getSortIcon(header: string): string | undefined {\r\n let tableHeader = this.smartTable.customSmartTableHeaders?.find(\r\n (tableHeader: SmartTableHeader) => tableHeader.propertyName === header\r\n );\r\n if (tableHeader && tableHeader.order) {\r\n return tableHeader.order === SmartTableOrder.ASC\r\n ? this.smartTable.sortIconAsc ?? 'keyboard_arrow_down'\r\n : this.smartTable.sortIconDesc ?? 'keyboard_arrow_up';\r\n }\r\n return undefined;\r\n }\r\n hasSortNumIcon(header: string): boolean {\r\n let tableHeader = this.smartTable.customSmartTableHeaders?.find(\r\n (tableHeader: SmartTableHeader) => tableHeader.propertyName === header\r\n );\r\n return tableHeader?.orderNumber !== undefined;\r\n }\r\n getSortNumIcon(header: string): string {\r\n let tableHeader = this.smartTable.customSmartTableHeaders?.find(\r\n (tableHeader: SmartTableHeader) => tableHeader.propertyName === header\r\n );\r\n if (tableHeader && tableHeader.orderNumber) {\r\n return `filter_${tableHeader.orderNumber}`;\r\n }\r\n return '';\r\n }\r\n\r\n getToolTip(element: any, headerIndex: number): UiActionTooltip | undefined {\r\n if (!this.smartTable.customSmartTableHeaders) {\r\n throw new Error('CustomTableHeaders property is missing');\r\n } else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties) {\r\n throw new Error(`CustomTableHeader with index ${headerIndex} does not have properties`);\r\n } else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties!.icons) {\r\n throw new Error(`CustomTableHeader with index ${headerIndex} does not have icons defined`);\r\n }\r\n\r\n let toolTipColumn =\r\n this.smartTable.customSmartTableHeaders[headerIndex].properties?.toolTipColumn;\r\n return toolTipColumn ? this.getValue(element, toolTipColumn) : undefined;\r\n }\r\n\r\n getIcon(value: string | number | boolean, headerIndex: number): string {\r\n if (!this.smartTable.customSmartTableHeaders) {\r\n throw new Error('CustomTableHeaders property is missing');\r\n } else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties) {\r\n throw new Error(`CustomTableHeader with index ${headerIndex} does not have properties`);\r\n } else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties!.icons) {\r\n throw new Error(`CustomTableHeader with index ${headerIndex} does not have icons defined`);\r\n }\r\n let customTableHeaderIcons =\r\n this.smartTable.customSmartTableHeaders[headerIndex].properties!.icons;\r\n\r\n let icon: string = '';\r\n\r\n for (var i = 0; i < customTableHeaderIcons!.length; i++) {\r\n let customTableHeaderIcon = customTableHeaderIcons![i];\r\n if (value === null) {\r\n if (\r\n customTableHeaderIcon.showIconIfValueNull &&\r\n customTableHeaderIcon.showIconIfValueNull === value\r\n ) {\r\n icon = customTableHeaderIcon.icon;\r\n break;\r\n }\r\n }\r\n if (typeof value === 'number') {\r\n if (\r\n customTableHeaderIcon.showIconIfValueBiggerThanNumber &&\r\n customTableHeaderIcon.showIconIfValueBiggerThanNumber < value\r\n ) {\r\n icon = customTableHeaderIcon.icon;\r\n break;\r\n } else if (\r\n customTableHeaderIcon.showIconIfValueSmallerThanNumber &&\r\n customTableHeaderIcon.showIconIfValueSmallerThanNumber > value\r\n ) {\r\n icon = customTableHeaderIcon.icon;\r\n break;\r\n } else if (\r\n customTableHeaderIcon.showIconIfValueEqualsWithNumber &&\r\n customTableHeaderIcon.showIconIfValueEqualsWithNumber === value\r\n ) {\r\n icon = customTableHeaderIcon.icon;\r\n break;\r\n }\r\n } else if (typeof value === 'string') {\r\n if (\r\n customTableHeaderIcon.showIconIfValueEqualsWithString &&\r\n customTableHeaderIcon.showIconIfValueEqualsWithString === value\r\n ) {\r\n icon = customTableHeaderIcon.icon;\r\n break;\r\n }\r\n } else if (typeof value === 'boolean') {\r\n if (\r\n customTableHeaderIcon.showIconIfValueBoolean &&\r\n customTableHeaderIcon.showIconIfValueBoolean === value\r\n ) {\r\n icon = customTableHeaderIcon.icon;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return icon;\r\n }\r\n\r\n getColor(value: string | number | boolean, headerIndex: number): ThemePalette {\r\n if (!this.smartTable.customSmartTableHeaders) {\r\n throw new Error('CustomTableHeaders property is missing');\r\n } else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties) {\r\n throw new Error(`CustomTableHeader with index ${headerIndex} does not have properties`);\r\n } else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties!.icons) {\r\n throw new Error(`CustomTableHeader with index ${headerIndex} does not have icons defined`);\r\n }\r\n let customTableHeaderIcons =\r\n this.smartTable.customSmartTableHeaders[headerIndex].properties!.icons;\r\n\r\n let color: ThemePalette = 'primary';\r\n\r\n for (var i = 0; i < customTableHeaderIcons!.length; i++) {\r\n let customTableHeaderIcon = customTableHeaderIcons![i];\r\n if (typeof value === 'number') {\r\n if (\r\n customTableHeaderIcon.showIconIfValueBiggerThanNumber &&\r\n customTableHeaderIcon.showIconIfValueBiggerThanNumber < value\r\n ) {\r\n color = customTableHeaderIcon.color;\r\n break;\r\n } else if (\r\n customTableHeaderIcon.showIconIfValueSmallerThanNumber &&\r\n customTableHeaderIcon.showIconIfValueSmallerThanNumber > value\r\n ) {\r\n color = customTableHeaderIcon.color;\r\n break;\r\n } else if (\r\n customTableHeaderIcon.showIconIfValueEqualsWithNumber &&\r\n customTableHeaderIcon.showIconIfValueEqualsWithNumber === value\r\n ) {\r\n color = customTableHeaderIcon.color;\r\n break;\r\n }\r\n } else if (typeof value === 'string') {\r\n if (\r\n customTableHeaderIcon.showIconIfValueEqualsWithString &&\r\n customTableHeaderIcon.showIconIfValueEqualsWithString === value\r\n ) {\r\n color = customTableHeaderIcon.color;\r\n break;\r\n }\r\n } else if (typeof value === 'boolean') {\r\n if (\r\n customTableHeaderIcon.showIconIfValueBoolean &&\r\n customTableHeaderIcon.showIconIfValueBoolean === value\r\n ) {\r\n color = customTableHeaderIcon.color;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return color;\r\n }\r\n\r\n tableOptionButtonDirection(): typeof SmartTableOptionButtonDirection {\r\n return SmartTableOptionButtonDirection;\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.smartTable.selection!.selected.length;\r\n const numRows = this.smartTable.tableRows.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n toggleAllRows() {\r\n if (this.isAllSelected()) {\r\n this.smartTable.selection!.clear();\r\n\r\n if (this.smartTable.onAllSelection) {\r\n this.smartTable.onAllSelection(false);\r\n }\r\n return;\r\n }\r\n if (this.smartTable.maxNumOfSelectableRows) {\r\n this.smartTable.selection!.clear();\r\n\r\n if (this.smartTable.onAllSelection) {\r\n this.smartTable.onAllSelection(false);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this.smartTable.selectionProperty) {\r\n this.smartTable.selection!.select(\r\n ...this.smartTable.tableRows.map((row: any) =>\r\n this.smartTable.getValueDeeply(row, this.smartTable.selectionProperty!)\r\n )\r\n );\r\n } else {\r\n this.smartTable.selection!.select(...this.smartTable.tableRows);\r\n }\r\n if (this.smartTable.onAllSelection) {\r\n this.smartTable.onAllSelection(true);\r\n }\r\n }\r\n\r\n /** The label for the checkbox on the passed row */\r\n checkboxLabel(row?: any): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\r\n }\r\n return `${this.smartTable.selection!.isSelected(row) ? 'deselect' : 'select'} row ${\r\n row.position + 1\r\n }`;\r\n }\r\n\r\n isHighlighted(row: any): boolean {\r\n if (this.smartTable.highlightProperty) {\r\n if (row['data'][this.smartTable.highlightProperty]) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!this.highlightedRows || !this.highlightedRows.length) {\r\n return false;\r\n }\r\n return this.highlightedRows.includes(row);\r\n }\r\n\r\n getRowClasses(row: any) {\r\n let classesToAdd: string[] = [];\r\n let classesToRemove: string[] = [];\r\n classesToAdd.push(this.isHighlighted(row) ? this.smartTable.highlightClass! : 'unselected');\r\n if (this.smartTable.hover) {\r\n classesToAdd.push('smartTableRowHover');\r\n } else {\r\n classesToRemove.push('smartTableRowHover');\r\n }\r\n if (this.isSelected(row)) {\r\n classesToAdd.push('selected');\r\n } else {\r\n classesToRemove.push('selected');\r\n }\r\n return SmartStyleUtility.getNgClasses(row.style, classesToAdd, classesToRemove);\r\n }\r\n\r\n getRowStyles(row: any): { [key: string]: string | number } {\r\n return SmartStyleUtility.getNgStyles(row.style);\r\n }\r\n\r\n getColumnClasses(header: SmartTableHeader) {\r\n return SmartStyleUtility.getNgClasses(header.style);\r\n }\r\n\r\n getColumnStyles(header: SmartTableHeader) {\r\n return SmartStyleUtility.getNgStyles(header.style);\r\n }\r\n\r\n private toCamelCase(css: string): string {\r\n return css.replace(/-([a-z])/g, function (g) {\r\n return g[1].toUpperCase();\r\n });\r\n }\r\n\r\n onRowClick(row: any): void {\r\n if (this.smartTable.highlightOnRowClick) {\r\n if (this.isHighlighted(row)) {\r\n let index = this.highlightedRows.indexOf(row, 0);\r\n this.highlightedRows.splice(index, 1);\r\n } else if (!this.highlightedRows || !this.highlightedRows.length) {\r\n this.highlightedRows = [];\r\n this.highlightedRows.push(row);\r\n } else {\r\n this.highlightedRows.push(row);\r\n }\r\n }\r\n if (this.smartTable.expandable && !this.smartTable.onRowDoubleClick) {\r\n this.onToggle(row);\r\n }\r\n if (this.smartTable.onRowClick) {\r\n this.smartTable.onRowClick(row);\r\n }\r\n }\r\n onRowDoubleClick(row: any): void {\r\n if (this.smartTable.highlightOnRowClick) {\r\n if (this.isHighlighted(row)) {\r\n let index = this.highlightedRows.indexOf(row, 0);\r\n this.highlightedRows.splice(index, 1);\r\n } else if (!this.highlightedRows || !this.highlightedRows.length) {\r\n this.highlightedRows = [];\r\n this.highlightedRows.push(row);\r\n } else {\r\n this.highlightedRows.push(row);\r\n }\r\n }\r\n if (this.smartTable.onRowDoubleClick) {\r\n this.smartTable.onRowDoubleClick(row);\r\n }\r\n }\r\n\r\n async onToggle(element: any, event?: any): Promise<void> {\r\n if (!this.smartTable.rowExpander) {\r\n throw new Error(\r\n 'SmartTableRowExpander not found!. Please provide a SmartTableRowExpander implementation.'\r\n );\r\n }\r\n\r\n if (event) {\r\n event?.stopPropagation();\r\n }\r\n\r\n let oldIndex = this.smartTable.tableRows.findIndex(\r\n (element) => element === this.expandedElement\r\n );\r\n if (oldIndex !== -1) {\r\n let ref = this.vcRef!.filter((element: any, index: number) => index === oldIndex);\r\n ref[0].clear();\r\n }\r\n this.expandedElement = this.expandedElement === element ? null : element;\r\n\r\n let newIndex = this.smartTable.tableRows.findIndex(\r\n (element) => element === this.expandedElement\r\n );\r\n\r\n let rowDataResponse;\r\n\r\n if (newIndex !== -1) {\r\n if (this.smartTable.asyncOnExpand) {\r\n this.componentRef = this.cfService.createComponent(\r\n this.vcRef?.filter((element: any, index: number) => index === newIndex)[0]!,\r\n LoadingComponent,\r\n new Map<string, any>()\r\n );\r\n\r\n rowDataResponse = await this.smartTable.rowExpander?.expandAsync(newIndex);\r\n\r\n let ref = this.vcRef!.filter((element: any, index: number) => index === newIndex)[0]!;\r\n ref.clear();\r\n }\r\n\r\n this.componentRef = this.cfService.createComponent(\r\n this.vcRef?.filter((element: any, index: number) => index === newIndex)[0]!,\r\n this.smartTable.expandedComponent,\r\n new Map<string, any>([['rowData', rowDataResponse]])\r\n );\r\n\r\n this.element = undefined;\r\n }\r\n }\r\n\r\n setSelection(element: any): void {\r\n if (\r\n this.smartTable.maxNumOfSelectableRows &&\r\n this.smartTable.selection!.selected.length === this.smartTable.maxNumOfSelectableRows\r\n ) {\r\n return;\r\n }\r\n this.smartTable.selection?.toggle(element);\r\n this.onSelectionChanged.next();\r\n\r\n if (this.smartTable.onSelection) {\r\n this.smartTable.onSelection(element);\r\n }\r\n }\r\n\r\n showMenuButton(element: any, button: SmartTableButton): boolean {\r\n if (button.menuItemButtons) {\r\n return true;\r\n } else if (button.menuItemButtonsPropertyName) {\r\n try {\r\n let length = this.getValue(element, button.menuItemButtonsPropertyName!).length;\r\n return length > 0;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getValue(element: any, header: string): any {\r\n return SmartObjectUtility.getValueByPath(element, header);\r\n }\r\n\r\n showButton(button: SmartTableButton, element: any): boolean {\r\n if (button.showButtonIf) {\r\n return button.showButtonIf(element);\r\n }\r\n return true;\r\n }\r\n\r\n isDisabled(element: any): boolean {\r\n if (this.smartTable.isRowDisabledPropertyName) {\r\n return this.smartTable.getValueDeeply(element, this.smartTable.isRowDisabledPropertyName);\r\n } else if (this.smartTable.selectablePropertyName) {\r\n const selectable = this.smartTable.getValueDeeply(\r\n element,\r\n this.smartTable.selectablePropertyName\r\n );\r\n return selectable === undefined || selectable === null ? false : !selectable;\r\n }\r\n return false;\r\n }\r\n\r\n isSelected(element: any): boolean {\r\n return (\r\n this.smartTable.selection?.isSelected(\r\n this.smartTable.selectionProperty\r\n ? this.smartTable.getValueDeeply(element, this.smartTable.selectionProperty)\r\n : element\r\n ) ?? false\r\n );\r\n }\r\n\r\n private originalProperty(header: string): string {\r\n if (header.startsWith('data.')) {\r\n return header.substring('data.'.length);\r\n }\r\n return header;\r\n }\r\n\r\n isImageResource(element: any, header: string): boolean {\r\n if (!element.icons) {\r\n return false;\r\n }\r\n let property = this.originalProperty(header);\r\n return Object.keys(element.icons).some((key) => key === property);\r\n }\r\n\r\n getImageResourceIcons(element: any, header: string): ImageResource[] {\r\n if (element?.icons) {\r\n let iconCodes = element?.icons[this.originalProperty(header)];\r\n return iconCodes;\r\n }\r\n return [];\r\n }\r\n\r\n getImageResourceIcon(element: any, header: string): any {\r\n return element.icons[this.originalProperty(header)].identifier;\r\n }\r\n\r\n getImageResourceColor(element: any, header: string): any {\r\n return element.icons[this.originalProperty(header)].color ?? 'primary';\r\n }\r\n\r\n getImageResourceStyle(resource: ImageResource): any {\r\n return resource.style ? resource.style : {};\r\n }\r\n\r\n openDefaultActionsMenu(event: any, row: any) {\r\n let actionCodesFromRow = row?.actions?.map((action: UiAction) => action.code);\r\n if (!actionCodesFromRow) {\r\n return;\r\n }\r\n let filteredActions = this.smartTable.defaultActions?.filter((action: SmartTableButton) =>\r\n actionCodesFromRow.includes(action.code!)\r\n );\r\n\r\n if (filteredActions && filteredActions.length > 0) {\r\n if (filteredActions.length === 1) {\r\n if (this.smartTable.onRowDoubleClick) {\r\n this.smartTable.onRowDoubleClick(row);\r\n return;\r\n }\r\n }\r\n this.defaultActionMenuComponents\r\n .toArray()\r\n .find((comp: DefaultActionsPopupComponent) => comp.row.id === row.id)\r\n ?.openDefaultActionsMenu(event);\r\n }\r\n }\r\n\r\n getDefaultActionsForRow(element: any): Map<SmartTableButton, UiAction> | undefined {\r\n if (element?.actions) {\r\n const actionCodesFromRow = new Map<string, UiAction>(\r\n element?.actions?.map((action: UiAction) => [action.code, action])\r\n );\r\n return new Map<SmartTableButton, UiAction>(\r\n this.smartTable.defaultActions\r\n ?.filter((action: SmartTableButton) => actionCodesFromRow.has(action.code!))\r\n .map((action: SmartTableButton) => [action, actionCodesFromRow.get(action.code!)!])\r\n );\r\n }\r\n return undefined;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'smartDate',\r\n})\r\nexport class SmartDatePipe extends DatePipe implements PipeTransform {\r\n override transform(value: any, format: string = 'yyyy-MM-dd'): any {\r\n return super.transform(value, format);\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'smartDateTime',\r\n})\r\nexport class SmartDateTimePipe extends DatePipe implements PipeTransform {\r\n override transform(value: any, format: string = 'yyyy-MM-dd hh:mm'): any {\r\n return super.transform(value, format);\r\n }\r\n}\r\n\r\n@Pipe({\r\n name: 'smartTime',\r\n})\r\nexport class SmartTimePipe extends DatePipe implements PipeTransform {\r\n override transform(value: any, format: string = 'hh:mm'): any {\r\n return super.transform(value, format);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { Table } from '../table';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { ComponentFactoryService } from '../../../component-factory-service/projects';\r\n\r\n@Component({\r\n selector: 'lib-material-table',\r\n templateUrl: './material-table.component.html',\r\n styleUrls: ['./material-table.component.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class MaterialTableComponent extends Table {\r\n constructor(cfService: ComponentFactoryService) {\r\n super(cfService);\r\n }\r\n}\r\n","<table\r\n #myTable\r\n mat-table\r\n [dataSource]=\"smartTable.tableRows\"\r\n class=\"full-width\"\r\n multiTemplateDataRows\r\n>\r\n <!-- Column Descriptor -->\r\n <ng-container\r\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\r\n matColumnDef=\"{{ header }}\"\r\n >\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\r\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\r\n >\r\n <div\r\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\r\n ></div>\r\n <div *ngIf=\"header === 'select'\">\r\n <mat-checkbox\r\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\r\n [aria-label]=\"checkboxLabel()\"\r\n >\r\n </mat-checkbox>\r\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\r\n {{ smartTable.customTableHeaders[i] }}\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'options' &&\r\n header !== 'button' &&\r\n header !== 'select' &&\r\n header !== 'expand' &&\r\n header !== 'actions'\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\r\n <ng-template #sortable>\r\n <button\r\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\r\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\r\n mat-button\r\n class=\"sortableHeaderButton\"\r\n >\r\n {{ smartTable.customTableHeaders[i] }}\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"getSortIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortIcon(header)!\"\r\n ></smart-icon>\r\n <smart-icon\r\n class=\"sortableHeaderButtonIcon\"\r\n *ngIf=\"hasSortNumIcon(header)\"\r\n title=\"sort\"\r\n [icon]=\"getSortNumIcon(header)\"\r\n ></smart-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #notSortable>\r\n {{ smartTable.customTableHeaders[i] }}\r\n </ng-template>\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\r\n !isDisabled(element)\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\r\n : element\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(element, header)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(element, header)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(element, header)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\r\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [smartTooltip]=\"getToolTip(element, i)\"\r\n [icon]=\"getIcon(getValue(element, header), i)!\"\r\n [color]=\"getColor(getValue(element, header), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div class=\"smart-table-icon-container\">\r\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\r\n <div [smartTooltip]=\"ir.tooltip!\" [ngStyle]=\"getImageResourceStyle(ir)\"\r\n ><smart-icon [icon]=\"ir.identifier!\" [color]=\"ir.color!\"> </smart-icon\r\n ></div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, element)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(element, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n <!-- {{ button.label ?? (button.translator ? button.translator(element).title : '') }} -->\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon\r\n *ngIf=\"btn?.translator(btn)?.icon\"\r\n [icon]=\"btn!.translator!(btn)!.icon!\"\r\n ></smart-icon>\r\n {{ btn?.translator(btn)?.title }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <div *ngFor=\"let btn of getValue(element, button.menuItemButtonsPropertyName)\">\r\n <button\r\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\r\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\r\n mat-menu-item\r\n [disabled]=\"btn.disabled\"\r\n [smartTooltip]=\"\r\n btn?.descriptor?.tooltip\r\n ? btn?.descriptor?.tooltip\r\n : button.translator!(btn).tooltip\r\n \"\r\n >\r\n <div\r\n class=\"smart-table-icon-container\"\r\n [ngClass]=\"\r\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\r\n \"\r\n ><smart-icon\r\n *ngIf=\"button.translator!(btn).icon\"\r\n [icon]=\"button.translator!(btn).icon!\"\r\n ></smart-icon>\r\n {{ button.translator!(btn).title }}</div\r\n >\r\n </button>\r\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\r\n </div>\r\n <button\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\r\n \"\r\n mat-icon-button\r\n aria-label=\"expand row\"\r\n (click)=\"onToggle(element, $event)\"\r\n >\r\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\r\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\r\n </button>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\r\n <img\r\n *ngIf=\"header === 'img'\"\r\n [src]=\"getValue(element, header)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header !== 'icon' &&\r\n header !== 'img' &&\r\n header !== 'option' &&\r\n header !== 'button' &&\r\n !isImageResource(element, header)\r\n \"\r\n [innerHtml]=\"getValue(element, header)\"\r\n ></div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\r\n <div\r\n class=\"example-element-detail\"\r\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\r\n >\r\n <ng-template #expandedArea></ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\r\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\r\n <tr\r\n mat-row\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"getRowClasses(element)\"\r\n [ngStyle]=\"getRowStyles(element)\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\r\n ></tr>\r\n <lib-default-actions-popup\r\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\r\n #defaultActionMenu\r\n [buttons]=\"getDefaultActionsForRow(element)!\"\r\n [row]=\"element\"\r\n ></lib-default-actions-popup>\r\n </ng-container>\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\r\n</table>\r\n","import { Component } from '@angular/core';\r\nimport { Table } from '../table';\r\nimport { ComponentFactoryService } from '../../../component-factory-service/projects';\r\n\r\n@Component({\r\n selector: 'lib-mobile-table',\r\n templateUrl: './mobile-table.component.html',\r\n styleUrls: ['./mobile-table.component.css'],\r\n})\r\nexport class MobileTableComponent extends Table {\r\n constructor(cfService: ComponentFactoryService) {\r\n super(cfService);\r\n }\r\n}\r\n","<div class=\"mobileTable\">\r\n <div\r\n class=\"mobileTableRow\"\r\n *ngFor=\"let row of smartTable.tableRows\"\r\n [ngClass]=\"getRowClasses(element)\"\r\n [ngStyle]=\"getRowStyles(element)\"\r\n >\r\n <div\r\n class=\"mobileTableCell\"\r\n *ngFor=\"let header of smartTable.customSmartTableHeaders; let i = index\"\r\n (click)=\"handleOnRowClick(row)\"\r\n (dblclick)=\"handleOnRowDoubleClick($event, row)\"\r\n >\r\n <div class=\"mobileTableCellHeader\">\r\n {{ header.label }}\r\n </div>\r\n\r\n <mat-checkbox\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select'\r\n \"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"\r\n $event\r\n ? setSelection(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\r\n : row\r\n )\r\n : null\r\n \"\r\n [disabled]=\"isDisabled(element)\"\r\n [checked]=\"\r\n smartTable.selection!.isSelected(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\r\n : row\r\n )\r\n \"\r\n [aria-label]=\"\r\n checkboxLabel(\r\n smartTable.selectionProperty\r\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\r\n : row\r\n )\r\n \"\r\n >\r\n </mat-checkbox>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\r\n {{\r\n getValue(row, header.propertyName)\r\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\r\n {{\r\n getValue(row, header.propertyName)\r\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\r\n {{\r\n getValue(row, header.propertyName)\r\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\r\n <mat-checkbox\r\n [disabled]=\"true\"\r\n [checked]=\"getValue(row, header.propertyName)\"\r\n ></mat-checkbox>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\r\n [smartTooltip]=\"getToolTip(row, i)\"\r\n [icon]=\"getIcon(getValue(row, header.propertyName), i)!\"\r\n [color]=\"getColor(getValue(row, header.propertyName), i)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isImageResource(element, header.propertyName)\">\r\n <smart-icon\r\n [icon]=\"getImageResourceIcon(element, header.propertyName)\"\r\n [color]=\"getImageResourceColor(element, header.propertyName)\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\r\n <div *ngIf=\"showButton(button, row)\" [ngSwitch]=\"button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, button, row)\"\r\n *ngSwitchCase=\"smartTableButtonType.ICON\"\r\n mat-icon-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, row)\"\r\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\r\n mat-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label }}\r\n </button>\r\n <button\r\n (click)=\"customButtonClicked($event, button, row)\"\r\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\r\n mat-raised-button\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label }}\r\n </button>\r\n <div *ngSwitchCase=\"smartTableButtonType.MENU\">\r\n <button\r\n *ngIf=\"showMenuButton(row, button)\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, button, row, undefined, true)\"\r\n color=\"{{ button.color }}\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\r\n {{ button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"button.menuItemButtons\">\r\n <button\r\n *ngFor=\"let btn of button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, btn, row, undefined, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"btn.icon\" [icon]=\"btn.icon\"></smart-icon>\r\n {{ btn.label }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\r\n <button\r\n *ngFor=\"let btn of getValue(row, button.menuItemButtonsPropertyName)\"\r\n (click)=\"customButtonClicked($event, button, row, btn, true)\"\r\n [disabled]=\"btn.disabled\"\r\n mat-menu-item\r\n >\r\n {{ button.translator!(btn) }}\r\n </button>\r\n </div>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\r\n <smart-icon\r\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\r\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\r\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\r\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\r\n >\r\n </smart-icon>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].translator !== undefined\r\n \"\r\n >\r\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(row, header.propertyName)) }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n !smartTable.customSmartTableHeaders ||\r\n (smartTable.customSmartTableHeaders &&\r\n !smartTable.customSmartTableHeaders[i].properties &&\r\n !smartTable.customSmartTableHeaders[i].icon &&\r\n !smartTable.customSmartTableHeaders[i].buttons &&\r\n !smartTable.customSmartTableHeaders[i].translator &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon\r\n *ngIf=\"header.propertyName === 'icon'\"\r\n [icon]=\"getValue(row, header.propertyName)!\"\r\n >\r\n </smart-icon>\r\n <img\r\n *ngIf=\"header.propertyName === 'img'\"\r\n [src]=\"getValue(row, header.propertyName)\"\r\n alt=\"\"\r\n class=\"smarttableImg\"\r\n />\r\n <div\r\n *ngIf=\"\r\n header.propertyName !== 'icon' &&\r\n header.propertyName !== 'img' &&\r\n header.propertyName !== 'option' &&\r\n header.propertyName !== 'button'\r\n \"\r\n [innerHtml]=\"getValue(row, header.propertyName)\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartTable, SmartTableHeader } from './smarttable.model';\r\nimport { MaterialTableComponent } from './tables/material-table/material-table.component';\r\nimport { MobileTableComponent } from './tables/mobile-table/mobile-table.component';\r\nimport { Table } from './tables/table';\r\nimport { ComponentFactoryService } from '../component-factory-service/projects';\r\n\r\n@Component({\r\n selector: 'smarttable',\r\n templateUrl: './smarttable.component.html',\r\n styleUrls: ['./smarttable.component.css'],\r\n})\r\nexport class SmarttableComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n public _destroy$: Subject<void> = new Subject();\r\n\r\n private isMobile?: boolean;\r\n @Input() maxWidthForMobile: number = 500;\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: any) {\r\n this.checkIfMobile();\r\n }\r\n public sortEvent: Subject<SmartTableHeader> = new Subject();\r\n public onSelectionChanged: Subject<void> = new Subject();\r\n public waitOnAsyncExpand: Subject<any> = new Subject();\r\n private _element?: any;\r\n get element(): any | undefined {\r\n return this._element;\r\n }\r\n set element(lmnt: any | undefined) {\r\n this._element = lmnt;\r\n this.componentRefTable!.instance.element = this.element;\r\n }\r\n\r\n @ViewChild('table', { read: ViewContainerRef }) vcRefTable?: ViewContainerRef;\r\n componentRefTable?: ComponentRef<Table>;\r\n @Input() smartTable!: SmartTable<any>;\r\n\r\n constructor(private cfService: ComponentFactoryService) {}\r\n ngOnInit(): void {\r\n let maxWidthForMobile = (window as any).maxWidthForMobile;\r\n\r\n if (maxWidthForMobile) {\r\n this.maxWidthForMobile = maxWidthForMobile;\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this.checkIfMobile();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.smartTable) {\r\n this.smartTable = changes['smartTable'].currentValue;\r\n this.componentRefTable?.instance.updateSmartTable(this.smartTable);\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n updateSmartTable(smartTable: SmartTable<any>): void {\r\n this.smartTable = smartTable;\r\n this.componentRefTable?.instance.updateSmartTable(this.smartTable);\r\n }\r\n\r\n public checkIfMobile(): void {\r\n const innerWidth = window.innerWidth;\r\n if (innerWidth < this.maxWidthForMobile && !this.isMobile) {\r\n this.isMobile = true;\r\n this.constructTable();\r\n } else if (\r\n (innerWidth > this.maxWidthForMobile && this.isMobile) ||\r\n (innerWidth > this.maxWidthForMobile && this.isMobile === undefined)\r\n ) {\r\n this.isMobile = false;\r\n this.constructTable();\r\n }\r\n }\r\n\r\n private constructTable(): void {\r\n this.vcRefTable?.clear();\r\n\r\n if (this.isMobile) {\r\n this.componentRefTable = this.cfService.createComponent(\r\n this.vcRefTable!,\r\n MobileTableComponent,\r\n new Map<string, any>([['smartTable', this.smartTable]])\r\n );\r\n } else {\r\n this.componentRefTable = this.cfService.createComponent(\r\n this.vcRefTable!,\r\n MaterialTableComponent,\r\n new Map<string, any>([['smartTable', this.smartTable]])\r\n );\r\n }\r\n\r\n let table = this.componentRefTable!.instance;\r\n table.onSelectionChanged.pipe(takeUntil(table._destroy$)).subscribe(() => {\r\n this.onSelectionChanged.next();\r\n });\r\n table.sortEvent.pipe(takeUntil(table._destroy$)).subscribe((header: SmartTableHeader) => {\r\n this.sortEvent.next(header);\r\n });\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n public toggleAllRows() {\r\n this.componentRefTable?.instance.toggleAllRows();\r\n }\r\n}\r\n","<ng-template #table></ng-template>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Inject,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SmartDialogData } from './smartdialog.model';\r\nimport { SmartformComponent } from '../smart-form/smartform.component';\r\n\r\n@Component({\r\n selector: 'smartdialog',\r\n templateUrl: './smartdialog.component.html',\r\n styleUrls: ['./smartdialog.component.css'],\r\n})\r\nexport class SmartDialog implements AfterViewInit {\r\n @ViewChild(SmartformComponent) smartFormComponent!: SmartformComponent;\r\n\r\n @ViewChild('renderComponentHere', { read: ViewContainerRef })\r\n vcRef?: ViewContainerRef;\r\n\r\n componentRef?: ComponentRef<any>;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<SmartDialog>,\r\n @Inject(MAT_DIALOG_DATA) public data: SmartDialogData,\r\n private resolver: ComponentFactoryResolver\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n const factory = this.resolver.resolveComponentFactory(this.data.customComponent);\r\n const ref = this.vcRef!.createComponent(factory);\r\n ref.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onActionClick(): void {\r\n const controls = this.smartFormComponent.getForm().controls;\r\n\r\n for (const control in controls) {\r\n if (controls[control].valid) {\r\n const widget = this.data.form!.widgets.find((k: any) => k.key === control);\r\n if (widget) {\r\n (widget as any).value = controls[control].value;\r\n }\r\n }\r\n }\r\n\r\n if (this.data.actionCallback) {\r\n this.data.actionCallback([this.data]);\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<div\r\n class=\"dialog-container\"\r\n [ngClass]=\"data.size.fullScreen ? 'fullScreen' : ''\"\r\n [ngStyle]=\"{ width: data.size.width + 'px', height: data.size.height + 'px' }\"\r\n>\r\n <div class=\"dialog-title-container\" mat-dialog-title>\r\n <h1 class=\"dialog-title\">\r\n {{ data.content.title }}\r\n </h1>\r\n <button mat-icon-button [mat-dialog-close]=\"\">\r\n <smart-icon aria-hidden=\"false\" aria-label=\"Close\" [icon]=\"'close'\"></smart-icon>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!data.customComponent\" mat-dialog-content class=\"content\">\r\n <p>\r\n {{ data.content.description }}\r\n </p>\r\n <smartform *ngIf=\"data.form\" [smartForm]=\"data.form!\"></smartform>\r\n <smarttable *ngIf=\"data.table\" [smartTable]=\"data.table!\"></smarttable>\r\n </div>\r\n <div *ngIf=\"!data.customComponent\" class=\"action-container\" mat-dialog-actions>\r\n <button\r\n class=\"action-button\"\r\n *ngIf=\"data.cancelCallback\"\r\n mat-button\r\n (click)=\"(data.cancelCallback)\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n class=\"action-button\"\r\n *ngIf=\"data.okCallback\"\r\n mat-button\r\n (click)=\"(data.okCallback)\"\r\n cdkFocusInitial\r\n >\r\n Ok\r\n </button>\r\n <button\r\n class=\"action-button\"\r\n *ngIf=\"data.actionCallback\"\r\n mat-raised-button\r\n (click)=\"onActionClick()\"\r\n >\r\n {{ data.actionLabel }}\r\n </button>\r\n </div>\r\n <mat-dialog-content>\r\n <ng-template #renderComponentHere></ng-template>\r\n </mat-dialog-content>\r\n <div *ngIf=\"data.customComponent\"></div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SmarttableService {\r\n\r\n constructor() { }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { SmartIconService } from \"./smart-icon.service\";\r\nimport { SmartIconComponent } from \"./smart-icon/smart-icon.component\";\r\n\r\n@NgModule({\r\n declarations: [SmartIconComponent],\r\n imports: [BrowserModule, MatCommonModule, MatIconModule],\r\n exports: [SmartIconComponent],\r\n providers: [SmartIconService],\r\n})\r\nexport class SmartIconModule {}\r\n","/*\r\n * Public API Surface of smart-icon\r\n */\r\n\r\nexport * from './smart-icon.service';\r\nexport * from './smart-icon/smart-icon.component';\r\nexport * from './smart-icon.module';\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SmartTooltipDirective } from './smart-tooltip.directive';\r\nimport { SmartDatePipe, SmartDateTimePipe, SmartTimePipe } from './smarttable.date-pipe';\r\n\r\n@NgModule({\r\n declarations: [SmartTooltipDirective, SmartDateTimePipe, SmartDatePipe, SmartTimePipe],\r\n imports: [CommonModule],\r\n exports: [SmartTooltipDirective, SmartDateTimePipe, SmartDatePipe, SmartTimePipe],\r\n})\r\nexport class SharedModule {}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { SmarttableComponent } from './smarttable.component';\r\nimport { LoadingComponent } from './components/loading/loading.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MaterialTableComponent } from './tables/material-table/material-table.component';\r\nimport { MobileTableComponent } from './tables/mobile-table/mobile-table.component';\r\nimport {\r\n ComponentFactoryService,\r\n ComponentFactoryServiceModule,\r\n} from '../component-factory-service/projects';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { DefaultActionsPopupComponent } from './components/default-actions-popup/default-actions-popup.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { MatContextMenuTriggerForDirective } from './directives/mat-context-menu-trigger-for.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmarttableComponent,\r\n LoadingComponent,\r\n MaterialTableComponent,\r\n MobileTableComponent,\r\n DefaultActionsPopupComponent,\r\n MatContextMenuTriggerForDirective,\r\n ],\r\n imports: [\r\n SharedModule,\r\n BrowserModule,\r\n MatCommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatTableModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatProgressSpinnerModule,\r\n ComponentFactoryServiceModule,\r\n SmartIconModule,\r\n MatDividerModule,\r\n MatTooltipModule,\r\n CommonModule,\r\n SharedModule,\r\n ],\r\n exports: [SmarttableComponent],\r\n providers: [ComponentFactoryService],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class SmarttableModule {}\r\n","/*\r\n * Public API Surface of smarttable\r\n */\r\n\r\nexport * from './smarttable.service';\r\nexport * from './smarttable.component';\r\nexport * from './smarttable.module';\r\nexport * from './smarttable.model';\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SmartDialogData, SmartdialogService } from '../../smart-dialog/projects';\r\nimport { ViewApiError } from '../api';\r\nimport { SmartViewContextApiError } from '../smart-view-context.model';\r\nimport {\r\n SmartViewContextErrorDialogButtonLabel,\r\n SmartViewContextErrorDialogMessage,\r\n SmartViewContextErrorDialogTitle,\r\n SmartViewContextService,\r\n} from '../smart-view-context.service';\r\nimport { SmartViewContextErrorDialogComponent } from './smart-view-context-error-dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartViewContextErrorDialogService extends SmartdialogService {\r\n viewApiError?: ViewApiError;\r\n\r\n dialogRefs: MatDialogRef<any, any>[] = [];\r\n\r\n constructor(dialog: MatDialog, router: Router, private viewContext: SmartViewContextService) {\r\n super(dialog, router);\r\n }\r\n\r\n override handleAfterClosed(result: any): void {}\r\n\r\n override openDialog(): void {\r\n const dialogData: SmartDialogData = {\r\n content: {\r\n title: '',\r\n },\r\n size: {},\r\n customComponent: SmartViewContextErrorDialogComponent,\r\n };\r\n this.dialogRefs.push(this.createDialogRef(dialogData, SmartViewContextErrorDialogComponent));\r\n }\r\n\r\n override async closeDialog(): Promise<void> {\r\n let dialogRef = this.dialogRefs.pop();\r\n dialogRef?.close();\r\n }\r\n\r\n async getSmartViewContextApiError(): Promise<SmartViewContextApiError> {\r\n if (this.viewApiError?.code) {\r\n return await this.viewContext.getSmartViewContextApiErrorByCode(this.viewApiError.code);\r\n }\r\n\r\n let dialogTitle;\r\n let buttonLabel;\r\n let message;\r\n\r\n if (this.viewContext.translateService) {\r\n dialogTitle = await this.viewContext.translateService\r\n .get(SmartViewContextErrorDialogTitle)\r\n .toPromise();\r\n buttonLabel = await this.viewContext.translateService\r\n .get(SmartViewContextErrorDialogButtonLabel)\r\n .toPromise();\r\n message = await this.viewContext.translateService\r\n .get(SmartViewContextErrorDialogMessage)\r\n .toPromise();\r\n } else {\r\n buttonLabel = 'Ok';\r\n dialogTitle = 'Hiba';\r\n message = 'An error has occured.';\r\n }\r\n\r\n return {\r\n code: this.viewApiError?.code ?? '',\r\n message: this.viewApiError?.message ?? message,\r\n buttonLabel,\r\n dialogTitle,\r\n };\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SmartViewContextApiError } from '../smart-view-context.model';\r\nimport { SmartViewContextErrorDialogService } from './smart-view-context-error-dialog.service';\r\n\r\n@Component({\r\n selector: 'lib-smart-view-context-error-dialog',\r\n templateUrl: './smart-view-context-error-dialog.component.html',\r\n styleUrls: ['./smart-view-context-error-dialog.component.css'],\r\n})\r\nexport class SmartViewContextErrorDialogComponent implements OnInit {\r\n smartViewContextApiError?: SmartViewContextApiError;\r\n\r\n constructor(private service: SmartViewContextErrorDialogService) {\r\n this.service\r\n .getSmartViewContextApiError()\r\n .then((smartViewContextApiError: SmartViewContextApiError) => {\r\n this.smartViewContextApiError = smartViewContextApiError;\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n onActionClick(): void {\r\n if (this.smartViewContextApiError?.customAction) {\r\n this.smartViewContextApiError.customAction();\r\n }\r\n this.service.closeDialog();\r\n }\r\n}\r\n","<div *ngIf=\"smartViewContextApiError\" class=\"container\">\r\n <h3 class=\"color-accent-700\">\r\n {{ smartViewContextApiError.dialogTitle }}\r\n </h3>\r\n <div class=\"content\">\r\n <p>\r\n {{ smartViewContextApiError.message }}\r\n </p>\r\n </div>\r\n <div class=\"buttonContainer\">\r\n <button mat-raised-button color=\"primary\" (click)=\"onActionClick()\">\r\n {{ smartViewContextApiError.buttonLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, Observable, throwError } from 'rxjs';\r\nimport { UiActionRequest, ViewApiError } from './api';\r\nimport { SmartViewContextErrorDialogService } from './smart-view-context-error-dialog/smart-view-context-error-dialog.service';\r\nimport { IS_ASYNC_PARAM_NAME } from './smart-view-context.service';\r\n\r\n@Injectable()\r\nexport class SmartViewContextInterceptor implements HttpInterceptor {\r\n constructor(private viewContextErrorDialog: SmartViewContextErrorDialogService) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n // parameter: async: True -> don't throw/open error (dialog)\r\n if (request.body) {\r\n try {\r\n let body: UiActionRequest = request.body as UiActionRequest;\r\n if (body.params[IS_ASYNC_PARAM_NAME]) {\r\n return next.handle(request);\r\n }\r\n } catch (error) {}\r\n }\r\n\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (\r\n error.status === 409 &&\r\n ((error.error as ViewApiError).code || (error.error as ViewApiError).message)\r\n ) {\r\n this.openErrorDialog(error.error);\r\n }\r\n\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n openErrorDialog(viewApiError: ViewApiError): void {\r\n this.viewContextErrorDialog.viewApiError = viewApiError;\r\n this.viewContextErrorDialog.openDialog();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SmartViewContextService } from '../smart-view-context.service';\r\nimport { SmartNavigationService } from '../../smart-navigation/projects';\r\n\r\n@Component({\r\n selector: 'app-redirect',\r\n template: '<div>Smart redirect</div>',\r\n})\r\nexport class SmartViewRedirect {\r\n constructor(\r\n private service: SmartViewContextService,\r\n private navigation: SmartNavigationService,\r\n private route: ActivatedRoute\r\n ) {\r\n this.navigation.route = this.route;\r\n this.navigation.subscribeToUrlChange((url: string) => {\r\n let channel = this.route.snapshot.paramMap.get(SmartLinkChannelVariableInPath);\r\n let uuid = this.route.snapshot.paramMap.get(SmartLinkUuidVariableInPath);\r\n\r\n if (!channel || !uuid) {\r\n throw new Error('channel or uuid is not reachable from the url!');\r\n }\r\n this.service.showPublishedView(channel, uuid);\r\n });\r\n }\r\n}\r\n\r\nexport const SmartLinkChannelVariableInPath: string = 'channel';\r\nexport const SmartLinkUuidVariableInPath: string = 'uuid';\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartSubject } from '../../../../smart-subject/projects';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction, UiActionRequest } from '../../../api';\r\nimport { UiActionInputDialogComponent } from './ui-action-input-dialog.component';\r\nimport { SmartdialogService } from '../../../../smart-dialog/smartdialog.service';\r\nimport { SmartDialogData } from '../../../../smart-dialog/smartdialog.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UiActionInputDialogService extends SmartdialogService {\r\n _destroy$: Subject<void> = new Subject();\r\n\r\n inputTypeName!: 'inputDialog' | 'input2Dialog';\r\n action!: UiAction;\r\n nodeName?: string;\r\n\r\n onAction: Subject<EditFolderAction> = new SmartSubject(this._destroy$);\r\n params?: any;\r\n\r\n constructor(dialog: MatDialog, router: Router) {\r\n super(dialog, router);\r\n }\r\n\r\n setDataAndOpenDialog(action: UiAction, nodeName?: string): void {\r\n this.action = action;\r\n this.nodeName = nodeName;\r\n this.openDialog();\r\n }\r\n\r\n override openDialog(): void {\r\n this.params = undefined;\r\n this.onAction = new SmartSubject(this._destroy$);\r\n const dialogData: SmartDialogData = {\r\n content: {\r\n title: '',\r\n },\r\n size: {},\r\n customComponent: UiActionInputDialogComponent,\r\n };\r\n this.createDialog(dialogData, UiActionInputDialogComponent);\r\n }\r\n\r\n async onSave(params: any): Promise<void> {\r\n this.params = params;\r\n this.onAction.complete();\r\n this.closeDialog();\r\n this.onAction = new SmartSubject(this._destroy$);\r\n }\r\n\r\n cancel(): void {\r\n this.onAction.complete();\r\n this.closeDialog();\r\n this.onAction = new SmartSubject(this._destroy$);\r\n }\r\n}\r\n\r\nexport interface EditFolderAction {\r\n nodeId: string;\r\n uiActionRequest: UiActionRequest;\r\n}\r\n","import { Component, Inject, OnDestroy, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\n\r\nimport { UiActionDescriptor, UiActionInputType } from '../../../api';\r\n\r\nimport { UiActionDescriptorService } from '../../ui-action.descriptor.service';\r\n\r\nimport { UiActionInputDialogService } from './ui-action-input-dialog.service';\r\n//import { SmartformComponent } from '../../../../smart-form/smartform.component';\r\nimport { SmartForm, SmartValidatorName } from '../../../../smart-form/smartform.model';\r\nimport { SmartFormWidgetType } from '../../../../smart-form/api/model/smartFormWidgetType';\r\nimport { SmartFormWidget } from '../../../../smart-form/smartform.form-model';\r\nimport { SmartFormWidgetDirection } from '../../../../smart-form/api/model/smartFormWidgetDirection';\r\n\r\n@Component({\r\n selector: 'smart-ui-action-input-dialog',\r\n templateUrl: './ui-action-input-dialog.component.html',\r\n styleUrls: ['./ui-action-input-dialog.component.css'],\r\n})\r\nexport class UiActionInputDialogComponent implements OnDestroy {\r\n @ViewChild('form') folderFormChild!: any;\r\n code!: string;\r\n folderForm!: SmartForm;\r\n\r\n dialogType!: 'dialog' | 'inputDialog' | 'input2Dialog';\r\n\r\n descriptor?: UiActionDescriptor;\r\n\r\n constructor(\r\n @Inject('textFieldDialogService') private service: UiActionInputDialogService,\r\n private manager: UiActionDescriptorService\r\n ) {\r\n this.code = this.service.action.code!;\r\n this.setUp();\r\n }\r\n ngOnDestroy(): void {\r\n this.service._destroy$.next();\r\n this.cancel();\r\n }\r\n\r\n async setUp(): Promise<void> {\r\n this.descriptor = await this.manager.getActionDescriptor(this.service.action);\r\n\r\n if (this.descriptor[this.service.inputTypeName]) {\r\n this.dialogType = this.service.inputTypeName;\r\n } else {\r\n this.dialogType = this.descriptor.inputDialog ? 'inputDialog' : 'dialog';\r\n }\r\n\r\n this.constructForm();\r\n }\r\n\r\n getTitle(): string {\r\n return this.descriptor![this.dialogType]!.title;\r\n }\r\n getText(): string {\r\n return this.descriptor![this.dialogType]!.text ?? '';\r\n }\r\n getActionButtonLabel(): string {\r\n return this.descriptor![this.dialogType]!.actionButton.caption;\r\n }\r\n getActionButtonColor(): string {\r\n return this.descriptor![this.dialogType]!.actionButton.color;\r\n }\r\n getCancelButtonLabel(): string {\r\n return this.descriptor![this.dialogType]!.cancelButton.caption;\r\n }\r\n getCancelButtonColor(): string {\r\n return this.descriptor![this.dialogType]!.cancelButton.color;\r\n }\r\n\r\n constructForm(): void {\r\n let model: any = {};\r\n let inputName: 'input' | 'input2';\r\n\r\n if (this.service.inputTypeName === 'inputDialog') {\r\n inputName = 'input';\r\n } else {\r\n inputName = 'input2';\r\n }\r\n\r\n if (this.service.nodeName) {\r\n model[inputName] = this.service.nodeName;\r\n } else {\r\n model[inputName] = '';\r\n }\r\n let type: SmartFormWidgetType;\r\n let inputType: 'inputType' | 'input2Type' = `${inputName}Type`;\r\n\r\n if (this.service.action[inputType] === UiActionInputType.TEXTFIELD) {\r\n type = SmartFormWidgetType.TEXT_FIELD;\r\n } else {\r\n type = SmartFormWidgetType.TEXT_BOX;\r\n }\r\n\r\n let widgets: SmartFormWidget<any>[] = [\r\n {\r\n key: inputName,\r\n label: '',\r\n type,\r\n value: '',\r\n validators: [\r\n {\r\n validator: Validators.required,\r\n name: SmartValidatorName.required,\r\n errorMessage: 'Ez a mező kötelező',\r\n },\r\n ],\r\n placeholder: this.descriptor![this.dialogType]!.placeholder ?? '',\r\n showLabel: true,\r\n },\r\n ];\r\n\r\n if (\r\n widgets[0].type === SmartFormWidgetType.TEXT_FIELD &&\r\n this.descriptor![this.dialogType]?.mask\r\n ) {\r\n widgets[0].mask = this.descriptor![this.dialogType]?.mask;\r\n }\r\n\r\n this.folderForm = {\r\n direction: SmartFormWidgetDirection.COL,\r\n componentModel: { data: model },\r\n widgets,\r\n };\r\n }\r\n\r\n save(): void {\r\n let form = this.folderFormChild.submitForm();\r\n if ((form as SmartForm).invalidFields) {\r\n throw new Error('The form is invalid!');\r\n }\r\n this.service.onSave((form as SmartForm).componentModel?.data);\r\n }\r\n\r\n cancel(): void {\r\n this.service.cancel();\r\n }\r\n}\r\n","<div class=\"folderNameDialogContainer\">\r\n\t<div class=\"headerContainer\">\r\n\t\t<h3 class=\"color-accent-700\">\r\n\t\t\t{{ getTitle() }}\r\n\t\t</h3>\r\n\t\t<button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n\t\t\t<smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n\t\t</button>\r\n\t</div>\r\n\t<p>\r\n\t\t{{ getText() }}\r\n\t</p>\r\n\t<smartform #form [smartForm]=\"folderForm\"></smartform>\r\n\t<div class=\"folderNameDialogButtonsContainer\">\r\n\t\t<button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n\t\t\t{{ getCancelButtonLabel() }}\r\n\t\t</button>\r\n\t\t<button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"save()\">\r\n\t\t\t{{ getActionButtonLabel() }}\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartSubject } from '../../../../smart-subject/projects';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction } from '../../../api';\r\nimport { UiActionConfirmDialogComponent } from './ui-action-confirm-dialog.component';\r\nimport { SmartdialogService } from '../../../../smart-dialog/smartdialog.service';\r\nimport { SmartDialogData } from '../../../../smart-dialog/smartdialog.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UiActionConfirmDialogService extends SmartdialogService {\r\n _destroy$: Subject<void> = new Subject();\r\n\r\n action!: UiAction;\r\n\r\n onAction: Subject<void> = new SmartSubject(this._destroy$);\r\n shouldDoAction: boolean = false;\r\n\r\n constructor(dialog: MatDialog, router: Router) {\r\n super(dialog, router);\r\n }\r\n\r\n override openDialog(): void {\r\n this.shouldDoAction = false;\r\n this.onAction = new SmartSubject(this._destroy$);\r\n const dialogData: SmartDialogData = {\r\n content: {\r\n title: '',\r\n },\r\n size: {},\r\n customComponent: UiActionConfirmDialogComponent,\r\n };\r\n this.createDialog(dialogData, UiActionConfirmDialogComponent);\r\n }\r\n\r\n doAction(): void {\r\n this.shouldDoAction = true;\r\n this.onAction.complete();\r\n this.closeDialog();\r\n this.onAction = new SmartSubject(this._destroy$);\r\n }\r\n cancel(): void {\r\n this.onAction.complete();\r\n this.closeDialog();\r\n this.onAction = new SmartSubject(this._destroy$);\r\n }\r\n}\r\n","import { Component, Inject, OnDestroy } from '@angular/core';\r\nimport { UiActionDescriptor } from '../../../api';\r\nimport { UiActionDescriptorService } from '../../ui-action.descriptor.service';\r\nimport { UiActionConfirmDialogService } from './ui-action-confirm-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-ui-action-confirm-dialog',\r\n templateUrl: './ui-action-confirm-dialog.component.html',\r\n styleUrls: ['./ui-action-confirm-dialog.component.css'],\r\n})\r\nexport class UiActionConfirmDialogComponent implements OnDestroy {\r\n code!: string;\r\n dialogType!: 'dialog' | 'confirmDialog' | 'inputDialog';\r\n\r\n descriptor?: UiActionDescriptor;\r\n\r\n constructor(\r\n @Inject('confirmDialogService') private service: UiActionConfirmDialogService,\r\n private manager: UiActionDescriptorService\r\n ) {\r\n this.code = this.service.action.code!;\r\n this.setUp();\r\n }\r\n\r\n async setUp(): Promise<void> {\r\n this.descriptor = await this.manager.getActionDescriptor(this.service.action);\r\n\r\n this.dialogType = this.descriptor.confirmDialog ? 'confirmDialog' : 'dialog';\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.service._destroy$.next();\r\n this.cancel();\r\n }\r\n\r\n getTitle(): string {\r\n return this.descriptor![this.dialogType]!.title;\r\n }\r\n getText(): string {\r\n return this.descriptor![this.dialogType]!.text ?? '';\r\n }\r\n getActionButtonLabel(): string {\r\n return this.descriptor![this.dialogType]!.actionButton.caption;\r\n }\r\n getActionButtonColor(): string {\r\n return this.descriptor![this.dialogType]!.actionButton.color;\r\n }\r\n getCancelButtonLabel(): string {\r\n return this.descriptor![this.dialogType]!.cancelButton.caption;\r\n }\r\n getCancelButtonColor(): string {\r\n return this.descriptor![this.dialogType]!.cancelButton.color;\r\n }\r\n\r\n doAction(): void {\r\n this.service.doAction();\r\n }\r\n\r\n cancel(): void {\r\n this.service.cancel();\r\n }\r\n}\r\n","<div class=\"folderNameDialogContainer\">\r\n\t<div class=\"headerContainer\">\r\n\t\t<h3 class=\"color-accent-700\">\r\n\t\t\t{{ getTitle() }}\r\n\t\t</h3>\r\n\t\t<button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n\t\t\t<smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n\t\t</button>\r\n\t</div>\r\n\t<p>\r\n\t\t{{ getText() }}\r\n\t</p>\r\n\t<div class=\"folderNameDialogButtonsContainer\">\r\n\t\t<button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n\t\t\t{{ getCancelButtonLabel() }}\r\n\t\t</button>\r\n\t\t<button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"doAction()\">\r\n\t\t\t{{ getActionButtonLabel() }}\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { SmartSubject } from '../../../../smart-subject/projects';\r\nimport { UiAction } from '../../../api';\r\nimport { UiActionFileUploadDialogComponent } from './ui-action-file-upload-dialog.component';\r\nimport { SmartdialogService } from '../../../../smart-dialog/smartdialog.service';\r\nimport { SmartDialogData } from '../../../../smart-dialog/smartdialog.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UiActionFileUploadDialogService extends SmartdialogService {\r\n _destroy$: Subject<void> = new Subject();\r\n\r\n inputTypeName!: 'inputDialog' | 'input2Dialog';\r\n action!: UiAction;\r\n nodeName?: string;\r\n\r\n onAction: Subject<void> = new SmartSubject(this._destroy$);\r\n files?: any;\r\n\r\n isMultiple: boolean = false;\r\n\r\n constructor(dialog: MatDialog, router: Router) {\r\n super(dialog, router);\r\n }\r\n\r\n setDataAndOpenDialog(action: UiAction, nodeName?: string): void {\r\n this.action = action;\r\n this.nodeName = nodeName;\r\n this.openDialog();\r\n }\r\n\r\n override openDialog(): void {\r\n this.files = undefined;\r\n this.onAction = new SmartSubject(this._destroy$);\r\n const dialogData: SmartDialogData = {\r\n content: {\r\n title: '',\r\n },\r\n size: {},\r\n customComponent: UiActionFileUploadDialogComponent,\r\n };\r\n this.createDialog(dialogData, UiActionFileUploadDialogComponent);\r\n }\r\n\r\n async onSave(files: any[]): Promise<void> {\r\n this.files = files;\r\n this.onAction.complete();\r\n this.closeDialog();\r\n this.onAction = new SmartSubject(this._destroy$);\r\n }\r\n\r\n cancel(): void {\r\n this.onAction.complete();\r\n this.closeDialog();\r\n this.onAction = new SmartSubject(this._destroy$);\r\n }\r\n}\r\n","import { Component, Inject, OnDestroy } from '@angular/core';\r\nimport { UiActionDescriptor } from '../../../api';\r\nimport { UiActionDescriptorService } from '../../ui-action.descriptor.service';\r\nimport { UiActionFileUploadDialogService } from './ui-action-file-upload-dialog.service';\r\nimport { SmartFileUploaderI18n } from '../../../../smart-form/smartfileuploader/smartfileuploader.model';\r\n\r\n@Component({\r\n selector: 'lib-ui-action-file-upload-dialog',\r\n templateUrl: './ui-action-file-upload-dialog.component.html',\r\n styleUrls: ['./ui-action-file-upload-dialog.component.css'],\r\n})\r\nexport class UiActionFileUploadDialogComponent implements OnDestroy {\r\n code!: string;\r\n\r\n dialogType!: 'dialog' | 'inputDialog' | 'input2Dialog';\r\n\r\n descriptor?: UiActionDescriptor;\r\n\r\n i18n?: SmartFileUploaderI18n;\r\n maxSizeMb: number = 25;\r\n fileFormats?: string[];\r\n isMultiple?: boolean;\r\n\r\n constructor(\r\n @Inject('fileUploadDialogService') private service: UiActionFileUploadDialogService,\r\n private manager: UiActionDescriptorService\r\n ) {\r\n this.code = this.service.action.code!;\r\n this.setUp();\r\n }\r\n ngOnDestroy(): void {\r\n this.service._destroy$.next();\r\n this.cancel();\r\n }\r\n\r\n async setUp(): Promise<void> {\r\n this.descriptor = await this.manager.getActionDescriptor(this.service.action);\r\n\r\n this.isMultiple = this.service.isMultiple;\r\n\r\n this.i18n = {\r\n addFile: this.descriptor.upload?.title ?? 'dokumentum hozzáadása',\r\n browseOrDrag: this.descriptor.upload?.description ?? 'tallózás vagy behúzás',\r\n formats: this.descriptor.upload?.formats ?? '',\r\n maxSize: this.descriptor.upload?.maxSize ?? '',\r\n upload: this.descriptor.upload?.uploadButtonTitle,\r\n };\r\n\r\n // TODO set max size and file formats by UiAction.params\r\n\r\n if (this.descriptor[this.service.inputTypeName]) {\r\n this.dialogType = this.service.inputTypeName;\r\n } else {\r\n this.dialogType = this.descriptor.inputDialog ? 'inputDialog' : 'dialog';\r\n }\r\n }\r\n\r\n getTitle(): string {\r\n return this.descriptor![this.dialogType]!.title;\r\n }\r\n getText(): string {\r\n return this.descriptor![this.dialogType]!.text ?? '';\r\n }\r\n getActionButtonLabel(): string {\r\n return this.descriptor![this.dialogType]!.actionButton.caption;\r\n }\r\n getActionButtonColor(): string {\r\n return this.descriptor![this.dialogType]!.actionButton.color;\r\n }\r\n getCancelButtonLabel(): string {\r\n return this.descriptor![this.dialogType]!.cancelButton.caption;\r\n }\r\n getCancelButtonColor(): string {\r\n return this.descriptor![this.dialogType]!.cancelButton.color;\r\n }\r\n\r\n upload(files: any[]): void {\r\n this.service.onSave(files);\r\n }\r\n\r\n cancel(): void {\r\n this.service.cancel();\r\n }\r\n}\r\n","<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n <button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n <smartfileuploader\r\n [i18n]=\"i18n\"\r\n [fileFormats]=\"fileFormats\"\r\n [maxSizeMb]=\"maxSizeMb\"\r\n [uploadCallback]=\"upload.bind(this)\"\r\n [isMultiple]=\"isMultiple\"\r\n ></smartfileuploader>\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n {{ getCancelButtonLabel() }}\r\n </button>\r\n <!-- <button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"upload()\">\r\n {{ getActionButtonLabel() }}\r\n </button> -->\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { SmartFormWidgetDirection, SmartFormWidgetType, SmartWidgetDefinition } from '../api';\r\nimport { SmartFileUploader, SmartFormWidget } from '../smartform.form-model';\r\nimport { Value } from '../smartform.model';\r\nimport { QuillModules } from 'ngx-quill';\r\n\r\nexport interface SmartformLayoutCreateWidgetConfig {\r\n layoutDefinitions?: SmartWidgetDefinition[];\r\n layoutDefinition?: SmartWidgetDefinition;\r\n uploadCallback?: (key: string, files: any[]) => void;\r\n buttonCallback?: ((uiAction: any) => void) | ((key: string) => void);\r\n uiActions?: any[];\r\n uiActionDescriptors?: (uiAction: any) => any;\r\n model?: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartformLayoutDefinitionService {\r\n private static readonly DEFAULT_QUILL_MODULES: QuillModules = {\r\n toolbar: {\r\n container: [\r\n ['bold', 'italic', 'underline', 'strike', 'link'],\r\n ['code-block'],\r\n [{ header: 1 }, { header: 2 }],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n ['clean'],\r\n ],\r\n },\r\n };\r\n constructor() {}\r\n\r\n public render(config: SmartformLayoutCreateWidgetConfig): SmartFormWidget<any>[] {\r\n let widgets: SmartFormWidget<any>[] = [];\r\n\r\n config.layoutDefinitions?.forEach((layoutDefinition: SmartWidgetDefinition) => {\r\n let widget = this.createWidget({\r\n ...config,\r\n layoutDefinition,\r\n });\r\n if (widget) {\r\n widgets.push(widget);\r\n }\r\n });\r\n\r\n return widgets;\r\n }\r\n\r\n private createWidget(\r\n config: SmartformLayoutCreateWidgetConfig\r\n ): SmartFormWidget<any> | undefined {\r\n switch (config.layoutDefinition?.type) {\r\n case SmartFormWidgetType.CONTAINER:\r\n return this.createContainer(config, config.layoutDefinition);\r\n case SmartFormWidgetType.LABEL:\r\n return this.createLabel(config.layoutDefinition);\r\n case SmartFormWidgetType.TEXT_FIELD:\r\n return this.createTextField(config.layoutDefinition);\r\n case SmartFormWidgetType.TEXT_FIELD_CHIPS:\r\n return this.createTextFieldChips(config.layoutDefinition);\r\n case SmartFormWidgetType.TEXT_FIELD_NUMBER:\r\n return this.createTextFieldNumber(config.layoutDefinition);\r\n case SmartFormWidgetType.TEXT_FIELD:\r\n return this.createTextField(config.layoutDefinition);\r\n case SmartFormWidgetType.TEXT_BOX:\r\n return this.createTextBox(config.layoutDefinition);\r\n case SmartFormWidgetType.TOGGLE:\r\n return this.createToggle(config.layoutDefinition);\r\n case SmartFormWidgetType.RADIO_BUTTON:\r\n return this.createRadioButton(config.layoutDefinition);\r\n case SmartFormWidgetType.CHECK_BOX:\r\n return this.createCheckBox(config.layoutDefinition);\r\n case SmartFormWidgetType.SELECT:\r\n return this.createSelect(config.layoutDefinition, config.model);\r\n case SmartFormWidgetType.SELECT_MULTIPLE:\r\n return this.createSelectMultiple(config.layoutDefinition);\r\n case SmartFormWidgetType.DATE_PICKER:\r\n return this.createDatePicker(config.layoutDefinition);\r\n case SmartFormWidgetType.DATE_TIME_PICKER:\r\n return this.createDateTimePicker(config.layoutDefinition);\r\n case SmartFormWidgetType.IMAGE:\r\n return this.createImage(config.layoutDefinition);\r\n case SmartFormWidgetType.SVG:\r\n return this.createSvg(config.layoutDefinition);\r\n case SmartFormWidgetType.BUTTON:\r\n return this.createButton(config);\r\n case SmartFormWidgetType.DIVIDER:\r\n return this.createDivider(config.layoutDefinition);\r\n case SmartFormWidgetType.RICH_TEXT:\r\n return this.createRichText(config.layoutDefinition);\r\n case SmartFormWidgetType.FILE_UPLOADER:\r\n if (!(config.layoutDefinition as SmartFileUploader).uploadCallback) {\r\n throw Error('No upload function injected.');\r\n }\r\n return this.createFileUploader(config.layoutDefinition as SmartFileUploader);\r\n case SmartFormWidgetType.MATRIX:\r\n return this.createMatrix(config.layoutDefinition);\r\n case SmartFormWidgetType.SORTABLE:\r\n return this.createSortable(config.layoutDefinition);\r\n case SmartFormWidgetType.MONTH_PICKER:\r\n return this.createMonthPicker(config.layoutDefinition);\r\n case SmartFormWidgetType.YOUTUBE_PLAYER:\r\n return this.createYoutubePlayer(config.layoutDefinition);\r\n }\r\n return;\r\n }\r\n\r\n private createMonthPicker(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n type: SmartFormWidgetType.MONTH_PICKER,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n };\r\n return widget;\r\n }\r\n\r\n private createMatrix(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.MATRIX,\r\n label: layoutDefinition.label,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n showLabel: layoutDefinition.showLabel,\r\n isMultiple: layoutDefinition.matrix?.multiSelect,\r\n value: layoutDefinition.matrix,\r\n };\r\n return widget;\r\n }\r\n\r\n private createSortable(layoutDefinition: SmartWidgetDefinition) {\r\n let widget: SmartFormWidget<any> = {\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n type: SmartFormWidgetType.SORTABLE,\r\n };\r\n return widget;\r\n }\r\n\r\n private createLabel(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.LABEL,\r\n label: layoutDefinition.label,\r\n widgetDescription: layoutDefinition.widgetDescription,\r\n cssClass: layoutDefinition.cssClass,\r\n };\r\n return widget;\r\n }\r\n\r\n private createContainer(\r\n config: SmartformLayoutCreateWidgetConfig,\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let valueList: SmartFormWidget<any>[] = [];\r\n\r\n layoutDefinition.childrenComponents?.forEach((layoutDefinition: SmartWidgetDefinition) => {\r\n let widget = this.createWidget({\r\n ...config,\r\n layoutDefinition,\r\n });\r\n if (widget) {\r\n valueList.push(widget);\r\n }\r\n });\r\n\r\n let widget: SmartFormWidget<any> = {\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n type: SmartFormWidgetType.CONTAINER,\r\n cssClass: layoutDefinition.cssClass,\r\n style: layoutDefinition.style,\r\n direction: layoutDefinition.direction ?? SmartFormWidgetDirection.COL,\r\n valueList,\r\n };\r\n\r\n return widget;\r\n }\r\n\r\n private createTextField(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_FIELD,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n placeholder: layoutDefinition.placeholder,\r\n prefix: layoutDefinition.prefix,\r\n suffix: layoutDefinition.suffix,\r\n mask: layoutDefinition.mask,\r\n icon: layoutDefinition.icon,\r\n iconColor: layoutDefinition.iconColor,\r\n iconPosition: layoutDefinition.iconPosition,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n isPassword: layoutDefinition.isPassword,\r\n selection: layoutDefinition.selection,\r\n filterErrorMessage: layoutDefinition.filterErrorMessage,\r\n hint: layoutDefinition.hint,\r\n maxLength: layoutDefinition.maxLength,\r\n showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,\r\n toolbarId: layoutDefinition.toolbarId,\r\n inputMode: layoutDefinition.inputMode,\r\n };\r\n return widget;\r\n }\r\n private createTextFieldChips(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_FIELD_CHIPS,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n placeholder: layoutDefinition.placeholder,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n valueList: [],\r\n };\r\n if (layoutDefinition.values) {\r\n widget.valueList = layoutDefinition.values.map((value: Value) => {\r\n return {\r\n key: value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: value.code,\r\n };\r\n });\r\n }\r\n return widget;\r\n }\r\n private createTextFieldNumber(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_FIELD_NUMBER,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n placeholder: layoutDefinition.placeholder,\r\n prefix: layoutDefinition.prefix,\r\n suffix: layoutDefinition.suffix,\r\n icon: layoutDefinition.icon,\r\n iconColor: layoutDefinition.iconColor,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n hint: layoutDefinition.hint,\r\n };\r\n return widget;\r\n }\r\n private createTextBox(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_BOX,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n placeholder: layoutDefinition.placeholder,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n hint: layoutDefinition.hint,\r\n maxLength: layoutDefinition.maxLength,\r\n showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,\r\n };\r\n return widget;\r\n }\r\n private createRichText(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let quillModules: QuillModules;\r\n if (layoutDefinition.properties && layoutDefinition.properties['quillModules']) {\r\n quillModules = layoutDefinition.properties['quillModules'] as QuillModules;\r\n } else {\r\n quillModules = SmartformLayoutDefinitionService.DEFAULT_QUILL_MODULES;\r\n }\r\n\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.RICH_TEXT,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n placeholder: layoutDefinition.placeholder,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n quillModules,\r\n maxLength: layoutDefinition.maxLength,\r\n showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,\r\n };\r\n return widget;\r\n }\r\n private createToggle(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TOGGLE,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n hint: layoutDefinition.hint,\r\n };\r\n return widget;\r\n }\r\n private createRadioButton(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.RADIO_BUTTON,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n valueList: [],\r\n selection: layoutDefinition.selection,\r\n hint: layoutDefinition.hint,\r\n };\r\n\r\n if (layoutDefinition.values) {\r\n widget.valueList = layoutDefinition.values.map((value: Value) => {\r\n return {\r\n key: value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: value.code,\r\n };\r\n });\r\n }\r\n return widget;\r\n }\r\n private createCheckBox(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.CHECK_BOX_2,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n valueList: [],\r\n selection: layoutDefinition.selection,\r\n hint: layoutDefinition.hint,\r\n };\r\n if (layoutDefinition.values) {\r\n widget.valueList = layoutDefinition.values.map((value: Value) => {\r\n return {\r\n key: value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: false,\r\n };\r\n });\r\n }\r\n return widget;\r\n }\r\n private createSelect(layoutDefinition: SmartWidgetDefinition, model?: any): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.SELECT,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n valueList: [],\r\n selection: layoutDefinition.selection,\r\n hint: layoutDefinition.hint,\r\n };\r\n\r\n if (layoutDefinition.values) {\r\n widget.valueList = layoutDefinition.values.map((value: Value) => {\r\n return {\r\n key: value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: value.code,\r\n };\r\n });\r\n }\r\n return widget;\r\n }\r\n private createSelectMultiple(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.SELECT_MULTIPLE,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n valueList: [],\r\n selection: layoutDefinition.selection,\r\n hint: layoutDefinition.hint,\r\n };\r\n if (layoutDefinition.values) {\r\n widget.valueList = layoutDefinition.values.map((value: Value) => {\r\n return {\r\n key: value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: value.code,\r\n };\r\n });\r\n }\r\n return widget;\r\n }\r\n private createDatePicker(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.DATE_PICKER,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n hint: layoutDefinition.hint,\r\n };\r\n return widget;\r\n }\r\n private createDateTimePicker(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.DATE_TIME_PICKER,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n hint: layoutDefinition.hint,\r\n };\r\n return widget;\r\n }\r\n private createImage(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.IMAGE,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n };\r\n return widget;\r\n }\r\n private createSvg(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.SVG,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n };\r\n return widget;\r\n }\r\n\r\n private createButton(config: SmartformLayoutCreateWidgetConfig): SmartFormWidget<any> {\r\n let uiAction: any = config.uiActions?.find(\r\n (uiAction: any) => uiAction.code === config.layoutDefinition?.key\r\n );\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.BUTTON,\r\n key: config.layoutDefinition?.key!,\r\n valueChangeMode: config.layoutDefinition?.valueChangeMode,\r\n label: config.layoutDefinition?.label!,\r\n showLabel: config.layoutDefinition?.showLabel,\r\n cssClass: config.layoutDefinition?.cssClass,\r\n cssLabelClass: config.layoutDefinition?.cssLabelClass,\r\n style: config.layoutDefinition?.style,\r\n labelStyle: config.layoutDefinition?.labelStyle,\r\n callback: config.buttonCallback!,\r\n uiAction,\r\n uiActionDescriptor: config.uiActionDescriptors!(uiAction),\r\n };\r\n return widget;\r\n }\r\n private createDivider(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.DIVIDER,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n };\r\n return widget;\r\n }\r\n private createFileUploader(layoutDefinition: SmartFileUploader): SmartFormWidget<any> {\r\n let widget: SmartFileUploader = {\r\n type: SmartFormWidgetType.FILE_UPLOADER,\r\n key: layoutDefinition.key,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n uploadCallback: layoutDefinition.uploadCallback,\r\n };\r\n return widget;\r\n }\r\n private createYoutubePlayer(layoutDefinition: SmartWidgetDefinition): SmartFormWidget<any> {\r\n const { link, startSeconds, endSeconds } = this.extractYoutubePlayerProps(layoutDefinition);\r\n return {\r\n type: SmartFormWidgetType.YOUTUBE_PLAYER,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n hint: layoutDefinition.hint,\r\n valueChangeMode: layoutDefinition.valueChangeMode,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n style: layoutDefinition.style,\r\n labelStyle: layoutDefinition.labelStyle,\r\n link,\r\n startSeconds,\r\n endSeconds,\r\n };\r\n }\r\n\r\n private extractYoutubePlayerProps(layoutDefinition: SmartWidgetDefinition): {\r\n link: string;\r\n startSeconds: number;\r\n endSeconds?: number;\r\n } {\r\n const props = layoutDefinition.properties;\r\n if (!props) {\r\n this.logMissingProperty(layoutDefinition, 'properties');\r\n return { link: '', startSeconds: 0 };\r\n }\r\n\r\n const link = (props['link'] ? (props['link'] as String) : '') as string;\r\n if (!link || link.length < 1) {\r\n this.logMissingProperty(layoutDefinition, 'link');\r\n }\r\n\r\n const startSeconds = (props['startSeconds'] ? (props['startSeconds'] as Number) : 0) as number;\r\n let endSeconds: number | undefined = undefined;\r\n if (props['endSeconds']) {\r\n endSeconds = props['endSeconds'] as Number as number;\r\n }\r\n\r\n return { link, startSeconds, endSeconds };\r\n }\r\n\r\n private logMissingProperty(layoutDefinition: SmartWidgetDefinition, prop: string): void {\r\n console.error(\r\n `Property <${prop}> missing from layout definition: ${JSON.stringify(layoutDefinition)}`\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of smartform\r\n */\r\n\r\nexport * from './smartform.component';\r\nexport * from './widgets/smartformwidget/smartformwidget.component';\r\nexport * from './smartfileuploader/smartfileuploader.component';\r\nexport * from './smartfileuploader/smartfileuploader.model';\r\nexport * from './smartform.model';\r\nexport * from './smartform.form-model';\r\nexport * from './services/smartform.layout-definition.service';\r\nexport * from './api/model/models';\r\nexport * from './highlightMacthingString-pipe';\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {\r\n DateAdapter,\r\n MAT_DATE_FORMATS,\r\n MAT_DATE_LOCALE,\r\n MatCommonModule,\r\n} from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MessageDialogComponent } from './message-dialog/message-dialog.component';\r\nimport { DIALOG_DISABLE_CLOSE, SmartViewContextService } from './smart-view-context.service';\r\nimport { SmartViewContextErrorDialogComponent } from './smart-view-context-error-dialog/smart-view-context-error-dialog.component';\r\nimport { SmartViewContextInterceptor } from './smart-view-context.interceptor';\r\nimport { SmartViewRedirect } from './smart-view-redirect/smart-view-redirect';\r\nimport { UiActionToolbarComponent } from './smart-ui-action/ui-action-toolbar.component';\r\nimport { UiActionInputDialogComponent } from './smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component';\r\nimport { UiActionConfirmDialogComponent } from './smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { UiActionFileUploadDialogComponent } from './smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport {\r\n HighlightPipe,\r\n SmartWidgetSettings,\r\n SmartfileuploaderComponent,\r\n SmartformComponent,\r\n SmartformwidgetComponent,\r\n} from '../smart-form/projects';\r\nimport { InvalidFieldsSnackBarComponent } from './invalid-fields-snack-bar/invalid-fields-snack-bar.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { UiActionConfirmDialogService } from './smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service';\r\nimport { UiActionInputDialogService } from './smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service';\r\nimport { UiActionFileUploadDialogService } from './smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport {\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n MAT_MOMENT_DATE_FORMATS,\r\n MatMomentDateModule,\r\n MomentDateAdapter,\r\n} from '@angular/material-moment-adapter';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { YouTubePlayerModule } from '@angular/youtube-player';\r\nimport { TrackCapsDirective } from '../smart-form/widgets/smartformwidget/trackCaps.directive';\r\nimport { LargeFileSnackBarComponent } from '../smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component';\r\nimport { SortableWidgetComponent } from '../smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component';\r\nimport { SmartMonthPickerComponent } from '../smart-form/widgets/components/smart-month-picker/smart-month-picker.component';\r\nimport { SmartFormService } from '../smart-form/services/smartform.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n MessageDialogComponent,\r\n SmartViewContextErrorDialogComponent,\r\n SmartViewRedirect,\r\n UiActionToolbarComponent,\r\n UiActionInputDialogComponent,\r\n UiActionConfirmDialogComponent,\r\n UiActionFileUploadDialogComponent,\r\n InvalidFieldsSnackBarComponent,\r\n SmartformComponent,\r\n SmartformwidgetComponent,\r\n SmartfileuploaderComponent,\r\n TrackCapsDirective,\r\n LargeFileSnackBarComponent,\r\n SortableWidgetComponent,\r\n SmartMonthPickerComponent,\r\n HighlightPipe,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n MatCommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatSnackBarModule,\r\n SmartIconModule,\r\n MatTooltipModule,\r\n SharedModule,\r\n\r\n BrowserModule,\r\n MatChipsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n MatRadioModule,\r\n MatSlideToggleModule,\r\n MatAutocompleteModule,\r\n NgxMaskModule.forRoot(),\r\n QuillModule.forRoot(),\r\n DragDropModule,\r\n YouTubePlayerModule,\r\n ],\r\n exports: [\r\n UiActionToolbarComponent,\r\n UiActionInputDialogComponent,\r\n SmartformComponent,\r\n SmartformwidgetComponent,\r\n SmartfileuploaderComponent,\r\n HighlightPipe,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n SmartViewContextService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: SmartViewContextInterceptor,\r\n multi: true,\r\n },\r\n { provide: DIALOG_DISABLE_CLOSE, useValue: true },\r\n { provide: 'confirmDialogService', useClass: UiActionConfirmDialogService },\r\n { provide: 'textFieldDialogService', useClass: UiActionInputDialogService },\r\n { provide: 'fileUploadDialogService', useClass: UiActionFileUploadDialogService },\r\n\r\n SmartFormService,\r\n { provide: MAT_DATE_LOCALE, useValue: 'hu-HU' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentDateAdapter },\r\n {\r\n provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n useValue: { useUtc: SmartWidgetSettings.useUtc },\r\n },\r\n ],\r\n})\r\nexport class SmartViewContextModule {}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { SmartDialog } from './smartdialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmarttableModule } from '../smart-table/projects';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\n\r\n@NgModule({\r\n declarations: [SmartDialog],\r\n imports: [\r\n BrowserModule,\r\n MatDialogModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n SmartViewContextModule,\r\n SmarttableModule,\r\n SmartIconModule,\r\n ],\r\n exports: [SmartDialog],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [],\r\n})\r\nexport class SmartdialogModule {}\r\n","import { SmartForm } from '../smart-form/smartform.model';\r\nimport { SmartTable } from '../smart-table/smarttable.model';\r\n\r\n/**\r\n * This interface defines the size of a dialog.\r\n *\r\n * @author Roland Fényes\r\n */\r\nexport interface SmartDialogSize {\r\n width?: number;\r\n height?: number;\r\n fullScreen?: boolean;\r\n}\r\n\r\n/**\r\n * This enum helps to define the action of a dialog.\r\n *\r\n * @author Roland Fényes\r\n */\r\nexport enum SmartActionType {\r\n ADD,\r\n CREATE,\r\n UPDATE,\r\n REMOVE,\r\n DELETE,\r\n SAVE,\r\n OK,\r\n}\r\n\r\n/**\r\n * This interface describes the content of a dialog.\r\n *\r\n * @author Roland Fényes\r\n */\r\nexport interface SmartContent {\r\n title: string;\r\n description?: string;\r\n}\r\n\r\n/**\r\n * With this interface any kind of dialogs can be easily created.\r\n *\r\n * You must close the dialog manually!\r\n *\r\n * @param size Required. You can define the desired size of the dialog\r\n * @param actionType Required. The main action type of the dialog\r\n * @param content Required. Defines the title and the description of the dialog\r\n * @param form Not required. You can present a custom and dynamic form.\r\n * @param table Not required. You can present a custom table.\r\n * @param okCallback Not required. A custom callback function.\r\n * @param closeCallback Not required. A custom callback function.\r\n * @param actionCallback Required. A custom action callback function.\r\n * @param actionLabel Required. The name of the action button.\r\n *\r\n * @author Roland Fényes\r\n */\r\nexport interface SmartDialogData {\r\n size: SmartDialogSize;\r\n content: SmartContent;\r\n customComponent?: any;\r\n customComponentInputs?: any;\r\n actionType?: SmartActionType;\r\n form?: SmartForm;\r\n table?: SmartTable<any>;\r\n okCallback?: () => void;\r\n cancelCallback?: (args: any[]) => void;\r\n closeCallback?: (args: any[]) => void;\r\n actionCallback?: (args: any[]) => void;\r\n actionLabel?: string;\r\n outlets?: any;\r\n}\r\n","/*\r\n * Public API Surface of smartdialog\r\n */\r\n\r\nexport * from './smartdialog.service';\r\nexport * from './smartdialog.component';\r\nexport * from './smartdialog.module';\r\nexport * from './smartdialog.model';\r\n","export interface SmartSessionHandlerService {\r\n handleSessionError(sessionError: SessionError): Promise<void>;\r\n}\r\n\r\nexport interface SessionError {\r\n code: string;\r\n behaviour: SessionErrorBehaviour;\r\n}\r\n\r\nexport enum SessionErrorBehaviour {\r\n REFRESH,\r\n RESTART,\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSessionService } from '../smart-session.service';\r\nimport { SmartSubject } from '../../smart-subject/projects';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartSessionTimerService implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n totalTimeInMinutes: number = 30;\r\n timeLeftInSeconds?: number;\r\n\r\n readonly sessionExpiration: string = 'sessionExpiracy';\r\n\r\n timeChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n onTimerExpired: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n timer: any;\r\n\r\n constructor(private session: SmartSessionService) {\r\n this.session.sessionExpiracyChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.restart();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n startTimer(): void {\r\n const sessionInfoData = this.session.sessionInfoData;\r\n const lifetimeSeconds = sessionInfoData?.duration;\r\n if (lifetimeSeconds && lifetimeSeconds !== 0) {\r\n this.timeLeftInSeconds = lifetimeSeconds;\r\n } else {\r\n const expiration = new Date(sessionInfoData!.expiration!);\r\n const now = new Date();\r\n this.timeLeftInSeconds = Math.floor((expiration.getTime() - now.getTime()) / 1000);\r\n }\r\n\r\n this.timer = setInterval(() => {\r\n this.timeLeftInSeconds!--;\r\n if (this.timeLeftInSeconds === 0) {\r\n this.timeout();\r\n }\r\n this.timeChanged.next();\r\n }, 1000);\r\n }\r\n\r\n restart(): void {\r\n clearInterval(this.timer);\r\n\r\n this.startTimer();\r\n }\r\n\r\n timeout(): void {\r\n clearInterval(this.timer);\r\n\r\n this.onTimerExpired.next();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSessionTimerService } from './smart-session-timer.service';\r\n\r\n@Component({\r\n selector: 'smart-session-timer',\r\n templateUrl: './smart-session-timer.component.html',\r\n styleUrls: ['./smart-session-timer.component.css'],\r\n providers: [SmartSessionTimerService],\r\n})\r\nexport class SmartSessionTimerComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n timeInSeconds?: number;\r\n\r\n constructor(public service: SmartSessionTimerService) {}\r\n\r\n ngOnInit(): void {\r\n this.service.startTimer();\r\n this.timeInSeconds = this.service.timeLeftInSeconds;\r\n\r\n this.service.timeChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.timeInSeconds = this.service.timeLeftInSeconds;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n formatTime(seconds: number): string {\r\n let minutes: number = Math.floor(seconds / 60);\r\n let remainingSeconds: number = seconds % 60;\r\n return `${minutes}:${remainingSeconds < 10 ? '0' : ''}${remainingSeconds}`;\r\n }\r\n}\r\n","<div class=\"smart-session-timer-container\">\r\n <span class=\"smart-session-timer\" *ngIf=\"timeInSeconds\">\r\n {{ formatTime(timeInSeconds!) }}\r\n </span>\r\n</div>\r\n","/*\r\n * Public API Surface of smart-session\r\n */\r\n\r\nexport * from './smart-session.service';\r\nexport * from './api/index';\r\nexport * from './smart-session.module';\r\nexport * from './smart-session-handler.service';\r\nexport * from './smart-timer/smart-session-timer.component';\r\nexport * from './smart-timer/smart-session-timer.service';\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { from, Observable, throwError } from \"rxjs\";\r\nimport { catchError, switchMap } from \"rxjs/operators\";\r\nimport {\r\n ApiError,\r\n HeaderParam,\r\n SessionError,\r\n SessionErrorBehaviour,\r\n SmartSessionService,\r\n} from \"./projects\";\r\n\r\n@Injectable()\r\nexport class SmartErrorCatchingInterceptor implements HttpInterceptor {\r\n sessionErrorCodes: SessionError[] = [\r\n {\r\n code: \"session.expired\",\r\n behaviour: SessionErrorBehaviour.REFRESH,\r\n },\r\n {\r\n code: \"session.refreshtoken.invalid\",\r\n behaviour: SessionErrorBehaviour.RESTART,\r\n },\r\n {\r\n code: \"session.badrequest.missingtoken\",\r\n behaviour: SessionErrorBehaviour.RESTART,\r\n },\r\n {\r\n code: \"session.security.nocontext\",\r\n behaviour: SessionErrorBehaviour.RESTART,\r\n },\r\n {\r\n code: \"session.invalidsessionuri\",\r\n behaviour: SessionErrorBehaviour.RESTART,\r\n },\r\n {\r\n code: \"session.notinitialized\",\r\n behaviour: SessionErrorBehaviour.RESTART,\r\n },\r\n {\r\n code: \"session.viewcontext.missing\",\r\n behaviour: SessionErrorBehaviour.RESTART,\r\n },\r\n ];\r\n\r\n constructor(private session: SmartSessionService) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 400 && (error.error as ApiError).code) {\r\n let sessionError = this.sessionErrorCodes.find(\r\n (sessionError: SessionError) =>\r\n sessionError.code === (error.error as ApiError).code\r\n );\r\n if (sessionError) {\r\n return this.resolveError(sessionError).pipe(\r\n switchMap(() => {\r\n this.session.headerParams.map((headerParam: HeaderParam) => {\r\n request = request.clone({\r\n headers: request.headers.set(\r\n headerParam.headerName,\r\n headerParam.value\r\n ),\r\n });\r\n });\r\n return next.handle(request);\r\n })\r\n );\r\n }\r\n }\r\n\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n resolveError(sessionError: SessionError): Observable<any> {\r\n if (sessionError.behaviour === SessionErrorBehaviour.RESTART) {\r\n return from(this.session.handleSessionError(sessionError));\r\n }\r\n return from(this.session.refreshSession());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SmartSessionService } from './smart-session.service';\r\n\r\n@Injectable()\r\nexport class SmartHeaderMaintainerInterceptor implements HttpInterceptor {\r\n constructor(private session: SmartSessionService) {}\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n // new request data\r\n let url = request.urlWithParams.replace('http://localhost', this.session.getBasePath());\r\n // TODO fix me\r\n if (request.urlWithParams.includes('/kerb/sso')) {\r\n request = request.clone({\r\n url: url,\r\n });\r\n\r\n return next.handle(request);\r\n }\r\n\r\n let headers: { [name: string]: string | string[] } = {};\r\n\r\n // copy current headers\r\n request.headers.keys().map((key) => {\r\n let value = request.headers.getAll(key);\r\n if (value) {\r\n headers[key] = value;\r\n }\r\n });\r\n\r\n // add own headers\r\n const hasHeaders = this.session.headerParams && this.session.headerParams.length;\r\n if (hasHeaders) {\r\n this.session.headerParams.map((headerParam) => {\r\n headers[headerParam.headerName] = headerParam.value;\r\n });\r\n }\r\n\r\n // create new request (necessary to rewrite url)\r\n request = request.clone({\r\n url: url,\r\n setHeaders: headers,\r\n });\r\n\r\n return next.handle(request);\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmartdialogModule } from '../smart-dialog/projects';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport { SmartCookieService } from './cookie-service/smart-cookie.service';\r\n\r\nimport { SmartErrorCatchingInterceptor } from './smart-error-catching.interceptor';\r\nimport { SmartHeaderMaintainerInterceptor } from './smart-header-maintainer.interceptor';\r\nimport { SmartSessionService } from './smart-session.service';\r\nimport { SmartSessionTimerComponent } from './smart-timer/smart-session-timer.component';\r\n\r\n@NgModule({\r\n declarations: [SmartSessionTimerComponent],\r\n imports: [BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule],\r\n exports: [SmartSessionTimerComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n SmartCookieService,\r\n SmartSessionService,\r\n SmartdialogModule,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: SmartErrorCatchingInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: SmartHeaderMaintainerInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SmartSessionModule {}\r\n","import { Subject } from 'rxjs';\r\nimport { UiAction } from '../api/model/uiAction';\r\nimport { UiActionDescriptor } from '../api/model/uiActionDescriptor';\r\nimport { UiActionRequest } from '../api/model/uiActionRequest';\r\nimport { SmartFormInvalidFields } from '../../smart-form/smartform.model';\r\n\r\nexport interface UiActionModel {\r\n uiAction: UiAction;\r\n serviceToUse: UseUiAction | UseUiAction2;\r\n exception?: boolean;\r\n descriptor?: UiActionDescriptor;\r\n cssClass?: string;\r\n widgetId?: string;\r\n nodeId?: string;\r\n}\r\n\r\nexport interface UseUiAction {\r\n submit: Subject<void>;\r\n reSubscribeToChange: Subject<void>;\r\n getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams;\r\n getModel(): any;\r\n performUiActionRequest(\r\n uiActionRequest: UiActionRequest,\r\n widgetId?: string,\r\n nodeId?: string\r\n ): Promise<any>;\r\n handleSpecificDemandsAsynchronously(\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionSpecificDemandResponse>;\r\n}\r\n\r\nexport interface UseUiAction2 {\r\n submitForm(validate: boolean): void;\r\n getInvalidFields(): SmartFormInvalidFields;\r\n getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams;\r\n getModel(): any;\r\n performUiActionRequest(\r\n uiActionRequest: UiActionRequest,\r\n widgetId?: string,\r\n nodeId?: string\r\n ): Promise<any>;\r\n handleSpecificDemandsAsynchronously(\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionSpecificDemandResponse>;\r\n}\r\n\r\nexport interface UiActionSpecificDemandResponse {\r\n shouldPerformAction: boolean;\r\n uiActionRequest?: UiActionRequest;\r\n}\r\n\r\nexport interface UiActionAdditionalParams {\r\n forTextField?: string;\r\n forTextArea?: string;\r\n}\r\n\r\nexport enum UiActionDialogType {\r\n inputDialog = 'inputDialog',\r\n confirmDialog = 'confirmDialog',\r\n dialog = 'dialog',\r\n}\r\n","/*\r\n * Public API Surface of smart-view-context\r\n */\r\n\r\nexport * from './smart-view-context.service';\r\nexport * from './smart-view-context.model';\r\nexport * from './smart-view-context.module';\r\nexport * from './smart-view-redirect/smart-view-redirect';\r\nexport * from './api/index';\r\nexport * from './smart-ui-action/ui-action-toolbar.component';\r\nexport * from './smart-ui-action/ui-action.service';\r\nexport * from './smart-ui-action/ui-action.model';\r\nexport * from './smart-ui-action/ui-action.descriptor.service';\r\nexport * from './smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service';\r\nexport * from './smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component';\r\nexport * from './smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service';\r\nexport * from './smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component';\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {\r\n UiActionDescriptorService,\r\n UiActionModel,\r\n UiActionService,\r\n} from '../../view-context/projects';\r\nimport { SmartComponentFileUploader } from '../smart-component-api-client';\r\nimport { SmartFileUploaderI18n } from '../../smart-form/smartfileuploader/smartfileuploader.model';\r\n\r\n@Component({\r\n selector: 'smart-file-uploader4sc',\r\n templateUrl: './smart-file-uploader.component.html',\r\n styleUrls: ['./smart-file-uploader.component.css'],\r\n})\r\nexport class SmartFileUploaderComponent implements OnChanges {\r\n @Input() config?: SmartComponentFileUploader;\r\n\r\n i18n?: SmartFileUploaderI18n;\r\n private uiActionModel?: UiActionModel;\r\n\r\n constructor(\r\n private uiActionService: UiActionService,\r\n private uiActionDescriptorService: UiActionDescriptorService\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.config = changes['config'].currentValue;\r\n if (this.config) {\r\n this.setUp();\r\n }\r\n }\r\n\r\n async setUp(): Promise<void> {\r\n if (!this.config?.smartComponent?.uiActionModels?.length) {\r\n return;\r\n }\r\n this.uiActionModel = this.config?.smartComponent.uiActionModels.find(\r\n (uiActionModel: UiActionModel) => uiActionModel.uiAction.code === this.config?.uiActionCode\r\n );\r\n\r\n if (!this.uiActionModel) {\r\n throw new Error(`UiAction with code ${this.config?.uiActionCode} could not found`);\r\n }\r\n\r\n const descriptor = await this.uiActionDescriptorService.getActionDescriptor(\r\n this.uiActionModel.uiAction\r\n );\r\n\r\n this.i18n = {\r\n addFile: descriptor.upload?.title ?? 'dokumentum hozzáadása',\r\n browseOrDrag: descriptor.upload?.description ?? 'tallózás vagy behúzás',\r\n formats: descriptor.upload?.formats ?? '',\r\n maxSize: descriptor.upload?.maxSize ?? '',\r\n upload: descriptor.upload?.uploadButtonTitle,\r\n };\r\n }\r\n\r\n executeUpload(files: any[]): void {\r\n this.uiActionModel!.uiAction.params = {\r\n ...this.uiActionModel!.uiAction.params,\r\n _files: files,\r\n isMultiple: this.config?.isMultiple,\r\n param: 'INPUT',\r\n };\r\n\r\n this.uiActionService.uiActionModel = this.uiActionModel!;\r\n this.uiActionService.execute(this.uiActionModel!.uiAction);\r\n }\r\n}\r\n","<smartfileuploader\r\n *ngIf=\"i18n\"\r\n [i18n]=\"i18n\"\r\n [fileFormats]=\"config?.fileFormats\"\r\n [isMultiple]=\"config?.isMultiple\"\r\n [maxSizeMb]=\"config?.maxSizeMb\"\r\n [uploadCallback]=\"executeUpload.bind(this)\"\r\n></smartfileuploader>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-expandable-grid',\r\n templateUrl: './expandable-grid.component.html',\r\n styleUrls: ['./expandable-grid.component.css'],\r\n})\r\nexport class ExpandableGridComponent implements OnInit {\r\n @Input() sectionData!: any;\r\n values: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n console.log(this.sectionData);\r\n }\r\n}\r\n","<div\r\n [ngClass]=\"\r\n sectionData[1].dataLayoutDef.gridLayout === 'ROW'\r\n ? 'expandable-container-list'\r\n : 'expandable-container'\r\n \"\r\n>\r\n <div\r\n [ngClass]=\"\r\n sectionData[0].background === undefined ? '' : 'expandable-background'\r\n \"\r\n [ngStyle]=\"{\r\n 'background-image':\r\n sectionData[0].background === undefined\r\n ? ''\r\n : 'url(' + sectionData[0].background + ')'\r\n }\"\r\n >\r\n <div *ngIf=\"sectionData[0].icons !== undefined\" class=\"expandable-icon\">\r\n <smart-icon icon=\"{{ sectionData[0].icons }}\"></smart-icon>\r\n </div>\r\n </div>\r\n\r\n <div\r\n [ngClass]=\"\r\n sectionData[1].dataLayoutDef.dataLayout === 'ROW'\r\n ? 'expandable-data-container-list'\r\n : 'expandable-data-container'\r\n \"\r\n >\r\n <div *ngFor=\"let value of values\">\r\n <div>{{ value }}</div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"sectionData.button !== undefined\"\r\n [ngClass]=\"\r\n sectionData[1].dataLayoutDef.dataLayout === undefined\r\n ? ''\r\n : 'expandable-button'\r\n \"\r\n >\r\n <container-element [ngSwitch]=\"sectionData.button.type\">\r\n <button *ngSwitchCase=\"'RAISED'\" mat-raised-button>alma</button>\r\n\r\n <button *ngSwitchCase=\"'ICON'\" mat-icon-button>alma</button>\r\n </container-element>\r\n </div>\r\n</div>\r\n","import { SmartTableGridInterface } from '../../smart-table/projects';\r\nimport { UiActionModel } from '../../view-context/smart-ui-action/ui-action.model';\r\nimport { SmartTranslateService } from '../../view-context/smart-view-context.model';\r\nimport { GridModel } from '../api/grid-api';\r\n\r\nexport type SmartGrid = {\r\n gridModel: GridModel;\r\n gridIdentifier: string;\r\n layoutDef: SmartLayoutDef;\r\n paginator?: boolean;\r\n showEditColumns?: boolean;\r\n customComponent?: any;\r\n dataLayoutDef?: SmartGridData;\r\n inputName?: string;\r\n showResultCount?: boolean;\r\n button?: SmartGridButton;\r\n cssClass?: any;\r\n numberOfRow?: number;\r\n numberOfColumn?: number;\r\n expandable?: boolean;\r\n expandedComponent?: any;\r\n tableConfig?: SmartTableGridInterface<any>;\r\n\r\n headerComponent?: any;\r\n headerComponentInputName?: string;\r\n expandableComponent?: any;\r\n expandableComponentInputName?: string;\r\n translateService?: SmartTranslateService;\r\n\r\n options?: GridOptions;\r\n viewContextService?: any;\r\n uiActionService?: any;\r\n uiActionDescriptorService?: any;\r\n serviceToUse?: any;\r\n};\r\n\r\nexport interface SmartGridData {\r\n type: SmartGridType;\r\n gridLayout: SmartGridDataLayout;\r\n dataLayout: SmartGridDataLayout;\r\n}\r\n\r\nexport interface SmartGridButton {\r\n icon?: string;\r\n label?: string;\r\n color?: string;\r\n type: SmartGridButtonType;\r\n}\r\n\r\nexport interface GridOptions {\r\n rowUiActionType: GridUiActionType;\r\n uiActionModelCallback?: (uiActionModel: UiActionModel) => UiActionModel;\r\n simpleButtons?: string[];\r\n}\r\n\r\nexport enum GridUiActionType {\r\n POPUP_MENU,\r\n INLINE,\r\n}\r\n\r\nexport enum SmartLayoutDef {\r\n TABLE = 'TABLE',\r\n EXPANDABLE = 'EXPANDABLE',\r\n CARD = 'CARD',\r\n TREE = 'TREE',\r\n}\r\n\r\nexport enum SmartGridButtonType {\r\n ICON = 'ICON',\r\n RAISED = 'RAISED',\r\n}\r\n\r\nexport enum SmartGridDataLayout {\r\n ROW = 'ROW',\r\n COLUMN = 'COLUMN',\r\n}\r\n\r\nexport enum SmartGridType {\r\n CARD1 = 'CARD1',\r\n CARD2 = 'CARD2',\r\n CUSTOM = 'CUSTOM',\r\n}\r\n","import {\r\n Component,\r\n ComponentRef,\r\n Input,\r\n AfterViewInit,\r\n ViewChild,\r\n ViewContainerRef,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { SmartGrid, SmartGridType } from '../../models/model';\r\nimport { GridRow } from '../../api/grid-api';\r\nimport { ComponentFactoryService } from '../../../component-factory-service/projects';\r\n\r\n@Component({\r\n selector: 'app-smart-grid-card',\r\n templateUrl: './smart-grid-card.component.html',\r\n styleUrls: ['./smart-grid-card.component.css'],\r\n})\r\nexport class SmartGridCardComponent implements AfterViewInit, OnDestroy {\r\n @Input() item!: GridRow;\r\n @Input() smartGrid!: SmartGrid;\r\n @Input() onSelect!: (rowId: string) => Promise<void>;\r\n\r\n @ViewChild('customCardComponent', { read: ViewContainerRef })\r\n vcRef?: ViewContainerRef;\r\n componentRef?: ComponentRef<any>;\r\n\r\n uiActionModels: any[] = [];\r\n\r\n values: any;\r\n constructor(private cfService: ComponentFactoryService) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.constructUiActionModels();\r\n this.constructComponent();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.vcRef?.clear();\r\n }\r\n\r\n constructUiActionModels(): void {\r\n this.uiActionModels = this.item.actions.map((_uiAction: any) => {\r\n let uiAction: any = { ..._uiAction };\r\n\r\n uiAction.params = {\r\n ...uiAction.params,\r\n model: this.item,\r\n };\r\n\r\n return {\r\n serviceToUse: this.smartGrid.serviceToUse,\r\n uiAction,\r\n widgetId: this.smartGrid.gridIdentifier,\r\n nodeId: this.item.id,\r\n };\r\n });\r\n }\r\n constructComponent(): void {\r\n if (this.smartGrid.dataLayoutDef?.type === SmartGridType.CUSTOM) {\r\n this.vcRef?.clear();\r\n\r\n this.componentRef = this.cfService.createComponent(\r\n this.vcRef!,\r\n this.smartGrid.customComponent,\r\n new Map<string, any>([\r\n ['item', this.item],\r\n ['uiActionModels', this.uiActionModels],\r\n ['gridIdentifier', this.smartGrid.gridIdentifier],\r\n ])\r\n );\r\n }\r\n }\r\n\r\n select(): void {\r\n this.onSelect(this.item.id!);\r\n }\r\n}\r\n","<div (click)=\"select()\" class=\"smart-grid-card-template\">\r\n <ng-template #customCardComponent></ng-template>\r\n</div>\r\n<!-- <div [ngSwitch]=\"smartGrid.dataLayoutDef!.type\">\r\n <div\r\n *ngSwitchCase=\"'CARD1'\"\r\n [ngClass]=\"\r\n smartGrid.dataLayoutDef!.gridLayout === 'ROW'\r\n ? 'sm-card-container-list'\r\n : 'sm-card-container'\r\n \"\r\n >\r\n <smart-icon [icon]=\"item.data.icon\"></smart-icon>\r\n <div>{{ item.data.title }}</div>\r\n <div>\r\n <div>{{ item.data.state }}</div>\r\n <div>{{ item.data.stateDate }}</div>\r\n </div>\r\n <div>\r\n <div>{{ item.data.lastViewed }}</div>\r\n <div>{{ item.data.lastViewedDate }}</div>\r\n </div>\r\n </div>\r\n <div\r\n *ngSwitchCase=\"'CARD2'\"\r\n [ngClass]=\"\r\n smartGrid.dataLayoutDef!.gridLayout === 'COLUMN'\r\n ? 'sm-list-card-container'\r\n : 'sm-list-card-container-list'\r\n \"\r\n >\r\n <div\r\n [ngClass]=\"\r\n smartGrid.dataLayoutDef!.gridLayout === 'COLUMN'\r\n ? 'sm-list-card-image'\r\n : 'sm-list-card-image-list'\r\n \"\r\n [ngStyle]=\"{\r\n 'background-image': 'url(' + item.data.img + ')'\r\n }\"\r\n >\r\n <button mat-icon-button title=\"btn\">\r\n <smart-icon icon=\"favorite_border\"></smart-icon>\r\n </button>\r\n </div>\r\n <div\r\n [ngClass]=\"\r\n smartGrid.dataLayoutDef!.gridLayout === 'COLUMN'\r\n ? 'sm-list-card-data-container'\r\n : 'sm-list-card-data-container-list'\r\n \"\r\n >\r\n <div class=\"mat-caption color-primary\">\r\n <b>{{ item.data.title }}</b>\r\n </div>\r\n <div\r\n [ngClass]=\"\r\n item.data.availability === 'Rendelhető'\r\n ? 'sm-list-ordered'\r\n : '' || item.data.availability === 'Készleten'\r\n ? 'sm-list-instock'\r\n : 'sm-list-comingsoon'\r\n \"\r\n >\r\n <smart-icon icon=\"{{ item.data.icon }}\"></smart-icon>\r\n <b>{{ item.data.availability }}</b>\r\n </div>\r\n <div>\r\n <div class=\"sm-list-font-size color-secondary\"></div>\r\n <div class=\"sm-list-font-size color-secondary\">\r\n {{ item.data.lastUpdate }}\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"sm-list-font-size color-primary\"></div>\r\n <div class=\"sm-list-price-container\">\r\n <div\r\n [ngClass]=\"\r\n smartGrid.dataLayoutDef!.gridLayout\r\n ? 'sm-list-card-price'\r\n : 'sm-list-card-price-list'\r\n \"\r\n >\r\n <div class=\"color-primary\">\r\n <b>{{ item.data.price }} Ft</b>\r\n </div>\r\n <div class=\"sm-list-font-size color-primary\"></div>\r\n </div>\r\n <button *ngIf=\"false\" mat-icon-button title=\"btn2\">\r\n <smart-icon icon=\"{{ item.data.icon }}\" class=\"color-primary\"></smart-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div> -->\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n/**\r\n * The order by object..\r\n */\r\nexport interface FilterExpressionOrderBy {\r\n /**\r\n * The property name of the order by column.\r\n */\r\n propertyName?: string;\r\n order?: FilterExpressionOrderBy.OrderEnum;\r\n}\r\nexport namespace FilterExpressionOrderBy {\r\n export type OrderEnum = 'ASC' | 'DESC';\r\n export const OrderEnum = {\r\n Asc: 'ASC' as OrderEnum,\r\n Desc: 'DESC' as OrderEnum,\r\n };\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Override the default method for encoding path parameters in various\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam?: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Encoding of various path parameter\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.encodeParam) {\n this.encodeParam = configurationParameters.encodeParam;\n }\n else {\n this.encodeParam = param => this.defaultEncodeParam(param);\n }\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n\n private defaultEncodeParam(param: Param): string {\n // This implementation exists as fallback for missing configuration\n // and for backwards compatibility to older typescript-angular generator versions.\n // It only works for the 'simple' parameter style.\n // Date-handling only works for the 'date-time' format.\n // All other styles and Date-formats are probably handled incorrectly.\n //\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\n ? (param.value as Date).toISOString()\n : param.value;\n\n return encodeURIComponent(String(value));\n }\n}\n","/**\n * Grid api\n * The grid api is resposible for the grid components that shows a list of item. \n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { GridModel } from '../model/gridModel';\n// @ts-ignore\nimport { GridSelectionChange } from '../model/gridSelectionChange';\n// @ts-ignore\nimport { GridUpdateData } from '../model/gridUpdateData';\n// @ts-ignore\nimport { ViewContextChange } from '../../../../view-context/api';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GridService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * \n * @param uuid \n * @param gridId \n * @param rowId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public expand(uuid: string, gridId: string, rowId: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<object>;\n public expand(uuid: string, gridId: string, rowId: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<object>>;\n public expand(uuid: string, gridId: string, rowId: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<object>>;\n public expand(uuid: string, gridId: string, rowId: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling expand.');\n }\n if (gridId === null || gridId === undefined) {\n throw new Error('Required parameter gridId was null or undefined when calling expand.');\n }\n if (rowId === null || rowId === undefined) {\n throw new Error('Required parameter rowId was null or undefined when calling expand.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridId\", value: gridId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/${this.configuration.encodeParam({name: \"rowId\", value: rowId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/expand`;\n return this.httpClient.request<object>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param uuid \n * @param gridIdentifier \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public load(uuid: string, gridIdentifier: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GridModel>;\n public load(uuid: string, gridIdentifier: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GridModel>>;\n public load(uuid: string, gridIdentifier: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GridModel>>;\n public load(uuid: string, gridIdentifier: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling load.');\n }\n if (gridIdentifier === null || gridIdentifier === undefined) {\n throw new Error('Required parameter gridIdentifier was null or undefined when calling load.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridIdentifier\", value: gridIdentifier, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/load`;\n return this.httpClient.request<GridModel>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param uuid \n * @param gridId \n * @param rowId \n * @param selected \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public select(uuid: string, gridId: string, rowId: string, selected?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public select(uuid: string, gridId: string, rowId: string, selected?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public select(uuid: string, gridId: string, rowId: string, selected?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public select(uuid: string, gridId: string, rowId: string, selected?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling select.');\n }\n if (gridId === null || gridId === undefined) {\n throw new Error('Required parameter gridId was null or undefined when calling select.');\n }\n if (rowId === null || rowId === undefined) {\n throw new Error('Required parameter rowId was null or undefined when calling select.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n if (selected !== undefined && selected !== null) {\n localVarHeaders = localVarHeaders.set('selected', String(selected));\n }\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridId\", value: gridId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/${this.configuration.encodeParam({name: \"rowId\", value: rowId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/select`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param uuid \n * @param gridId \n * @param selected \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public selectAll(uuid: string, gridId: string, selected?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public selectAll(uuid: string, gridId: string, selected?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public selectAll(uuid: string, gridId: string, selected?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public selectAll(uuid: string, gridId: string, selected?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling selectAll.');\n }\n if (gridId === null || gridId === undefined) {\n throw new Error('Required parameter gridId was null or undefined when calling selectAll.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n if (selected !== undefined && selected !== null) {\n localVarHeaders = localVarHeaders.set('selected', String(selected));\n }\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridId\", value: gridId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/select`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param uuid \n * @param gridId \n * @param gridSelectionChange \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public selectRows(uuid: string, gridId: string, gridSelectionChange: GridSelectionChange, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\n public selectRows(uuid: string, gridId: string, gridSelectionChange: GridSelectionChange, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\n public selectRows(uuid: string, gridId: string, gridSelectionChange: GridSelectionChange, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\n public selectRows(uuid: string, gridId: string, gridSelectionChange: GridSelectionChange, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling selectRows.');\n }\n if (gridId === null || gridId === undefined) {\n throw new Error('Required parameter gridId was null or undefined when calling selectRows.');\n }\n if (gridSelectionChange === null || gridSelectionChange === undefined) {\n throw new Error('Required parameter gridSelectionChange was null or undefined when calling selectRows.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridId\", value: gridId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/selects`;\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: gridSelectionChange,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param uuid \n * @param gridIdentifier \n * @param offset \n * @param limit \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setPage(uuid: string, gridIdentifier: string, offset: string, limit: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n public setPage(uuid: string, gridIdentifier: string, offset: string, limit: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n public setPage(uuid: string, gridIdentifier: string, offset: string, limit: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n public setPage(uuid: string, gridIdentifier: string, offset: string, limit: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling setPage.');\n }\n if (gridIdentifier === null || gridIdentifier === undefined) {\n throw new Error('Required parameter gridIdentifier was null or undefined when calling setPage.');\n }\n if (offset === null || offset === undefined) {\n throw new Error('Required parameter offset was null or undefined when calling setPage.');\n }\n if (limit === null || limit === undefined) {\n throw new Error('Required parameter limit was null or undefined when calling setPage.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridIdentifier\", value: gridIdentifier, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/page/${this.configuration.encodeParam({name: \"offset\", value: offset, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/${this.configuration.encodeParam({name: \"limit\", value: limit, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * \n * @param uuid \n * @param gridIdentifier \n * @param gridUpdateData \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public update(uuid: string, gridIdentifier: string, gridUpdateData: GridUpdateData, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GridModel>;\n public update(uuid: string, gridIdentifier: string, gridUpdateData: GridUpdateData, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GridModel>>;\n public update(uuid: string, gridIdentifier: string, gridUpdateData: GridUpdateData, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GridModel>>;\n public update(uuid: string, gridIdentifier: string, gridUpdateData: GridUpdateData, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling update.');\n }\n if (gridIdentifier === null || gridIdentifier === undefined) {\n throw new Error('Required parameter gridIdentifier was null or undefined when calling update.');\n }\n if (gridUpdateData === null || gridUpdateData === undefined) {\n throw new Error('Required parameter gridUpdateData was null or undefined when calling update.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/grid/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"gridIdentifier\", value: gridIdentifier, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/update`;\n return this.httpClient.request<GridModel>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: gridUpdateData,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './grid.service';\nimport { GridService } from './grid.service';\nexport const APIS = [GridService];\n","/**\n * Grid api\n * The grid api is resposible for the grid components that shows a list of item. \n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum GridColumnContentType {\n TEXT = 'text',\n HTML = 'html'\n}\n\n","/**\n * Grid api\n * The grid api is resposible for the grid components that shows a list of item. \n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * This is the backend object to setup the grid access api. The parameterization contain all the possible parameters requiered to identify the API to call or even the InvocationRequest to use. Register into the parameters of the View parameters as grid.identifier.config \n */\nexport interface GridDataAccessConfig { \n /**\n * The uri of the table data that contains the data of the list.\n */\n dataUri?: string;\n /**\n * The path to access the identifier GridRow.data\n */\n identifierPath?: Array<string>;\n /**\n * If presented as TREE, this property will be used as id property.\n */\n idProperty?: string;\n /**\n * If presented as TREE, this property will be used as parentId property.\n */\n parentIdProperty?: string;\n apiClass?: string;\n kind?: GridDataAccessConfigKindEnum;\n}\nexport enum GridDataAccessConfigKindEnum {\n TABLEDATA = 'TABLEDATA',\n OBJECTLIST = 'OBJECTLIST',\n APIBASED = 'APIBASED',\n INVOCATIONS = 'INVOCATIONS'\n};\n\n\n\n","/**\n * Grid api\n * The grid api is resposible for the grid components that shows a list of item. \n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum GridSelectionMode {\n NONE = 'none',\n SINGLE = 'single',\n MULTIPLE = 'multiple'\n}\n\n","/**\n * Grid api\n * The grid api is resposible for the grid components that shows a list of item. \n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum GridSelectionType {\n ROW = 'row',\n CHECKBOX = 'checkbox'\n}\n\n","/**\n * Grid api\n * The grid api is resposible for the grid components that shows a list of item. \n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: info@it4all.hu\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { GridSelectionType } from './gridSelectionType';\nimport { GridSelectionMode } from './gridSelectionMode';\nimport { GridColumnMeta } from './gridColumnMeta';\n\n\n/**\n * The configuration of the grid view. It can be a simple table grid but a complex card representation also. A model has one or more view option to render the content. \n */\nexport interface GridViewDescriptor { \n label?: string;\n icon?: string;\n kind?: GridViewDescriptorKindEnum;\n /**\n * In the table the columns are the columns of the table. In the tree the columns can be used to append the title of a tree node. \n */\n columns: Array<GridColumnMeta>;\n selectionMode?: GridSelectionMode;\n selectionType?: GridSelectionType;\n preserveSelectionOnPageChange?: boolean;\n showEditColumns?: boolean;\n highlightProperty?: string;\n highlightClass?: string;\n}\nexport enum GridViewDescriptorKindEnum {\n TABLE = 'TABLE',\n CARDS = 'CARDS',\n TREE = 'TREE'\n};\n\n\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AfterViewInit, Component, Inject, OnDestroy, ViewChildren } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport {\r\n SmartForm,\r\n SmartFormWidgetDirection,\r\n SmartFormWidgetType,\r\n SmartformComponent,\r\n} from '../../../smart-form/projects';\r\nimport { Subject, take, takeUntil } from 'rxjs';\r\nimport { GridColumnMeta, GridUpdateData, GridView } from '../../api/grid-api';\r\nimport { SmartGridService } from '../../smart-grid.service';\r\nimport { SmartDialogData } from '../../../smart-dialog/projects';\r\n\r\nexport interface TableLayoutDefinerConfig {\r\n uuid: string;\r\n identifier: string;\r\n view: GridView;\r\n service: SmartGridService;\r\n}\r\n\r\n@Component({\r\n selector: 'app-table-layout-definer',\r\n templateUrl: './table-layout-definer.component.html',\r\n styleUrls: ['./table-layout-definer.component.css'],\r\n})\r\nexport class TableLayoutDefinerComponent implements AfterViewInit, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n @ViewChildren('forms') formChildren?: SmartformComponent[];\r\n forms?: SmartForm[];\r\n view?: GridView;\r\n private orderedColumnsAsObject: { [key: string]: string } = {};\r\n disableSave: boolean = false;\r\n alwaysShowColumns: string[] = [];\r\n showAddBtn: boolean = true;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: SmartDialogData,\r\n private dialogRef: MatDialogRef<TableLayoutDefinerComponent>\r\n ) {\r\n this.view = JSON.parse(JSON.stringify(data.customComponentInputs.config.view));\r\n this.mapOrderedColumnsToObject();\r\n this.constructForms();\r\n this.getAlwaysShowColumns();\r\n this.showAddBtn = !(this.forms!.length == this.getMaxColumnCount());\r\n }\r\n\r\n private getMaxColumnCount() {\r\n return this.view!.descriptor!.columns.filter((col) => !col.alwaysHidden).length;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.subscibeForValueChange();\r\n }\r\n\r\n private subscibeForValueChange(): void {\r\n this.formChildren?.forEach((comp: SmartformComponent) => {\r\n comp.onValueChangeSubject?.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n let updatedOrderedColumns = this.getUpdatedOrderedColumns();\r\n\r\n let findDuplicates = updatedOrderedColumns.filter(\r\n (item, index) => updatedOrderedColumns.indexOf(item) !== index\r\n );\r\n\r\n this.disableSave = findDuplicates.length > 0 || this.hasEmptyValue(updatedOrderedColumns);\r\n });\r\n });\r\n }\r\n\r\n hasEmptyValue(updatedOrderedColumns: string[]) {\r\n return updatedOrderedColumns.some((value) => value.length === 0);\r\n }\r\n\r\n constructForms(): void {\r\n this.forms = this.view!.orderedColumnNames.map((col: string, index: number) => {\r\n let form: SmartForm = {\r\n componentModel: { data: this.orderedColumnsAsObject },\r\n direction: SmartFormWidgetDirection.COL,\r\n useOnValueChangeEvent: true,\r\n widgets: [\r\n {\r\n key: index.toString(),\r\n label: '',\r\n type: SmartFormWidgetType.SELECT,\r\n valueList: this.view!.descriptor!.columns.filter((cm) => !cm.alwaysHidden).map(\r\n (colMeta: GridColumnMeta) => {\r\n return {\r\n key: '',\r\n label: colMeta.label,\r\n value: colMeta.propertyName,\r\n type: SmartFormWidgetType.ITEM,\r\n };\r\n }\r\n ),\r\n },\r\n ],\r\n };\r\n return form;\r\n });\r\n\r\n setTimeout(() => {\r\n this.subscibeForValueChange();\r\n }, 1000);\r\n }\r\n\r\n addColumn(): void {\r\n if (this.forms!.length < this.getMaxColumnCount()) {\r\n this.view?.orderedColumnNames.push('');\r\n this.orderedColumnsAsObject[this.view!.orderedColumnNames.length - 1] = '';\r\n this.constructForms();\r\n this.disableSave = true;\r\n }\r\n this.showAddBtn = this.forms!.length < this.getMaxColumnCount();\r\n }\r\n\r\n removeColumn(form: SmartForm): void {\r\n let propertyName = this.orderedColumnsAsObject[form.widgets[0].key!];\r\n let index = this.view!.orderedColumnNames.indexOf(propertyName);\r\n if (index > -1) {\r\n this.view?.orderedColumnNames.splice(index, 1);\r\n }\r\n this.mapOrderedColumnsToObject();\r\n this.constructForms();\r\n this.showAddBtn = this.forms!.length < this.getMaxColumnCount();\r\n }\r\n\r\n private getLabelFromColumnMeta(prop: string): string {\r\n let label = this.view?.descriptor?.columns.find(\r\n (value: GridColumnMeta) => value.propertyName === prop\r\n )?.label;\r\n return label ?? prop;\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.forms!, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n getFormForCol(col: string): SmartForm {\r\n let form: SmartForm = {\r\n componentModel: { data: this.orderedColumnsAsObject },\r\n direction: SmartFormWidgetDirection.COL,\r\n widgets: [\r\n {\r\n key: col,\r\n label: this.getLabelFromColumnMeta(col),\r\n type: SmartFormWidgetType.SELECT,\r\n valueList: this.view!.descriptor!.columns.map((colMeta: GridColumnMeta) => {\r\n return {\r\n key: '',\r\n label: colMeta.label,\r\n value: colMeta.propertyName,\r\n type: SmartFormWidgetType.ITEM,\r\n };\r\n }),\r\n },\r\n ],\r\n };\r\n return form;\r\n }\r\n\r\n async submit(): Promise<void> {\r\n this.view!.orderedColumnNames = this.getUpdatedOrderedColumns();\r\n let config = this.data.customComponentInputs.config;\r\n\r\n let updateData: GridUpdateData = {\r\n orderByList: this.view!.orderByList,\r\n orderedColumnNames: this.view!.orderedColumnNames,\r\n };\r\n\r\n await this.data.customComponentInputs.config.service.update(\r\n config.uuid,\r\n config.identifier,\r\n updateData\r\n );\r\n this.dialogRef.close();\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n private getUpdatedOrderedColumns() {\r\n let updatedKeyOrder = this.forms!.map((form: SmartForm) => {\r\n return form.widgets[0].key!;\r\n });\r\n\r\n this.formChildren?.forEach((comp: SmartformComponent) => comp.submitForm());\r\n\r\n let updatedOrderedColumns = updatedKeyOrder!.map((value: string) => {\r\n return this.orderedColumnsAsObject[value];\r\n });\r\n return updatedOrderedColumns;\r\n }\r\n\r\n private mapOrderedColumnsToObject(): void {\r\n this.view?.orderedColumnNames.map((value: string, index: number) => {\r\n this.orderedColumnsAsObject[index] = value;\r\n });\r\n }\r\n\r\n private getAlwaysShowColumns(): void {\r\n this.view?.descriptor?.columns.forEach((col: GridColumnMeta) => {\r\n if (col.alwaysShow) {\r\n this.alwaysShowColumns.push(col.propertyName);\r\n }\r\n });\r\n }\r\n\r\n isAlwaysShow(col: SmartForm) {\r\n let key = col.widgets[0].key!;\r\n\r\n if (this.alwaysShowColumns.includes(this.orderedColumnsAsObject[key])) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","<div class=\"edit-columns-container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"column-meta-row\" *ngFor=\"let col of forms\" cdkDrag cdkDragLockAxis=\"y\">\r\n <smart-icon color=\"primary\" icon=\"drag_handle\"></smart-icon>\r\n <smartform class=\"form\" #forms [smartForm]=\"col\"></smartform>\r\n <button\r\n *ngIf=\"isAlwaysShow(col) && (view?.orderedColumnNames)!.length > 1\"\r\n (click)=\"removeColumn(col)\"\r\n mat-icon-button\r\n color=\"primary\"\r\n >\r\n <mat-icon>delete_outline</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"add-btn\" *ngIf=\"showAddBtn\">\r\n <button mat-icon-button color=\"primary\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"button-toolbar\">\r\n <button mat-button color=\"primary\" (click)=\"cancel()\"> Mégsem </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"disableSave\" (click)=\"submit()\">\r\n Mentés\r\n </button>\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { lastValueFrom, Subject } from 'rxjs';\r\nimport { SmartdialogService } from '../smart-dialog/projects';\r\nimport { GridModel, GridRow, GridService, GridUpdateData } from './api/grid-api';\r\nimport { SmartGrid } from './projects';\r\n\r\n@Injectable()\r\nexport class SmartGridService {\r\n gridModelChanged: Subject<void> = new Subject();\r\n gridModel!: GridModel;\r\n paginator?: boolean;\r\n constructor(private api: GridService) {}\r\n\r\n async load(uuid: string, gridIdentifier: string): Promise<void> {\r\n let gridModelResult = await lastValueFrom(this.api.load(uuid, gridIdentifier));\r\n this.updateGrid(gridModelResult, 'load');\r\n }\r\n\r\n async setPage(\r\n uuid: string,\r\n gridIdentifier: string,\r\n offset: string,\r\n limit: string\r\n ): Promise<void> {\r\n await lastValueFrom(this.api.setPage(uuid, gridIdentifier, offset, limit));\r\n await this.update(uuid, gridIdentifier, {\r\n orderByList: this.gridModel.view?.orderByList!,\r\n orderedColumnNames: this.gridModel.view?.orderedColumnNames!,\r\n pageSize: +limit,\r\n });\r\n }\r\n\r\n async sort(smartGrid: SmartGrid, gridUpdateData: GridUpdateData): Promise<void> {\r\n if (!gridUpdateData.pageSize) {\r\n gridUpdateData.pageSize = this.getCurrentPageSize();\r\n }\r\n let gridModelResult = await this.api\r\n .update(smartGrid.gridModel.viewUuid!, smartGrid.gridIdentifier, gridUpdateData)\r\n .toPromise();\r\n this.updateGrid(gridModelResult, 'sort');\r\n }\r\n\r\n async expand(smartGrid: SmartGrid, rowId: string): Promise<any> {\r\n return await this.api\r\n .expand(smartGrid.gridModel.viewUuid!, smartGrid.gridIdentifier, rowId)\r\n .toPromise();\r\n }\r\n\r\n async select(smartGrid: SmartGrid, gridRow: GridRow): Promise<any> {\r\n gridRow.selected = !gridRow.selected;\r\n return await this.api\r\n .select(\r\n smartGrid.gridModel.viewUuid!,\r\n smartGrid.gridIdentifier,\r\n gridRow.id!,\r\n gridRow.selected\r\n )\r\n .toPromise();\r\n }\r\n\r\n async selectRows(smartGrid: SmartGrid, selected: string[], unselected: string[]): Promise<any> {\r\n return await this.api\r\n .selectRows(smartGrid.gridModel.viewUuid!, smartGrid.gridIdentifier, { selected, unselected })\r\n .toPromise();\r\n }\r\n\r\n async selectAll(smartGrid: SmartGrid, selected: boolean): Promise<any> {\r\n return await this.api\r\n .selectAll(smartGrid.gridModel.viewUuid!, smartGrid.gridIdentifier, selected)\r\n .toPromise();\r\n }\r\n\r\n async update(uuid: string, identifier: string, updateData: GridUpdateData): Promise<void> {\r\n if (!updateData.pageSize) {\r\n updateData.pageSize = this.getCurrentPageSize();\r\n }\r\n let gridModelResult = await this.api.update(uuid, identifier, updateData).toPromise();\r\n this.updateGrid(gridModelResult, 'update');\r\n }\r\n\r\n private updateGrid(gridModel: GridModel | undefined, method: string): void {\r\n if (gridModel) {\r\n this.gridModel = gridModel;\r\n this.gridModelChanged.next();\r\n } else {\r\n console.error(`GridModel is undefined in service after ${method}!`);\r\n }\r\n }\r\n\r\n private getCurrentPageSize(): number | undefined {\r\n if (this.paginator) {\r\n return this.gridModel.pageSize!;\r\n }\r\n return undefined;\r\n }\r\n}\r\n","import { ThemePalette } from '@angular/material/core';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\n\r\nexport interface ExpandableSection<T> {\r\n title: string;\r\n headerComponent?: any;\r\n customComponent?: any;\r\n button?: ExpandableSectionButton;\r\n data?: T;\r\n headerData?: any;\r\n headerInputName?: string;\r\n inputName?: string;\r\n isExpanded?: boolean;\r\n isDisabled?: boolean;\r\n index?: number;\r\n stateChanged?: Subject<ExpandableSectionStateChange<T>>;\r\n cssClass?: string;\r\n inputs?: Map<string, any>;\r\n}\r\n\r\nexport interface ExpandableSectionStateChange<T> {\r\n data: T;\r\n isExpanded: boolean;\r\n index?: number;\r\n}\r\n\r\nexport enum ExpandableSectionButtonType {\r\n BUTTON,\r\n MENU,\r\n MENU_ITEM,\r\n}\r\n\r\nexport enum ExpandableSectionButtonIconPosition {\r\n PRE = 'Pre',\r\n POST = 'Post',\r\n}\r\n\r\nexport interface ExpandableSectionButton {\r\n label: string;\r\n icon?: string;\r\n iconPosition?: ExpandableSectionButtonIconPosition;\r\n type: ExpandableSectionButtonType;\r\n color: ThemePalette;\r\n callback?: (...args: any[]) => any;\r\n args?: any[];\r\n menuItemButtons?: ExpandableSectionButton[];\r\n}\r\n","import { Component, ComponentRef, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n ExpandableSection,\r\n ExpandableSectionButton,\r\n ExpandableSectionButtonIconPosition,\r\n ExpandableSectionButtonType,\r\n} from './expandable-section.model';\r\nimport { ComponentFactoryService } from '../component-factory-service/projects';\r\n\r\n@Component({\r\n selector: 'smart-expandable-section',\r\n templateUrl: './expandable-section.component.html',\r\n styleUrls: ['./expandable-section.component.css'],\r\n})\r\nexport class ExpandableSectionComponent implements OnInit {\r\n @Input() data!: ExpandableSection<any>;\r\n @Input() index?: number;\r\n\r\n @ViewChild('renderComponent', { read: ViewContainerRef })\r\n vcRef?: ViewContainerRef;\r\n componentRef?: ComponentRef<any>;\r\n\r\n @ViewChild('headerComponent', { read: ViewContainerRef })\r\n vcRefheader?: ViewContainerRef;\r\n\r\n stateChange: Subject<ExpandableSection<any>> = new Subject();\r\n\r\n constructor(private cfService: ComponentFactoryService) {}\r\n\r\n onStateChange(isOpened: boolean): void {\r\n this.data.isExpanded = isOpened;\r\n this.stateChange.next(this.data);\r\n if (this.data.stateChanged) {\r\n this.data.stateChanged.next({\r\n data: this.data.data,\r\n isExpanded: isOpened,\r\n index: this.data.index,\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit() {\r\n if (this.data.headerComponent) {\r\n this.cfService.createComponent(\r\n this.vcRefheader!,\r\n this.data.headerComponent,\r\n new Map<string, any>([\r\n [this.data.headerInputName ?? '', this.data.headerData],\r\n ['stateChange', this.stateChange],\r\n ['index', this.data.index],\r\n ['sectionIndex', this.index],\r\n ])\r\n );\r\n }\r\n let inputs = new Map<string, any>([\r\n ['stateChange', this.stateChange],\r\n ['index', this.data.index],\r\n ['sectionIndex', this.index],\r\n ]);\r\n if (this.data.inputName) {\r\n inputs.set(this.data.inputName, this.data.data);\r\n }\r\n if (this.data.inputs) {\r\n this.data.inputs.forEach((v, k) => inputs.set(k, v));\r\n }\r\n\r\n this.componentRef = this.cfService.createComponent(\r\n this.vcRef!,\r\n this.data.customComponent,\r\n inputs\r\n );\r\n }\r\n\r\n action(button: ExpandableSectionButton, event: any) {\r\n event.stopPropagation();\r\n if (!button.callback) {\r\n throw new Error(\r\n `Button with name ${button.label} or icon ${button.icon} does not have a callback!`\r\n );\r\n }\r\n\r\n button.callback(button.args);\r\n }\r\n\r\n setExpanded() {}\r\n\r\n type(): typeof ExpandableSectionButtonType {\r\n return ExpandableSectionButtonType;\r\n }\r\n position(): typeof ExpandableSectionButtonIconPosition {\r\n return ExpandableSectionButtonIconPosition;\r\n }\r\n\r\n customButtonClicked(event: any, button: ExpandableSectionButton, element: any) {\r\n event.stopPropagation();\r\n\r\n if (!button.callback) {\r\n throw new Error(\r\n `Button with name ${button.label} or icon ${button.icon} does not have a callback!`\r\n );\r\n }\r\n button.callback(button.args, element);\r\n }\r\n}\r\n","<div class=\"section-container\" [ngClass]=\"data.cssClass ?? ''\">\r\n <mat-expansion-panel\r\n [expanded]=\"data.isExpanded\"\r\n (opened)=\"onStateChange(true)\"\r\n (closed)=\"onStateChange(false)\"\r\n [disabled]=\"!!data.isDisabled\"\r\n >\r\n <mat-expansion-panel-header *ngIf=\"data.headerComponent\">\r\n <ng-template #headerComponent></ng-template>\r\n </mat-expansion-panel-header>\r\n <mat-expansion-panel-header *ngIf=\"!data.headerComponent\">\r\n <mat-panel-title> {{ data.title }} </mat-panel-title>\r\n <div class=\"btn-container\" *ngIf=\"data.button\">\r\n <button\r\n *ngIf=\"data.button.type === type().BUTTON\"\r\n class=\"btn\"\r\n (click)=\"action(data.button, $event)\"\r\n mat-stroked-button\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition || data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n {{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <button\r\n *ngIf=\"data.button.type === type().MENU\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"$event.stopPropagation()\"\r\n color=\"{{ data.button.color }}\"\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n data.button.icon &&\r\n (!data.button.iconPosition || data.button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon\r\n >{{ data.button.label }}\r\n <smart-icon\r\n *ngIf=\"data.button.icon && data.button.iconPosition === position().POST\"\r\n [icon]=\"data.button.icon\"\r\n ></smart-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of data.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, data.index)\"\r\n mat-menu-item\r\n >\r\n <smart-icon\r\n *ngIf=\"\r\n button.icon && (!button.iconPosition || button.iconPosition === position().PRE)\r\n \"\r\n [icon]=\"button.icon\"\r\n ></smart-icon\r\n >{{ button.label }}\r\n <smart-icon\r\n *ngIf=\"button.icon && button.iconPosition === position().POST\"\r\n [icon]=\"button.icon\"\r\n ></smart-icon>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <ng-template #renderComponent></ng-template>\r\n </mat-expansion-panel>\r\n</div>\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ComponentFactoryService } from '../component-factory-service/projects';\r\nimport { SmartDialogData } from '../smart-dialog/projects';\r\nimport { ExpandableSection } from '../smart-expandable-section/projects';\r\nimport { FilterExpressionOrderBy } from '../smart-filter-editor/api/model/filterExpressionOrderBy';\r\nimport {\r\n SmartTable,\r\n SmartTableButtonType,\r\n SmartTableHeader,\r\n SmartTableHeaderPropertyType,\r\n SmartTableInterface,\r\n SmartTableInterfaceTypeEnum,\r\n SmartTableOrder,\r\n SmartTableType,\r\n SmarttableComponent,\r\n} from '../smart-table/projects';\r\nimport { UiAction, UiActionButtonType, UiActionDescriptor } from '../view-context/api';\r\nimport { UiActionDescriptorService, UiActionToolbarComponent } from '../view-context/projects';\r\nimport {\r\n GridColumnMeta,\r\n GridRow,\r\n GridSelectionMode,\r\n GridSelectionType,\r\n GridUpdateData,\r\n GridViewDescriptorKindEnum,\r\n} from './api/grid-api';\r\nimport { TableLayoutDefinerComponent } from './components/table-layout-definer/table-layout-definer.component';\r\nimport { GridUiActionType, SmartGrid, SmartLayoutDef } from './models/model';\r\nimport { SmartGridService } from './smart-grid.service';\r\n\r\n@Component({\r\n selector: 'smart-grid',\r\n templateUrl: './smart-grid.component.html',\r\n styleUrls: ['./smart-grid.component.css'],\r\n providers: [SmartGridService],\r\n})\r\nexport class SmartGridComponent implements AfterViewInit, OnDestroy, OnChanges {\r\n // private readonly defaultPageSize: number = 10;\r\n private readonly defaultPageSizeOptions: number[] = [5, 10, 25, 50];\r\n\r\n private _destroy$: Subject<void> = new Subject();\r\n @Input() smartGrid?: SmartGrid;\r\n @Input() uuid?: string;\r\n @Input() dev: boolean = false;\r\n\r\n // table\r\n @ViewChild('table', { read: ViewContainerRef }) vcRefTable?: ViewContainerRef;\r\n componentRefTable?: ComponentRef<SmarttableComponent>;\r\n smartTable!: SmartTable<GridRow>;\r\n\r\n // toolbar\r\n @ViewChild('toolbar') toolbar?: UiActionToolbarComponent;\r\n\r\n // expandable\r\n // gridData\r\n expandableSections?: ExpandableSection<any>[];\r\n\r\n pageEvent?: PageEvent;\r\n datasource?: null;\r\n pageSize?: number;\r\n length?: number;\r\n pageIndex?: number;\r\n values: any;\r\n gridTable!: SmartTable<any>;\r\n\r\n pageSizeOptions: number[] = this.defaultPageSizeOptions;\r\n\r\n selectionChanges: Subject<any> = new Subject();\r\n\r\n uiActionDescriptors: Map<string, UiActionDescriptor> = new Map();\r\n\r\n afterViewInitExecuted: boolean = false;\r\n isBlocked: boolean = true;\r\n\r\n // tree\r\n treeControl?: FlatTreeControl<GridRow>;\r\n treeFlattener?: MatTreeFlattener<GridRow, GridRow>;\r\n treeDataSource?: MatTreeFlatDataSource<GridRow, GridRow>;\r\n treeChecklistSelection?: SelectionModel<GridRow>;\r\n\r\n constructor(\r\n private service: SmartGridService,\r\n private cfService: ComponentFactoryService,\r\n private dialog: MatDialog,\r\n private uiActionDescriptorService: UiActionDescriptorService,\r\n @Inject('gridMenuIcon') private gridMenuIcon?: string\r\n ) {\r\n this.service.gridModelChanged.subscribe(() => {\r\n // called after every service call (load, save, refresh, etc.)\r\n this.smartGrid!.gridModel = this.service.gridModel;\r\n this.render();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['smartGrid']) {\r\n this.smartGrid = changes['smartGrid'].currentValue;\r\n this.service.paginator = this.smartGrid?.paginator;\r\n this.setupToolbar();\r\n }\r\n if (changes['uuid']) {\r\n this.uuid = changes['uuid'].currentValue;\r\n }\r\n if (this.afterViewInitExecuted && this.uuid && this.smartGrid) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.dev) {\r\n // for dev purposes\r\n if (this.smartGrid!.gridModel) {\r\n this.service.gridModel = this.smartGrid!.gridModel;\r\n this.render();\r\n }\r\n }\r\n\r\n if (this.uuid && this.smartGrid && !this.dev) {\r\n this.refresh();\r\n }\r\n this.afterViewInitExecuted = true;\r\n }\r\n\r\n /**\r\n *\r\n * @returns the selected rows of the table\r\n */\r\n public getSelectedRows(): SelectionModel<GridRow> {\r\n if (!this.smartTable.selection) throw new Error();\r\n return this.smartTable!.selection!;\r\n }\r\n\r\n /**\r\n * This method sends a GET request to the generic GridAPI and refreshes the presented\r\n * grid with the newest one.\r\n */\r\n public async refresh(): Promise<void> {\r\n this.setupToolbar();\r\n // will cause this.service.gridModelChanged to fire\r\n if (this.uuid) {\r\n await this.service.load(this.uuid, this.smartGrid!.gridIdentifier);\r\n }\r\n }\r\n\r\n public setupToolbar() {\r\n // check if toolbar is available _and_ need set up\r\n if (this.toolbar && this.smartGrid) {\r\n let toolbarId = this.smartGrid?.gridIdentifier + '_toolbar';\r\n if (toolbarId !== this.toolbar.id) {\r\n this.toolbar.id = toolbarId;\r\n }\r\n }\r\n }\r\n private async render(): Promise<void> {\r\n const gridModel = this.smartGrid?.gridModel;\r\n if (gridModel) {\r\n this.length = gridModel.totalRowCount;\r\n this.pageSize = gridModel.pageSize;\r\n this.pageIndex = gridModel.pageIndex ?? 0;\r\n if (gridModel.pageSizeOptions && gridModel.pageSizeOptions.length > 0) {\r\n this.pageSizeOptions = gridModel.pageSizeOptions;\r\n } else {\r\n this.pageSizeOptions = this.defaultPageSizeOptions;\r\n }\r\n if (gridModel?.view?.descriptor?.showEditColumns) {\r\n this.smartGrid!.showEditColumns = gridModel?.view?.descriptor?.showEditColumns;\r\n }\r\n let kind = gridModel?.view?.descriptor?.kind;\r\n if (kind) {\r\n let layoutDef;\r\n if (kind === GridViewDescriptorKindEnum.TABLE) {\r\n layoutDef = SmartLayoutDef.TABLE;\r\n } else if (kind === GridViewDescriptorKindEnum.TREE) {\r\n layoutDef = SmartLayoutDef.TREE;\r\n } else if (kind === GridViewDescriptorKindEnum.CARDS) {\r\n layoutDef = SmartLayoutDef.CARD;\r\n }\r\n if (layoutDef) {\r\n this.smartGrid!.layoutDef = layoutDef;\r\n }\r\n }\r\n if (gridModel?.paginator === true || gridModel?.paginator === false) {\r\n this.smartGrid!.paginator = gridModel.paginator;\r\n this.service.paginator = this.smartGrid!.paginator;\r\n }\r\n } else {\r\n console.error('GridModel is undefined in component!');\r\n }\r\n if (!this.smartGrid!.layoutDef) {\r\n // fallback, default TABLE\r\n this.smartGrid!.layoutDef = SmartLayoutDef.TABLE;\r\n }\r\n if (this.smartGrid!.layoutDef === SmartLayoutDef.TABLE) {\r\n this.renderTable();\r\n } else if (this.smartGrid!.layoutDef === SmartLayoutDef.EXPANDABLE) {\r\n this.renderExpandableSections();\r\n } else if (this.smartGrid!.layoutDef === SmartLayoutDef.CARD) {\r\n this.renderCards();\r\n } else if (this.smartGrid!.layoutDef === SmartLayoutDef.TREE) {\r\n this.renderTree();\r\n }\r\n this.isBlocked = false;\r\n }\r\n\r\n private clearTable() {\r\n this.vcRefTable?.clear();\r\n this.componentRefTable = undefined;\r\n }\r\n\r\n private async renderTable(): Promise<void> {\r\n this.clearTree();\r\n let tableRow = this.smartGrid!.gridModel!.page.rows!.map((item: any) => {\r\n return item;\r\n });\r\n\r\n if (!tableRow.length) {\r\n let placeHolderRow: any = {};\r\n this.smartGrid!.gridModel.view?.descriptor?.columns.map((meta: GridColumnMeta) => {\r\n placeHolderRow[meta.propertyName] = undefined;\r\n });\r\n this.smartGrid!.gridModel.page.rows = [placeHolderRow];\r\n }\r\n\r\n let tableType;\r\n if (this.smartGrid!.tableConfig?.tableType) {\r\n tableType = this.smartGrid!.tableConfig.tableType;\r\n } else if (this.service.gridModel?.view?.descriptor?.selectionType) {\r\n tableType =\r\n this.service.gridModel.view.descriptor.selectionType === GridSelectionType.CHECKBOX\r\n ? SmartTableType.CHECK_BOX\r\n : SmartTableType.ROW_SELECT;\r\n } else {\r\n tableType = SmartTableType.INHERITED;\r\n }\r\n\r\n if (this.smartGrid!.layoutDef === SmartLayoutDef.TABLE) {\r\n let tableConfig: SmartTableInterface<GridRow> = {\r\n ...this.smartGrid!.tableConfig,\r\n tableRows: tableRow,\r\n tableType,\r\n customSmartTableHeaders: await this.constructHeader()!,\r\n expandable: this.smartGrid!.expandable,\r\n expandedComponent: this.smartGrid!.expandedComponent,\r\n type: SmartTableInterfaceTypeEnum.NORMAL,\r\n sortable: true,\r\n defaultActionCodes: this.smartGrid?.gridModel.defaultRowActions!,\r\n defaultActions: this.smartGrid?.gridModel.defaultRowActions?.map((code: string) => {\r\n return {\r\n type:\r\n code === '_actionSeparator_'\r\n ? SmartTableButtonType.SEPARATOR\r\n : SmartTableButtonType.NORMAL,\r\n callback: this.execute.bind(this),\r\n code: code,\r\n // label: this.buttonTranslator({ code: code }),\r\n translator: this.buttonTranslator.bind(this),\r\n // args: [\r\n // {\r\n // code: code,\r\n // },\r\n // ],\r\n };\r\n }),\r\n };\r\n\r\n if (\r\n this.smartGrid?.gridModel.view?.descriptor?.highlightProperty &&\r\n this.smartGrid?.gridModel.view?.descriptor?.highlightClass\r\n ) {\r\n tableConfig.highlightClass = this.smartGrid.gridModel.view.descriptor.highlightClass;\r\n tableConfig.highlightProperty = this.smartGrid.gridModel.view.descriptor.highlightProperty;\r\n }\r\n\r\n if (\r\n this.smartGrid!.uiActionService &&\r\n this.smartGrid!.uiActionDescriptorService &&\r\n this.smartGrid!.serviceToUse &&\r\n this.smartGrid!.viewContextService\r\n ) {\r\n tableConfig.onSelection = this.onSelect.bind(this);\r\n tableConfig.onAllSelection = this.onSelectAll.bind(this);\r\n }\r\n\r\n // Prepared for simple clicks\r\n // if (!tableConfig.onRowClick) {\r\n // tableConfig.onRowClick = this.onClick.bind(this);\r\n // }\r\n\r\n if (!tableConfig.onRowDoubleClick) {\r\n tableConfig.onRowDoubleClick = this.onDoubleClick.bind(this);\r\n }\r\n\r\n if (!tableConfig.isRowDisabledPropertyName) {\r\n tableConfig.selectablePropertyName = 'selectable';\r\n }\r\n\r\n if (tableConfig.asyncOnExpand) {\r\n tableConfig.rowExpander = this;\r\n }\r\n\r\n const selectionMode = this.service!.gridModel.view?.descriptor?.selectionMode;\r\n\r\n if (\r\n !tableConfig.selection &&\r\n !tableConfig.selectionProperty &&\r\n selectionMode !== GridSelectionMode.NONE\r\n ) {\r\n const isMultiple = selectionMode === GridSelectionMode.MULTIPLE;\r\n\r\n tableConfig.selectionProperty = 'id';\r\n\r\n const selectedIds = this.service.gridModel.page\r\n .rows!.filter((gridRow: GridRow) => gridRow.selected)\r\n .map((gridRow: GridRow) => gridRow.id!);\r\n\r\n tableConfig.selection = new SelectionModel<string>(isMultiple, selectedIds);\r\n }\r\n\r\n this.smartTable = new SmartTable<any>(tableConfig);\r\n\r\n if (this.componentRefTable) {\r\n this.componentRefTable.instance.updateSmartTable(this.smartTable);\r\n } else {\r\n this.vcRefTable?.clear();\r\n\r\n if (!this.vcRefTable) {\r\n return;\r\n }\r\n this.componentRefTable = this.cfService.createComponent(\r\n this.vcRefTable!,\r\n SmarttableComponent,\r\n new Map<string, any>([['smartTable', this.smartTable]])\r\n );\r\n\r\n let subscription = this.componentRefTable.instance.sortEvent\r\n .pipe(takeUntil(this.componentRefTable.instance._destroy$))\r\n .subscribe((header: SmartTableHeader) => {\r\n header.propertyName = header.propertyName.substring(5);\r\n\r\n switch (header.order) {\r\n case undefined:\r\n header.order = SmartTableOrder.ASC;\r\n break;\r\n case SmartTableOrder.ASC:\r\n header.order = SmartTableOrder.DESC;\r\n break;\r\n case SmartTableOrder.DESC:\r\n header.order = undefined;\r\n break;\r\n }\r\n\r\n let filter = this.smartGrid!.gridModel.view!.orderByList.find(\r\n (filterExpression: FilterExpressionOrderBy) =>\r\n filterExpression.propertyName === header.propertyName\r\n );\r\n if (filter && !header.order) {\r\n let index = this.smartGrid!.gridModel.view?.orderByList.indexOf(filter);\r\n this.smartGrid!.gridModel.view?.orderByList.splice(index!, 1);\r\n } else if (filter) {\r\n filter.order = header.order;\r\n } else {\r\n this.smartGrid!.gridModel.view!.orderByList.push({\r\n order: header.order,\r\n propertyName: header.propertyName,\r\n });\r\n }\r\n\r\n let gridUpdateData: GridUpdateData = {\r\n orderByList: this.smartGrid!.gridModel.view!.orderByList,\r\n orderedColumnNames: this.smartGrid!.gridModel.view!.orderedColumnNames,\r\n };\r\n this.service.sort(this.smartGrid!, gridUpdateData);\r\n });\r\n\r\n this.componentRefTable.instance.smartTable.selection?.changed\r\n .pipe(takeUntil(this.componentRefTable.instance._destroy$))\r\n .subscribe((row: any) => {\r\n this.selectionChanges.next(row);\r\n });\r\n }\r\n }\r\n }\r\n\r\n public expand(rowId: number): any {}\r\n\r\n public async expandAsync(rowIndex: number): Promise<any> {\r\n if (this.smartGrid!.gridModel.page.rows) {\r\n let row = this.smartGrid!.gridModel.page.rows[rowIndex];\r\n if (row && row.id) {\r\n return await this.service.expand(this.smartGrid!, row.id);\r\n }\r\n }\r\n return await this.service.expand(this.smartGrid!, rowIndex.toString());\r\n }\r\n\r\n private renderExpandableSections(): void {\r\n this.expandableSections = this.smartGrid!.gridModel!.page.rows!.map((item: any) => {\r\n return {\r\n title: '',\r\n headerComponent: this.smartGrid!.headerComponent,\r\n headerInputName: this.smartGrid!.headerComponentInputName,\r\n headerData: item,\r\n customComponent: this.smartGrid!.expandableComponent,\r\n inputName: this.smartGrid!.expandableComponentInputName,\r\n data: item,\r\n };\r\n });\r\n }\r\n\r\n private renderCards(): void {\r\n // TODO\r\n }\r\n\r\n private isMultipleSelection(): boolean {\r\n const selectionMode = this.service!.gridModel.view?.descriptor?.selectionMode;\r\n return selectionMode === GridSelectionMode.MULTIPLE;\r\n }\r\n\r\n private clearTree() {\r\n this.treeControl = undefined;\r\n this.treeDataSource = undefined;\r\n this.treeFlattener = undefined;\r\n this.treeChecklistSelection = undefined;\r\n }\r\n\r\n private renderTree(): void {\r\n this.clearTable();\r\n if (!this.treeDataSource) {\r\n this.treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n this.getLevel,\r\n this.isExpandable,\r\n this.getChildren\r\n );\r\n this.treeControl = new FlatTreeControl<GridRow>(this.getLevel, this.isExpandable);\r\n this.treeDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n this.treeChecklistSelection = new SelectionModel<GridRow>(this.isMultipleSelection());\r\n }\r\n let nodes = this.treeControl?.dataNodes;\r\n let expandedNodes: (string | undefined)[];\r\n if (nodes) {\r\n expandedNodes = nodes\r\n .filter((node) => this.treeControl?.isExpandable(node))\r\n .filter((node) => this.treeControl?.isExpanded(node))\r\n .map((node) => node.id);\r\n } else {\r\n expandedNodes = [];\r\n }\r\n this.smartGrid!.gridModel.page.rows!.forEach((row: any) => (row.level = undefined));\r\n this.treeDataSource.data = this.smartGrid!.gridModel.page.rows!.filter((row) => !row.parent);\r\n this.treeChecklistSelection?.clear();\r\n this.treeControl?.dataNodes.forEach((node) => {\r\n if (node.selected) {\r\n this.treeChecklistSelection?.select(node);\r\n }\r\n });\r\n this.treeControl?.collapseAll();\r\n expandedNodes.forEach((rowId) => {\r\n let row = this.treeControl?.dataNodes.find((row) => rowId === row.id);\r\n if (row) {\r\n this.treeControl?.expand(row);\r\n }\r\n });\r\n }\r\n\r\n getLevel = (node: any) => node.level ?? 0;\r\n\r\n isExpandable = (node: GridRow) => (node.children && node.children.length > 0 ? true : false);\r\n\r\n getChildren = (node: GridRow): GridRow[] => {\r\n if (node.children) {\r\n let rows = this.smartGrid?.gridModel.page.rows?.filter((row) =>\r\n node.children?.some((child) => child === row.id!)\r\n );\r\n if (rows) {\r\n return rows;\r\n }\r\n }\r\n return [];\r\n };\r\n\r\n hasChild = (_: number, _nodeData: GridRow) => this.isExpandable(_nodeData);\r\n\r\n transformer = (row: GridRow, level: number) => {\r\n (row as any).level = level;\r\n return row;\r\n };\r\n\r\n getTreeItem(row: GridRow): string {\r\n let columns: string[] | undefined = this.smartGrid?.gridModel.view?.orderedColumnNames;\r\n let data: any = row.data!;\r\n if (columns && columns.length > 0) {\r\n return columns.map((col) => data[col]).join(' ');\r\n }\r\n return row.id!;\r\n }\r\n\r\n /** Toggle the treeNode selection. Select/deselect all the descendants node */\r\n treeNodeSelectionToggle(node: GridRow): void {\r\n if (!this.treeChecklistSelection) {\r\n return;\r\n }\r\n let selectionBefore = this.treeChecklistSelection.selected.map((row) => row.id);\r\n this.treeChecklistSelection.toggle(node);\r\n if (this.isMultipleSelection()) {\r\n const descendants = this.treeControl!.getDescendants(node);\r\n this.treeChecklistSelection.isSelected(node)\r\n ? this.treeChecklistSelection.select(...descendants)\r\n : this.treeChecklistSelection.deselect(...descendants);\r\n this.checkAllParentsSelection(node);\r\n }\r\n let selectionAfter = this.treeChecklistSelection.selected.map((row) => row.id);\r\n\r\n let selectedIds = selectionAfter.filter((s) => !selectionBefore.includes(s));\r\n let unselectedIds = selectionBefore.filter((s) => !selectionAfter.includes(s));\r\n if (this.dev) {\r\n // when service call is active (!dev), onSelect will toggle row.selected\r\n this.service.gridModel.page.rows\r\n ?.filter((row) => selectedIds.includes(row.id))\r\n .forEach((row) => (row.selected = true));\r\n this.service.gridModel.page.rows\r\n ?.filter((row) => unselectedIds.includes(row.id))\r\n .forEach((row) => (row.selected = false));\r\n }\r\n this.onSelectRows(selectedIds, unselectedIds);\r\n }\r\n\r\n checkAllParentsSelection(node: GridRow): void {\r\n let parent: GridRow | null = this.getParentNode(node);\r\n while (parent) {\r\n this.checkParentNodeSelection(parent);\r\n parent = this.getParentNode(parent);\r\n }\r\n }\r\n\r\n checkParentNodeSelection(node: GridRow): void {\r\n if (!this.treeChecklistSelection) {\r\n return;\r\n }\r\n const nodeSelected = this.treeChecklistSelection.isSelected(node);\r\n const descAllSelected = this.descendantsAllSelected(node);\r\n if (nodeSelected && !descAllSelected) {\r\n this.treeChecklistSelection.deselect(node);\r\n } else if (!nodeSelected && descAllSelected) {\r\n this.treeChecklistSelection.select(node);\r\n }\r\n }\r\n\r\n /* Get the parent node of a node */\r\n getParentNode(node: GridRow): GridRow | null {\r\n const currentLevel = this.getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl!.dataNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl!.dataNodes[i];\r\n\r\n if (this.getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /** Whether all the descendants of the node are selected. */\r\n descendantsAllSelected(node: GridRow): boolean {\r\n if (!this.treeControl || !this.treeChecklistSelection) {\r\n return false;\r\n }\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected =\r\n descendants.length > 0 &&\r\n descendants.every((child) => {\r\n return this.treeChecklistSelection!.isSelected(child);\r\n });\r\n return descAllSelected;\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: GridRow): boolean {\r\n if (!this.treeControl || !this.treeChecklistSelection) {\r\n return false;\r\n }\r\n const descendants = this.treeControl.getDescendants(node);\r\n let result = descendants.some((child) => this.treeChecklistSelection!.isSelected(child));\r\n if (this.isMultipleSelection()) {\r\n result = result && !this.descendantsAllSelected(node);\r\n }\r\n return result;\r\n }\r\n\r\n private async constructHeader(): Promise<SmartTableHeader[]> {\r\n if (this.smartGrid!.gridModel.page.rows && this.smartGrid!.gridModel.page.rows.length) {\r\n await Promise.all(\r\n this.smartGrid!.gridModel.page.rows.map(async (gridRow: GridRow) => {\r\n let newUiActions = gridRow.actions?.filter(\r\n (uiAction: any) => !this.uiActionDescriptors.get(uiAction.code!)\r\n );\r\n\r\n if (newUiActions) {\r\n await Promise.all(\r\n newUiActions.map(async (uiAction: UiAction) => {\r\n let descriptor: UiActionDescriptor =\r\n await this.smartGrid!.uiActionDescriptorService?.getActionDescriptor(uiAction);\r\n if (!descriptor) {\r\n descriptor = {\r\n title: uiAction.code ?? 'CODE',\r\n color: 'primary',\r\n type: UiActionButtonType.NORMAL,\r\n };\r\n }\r\n this.uiActionDescriptors.set(uiAction.code!, descriptor);\r\n })\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n let orederedDescColumns = this.smartGrid!.gridModel.view!.orderedColumnNames.map(\r\n (propertyName: string) =>\r\n this.smartGrid!.gridModel.view!.descriptor!.columns!.find(\r\n (colDescriptor: GridColumnMeta) => colDescriptor.propertyName === propertyName\r\n )\r\n ).flatMap((f) => f ?? []);\r\n\r\n let header = await Promise.all(\r\n orederedDescColumns.map(async (descColumn: GridColumnMeta): Promise<SmartTableHeader> => {\r\n let customTableHeader = this.smartGrid!.tableConfig?.customSmartTableHeaders?.find(\r\n (header: SmartTableHeader) => header.propertyName === descColumn.propertyName\r\n );\r\n let filterExpressionOrderByItem = this.smartGrid!.gridModel.view?.orderByList?.find(\r\n (filterExpression: FilterExpressionOrderBy) =>\r\n filterExpression.propertyName === descColumn!.propertyName\r\n );\r\n let order;\r\n let orderNumber;\r\n if (filterExpressionOrderByItem) {\r\n order =\r\n filterExpressionOrderByItem.order === FilterExpressionOrderBy.OrderEnum.Asc\r\n ? SmartTableOrder.ASC\r\n : SmartTableOrder.DESC;\r\n if (this.service.gridModel.view!.orderByList.length > 1) {\r\n orderNumber = this.service.gridModel.view!.orderByList.findIndex(\r\n (filter: FilterExpressionOrderBy) => filter.propertyName === descColumn!.propertyName\r\n );\r\n orderNumber++;\r\n }\r\n }\r\n const orignalLabel = customTableHeader?.label ?? descColumn.label;\r\n let label = '';\r\n if (!descColumn.hideLabel) {\r\n if (this.smartGrid!.translateService) {\r\n label = await this.smartGrid!.translateService?.get(orignalLabel).toPromise();\r\n } else {\r\n label = orignalLabel;\r\n }\r\n }\r\n\r\n let properties = customTableHeader?.properties;\r\n if (!properties) {\r\n if (\r\n descColumn.typeClass === 'java.time.OffsetDateTime' ||\r\n descColumn.typeClass === 'java.time.LocalDateTime'\r\n ) {\r\n let dateFormat = descColumn.typeFormat ?? 'yyyy.MM.dd H:mm';\r\n properties = {\r\n type: SmartTableHeaderPropertyType.DATETIME,\r\n dateFormat,\r\n };\r\n } else if (descColumn.typeClass === 'java.time.LocalDate') {\r\n let dateFormat = descColumn.typeFormat ?? 'yyyy.MM.dd';\r\n properties = {\r\n type: SmartTableHeaderPropertyType.DATE,\r\n dateFormat,\r\n };\r\n } else if (descColumn.typeClass === 'java.time.LocalTime') {\r\n let dateFormat = descColumn.typeFormat ?? 'H:mm';\r\n properties = {\r\n type: SmartTableHeaderPropertyType.TIME,\r\n dateFormat,\r\n };\r\n } else if (descColumn.typeClass === 'java.lang.Boolean') {\r\n properties = {\r\n type: SmartTableHeaderPropertyType.CHECKBOX,\r\n };\r\n }\r\n }\r\n\r\n return {\r\n ...customTableHeader,\r\n label: label,\r\n propertyName: 'data.' + descColumn.propertyName,\r\n order,\r\n orderNumber,\r\n properties,\r\n style: descColumn.style,\r\n };\r\n })\r\n );\r\n\r\n let complement = this.smartGrid!.tableConfig?.customSmartTableHeaders?.filter(\r\n (tableHeader: SmartTableHeader) =>\r\n !header.some((tH: SmartTableHeader) => tH.propertyName.includes(tableHeader.propertyName))\r\n );\r\n\r\n if (complement) {\r\n header.push(...complement);\r\n }\r\n\r\n if (this.smartGrid!.options?.simpleButtons) {\r\n this.smartGrid!.options.simpleButtons.forEach((uiActionCode: string) => {\r\n header.push({\r\n label: '',\r\n propertyName: 'simple_buttons',\r\n buttons: [\r\n {\r\n type: SmartTableButtonType.RAISED,\r\n callback: this.execute.bind(this),\r\n // label: this.buttonTranslator({ code: uiActionCode }),\r\n args: [\r\n {\r\n code: uiActionCode,\r\n },\r\n ],\r\n color: 'primary',\r\n showButtonIf: (row: any) =>\r\n row.actions.some((item: any) => {\r\n return item.code === uiActionCode;\r\n }),\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n if (!header.some((header: SmartTableHeader) => header.propertyName === 'my_menu')) {\r\n if (this.smartGrid!.options?.rowUiActionType === GridUiActionType.POPUP_MENU) {\r\n let icon = this.gridMenuIcon ?? 'more_vert';\r\n header.push({\r\n label: '',\r\n propertyName: 'my_menu',\r\n buttons: [\r\n {\r\n type: SmartTableButtonType.MENU,\r\n callback: this.execute.bind(this),\r\n icon: icon,\r\n menuItemButtonsPropertyName: 'actions',\r\n translator: this.buttonTranslator.bind(this),\r\n args: [],\r\n },\r\n ],\r\n isSortable: false,\r\n });\r\n }\r\n }\r\n\r\n return header;\r\n }\r\n\r\n public async onChangePage(event: PageEvent): Promise<void> {\r\n let offset = event.pageSize * event.pageIndex;\r\n let limit = event.pageSize;\r\n this.pageIndex = event.pageIndex;\r\n await this.service.setPage(\r\n this.smartGrid!.gridModel.viewUuid!,\r\n this.smartGrid!.gridIdentifier,\r\n offset.toString(),\r\n limit.toString()\r\n );\r\n }\r\n\r\n private async execute(args: any[], row: any, uiAction: any): Promise<void> {\r\n let _uiAction: UiAction;\r\n\r\n if (!uiAction) {\r\n uiAction = row.actions.filter((action: UiAction) => action.code === args[0].code)[0];\r\n }\r\n\r\n _uiAction = { ...uiAction };\r\n if (_uiAction.disabled) {\r\n return;\r\n }\r\n _uiAction.params = {\r\n ...uiAction.params,\r\n model: row,\r\n };\r\n\r\n let uiActionModel: any = {\r\n serviceToUse: this.smartGrid!.serviceToUse,\r\n uiAction: _uiAction,\r\n };\r\n\r\n if (this.smartGrid!.options?.uiActionModelCallback) {\r\n uiActionModel = this.smartGrid!.options!.uiActionModelCallback(uiActionModel);\r\n }\r\n\r\n this.smartGrid!.uiActionService.uiActionModel = uiActionModel;\r\n this.smartGrid!.uiActionService.execute(_uiAction, {\r\n widgetId: this.smartGrid!.gridIdentifier,\r\n nodeId: row.id,\r\n });\r\n }\r\n\r\n private buttonTranslator(uiAction: UiAction): UiActionDescriptor {\r\n let desc = this.uiActionDescriptors.get(uiAction.code!);\r\n if (!desc) {\r\n desc = {\r\n title: uiAction.code!,\r\n type: UiActionButtonType.FLAT,\r\n color: 'primary',\r\n };\r\n }\r\n if (uiAction.descriptor) {\r\n this.uiActionDescriptorService.mergeActionDescriptorIntoClient(uiAction.descriptor!, desc);\r\n }\r\n return desc;\r\n }\r\n\r\n public layoutDef(): typeof SmartLayoutDef {\r\n return SmartLayoutDef;\r\n }\r\n\r\n public onClick(gridRow: GridRow): void {\r\n this.handleOnClick(gridRow);\r\n }\r\n public onDoubleClick(gridRow: GridRow): void {\r\n this.handleOnClick(gridRow);\r\n }\r\n\r\n private handleOnClick(gridRow: GridRow): void {\r\n let defaultRowAction: UiAction | undefined;\r\n if (this.service.gridModel?.defaultRowActions) {\r\n for (let index = 0; index < this.service.gridModel.defaultRowActions.length; index++) {\r\n const defaultRowActionCode = this.service.gridModel.defaultRowActions[index];\r\n\r\n defaultRowAction = gridRow.actions.find(\r\n (uiAction: UiAction) => uiAction.code === defaultRowActionCode\r\n );\r\n if (defaultRowAction) {\r\n this.execute([], gridRow, defaultRowAction);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public async onSelect(rowId: any): Promise<void> {\r\n this.isBlocked = true;\r\n if (this.dev) {\r\n this.render();\r\n } else {\r\n const row = this.service.gridModel.page.rows?.find(\r\n (gridRow: GridRow) => gridRow.id === rowId\r\n );\r\n const viewContextChange = await this.service.select(this.smartGrid!, row!);\r\n this.smartGrid!.viewContextService.handleChanges(viewContextChange.changes);\r\n this.refresh();\r\n }\r\n }\r\n\r\n private async onSelectAll(selected: boolean): Promise<void> {\r\n this.isBlocked = true;\r\n\r\n const viewContextChange = await this.service.selectAll(this.smartGrid!, selected);\r\n this.smartGrid!.viewContextService.handleChanges(viewContextChange.changes);\r\n\r\n this.refresh();\r\n }\r\n\r\n private async onSelectRows(\r\n selectedIds: (string | undefined)[],\r\n unselectedIds: (string | undefined)[]\r\n ): Promise<void> {\r\n this.isBlocked = true;\r\n if (this.dev) {\r\n this.render();\r\n } else {\r\n let selected: string[] = selectedIds.filter((item): item is string => item !== undefined);\r\n let unselected: string[] = unselectedIds.filter((item): item is string => item !== undefined);\r\n const viewContextChange = await this.service.selectRows(\r\n this.smartGrid!,\r\n selected,\r\n unselected\r\n );\r\n this.smartGrid!.viewContextService.handleChanges(viewContextChange.changes);\r\n this.refresh();\r\n }\r\n }\r\n\r\n editColumns(): void {\r\n let dialogData: SmartDialogData = {\r\n content: {\r\n title: 'Oszlopok testreszabása',\r\n },\r\n size: {},\r\n customComponent: TableLayoutDefinerComponent,\r\n customComponentInputs: {\r\n config: {\r\n uuid: this.uuid,\r\n identifier: this.smartGrid!.gridIdentifier,\r\n view: this.service.gridModel.view,\r\n service: this.service,\r\n },\r\n },\r\n };\r\n this.dialog.open(TableLayoutDefinerComponent, { data: dialogData });\r\n }\r\n}\r\n","<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\r\n <div class=\"smart-grid-toolbar\">\r\n <smart-ui-action-toolbar #toolbar [id]=\"'grid_not_initialized'\"></smart-ui-action-toolbar>\r\n <button\r\n (click)=\"editColumns()\"\r\n mat-mini-fab\r\n color=\"text-primary\"\r\n *ngIf=\"smartGrid.showEditColumns\"\r\n >\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Columns\" class=\"smart-grid-edit-icon\"\r\n >view_columns</mat-icon\r\n >\r\n </button>\r\n </div>\r\n <!-- <div [ngClass]=\"isBlocked ? 'blocked' : ''\"></div> -->\r\n <div class=\"smartGridContent\">\r\n <div>\r\n <div *ngIf=\"smartGrid.showResultCount\">\r\n <div class=\"smartGrid-data-number\">\r\n {{ smartGrid.gridModel.totalRowCount }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"smart-grid-table-container\">\r\n <ng-template #table></ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"smartGrid.layoutDef === layoutDef().EXPANDABLE\">\r\n <smart-expandable-section\r\n #gridExpandableSection\r\n *ngFor=\"let expandableSection of expandableSections\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().CARD\"\r\n class=\"cards-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <app-smart-grid-card\r\n class=\"smartGrid-card-container\"\r\n *ngFor=\"let task of smartGrid.gridModel.page.rows\"\r\n [item]=\"task\"\r\n [smartGrid]=\"smartGrid\"\r\n [onSelect]=\"onSelect.bind(this)\"\r\n ></app-smart-grid-card>\r\n </div>\r\n <div\r\n *ngIf=\"smartGrid.layoutDef === layoutDef().TREE && treeControl\"\r\n class=\"tree-container\"\r\n [ngStyle]=\"{\r\n 'grid-template-columns':\r\n smartGrid.numberOfColumn !== undefined\r\n ? 'repeat(' + smartGrid.numberOfColumn + ', 1fr)'\r\n : ''\r\n }\"\r\n >\r\n <mat-tree [dataSource]=\"treeDataSource!\" [treeControl]=\"treeControl!\">\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n matTreeNodePaddingIndent=\"24\"\r\n >\r\n <button mat-icon-button disabled class=\"tree-button\"></button>\r\n <mat-checkbox\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"treeChecklistSelection?.isSelected(node)\"\r\n (change)=\"treeNodeSelectionToggle(node)\"\r\n >{{ getTreeItem(node) }}</mat-checkbox\r\n >\r\n </mat-tree-node>\r\n\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodePadding\r\n matTreeNodePaddingIndent=\"24\"\r\n >\r\n <button\r\n mat-icon-button\r\n matTreeNodeToggle\r\n class=\"tree-button\"\r\n [attr.aria-label]=\"'Toggle ' + node.item\"\r\n >\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl!.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox\r\n [checked]=\"treeChecklistSelection?.isSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"treeNodeSelectionToggle(node)\"\r\n >{{ getTreeItem(node) }}</mat-checkbox\r\n >\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator && !treeControl\"\r\n #paginator\r\n [length]=\"length\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n (page)=\"onChangePage($event)\"\r\n ></mat-paginator>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SmartExpandableSectionService {\r\n\r\n constructor() { }\r\n}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ExpandableSectionComponent } from './expandable-section.component';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { ComponentFactoryServiceModule } from '../component-factory-service/projects';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\n\r\n@NgModule({\r\n declarations: [ExpandableSectionComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n MatExpansionModule,\r\n ComponentFactoryServiceModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n SmartIconModule,\r\n ],\r\n exports: [ExpandableSectionComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class SmartExpandableSectionModule {}\r\n","/*\r\n * Public API Surface of smart-expandable-section\r\n */\r\n\r\nexport * from './smart-expandable-section.service';\r\nexport * from './expandable-section.component';\r\nexport * from './expandable-section.model';\r\nexport * from './smart-expandable-section.module';\r\n","import { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\nimport { ExpandableGridComponent } from './components/expandable-grid/expandable-grid.component';\r\nimport { SmartGridCardComponent } from './components/smart-grid-card/smart-grid-card.component';\r\nimport { SmartGridComponent } from './smart-grid.component';\r\n\r\nimport { TableLayoutDefinerComponent } from './components/table-layout-definer/table-layout-definer.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport { SmarttableModule } from '../smart-table/projects';\r\nimport { SmartExpandableSectionModule } from '../smart-expandable-section/projects';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartGridComponent,\r\n SmartGridCardComponent,\r\n ExpandableGridComponent,\r\n TableLayoutDefinerComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n SmartIconModule,\r\n SmarttableModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatPaginatorModule,\r\n MatTreeModule,\r\n MatCheckboxModule,\r\n SmartExpandableSectionModule,\r\n DragDropModule,\r\n MatSelectModule,\r\n SmartViewContextModule,\r\n ],\r\n exports: [SmartGridComponent],\r\n providers: [{ provide: 'gridMenuIcon', useValue: 'more_vert' }],\r\n})\r\nexport class SmartGridModule {}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\n\r\n/**\r\n * Custom HttpParameterCodec\r\n * Workaround for https://github.com/angular/angular/issues/18261\r\n */\r\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\r\n encodeKey(k: string): string {\r\n return encodeURIComponent(k);\r\n }\r\n encodeValue(v: string): string {\r\n return encodeURIComponent(v);\r\n }\r\n decodeKey(k: string): string {\r\n return decodeURIComponent(k);\r\n }\r\n decodeValue(v: string): string {\r\n return decodeURIComponent(v);\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\nimport { Param } from './param';\r\n\r\nexport interface ConfigurationParameters {\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n /**\r\n * Takes care of encoding query- and form-parameters.\r\n */\r\n encoder?: HttpParameterCodec;\r\n /**\r\n * Override the default method for encoding path parameters in various\r\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\r\n * <p>\r\n * See {@link README.md} for more details\r\n * </p>\r\n */\r\n encodeParam?: (param: Param) => string;\r\n /**\r\n * The keys are the names in the securitySchemes section of the OpenAPI\r\n * document. They should map to the value used for authentication\r\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\r\n */\r\n credentials?: {[ key: string ]: string | (() => string | undefined)};\r\n}\r\n\r\nexport class Configuration {\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n /**\r\n * Takes care of encoding query- and form-parameters.\r\n */\r\n encoder?: HttpParameterCodec;\r\n /**\r\n * Encoding of various path parameter\r\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\r\n * <p>\r\n * See {@link README.md} for more details\r\n * </p>\r\n */\r\n encodeParam: (param: Param) => string;\r\n /**\r\n * The keys are the names in the securitySchemes section of the OpenAPI\r\n * document. They should map to the value used for authentication\r\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\r\n */\r\n credentials: {[ key: string ]: string | (() => string | undefined)};\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n this.encoder = configurationParameters.encoder;\r\n if (configurationParameters.encodeParam) {\r\n this.encodeParam = configurationParameters.encodeParam;\r\n }\r\n else {\r\n this.encodeParam = param => this.defaultEncodeParam(param);\r\n }\r\n if (configurationParameters.credentials) {\r\n this.credentials = configurationParameters.credentials;\r\n }\r\n else {\r\n this.credentials = {};\r\n }\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const type = accepts.find((x: string) => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n\r\n public lookupCredential(key: string): string | undefined {\r\n const value = this.credentials[key];\r\n return typeof value === 'function'\r\n ? value()\r\n : value;\r\n }\r\n\r\n private defaultEncodeParam(param: Param): string {\r\n // This implementation exists as fallback for missing configuration\r\n // and for backwards compatibility to older typescript-angular generator versions.\r\n // It only works for the 'simple' parameter style.\r\n // Date-handling only works for the 'date-time' format.\r\n // All other styles and Date-formats are probably handled incorrectly.\r\n //\r\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\r\n\r\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\r\n ? (param.value as Date).toISOString()\r\n : param.value;\r\n\r\n return encodeURIComponent(String(value));\r\n }\r\n}\r\n","/**\r\n * Uitree Api\r\n * Tree domain objects\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n/* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpParams,\r\n HttpResponse,\r\n HttpEvent,\r\n HttpParameterCodec,\r\n HttpContext,\r\n} from '@angular/common/http';\r\nimport { CustomHttpParameterCodec } from '../encoder';\r\nimport { Observable } from 'rxjs';\r\n\r\n// @ts-ignore\r\nimport { SmartTreeNode } from '../..';\r\n// @ts-ignore\r\nimport { UiAction, UiActionRequest, ViewContextChange } from '../../../view-context/api';\r\n\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TreeService {\r\n protected basePath = 'http://localhost';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n public encoder: HttpParameterCodec;\r\n\r\n constructor(\r\n protected httpClient: HttpClient,\r\n @Optional() @Inject(BASE_PATH) basePath: string | string[],\r\n @Optional() configuration: Configuration\r\n ) {\r\n if (configuration) {\r\n this.configuration = configuration;\r\n }\r\n if (typeof this.configuration.basePath !== 'string') {\r\n if (Array.isArray(basePath) && basePath.length > 0) {\r\n basePath = basePath[0];\r\n }\r\n\r\n if (typeof basePath !== 'string') {\r\n basePath = this.basePath;\r\n }\r\n this.configuration.basePath = basePath;\r\n }\r\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\r\n }\r\n\r\n // @ts-ignore\r\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\r\n if (typeof value === 'object' && value instanceof Date === false) {\r\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\r\n } else {\r\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\r\n }\r\n return httpParams;\r\n }\r\n\r\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\r\n if (value == null) {\r\n return httpParams;\r\n }\r\n\r\n if (typeof value === 'object') {\r\n if (Array.isArray(value)) {\r\n (value as any[]).forEach(\r\n (elem) => (httpParams = this.addToHttpParamsRecursive(httpParams, elem, key))\r\n );\r\n } else if (value instanceof Date) {\r\n if (key != null) {\r\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\r\n } else {\r\n throw Error('key may not be null if value is Date');\r\n }\r\n } else {\r\n Object.keys(value).forEach(\r\n (k) =>\r\n (httpParams = this.addToHttpParamsRecursive(\r\n httpParams,\r\n value[k],\r\n key != null ? `${key}.${k}` : k\r\n ))\r\n );\r\n }\r\n } else if (key != null) {\r\n httpParams = httpParams.append(key, value);\r\n } else {\r\n throw Error('key may not be null if value is not object or array');\r\n }\r\n return httpParams;\r\n }\r\n\r\n /**\r\n * Collapses the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the collapsed SmartTreeNode.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public collapseNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<SmartTreeNode>;\r\n public collapseNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<SmartTreeNode>>;\r\n public collapseNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<SmartTreeNode>>;\r\n public collapseNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling collapseNode.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error('Required parameter treeId was null or undefined when calling collapseNode.');\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error('Required parameter nodeId was null or undefined when calling collapseNode.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/collapse`;\r\n return this.httpClient.request<SmartTreeNode>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Collapses the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the collapsed SmartTreeNode.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public collapseNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public collapseNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public collapseNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public collapseNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling collapseNode2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling collapseNode2.'\r\n );\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error(\r\n 'Required parameter nodeId was null or undefined when calling collapseNode2.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/collapse`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Expands the given treenode. The viewcontext will hold the appropriate instruction for the ui, if any. Returns the expanded SmartTreeNode.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public expandNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<SmartTreeNode>;\r\n public expandNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<SmartTreeNode>>;\r\n public expandNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<SmartTreeNode>>;\r\n public expandNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error('Required parameter viewUuid was null or undefined when calling expandNode.');\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error('Required parameter treeId was null or undefined when calling expandNode.');\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error('Required parameter nodeId was null or undefined when calling expandNode.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/expand`;\r\n return this.httpClient.request<SmartTreeNode>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Expands the given treenode. The viewcontext will hold the appropriate instruction for the ui, if any. Returns the expanded SmartTreeNode.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public expandNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public expandNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public expandNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public expandNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling expandNode2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error('Required parameter treeId was null or undefined when calling expandNode2.');\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error('Required parameter nodeId was null or undefined when calling expandNode2.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/expand`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Query the child nodes of the tree\\'s node given in the parameter\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getChildrenNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<Array<SmartTreeNode>>;\r\n public getChildrenNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<Array<SmartTreeNode>>>;\r\n public getChildrenNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<Array<SmartTreeNode>>>;\r\n public getChildrenNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling getChildrenNodes.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling getChildrenNodes.'\r\n );\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error(\r\n 'Required parameter nodeId was null or undefined when calling getChildrenNodes.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}`;\r\n return this.httpClient.request<Array<SmartTreeNode>>(\r\n 'get',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Query the child nodes of the tree\\'s node given in the parameter\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getChildrenNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public getChildrenNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public getChildrenNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public getChildrenNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling getChildrenNodes2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling getChildrenNodes2.'\r\n );\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error(\r\n 'Required parameter nodeId was null or undefined when calling getChildrenNodes2.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'get',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Query all tree nodes.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getMainActions(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<Array<UiAction>>;\r\n public getMainActions(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<Array<UiAction>>>;\r\n public getMainActions(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<Array<UiAction>>>;\r\n public getMainActions(\r\n viewUuid: string,\r\n treeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling getMainActions.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling getMainActions.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/action`;\r\n return this.httpClient.request<Array<UiAction>>(\r\n 'get',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Query all tree nodes.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getMainActions2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public getMainActions2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public getMainActions2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public getMainActions2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling getMainActions2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling getMainActions2.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/action`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'get',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Query all tree nodes.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getRootNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<Array<SmartTreeNode>>;\r\n public getRootNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<Array<SmartTreeNode>>>;\r\n public getRootNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<Array<SmartTreeNode>>>;\r\n public getRootNodes(\r\n viewUuid: string,\r\n treeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling getRootNodes.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error('Required parameter treeId was null or undefined when calling getRootNodes.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}`;\r\n return this.httpClient.request<Array<SmartTreeNode>>(\r\n 'get',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Query all tree nodes.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public getRootNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public getRootNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public getRootNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public getRootNodes2(\r\n viewUuid: string,\r\n treeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling getRootNodes2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling getRootNodes2.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'get',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Performs an action on the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the SmartTreeNode which the action was performed on.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param body\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public performAction(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<Array<SmartTreeNode>>;\r\n public performAction(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<Array<SmartTreeNode>>>;\r\n public performAction(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<Array<SmartTreeNode>>>;\r\n public performAction(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling performAction.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling performAction.'\r\n );\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error(\r\n 'Required parameter nodeId was null or undefined when calling performAction.'\r\n );\r\n }\r\n if (body === null || body === undefined) {\r\n throw new Error('Required parameter body was null or undefined when calling performAction.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = ['application/json'];\r\n const httpContentTypeSelected: string | undefined =\r\n this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/action`;\r\n return this.httpClient.request<Array<SmartTreeNode>>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: body,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Performs an action on the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the SmartTreeNode which the action was performed on.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param body\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public performAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public performAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public performAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public performAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n body: UiActionRequest,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling performAction2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling performAction2.'\r\n );\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error(\r\n 'Required parameter nodeId was null or undefined when calling performAction2.'\r\n );\r\n }\r\n if (body === null || body === undefined) {\r\n throw new Error('Required parameter body was null or undefined when calling performAction2.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = ['application/json'];\r\n const httpContentTypeSelected: string | undefined =\r\n this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/action`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: body,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Performs an action on the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the SmartTreeNode which the action was performed on.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param body\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public performMainAction(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<Array<SmartTreeNode>>;\r\n public performMainAction(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<Array<SmartTreeNode>>>;\r\n public performMainAction(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<Array<SmartTreeNode>>>;\r\n public performMainAction(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling performMainAction.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling performMainAction.'\r\n );\r\n }\r\n if (body === null || body === undefined) {\r\n throw new Error(\r\n 'Required parameter body was null or undefined when calling performMainAction.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = ['application/json'];\r\n const httpContentTypeSelected: string | undefined =\r\n this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/action`;\r\n return this.httpClient.request<Array<SmartTreeNode>>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: body,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Performs an action on the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the SmartTreeNode which the action was performed on.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param body\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public performMainAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public performMainAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public performMainAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public performMainAction2(\r\n viewUuid: string,\r\n treeId: string,\r\n body: UiActionRequest,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling performMainAction2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error(\r\n 'Required parameter treeId was null or undefined when calling performMainAction2.'\r\n );\r\n }\r\n if (body === null || body === undefined) {\r\n throw new Error(\r\n 'Required parameter body was null or undefined when calling performMainAction2.'\r\n );\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = ['application/json'];\r\n const httpContentTypeSelected: string | undefined =\r\n this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/action`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: body,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Collapses the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the collapsed SmartTreeNode.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public selectNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<SmartTreeNode>;\r\n public selectNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<SmartTreeNode>>;\r\n public selectNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<SmartTreeNode>>;\r\n public selectNode(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error('Required parameter viewUuid was null or undefined when calling selectNode.');\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error('Required parameter treeId was null or undefined when calling selectNode.');\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error('Required parameter nodeId was null or undefined when calling selectNode.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/select`;\r\n return this.httpClient.request<SmartTreeNode>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Collapses the given treenode. The viewcontext will hold the appropriate instruction for the ui. Returns the collapsed SmartTreeNode.\r\n * @param viewUuid\r\n * @param treeId\r\n * @param nodeId\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public selectNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public selectNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public selectNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public selectNode2(\r\n viewUuid: string,\r\n treeId: string,\r\n nodeId: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error(\r\n 'Required parameter viewUuid was null or undefined when calling selectNode2.'\r\n );\r\n }\r\n if (treeId === null || treeId === undefined) {\r\n throw new Error('Required parameter treeId was null or undefined when calling selectNode2.');\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error('Required parameter nodeId was null or undefined when calling selectNode2.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = ['application/json'];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/tree2/${this.configuration.encodeParam({\r\n name: 'viewUuid',\r\n value: viewUuid,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: 'uuid',\r\n })}/${this.configuration.encodeParam({\r\n name: 'treeId',\r\n value: treeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/${this.configuration.encodeParam({\r\n name: 'nodeId',\r\n value: nodeId,\r\n in: 'path',\r\n style: 'simple',\r\n explode: false,\r\n dataType: 'string',\r\n dataFormat: undefined,\r\n })}/select`;\r\n return this.httpClient.request<ViewContextChange>(\r\n 'post',\r\n `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress,\r\n }\r\n );\r\n }\r\n}\r\n","import { UiAction } from '../view-context/api';\r\n\r\nexport interface SmartTreeModel {\r\n // nem temporális storage-ba tenni a UI bean-eket\r\n identifier?: string;\r\n rootNodes: Array<SmartTreeNode>;\r\n selectedNodeIdentifier?: string;\r\n navigationUrlsByNodeType?: Array<SmartTreeNodeType>;\r\n}\r\n\r\nexport interface SmartTreeNode {\r\n icon?: string;\r\n caption: string;\r\n classes?: Array<string>;\r\n hasChildren: boolean;\r\n childrenNodes: Array<SmartTreeNode>;\r\n expanded: boolean;\r\n selected: boolean;\r\n childrenNodesLoaded: boolean;\r\n level: number;\r\n shortDescription?: string;\r\n identifier?: string;\r\n objectUri?: string;\r\n nodeType: string;\r\n button?: SmartTreeNodeButton;\r\n actions?: Array<UiAction>;\r\n}\r\n\r\nexport interface SmartTreeNodeButton {\r\n icon?: string;\r\n label?: string;\r\n type: SmartTreeNodeButtonType;\r\n menuItemButtons?: SmartTreeNodeButton[];\r\n callback?: (...args: any[]) => any;\r\n args?: any[];\r\n}\r\n\r\nexport enum SmartTreeNodeButtonType {\r\n MENU = 'MENU',\r\n ICON = 'ICON',\r\n NORMAL = 'NORMAL',\r\n}\r\n\r\nexport interface SmartTreeNodeType {\r\n nodeType: string;\r\n navigationUrl: any[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { SmartTreeModel, SmartTreeNode } from './smarttree.model';\r\nimport { SmarttreeServiceDescriptor } from './smarttree.service.interface';\r\nimport { UiActionModel } from '../view-context/smart-ui-action/ui-action.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmarttreeService<T> implements SmarttreeServiceDescriptor<T> {\r\n errorMessage: string = 'The tree is currently unavailable';\r\n\r\n treeFromBackend: T | undefined;\r\n smartTreeModel: SmartTreeModel | undefined;\r\n smartTreeModelChanged: Subject<SmartTreeModel> = new Subject();\r\n\r\n protected _uiActionModels: UiActionModel[] | undefined;\r\n uiActionModelsChanged: Subject<void> = new Subject();\r\n\r\n get uiActionModels() {\r\n return this._uiActionModels;\r\n }\r\n set uiActionModels(uiActionModels: UiActionModel[] | undefined) {\r\n this._uiActionModels = uiActionModels;\r\n this.uiActionModelsChanged.next();\r\n }\r\n\r\n constructor() {}\r\n\r\n async initialize(): Promise<void> {\r\n await this.downloadTree().then((rootNodes: T) => {\r\n this.treeFromBackend = rootNodes;\r\n this.syncTree();\r\n });\r\n }\r\n async downloadTree(): Promise<T> {\r\n throw new Error('downloadTree method not implemented.');\r\n }\r\n async downloadChildren(parentNode: SmartTreeNode): Promise<T> {\r\n throw new Error('downloadChildren method not implemented.');\r\n }\r\n onTreeNodeClick(treeNode: SmartTreeNode): void {\r\n throw new Error('onTreeNodeClick method not implemented.');\r\n }\r\n onTreeNodeOpen(treeNode: SmartTreeNode): void {\r\n throw new Error('onTreeNodeOpen method not implemented.');\r\n }\r\n syncTree(): void {\r\n throw new Error('syncTree method not implemented.');\r\n }\r\n}\r\n","import { Inject, Injectable, Injector } from '@angular/core';\r\nimport {\r\n SmartViewContextService,\r\n UiAction,\r\n UiActionAdditionalParams,\r\n UiActionDescriptor,\r\n UiActionDescriptorService,\r\n UiActionModel,\r\n UiActionRequest,\r\n UiActionService,\r\n UiActionSpecificDemandResponse,\r\n UseUiAction,\r\n} from '../view-context/projects';\r\nimport { TreeService } from './tree-api/api/tree.service';\r\nimport { SmartTreeNode, SmartTreeNodeButtonType } from './smarttree.model';\r\nimport { SmarttreeService } from './smarttree.service';\r\nimport { Subject } from 'rxjs';\r\nimport { deepEqual } from 'fast-equals';\r\n\r\nexport interface SmarttreeConfiguration {\r\n treeid: string;\r\n pageName: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmarttreeGenericService\r\n extends SmarttreeService<SmartTreeNode[]>\r\n implements UseUiAction\r\n{\r\n // UseUiAction properties\r\n submit: Subject<void> = new Subject();\r\n reSubscribeToChange: Subject<void> = new Subject();\r\n\r\n uiActionDescriptors: Map<string, UiActionDescriptor> = new Map();\r\n\r\n selectedNode?: SmartTreeNode;\r\n\r\n protected viewContext!: SmartViewContextService;\r\n private service!: TreeService;\r\n\r\n private uiActionDescriptorService!: UiActionDescriptorService;\r\n private uiActionService!: UiActionService;\r\n\r\n constructor(\r\n inject: Injector,\r\n @Inject('pageName') protected pageName: string,\r\n @Inject('treeId') protected treeId: string,\r\n @Inject('treeMenuIcon') private treeMenuIcon?: string\r\n ) {\r\n super();\r\n\r\n if (!this.treeMenuIcon) {\r\n this.treeMenuIcon = inject.get('treeMenuIcon');\r\n }\r\n this.configureTree({\r\n pageName: this.pageName,\r\n treeid: this.treeId,\r\n });\r\n\r\n this.viewContext = inject.get(SmartViewContextService);\r\n this.service = inject.get(TreeService);\r\n\r\n this.uiActionService = inject.get(UiActionService);\r\n this.uiActionDescriptorService = inject.get(UiActionDescriptorService);\r\n\r\n this.initialize();\r\n }\r\n\r\n constructUiActionModels(uiActions: UiAction[]): void {\r\n this.uiActionModels = uiActions.map((uiAction: UiAction) => {\r\n return {\r\n serviceToUse: this,\r\n uiAction,\r\n };\r\n });\r\n }\r\n\r\n configureTree(configuration: SmarttreeConfiguration): void {\r\n this.treeId = configuration.treeid;\r\n this.pageName = configuration.pageName;\r\n }\r\n\r\n override async initialize(): Promise<void> {\r\n if (this.viewContext.hasViewContextUuid()) {\r\n await this.downloadTree().then((rootNodes: SmartTreeNode[]) => {\r\n if (!deepEqual(this.treeFromBackend, rootNodes)) {\r\n this.treeFromBackend = rootNodes;\r\n this.syncTree();\r\n }\r\n });\r\n }\r\n }\r\n override async downloadTree(): Promise<SmartTreeNode[]> {\r\n let uuid = this.viewContext.getUuidOfPage(this.pageName!);\r\n const rootNodes = await this.viewContext.handlePerformActionResponse(\r\n await this.service.getRootNodes2(uuid, this.treeId!).toPromise()\r\n );\r\n const uiActions = await this.viewContext.handlePerformActionResponse(\r\n await this.service.getMainActions2(uuid, this.treeId!).toPromise()\r\n );\r\n\r\n if (uiActions) {\r\n this.constructUiActionModels(uiActions);\r\n }\r\n\r\n if (!rootNodes) {\r\n throw new Error('RootNodes are undefined!');\r\n }\r\n return rootNodes;\r\n }\r\n override async downloadChildren(parentNode: SmartTreeNode): Promise<SmartTreeNode[]> {\r\n let uuid = this.viewContext.getUuidOfPage(this.pageName!);\r\n const children = await this.viewContext.handlePerformActionResponse(\r\n await this.service.getChildrenNodes2(uuid, this.treeId!, parentNode.identifier!).toPromise()\r\n );\r\n if (!children) {\r\n throw new Error(`Node with identifier ${parentNode.identifier} does not have children.`);\r\n }\r\n\r\n return children;\r\n }\r\n override async onTreeNodeOpen(treeNode: SmartTreeNode): Promise<void> {\r\n let viewUuid = this.viewContext.getUuidOfPage(this.pageName!);\r\n\r\n if (treeNode?.expanded) {\r\n let tempTreeNode = await this.viewContext.handlePerformActionResponse(\r\n await this.service.collapseNode2(viewUuid, this.treeId!, treeNode.identifier!).toPromise()\r\n );\r\n treeNode = tempTreeNode!;\r\n } else if (!treeNode?.expanded) {\r\n let tempTreeNode = await this.viewContext.handlePerformActionResponse(\r\n await this.service.expandNode2(viewUuid, this.treeId!, treeNode?.identifier!).toPromise()\r\n );\r\n treeNode = tempTreeNode!;\r\n }\r\n let node = this.deepSearchTreeNode(treeNode?.identifier!, this.treeFromBackend!);\r\n\r\n node!.expanded = treeNode?.expanded;\r\n node!.childrenNodes = treeNode?.childrenNodes;\r\n this.syncTree();\r\n }\r\n override onTreeNodeClick(treeNode: SmartTreeNode): void {\r\n this.selectFolder(treeNode.identifier!, treeNode);\r\n }\r\n async selectFolder(folderUri: string, treeNode?: SmartTreeNode): Promise<void> {\r\n let viewUuid = this.viewContext.getUuidOfPage(this.pageName!);\r\n\r\n let updatedTreeNode = await this.viewContext.handlePerformActionResponse(\r\n await this.service.selectNode2(viewUuid, this.treeId!, treeNode!.identifier!).toPromise()\r\n );\r\n if (this.selectedNode) {\r\n this.selectedNode.selected = false;\r\n }\r\n this.selectedNode = updatedTreeNode;\r\n let node = this.deepSearchTreeNode(updatedTreeNode?.identifier!, this.treeFromBackend!);\r\n if (!node) {\r\n throw Error('Tree node does not exist');\r\n }\r\n node.expanded = updatedTreeNode?.expanded!;\r\n node.childrenNodes = updatedTreeNode?.childrenNodes!;\r\n node.selected = updatedTreeNode?.selected!;\r\n treeNode = updatedTreeNode;\r\n this.syncTree();\r\n //this.viewContext.getAndSyncViewContext(this.viewContext.getViewContextUuid());\r\n }\r\n\r\n async updateTreeOnTheFly(): Promise<void> {\r\n await this.initialize();\r\n }\r\n\r\n override async syncTree(): Promise<void> {\r\n if (this.treeFromBackend === null || this.treeFromBackend === undefined) {\r\n //throw new Error('There is no treeFromBackend available!');\r\n console.warn('There is no treeFromBackend available in syncTree!');\r\n return;\r\n }\r\n await this.cacheActionDesciptors(this.getAllNodes(this.treeFromBackend!));\r\n\r\n if (!this.smartTreeModel) {\r\n this.smartTreeModel = {\r\n rootNodes: [],\r\n };\r\n }\r\n\r\n let smartTreeNodes: SmartTreeNode[] = this.createButtonsForTreeNodes(this.treeFromBackend);\r\n this.smartTreeModel = undefined;\r\n\r\n this.smartTreeModel = {\r\n rootNodes: [],\r\n };\r\n this.smartTreeModelChanged.next(this.smartTreeModel);\r\n\r\n this.smartTreeModel.rootNodes = smartTreeNodes;\r\n\r\n this.findSelected(this.smartTreeModel.rootNodes);\r\n\r\n this.smartTreeModelChanged.next(this.smartTreeModel);\r\n }\r\n\r\n deepSearchTreeNode(identifier: string, nodes: SmartTreeNode[]): SmartTreeNode | undefined {\r\n let treeNode: SmartTreeNode | undefined;\r\n for (let index = 0; index < nodes.length; index++) {\r\n const node = nodes[index];\r\n\r\n if (node.identifier === identifier) {\r\n treeNode = node;\r\n break;\r\n }\r\n if (node.childrenNodes && node.childrenNodes.length) {\r\n treeNode = this.deepSearchTreeNode(identifier, node.childrenNodes);\r\n if (treeNode) {\r\n break;\r\n }\r\n }\r\n }\r\n return treeNode;\r\n }\r\n\r\n findSelected(nodes: SmartTreeNode[]): void {\r\n return nodes.forEach((node: SmartTreeNode) => {\r\n if (node.selected) {\r\n this.selectedNode = node;\r\n return;\r\n } else if (node.childrenNodes && node.childrenNodes.length) {\r\n return this.findSelected(node.childrenNodes);\r\n }\r\n });\r\n }\r\n\r\n createButtonsForTreeNodes(nodes: SmartTreeNode[]): SmartTreeNode[] {\r\n let icon = this.treeMenuIcon ?? 'more_vert';\r\n\r\n nodes.map((node: SmartTreeNode) => {\r\n node.button = node.actions?.length\r\n ? {\r\n type: SmartTreeNodeButtonType.MENU,\r\n icon: icon,\r\n menuItemButtons: node.actions.map((action: UiAction) => {\r\n return {\r\n type: SmartTreeNodeButtonType.NORMAL,\r\n label: this.getLabelByAction(action),\r\n callback: this.doAction.bind(this),\r\n args: [action, node.identifier],\r\n };\r\n }),\r\n }\r\n : undefined;\r\n node.icon = 'Folders';\r\n if (node.childrenNodes) {\r\n node.childrenNodes = this.createButtonsForTreeNodes(node.childrenNodes);\r\n }\r\n });\r\n return nodes;\r\n }\r\n\r\n async doAction(args: any[]): Promise<void> {\r\n let uiAction: UiAction = args[0];\r\n let nodeUuid: string = args[1];\r\n\r\n if (uiAction.params) {\r\n uiAction.params['nodeUuid'] = nodeUuid;\r\n } else {\r\n uiAction.params = {\r\n nodeUuid: nodeUuid,\r\n };\r\n }\r\n\r\n let uiActionModel: UiActionModel = {\r\n serviceToUse: this,\r\n uiAction,\r\n };\r\n this.uiActionService.uiActionModel = uiActionModel;\r\n this.uiActionService.execute(uiAction);\r\n }\r\n\r\n protected getAllNodes(nodes: SmartTreeNode[]): SmartTreeNode[] {\r\n return nodes.flatMap((n) => [n, ...this.getAllNodes(n.childrenNodes)]);\r\n }\r\n\r\n protected async cacheActionDesciptors(nodes: SmartTreeNode[]) {\r\n let newUiActions = new Set<UiAction>();\r\n nodes.forEach((node) => {\r\n node.actions\r\n ?.filter((uiAction: UiAction) => !this.uiActionDescriptors.get(uiAction.code!))\r\n .forEach((action) => newUiActions.add(action));\r\n });\r\n for (let action of newUiActions) {\r\n if (!this.uiActionDescriptors.get(action.code!)) {\r\n let descriptor = await this.uiActionDescriptorService.getActionDescriptor(action);\r\n this.uiActionDescriptors.set(action.code!, descriptor);\r\n }\r\n }\r\n }\r\n getLabelByAction(action: UiAction): string {\r\n let desc = this.uiActionDescriptors.get(action.code!);\r\n return desc!.title;\r\n }\r\n\r\n // #region UseUiAction\r\n getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams {\r\n if (uiAction.params && uiAction.params['nodeUuid']) {\r\n let nodeUuid = uiAction.params!['nodeUuid'];\r\n\r\n let nodeName: string | undefined;\r\n if (uiAction.code === 'RENAME') {\r\n nodeName = this.deepSearchTreeNode(nodeUuid, this.treeFromBackend!)?.caption;\r\n }\r\n\r\n return {\r\n forTextArea: '',\r\n forTextField: nodeName ? nodeName : '',\r\n };\r\n }\r\n\r\n return {\r\n forTextArea: '',\r\n forTextField: '',\r\n };\r\n }\r\n getModel() {\r\n return {};\r\n }\r\n\r\n async performUiActionRequest(uiActionRequest: UiActionRequest): Promise<any> {\r\n if (uiActionRequest.params['nodeUuid']) {\r\n await this.performNodeUiActionRequest(uiActionRequest);\r\n } else {\r\n await this.performMainUiActionRequest(uiActionRequest);\r\n }\r\n\r\n //await this.viewContext.getAndSyncViewContext();\r\n\r\n this.syncTree();\r\n }\r\n\r\n async performNodeUiActionRequest(uiActionRequest: UiActionRequest): Promise<any> {\r\n let nodeId = uiActionRequest.params['nodeUuid'];\r\n delete uiActionRequest.params['nodeUuid'];\r\n\r\n let viewUuid = this.viewContext.getUuidOfPage(this.pageName);\r\n\r\n this.treeFromBackend = await this.viewContext.handlePerformActionResponse(\r\n await this.service.performAction2(viewUuid, this.treeId!, nodeId, uiActionRequest).toPromise()\r\n );\r\n }\r\n async performMainUiActionRequest(uiActionRequest: UiActionRequest): Promise<any> {\r\n let viewUuid = this.viewContext.getUuidOfPage(this.pageName);\r\n\r\n this.treeFromBackend = await this.viewContext.handlePerformActionResponse(\r\n await this.service.performMainAction2(viewUuid, this.treeId!, uiActionRequest).toPromise()\r\n );\r\n }\r\n\r\n handleSpecificDemandsAsynchronously(\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionSpecificDemandResponse> {\r\n throw new Error('Method not implemented.');\r\n }\r\n // #endregion\r\n}\r\n","import { NestedTreeControl } from '@angular/cdk/tree';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\r\nimport {\r\n SmartTreeModel,\r\n SmartTreeNode,\r\n SmartTreeNodeButton,\r\n SmartTreeNodeButtonType,\r\n} from './smarttree.model';\r\nimport { TreeStyle } from './smarttree.node.model';\r\nimport { SmarttreeService } from './smarttree.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { UiActionModel } from '../view-context/smart-ui-action/ui-action.model';\r\n\r\n@Component({\r\n selector: 'smart-tree',\r\n templateUrl: './smarttree.component.html',\r\n styleUrls: ['./smarttree.component.css'],\r\n})\r\nexport class SmartTreeComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n @ViewChildren(MatMenuTrigger) trigger!: QueryList<MatMenuTrigger>;\r\n\r\n @ViewChild('tree') tree: any;\r\n\r\n treeControl = new NestedTreeControl<SmartTreeNode>((node) => node.childrenNodes);\r\n dataSource = new MatTreeNestedDataSource<SmartTreeNode>();\r\n tempActiveNode?: SmartTreeNode;\r\n treeData?: SmartTreeModel;\r\n @Input() treeStyle?: TreeStyle;\r\n @Input() treeService!: SmarttreeService<any>;\r\n smartTreeNodeButtonType = SmartTreeNodeButtonType;\r\n\r\n errorMessage?: string;\r\n\r\n uiActionModels: UiActionModel[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n ngOnInit(): void {\r\n if (!this.treeService) {\r\n throw new Error('TreeService has not been given!');\r\n }\r\n this.errorMessage = this.treeService.errorMessage;\r\n\r\n this.treeService.smartTreeModelChanged.subscribe((newSmartTree: SmartTreeModel) => {\r\n this.treeData = newSmartTree;\r\n this.dataSource.data = this.treeData.rootNodes!;\r\n this.expandTreeNodes();\r\n });\r\n this.treeService.uiActionModelsChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n if (this.treeService.uiActionModels) {\r\n this.uiActionModels = this.treeService.uiActionModels;\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n getIfExpanded(node: SmartTreeNode): boolean {\r\n return this.treeControl.isExpanded(node);\r\n }\r\n\r\n expandTreeNodes() {\r\n this.expandTreeNodesDeeply(this.dataSource.data);\r\n }\r\n\r\n expandTreeNodesDeeply(nodes: SmartTreeNode[]) {\r\n nodes.forEach((node) => {\r\n if (node.expanded) {\r\n this.treeControl.expand(node);\r\n this.cdr.markForCheck();\r\n if (node.childrenNodes && node.childrenNodes.length) {\r\n this.expandTreeNodesDeeply(node.childrenNodes);\r\n }\r\n } else {\r\n this.treeControl.collapse(node);\r\n }\r\n });\r\n }\r\n\r\n onNodeClick(event: any, node: SmartTreeNode) {\r\n event.stopPropagation();\r\n\r\n if (this.tempActiveNode) this.tempActiveNode.selected = false;\r\n node.selected = true;\r\n this.tempActiveNode = node;\r\n\r\n this.treeService.onTreeNodeClick(node);\r\n }\r\n\r\n onOpenNode(event: any, node: SmartTreeNode) {\r\n event.stopPropagation();\r\n this.treeService.onTreeNodeOpen(node);\r\n }\r\n\r\n hasChild = (_: number, node: SmartTreeNode) => node.hasChildren;\r\n\r\n getNodeStyle(node: SmartTreeNode) {\r\n if (this.treeStyle) {\r\n var style = node.selected\r\n ? {\r\n background: this.treeStyle.activeStyle?.backgroundColor,\r\n color: this.treeStyle.activeStyle?.color,\r\n }\r\n : {\r\n background: this.treeStyle.levelBackgroundColor![node.level!],\r\n color: this.treeStyle.color!,\r\n };\r\n return style;\r\n }\r\n return {};\r\n }\r\n getNodePadding(node: SmartTreeNode) {\r\n if (this.treeStyle) {\r\n var style = node.selected\r\n ? {\r\n 'padding-left': 15 * node.level! + 'px',\r\n }\r\n : {\r\n 'padding-left': 15 * node.level! + 'px',\r\n };\r\n return style;\r\n }\r\n return {};\r\n }\r\n\r\n customButtonClicked(event: any, button: SmartTreeNodeButton, close?: boolean): void {\r\n event.stopPropagation();\r\n\r\n if (button.type === SmartTreeNodeButtonType.MENU) {\r\n return;\r\n }\r\n\r\n if (!button.callback) {\r\n throw new Error(`Button with name ${button.label || button.icon} does not have a callback!`);\r\n }\r\n button.callback(button.args);\r\n if (close) {\r\n let openMenus = this.trigger.filter(\r\n (matMenuTrigger: MatMenuTrigger) => matMenuTrigger.menuOpen\r\n );\r\n openMenus.forEach((matMenuTrigger: MatMenuTrigger) => {\r\n matMenuTrigger.closeMenu();\r\n });\r\n }\r\n }\r\n\r\n getClassesForTreeNode(node: SmartTreeNode): string[] {\r\n let classes: string[] = [];\r\n\r\n if (node.expanded) {\r\n classes.push(this.getCustomClass('expanded', node.level));\r\n } else {\r\n classes.push(this.getCustomClass('collapsed', node.level));\r\n }\r\n\r\n if (node.selected) {\r\n classes.push(this.getCustomClass('selected', node.level));\r\n } else {\r\n classes.push(this.getCustomClass('unselected', node.level));\r\n }\r\n\r\n if (node.level !== 0) {\r\n classes.push(this.getCustomClass('child', node.level));\r\n }\r\n\r\n return classes;\r\n }\r\n\r\n getInnerClassesForTreeNode(node: SmartTreeNode): string[] {\r\n let classes: string[] = [];\r\n\r\n if (node.expanded) {\r\n classes.push(this.getCustomClass('inner-expanded', node.level));\r\n } else {\r\n classes.push(this.getCustomClass('inner-collapsed', node.level));\r\n }\r\n\r\n if (node.selected) {\r\n classes.push(this.getCustomClass('inner-selected', node.level));\r\n } else {\r\n classes.push(this.getCustomClass('inner-unselected', node.level));\r\n }\r\n\r\n return classes;\r\n }\r\n\r\n getClassesForTreeNodeChildren(node: SmartTreeNode): string[] {\r\n let classes: string[] = [];\r\n\r\n classes.push(this.getCustomClass('group', node.level));\r\n\r\n return classes;\r\n }\r\n\r\n getCustomClass(cssClass: string, plusProperty: any): string {\r\n return `${cssClass}-${plusProperty}`;\r\n }\r\n}\r\n","<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror\"\r\n matTreeNodeToggle\r\n (click)=\"onOpenNode($event, node)\"\r\n >\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\">\r\n <h3>\r\n {{ errorMessage }}\r\n </h3>\r\n </div>\r\n</div>\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmarttreeGenericService } from './smarttree-generic.service';\r\nimport { SmartTreeComponent } from './smarttree.component';\r\nimport { SmarttreeService } from './smarttree.service';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\n\r\n@NgModule({\r\n declarations: [SmartTreeComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTreeModule,\r\n MatMenuModule,\r\n SmartIconModule,\r\n SmartViewContextModule,\r\n ],\r\n exports: [SmartTreeComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n SmarttreeService,\r\n SmarttreeGenericService,\r\n { provide: 'treeMenuIcon', useValue: 'more_vert' },\r\n ],\r\n})\r\nexport class SmarttreeModule {}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\n\r\n/**\r\n * Custom HttpParameterCodec\r\n * Workaround for https://github.com/angular/angular/issues/18261\r\n */\r\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\r\n encodeKey(k: string): string {\r\n return encodeURIComponent(k);\r\n }\r\n encodeValue(v: string): string {\r\n return encodeURIComponent(v);\r\n }\r\n decodeKey(k: string): string {\r\n return decodeURIComponent(k);\r\n }\r\n decodeValue(v: string): string {\r\n return decodeURIComponent(v);\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\nimport { Param } from './param';\r\n\r\nexport interface ConfigurationParameters {\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n /**\r\n * Takes care of encoding query- and form-parameters.\r\n */\r\n encoder?: HttpParameterCodec;\r\n /**\r\n * Override the default method for encoding path parameters in various\r\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\r\n * <p>\r\n * See {@link README.md} for more details\r\n * </p>\r\n */\r\n encodeParam?: (param: Param) => string;\r\n /**\r\n * The keys are the names in the securitySchemes section of the OpenAPI\r\n * document. They should map to the value used for authentication\r\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\r\n */\r\n credentials?: {[ key: string ]: string | (() => string | undefined)};\r\n}\r\n\r\nexport class Configuration {\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n /**\r\n * Takes care of encoding query- and form-parameters.\r\n */\r\n encoder?: HttpParameterCodec;\r\n /**\r\n * Encoding of various path parameter\r\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\r\n * <p>\r\n * See {@link README.md} for more details\r\n * </p>\r\n */\r\n encodeParam: (param: Param) => string;\r\n /**\r\n * The keys are the names in the securitySchemes section of the OpenAPI\r\n * document. They should map to the value used for authentication\r\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\r\n */\r\n credentials: {[ key: string ]: string | (() => string | undefined)};\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n this.encoder = configurationParameters.encoder;\r\n if (configurationParameters.encodeParam) {\r\n this.encodeParam = configurationParameters.encodeParam;\r\n }\r\n else {\r\n this.encodeParam = param => this.defaultEncodeParam(param);\r\n }\r\n if (configurationParameters.credentials) {\r\n this.credentials = configurationParameters.credentials;\r\n }\r\n else {\r\n this.credentials = {};\r\n }\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const type = accepts.find((x: string) => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n\r\n public lookupCredential(key: string): string | undefined {\r\n const value = this.credentials[key];\r\n return typeof value === 'function'\r\n ? value()\r\n : value;\r\n }\r\n\r\n private defaultEncodeParam(param: Param): string {\r\n // This implementation exists as fallback for missing configuration\r\n // and for backwards compatibility to older typescript-angular generator versions.\r\n // It only works for the 'simple' parameter style.\r\n // Date-handling only works for the 'date-time' format.\r\n // All other styles and Date-formats are probably handled incorrectly.\r\n //\r\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\r\n\r\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\r\n ? (param.value as Date).toISOString()\r\n : param.value;\r\n\r\n return encodeURIComponent(String(value));\r\n }\r\n}\r\n","/**\r\n * Form layout definition\r\n * Contains form layout definition objects.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n/* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams,\r\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \r\n } from '@angular/common/http';\r\nimport { CustomHttpParameterCodec } from '../encoder';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DefaultService {\r\n\r\n protected basePath = 'http://localhost';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n public encoder: HttpParameterCodec;\r\n\r\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\r\n if (configuration) {\r\n this.configuration = configuration;\r\n }\r\n if (typeof this.configuration.basePath !== 'string') {\r\n if (Array.isArray(basePath) && basePath.length > 0) {\r\n basePath = basePath[0];\r\n }\r\n\r\n if (typeof basePath !== 'string') {\r\n basePath = this.basePath;\r\n }\r\n this.configuration.basePath = basePath;\r\n }\r\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\r\n }\r\n\r\n\r\n // @ts-ignore\r\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\r\n if (typeof value === \"object\" && value instanceof Date === false) {\r\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\r\n } else {\r\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\r\n }\r\n return httpParams;\r\n }\r\n\r\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\r\n if (value == null) {\r\n return httpParams;\r\n }\r\n\r\n if (typeof value === \"object\") {\r\n if (Array.isArray(value)) {\r\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\r\n } else if (value instanceof Date) {\r\n if (key != null) {\r\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\r\n } else {\r\n throw Error(\"key may not be null if value is Date\");\r\n }\r\n } else {\r\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\r\n httpParams, value[k], key != null ? `${key}.${k}` : k));\r\n }\r\n } else if (key != null) {\r\n httpParams = httpParams.append(key, value);\r\n } else {\r\n throw Error(\"key may not be null if value is not object or array\");\r\n }\r\n return httpParams;\r\n }\r\n\r\n /**\r\n * Placeholder for generation\r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public nopePost(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\r\n public nopePost(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\r\n public nopePost(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\r\n public nopePost(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = [\r\n ];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/nope`;\r\n return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n}\r\n","export * from './default.service';\r\nimport { DefaultService } from './default.service';\r\nexport const APIS = [DefaultService];\r\n","/**\r\n * Form layout definition\r\n * Contains form layout definition objects.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum ComponentType {\r\n CONTAINER = 'container',\r\n FORM = 'form',\r\n WIDGET = 'widget'\r\n}\r\n\r\n","/**\r\n * Form layout definition\r\n * Contains form layout definition objects.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum ComponentWidgetType {\r\n GRID = 'grid',\r\n FILTER = 'filter',\r\n TREE = 'tree',\r\n TOOLBAR = 'toolbar'\r\n}\r\n\r\n","/**\r\n * Form layout definition\r\n * Contains form layout definition objects.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum LayoutDirection {\r\n HORIZONTAL = 'horizontal',\r\n VERTICAL = 'vertical'\r\n}\r\n\r\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\r\nimport { Configuration } from './configuration';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [],\r\n providers: []\r\n})\r\nexport class ApiModule {\r\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\r\n return {\r\n ngModule: ApiModule,\r\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\r\n };\r\n }\r\n\r\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\r\n @Optional() http: HttpClient) {\r\n if (parentModule) {\r\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\r\n }\r\n if (!http) {\r\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\r\n 'See also https://github.com/angular/angular/issues/20575');\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of smart-grid\r\n */\r\n\r\nexport * from './smart-grid.module';\r\nexport * from './models/model';\r\nexport * from './smart-grid.component';\r\nexport * from './smart-grid.service';\r\nexport * from './api/grid-api/model/models';\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport {\r\n ComponentType,\r\n ComponentWidgetType,\r\n LayoutDirection,\r\n SmartComponentLayoutDefinition,\r\n} from './api';\r\nimport {\r\n SmartForm,\r\n SmartFormWidgetDirection,\r\n SmartformComponent,\r\n SmartformLayoutDefinitionService,\r\n} from '../smart-form/projects';\r\nimport {\r\n GridUiActionType,\r\n SmartGrid,\r\n SmartGridComponent,\r\n SmartLayoutDef,\r\n} from '../smart-grid/projects';\r\nimport { SmartFilter, SmartFilterComponent } from '../smart-filter/projects';\r\nimport { SmarttreeGenericService } from '../smart-tree/projects';\r\nimport {\r\n ExpandableSection,\r\n ExpandableSectionComponent,\r\n} from '../smart-expandable-section/projects';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { UiActionToolbarComponent } from '../view-context/projects';\r\nimport { deepEqual } from 'fast-equals';\r\nimport { SmartStyleUtility } from '../view-context/utility/smart-style-utility';\r\n\r\n@Component({\r\n selector: 'smart-component-layout',\r\n templateUrl: './smart-component-layout.component.html',\r\n styleUrls: ['./smart-component-layout.component.css'],\r\n})\r\nexport class SmartComponentLayoutComponent implements AfterViewInit, OnDestroy, OnChanges {\r\n protected _destroy$: Subject<void> = new Subject();\r\n\r\n @Input() smartComponentLayout?: SmartComponentLayoutDefinition;\r\n @Input() parentLayoutComponent?: SmartComponentLayoutComponent;\r\n @Input() parentSmartComponent: any;\r\n\r\n currentLayout?: SmartComponentLayoutDefinition;\r\n\r\n uuid?: string;\r\n\r\n @ViewChildren('form')\r\n smartFormList!: QueryList<SmartformComponent>;\r\n smartFormComponent?: SmartformComponent;\r\n smartForm?: SmartForm;\r\n\r\n @ViewChildren('grid')\r\n smartGridList!: QueryList<SmartGridComponent>;\r\n smartGridComponent?: SmartGridComponent;\r\n smartGrid?: SmartGrid;\r\n\r\n @ViewChildren('filter')\r\n smartFilterList!: QueryList<SmartFilterComponent>;\r\n smartFilterComponent?: SmartFilterComponent;\r\n smartFilter?: SmartFilter;\r\n\r\n @ViewChildren('toolbar')\r\n toolbarList!: QueryList<UiActionToolbarComponent>;\r\n toolbar?: UiActionToolbarComponent;\r\n toolbarId?: string;\r\n\r\n treeService?: SmarttreeGenericService;\r\n\r\n expandableSection?: ExpandableSection<SmartComponentLayoutDefinition>;\r\n\r\n @ViewChildren(ExpandableSectionComponent)\r\n expandableComponents!: QueryList<ExpandableSectionComponent>;\r\n\r\n @ViewChildren(SmartComponentLayoutComponent)\r\n components!: QueryList<SmartComponentLayoutComponent>;\r\n\r\n constructor(\r\n private layoutService: SmartformLayoutDefinitionService,\r\n private element?: ElementRef,\r\n private renderer?: Renderer2\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.smartFormList?.first) {\r\n this.setFormComponent(this.smartFormList?.first);\r\n }\r\n this.smartFormList.changes\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((list: QueryList<SmartformComponent>) => {\r\n this.setFormComponent(list.first);\r\n });\r\n\r\n if (this.smartGridList?.first) {\r\n this.setGridComponent(this.smartGridList?.first);\r\n }\r\n this.smartGridList.changes\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((list: QueryList<SmartGridComponent>) => {\r\n this.setGridComponent(list.first);\r\n });\r\n\r\n this.smartFilterList.changes\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((list: QueryList<SmartFilterComponent>) => {\r\n if (!this.smartFilterComponent) {\r\n this.smartFilterComponent = list.first;\r\n this.bindFilter();\r\n }\r\n });\r\n\r\n if (this.toolbarList?.first) {\r\n this.setToolbarComponent(this.toolbarList?.first);\r\n }\r\n this.toolbarList.changes\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((list: QueryList<UiActionToolbarComponent>) => {\r\n this.setToolbarComponent(list.first);\r\n });\r\n this.setUp();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.setUp();\r\n }\r\n\r\n private setUp(): void {\r\n if (!this.parentSmartComponent || !this.smartComponentLayout) {\r\n return;\r\n }\r\n if (deepEqual(this.smartComponentLayout, this.currentLayout)) {\r\n // no layout change, keep current state\r\n this.smartComponentLayout = this.currentLayout;\r\n return;\r\n }\r\n // layout changed, render, but save current\r\n // this.currentLayout = JSON.parse(JSON.stringify(this.smartComponentLayout));\r\n this.currentLayout = this.smartComponentLayout;\r\n\r\n this.uuid = this.parentSmartComponent.uuid;\r\n this.treeService = this.parentSmartComponent.smartTreeService;\r\n\r\n this.smartComponentLayout?.direction;\r\n\r\n if (this.smartComponentLayout?.expandable) {\r\n this.constructExpandableSection();\r\n } else if (this.smartComponentLayout?.type === ComponentType.FORM) {\r\n this.constructForm();\r\n } else if (this.smartComponentLayout?.type === ComponentType.WIDGET) {\r\n if (this.smartComponentLayout.widget?.type === ComponentWidgetType.GRID) {\r\n this.constructGrid();\r\n } else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.FILTER) {\r\n console.warn('ComponentWidgetType.FILTER is not supported');\r\n // this.constructFilter();\r\n } else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TREE) {\r\n this.constructTree();\r\n } else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TOOLBAR) {\r\n this.constructToolbar();\r\n }\r\n if (!this.parentLayoutComponent) {\r\n // only top level component should call init actions\r\n this.parentSmartComponent.initActions();\r\n }\r\n }\r\n\r\n SmartStyleUtility.applyStyle(this.smartComponentLayout.style, this.element, this.renderer);\r\n }\r\n\r\n type(): typeof ComponentType {\r\n return ComponentType;\r\n }\r\n\r\n constructExpandableSection(): void {\r\n let data: SmartComponentLayoutDefinition = { ...this.smartComponentLayout! };\r\n data.expandable = false;\r\n\r\n this.expandableSection = {\r\n title: this.smartComponentLayout?.expandableSectionLabel ?? '',\r\n inputs: new Map<string, any>([\r\n ['smartComponentLayout', data],\r\n ['parentSmartComponent', this.parentSmartComponent],\r\n ['parentLayoutComponent', this.parentLayoutComponent],\r\n ]),\r\n customComponent: SmartComponentLayoutComponent,\r\n };\r\n }\r\n\r\n constructForm(): void {\r\n const widgets = this.layoutService.render({\r\n layoutDefinitions: this.smartComponentLayout?.form,\r\n });\r\n\r\n this.smartForm = {\r\n direction: this.getFormLayout(),\r\n componentModel: this.parentSmartComponent?.model,\r\n widgets,\r\n };\r\n\r\n this.bindForm();\r\n }\r\n\r\n getFormLayout(): SmartFormWidgetDirection {\r\n if (this.smartComponentLayout?.direction) {\r\n return this.smartComponentLayout?.direction === LayoutDirection.HORIZONTAL\r\n ? SmartFormWidgetDirection.ROW\r\n : SmartFormWidgetDirection.COL;\r\n }\r\n return SmartFormWidgetDirection.COL;\r\n }\r\n\r\n setFormComponent(comp: SmartformComponent) {\r\n if (!this.smartFormComponent) {\r\n this.smartFormComponent = comp;\r\n this.bindForm();\r\n }\r\n }\r\n\r\n bindForm(): void {\r\n if (this.parentSmartComponent?.useQueryLists) {\r\n return;\r\n }\r\n if (this.smartForm && this.smartFormComponent) {\r\n this.parentSmartComponent?.addForm(\r\n // unique identifier for the form\r\n `form_${this.makeid(5)}`,\r\n this.smartForm,\r\n this.smartFormComponent\r\n );\r\n }\r\n }\r\n\r\n makeid(length: number) {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = characters.length;\r\n let counter = 0;\r\n while (counter < length) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n counter += 1;\r\n }\r\n return result;\r\n }\r\n\r\n constructGrid(): void {\r\n this.smartGrid = {\r\n gridIdentifier: this.smartComponentLayout?.widget?.identifier!,\r\n gridModel: {\r\n page: {},\r\n },\r\n options: {\r\n rowUiActionType: GridUiActionType.POPUP_MENU,\r\n },\r\n layoutDef: SmartLayoutDef.TABLE,\r\n paginator: true,\r\n };\r\n\r\n this.bindGrid();\r\n }\r\n\r\n setGridComponent(comp: SmartGridComponent) {\r\n if (!this.smartGridComponent) {\r\n this.smartGridComponent = comp;\r\n this.bindGrid();\r\n }\r\n }\r\n\r\n bindGrid(): void {\r\n if (this.parentSmartComponent?.useQueryLists) {\r\n return;\r\n }\r\n if (this.smartGrid && this.smartGridComponent) {\r\n this.smartGrid = this.parentSmartComponent?.addGrid(\r\n this.smartGrid,\r\n {\r\n rowUiActionType: GridUiActionType.POPUP_MENU,\r\n },\r\n false,\r\n this.smartGridComponent\r\n );\r\n }\r\n }\r\n\r\n setToolbarComponent(comp: UiActionToolbarComponent) {\r\n this.toolbar = comp;\r\n }\r\n\r\n // NOT USED, DOESN'T WORK\r\n // constructFilter(): void {\r\n // this.smartFilter = (this.smartComponentLayout!.parentComponent as any).addFilter(\r\n // `filter_${this.makeid(5)}`,\r\n // this.smartComponentLayout?.widget?.filterExpressionFieldList,\r\n // this.smartComponentLayout?.widget?.filterType,\r\n // this.smartFilterComponent\r\n // );\r\n // }\r\n\r\n bindFilter(): void {\r\n // TODO\r\n }\r\n\r\n constructTree(): void {\r\n if (this.parentSmartComponent?.useQueryLists) {\r\n return;\r\n }\r\n this.parentSmartComponent.setUpDefaultTree(this.smartComponentLayout?.widget?.identifier);\r\n this.treeService?.initialize();\r\n }\r\n\r\n constructToolbar(): void {\r\n let toolbarId = this.smartComponentLayout?.widget?.identifier;\r\n if (this.toolbarId !== toolbarId) {\r\n this.toolbarId = toolbarId;\r\n }\r\n }\r\n}\r\n","<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar *ngIf=\"!!toolbarId\" #toolbar [id]=\"toolbarId\"></smart-ui-action-toolbar>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmartGridModule } from '../smart-grid/smart-grid.module';\r\nimport { SmartExpandableSectionModule } from '../smart-expandable-section/smart-expandable-section.module';\r\nimport { SmarttreeModule } from '../smart-tree/smarttree.module';\r\nimport { SmartComponentLayoutComponent } from './smart-component-layout.component';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\n\r\n@NgModule({\r\n declarations: [SmartComponentLayoutComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n SmartGridModule,\r\n SmartExpandableSectionModule,\r\n SmarttreeModule,\r\n SmartViewContextModule,\r\n ],\r\n exports: [SmartComponentLayoutComponent],\r\n providers: [],\r\n})\r\nexport class SmartComponentLayoutModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { FilterExpressionBuilderField } from '../../../api/model/filterExpressionBuilderField';\r\nimport { SmartFilterEditorService } from '../../../smart-filter-editor.service';\r\n\r\n@Component({\r\n selector: 'app-target-group-filter-param',\r\n templateUrl: './smart-filter-param.component.html',\r\n styleUrls: ['./smart-filter-param.component.css'],\r\n})\r\nexport class SmartFilterParamComponent {\r\n @Input() data!: any;\r\n\r\n constructor() {}\r\n\r\n onItemClick(item: FilterExpressionBuilderField): void {\r\n (this.data.serviceToUse as SmartFilterEditorService).peformWidgetAction({\r\n code: 'ADD_FILTER_EXPRESSION',\r\n params: {\r\n model: item,\r\n },\r\n });\r\n }\r\n}\r\n","<div class=\"targetGroupFilterParamContainer\">\r\n <div\r\n class=\"targetGroupFilterItem\"\r\n *ngFor=\"let data of data?.group\"\r\n (click)=\"onItemClick(data)\"\r\n >\r\n <smart-icon icon=\"Ic24_Chevron_Right\" color=\"gray\"></smart-icon>\r\n <div class=\"mat-caption\">\r\n {{ data.label }}\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ExpandableSection } from '../../smart-expandable-section/expandable-section.model';\r\nimport { FilterExpressionBuilderGroup } from '../api/model/filterExpressionBuilderGroup';\r\nimport { FilterExpressionBuilderModel } from '../api/model/filterExpressionBuilderModel';\r\nimport { FilterExpressionBuilderUiModel } from '../api/model/filterExpressionBuilderUiModel';\r\nimport {\r\n ISmartFilterEditorService,\r\n SmartFilterEditorService,\r\n} from '../smart-filter-editor.service';\r\nimport { SmartFilterParamComponent } from './components/smart-filter-param/smart-filter-param.component';\r\n\r\n@Component({\r\n selector: 'smart-filter-group-params',\r\n templateUrl: './smart-filter-params.component.html',\r\n styleUrls: ['./smart-filter-params.component.css'],\r\n})\r\nexport class SmartFilterParamsComponent implements OnDestroy, OnInit {\r\n private _destroy$: Subject<void> = new Subject();\r\n @Input() service!: ISmartFilterEditorService;\r\n filterBuilder?: FilterExpressionBuilderModel;\r\n\r\n expandableSections?: ExpandableSection<any>[] = [];\r\n expandableSectionsFromExcel?: ExpandableSection<any>;\r\n\r\n @ViewChild('smartFilter', { read: ViewContainerRef })\r\n filterVcRef?: ViewContainerRef;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.service.modelChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.setUp(this.service.model!);\r\n });\r\n this.setUp(this.service.model!);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n setUp(model: FilterExpressionBuilderUiModel): void {\r\n if (model?.model) {\r\n this.filterBuilder = model.model;\r\n this.constructExpandableSections();\r\n }\r\n }\r\n\r\n constructExpandableSections(): void {\r\n if (this.filterBuilder!.groups) {\r\n this.expandableSections = this.filterBuilder!.groups.map(\r\n (filterExpressionBuilderGroup: FilterExpressionBuilderGroup) => {\r\n return {\r\n title: filterExpressionBuilderGroup.label!,\r\n cssClass: 'filterExpressionBuilderGroup',\r\n customComponent: SmartFilterParamComponent,\r\n data: {\r\n group: filterExpressionBuilderGroup.fields,\r\n serviceToUse: this.service,\r\n },\r\n inputName: 'data',\r\n isExpanded: true,\r\n };\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"targetGroupFilterParamsContainer\"\r\n *ngIf=\"service.model?.showGroups && !service.model?.readOnly\"\r\n>\r\n <!-- <ng-template #smartFilter></ng-template> -->\r\n <!-- <div class=\"dataSource-options\" *ngIf=\"service.model?.extarnalDatabase\">\r\n <div class=\"dataSource-btns\">\r\n <div class=\"dataSource-btn\">Külső adatbázis</div>\r\n <div class=\"dataSource-btn dataSource-btn-disabled\">Belső adatbázis</div>\r\n </div>\r\n <div class=\"dataSource-add-database\">\r\n <div class=\"dataSource-add-database-title\">\r\n <smart-icon icon=\"Ic24_View_Table\" color=\"sucess\"></smart-icon>\r\n Adatbázis\r\n </div>\r\n <button title=\"add\" mat-icon-button (click)=\"addDataSource()\">\r\n <smart-icon icon=\"Ic24_Plus_Circle\" color=\"success\"></smart-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n <div class=\"sections\">\r\n <smart-expandable-section\r\n class=\"excel\"\r\n *ngIf=\"expandableSectionsFromExcel\"\r\n [data]=\"expandableSectionsFromExcel!\"\r\n ></smart-expandable-section>\r\n <smart-expandable-section\r\n [data]=\"data\"\r\n *ngFor=\"let data of expandableSections\"\r\n ></smart-expandable-section>\r\n </div>\r\n</div>\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartFilter } from '../smart-filter.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartFilterService implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n filter?: SmartFilter;\r\n shouldSubmit: Subject<void> = new Subject();\r\n reSubscribeToSubmit: Subject<void> = new Subject();\r\n change: Subject<void> = new Subject();\r\n\r\n constructor() {}\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n async submit(): Promise<SmartFilter> {\r\n this.shouldSubmit.next();\r\n\r\n await this.shouldSubmit.pipe(takeUntil(this._destroy$)).toPromise();\r\n this.shouldSubmit = new Subject();\r\n\r\n this.reSubscribeToSubmit.next();\r\n\r\n return this.filter!;\r\n }\r\n}\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum FilterExpressionBoolOperator {\r\n AND = 'AND',\r\n OR = 'OR'\r\n}\r\n\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum FilterExpressionDataType {\r\n STRING = 'STRING',\r\n NUMBER = 'NUMBER',\r\n DATE = 'DATE',\r\n DATE_TIME = 'DATE_TIME',\r\n BOOLEAN = 'BOOLEAN'\r\n}\r\n\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum FilterExpressionFieldWidgetType {\r\n TEXT_FIELD = 'TEXT_FIELD',\r\n TEXT_FIELD_CHIPS = 'TEXT_FIELD_CHIPS',\r\n TEXT_FIELD_NUMBER = 'TEXT_FIELD_NUMBER',\r\n TEXT_BOX = 'TEXT_BOX',\r\n SELECT = 'SELECT',\r\n SELECT_MULTIPLE = 'SELECT_MULTIPLE',\r\n DATE = 'DATE',\r\n TIME = 'TIME',\r\n DATE_TIME = 'DATE_TIME',\r\n CHECK_BOX = 'CHECK_BOX',\r\n RADIO_BUTTON = 'RADIO_BUTTON',\r\n RANGE = 'RANGE'\r\n}\r\n\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum FilterExpressionOperation {\r\n EXPRESSION = 'EXPRESSION',\r\n EQUAL = 'EQUAL',\r\n NOT_EQUAL = 'NOT_EQUAL',\r\n LESS = 'LESS',\r\n LESS_OR_EQUAL = 'LESS_OR_EQUAL',\r\n GREATER = 'GREATER',\r\n GREATER_OR_EQUAL = 'GREATER_OR_EQUAL',\r\n LIKE = 'LIKE',\r\n NOT_LIKE = 'NOT_LIKE',\r\n BETWEEN = 'BETWEEN',\r\n NOT_BETWEEN = 'NOT_BETWEEN',\r\n IS_EMPTY = 'IS_EMPTY',\r\n IS_NOT_EMPTY = 'IS_NOT_EMPTY',\r\n EXISTS = 'EXISTS',\r\n NOT_EXISTS = 'NOT_EXISTS',\r\n IN = 'IN',\r\n NOT_IN = 'NOT_IN'\r\n}\r\n\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * The order by object.. \r\n */\r\nexport interface FilterExpressionOrderBy { \r\n /**\r\n * The property name of the order by column.\r\n */\r\n propertyName?: string;\r\n order?: FilterExpressionOrderByOrderEnum;\r\n}\r\nexport enum FilterExpressionOrderByOrderEnum {\r\n ASC = 'ASC',\r\n DESC = 'DESC'\r\n};\r\n\r\n\r\n\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\nimport { FilterExpressionBuilderField } from './filterExpressionBuilderField';\r\n\r\n\r\n/**\r\n * The group is just a UI structure to define a tree structure for the available filter fields. In a group there is an ordered list of filter fields. The group can imply a parenthesis in the xpression or an exist node. Theoreticaly the groups are hierarchical but the pratcticaly it is not. The kind of the group defines what operation is available for the filter fields in the group. DISPLAY: means thet we can choose an available filter field from the group and place it into the field list related with the current group or in any sub list except under an exist. BRACKET: The given groups defines a bracket. If we choose any of the fiels to add to a filter list then this imlicitely create a bracket node. It can not be added under an exist node. EXIST: The same as the BRACKET but with an exist node. \r\n */\r\nexport interface FilterExpressionBuilderGroup { \r\n /**\r\n * The visual display name fo the group.\r\n */\r\n label?: string;\r\n /**\r\n * Defines if the given groups is just a visual sugar to group somehow the available filter fields or it is definetely a bracket or exists. \r\n */\r\n builderGroupKind?: FilterExpressionBuilderGroupBuilderGroupKindEnum;\r\n fields?: Array<FilterExpressionBuilderField>;\r\n /**\r\n * The unique identifier of the root list in the workplace.\r\n */\r\n rootListId?: string;\r\n subGroups?: Array<FilterExpressionBuilderGroup>;\r\n}\r\nexport enum FilterExpressionBuilderGroupBuilderGroupKindEnum {\r\n DIPLAY = 'DIPLAY',\r\n BRACKET = 'BRACKET',\r\n EXIST = 'EXIST'\r\n};\r\n\r\n\r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport {\r\n SmartForm,\r\n SmartformComponent,\r\n SmartFormWidget,\r\n SmartFormWidgetDirection,\r\n SmartFormWidgetType,\r\n} from '../../../../../../smart-form/projects';\r\nimport { ComponentFactoryService } from '../../../../../../component-factory-service/projects';\r\nimport {\r\n FilterExpressionField,\r\n FilterExpressionFieldWidgetType,\r\n FilterExpressionOperation,\r\n} from '../../../../../api/filter/model/model';\r\nimport { Value } from '../../../../../api/value/model/value';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartFilterService } from '../../../../smart-filter.service';\r\n\r\n@Component({\r\n selector: 'smart-filter-simple-field',\r\n templateUrl: './smart-filter-simple-field.component.html',\r\n styleUrls: ['./smart-filter-simple-field.component.css'],\r\n})\r\nexport class SmartFilterSimpleFieldComponent implements AfterViewInit, OnInit, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n @ViewChildren('simpleField')\r\n simpleFieldChildren!: SmartFilterSimpleFieldComponent[];\r\n\r\n @Input() operationTranslator?: (operation: FilterExpressionOperation) => string;\r\n @Input() filterExpressionField!: FilterExpressionField;\r\n @Input() showPossibleActions: boolean | undefined;\r\n\r\n // systemLogTable\r\n @ViewChild('form', { read: ViewContainerRef }) vcRefForm?: ViewContainerRef;\r\n componentRefForm?: ComponentRef<SmartformComponent>;\r\n\r\n smartForm?: SmartForm;\r\n\r\n operation?: FilterExpressionOperation;\r\n currentOperation?: string;\r\n\r\n constructor(private service: SmartFilterService, private cfService: ComponentFactoryService) {}\r\n ngOnInit(): void {\r\n this.operation = this.filterExpressionField.expressionData?.currentOperation;\r\n this.currentOperation = this.getOptionLabel(this.operation);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.constructForm();\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n private constructFormWidget(\r\n key: string,\r\n label: string,\r\n widgetType: FilterExpressionFieldWidgetType,\r\n possibleValues: Value[],\r\n placeholder?: string\r\n ): SmartFormWidget<any> {\r\n let type: any = widgetType;\r\n\r\n if (type === FilterExpressionFieldWidgetType.DATE) {\r\n type = SmartFormWidgetType.DATE_PICKER;\r\n } else if (type === FilterExpressionFieldWidgetType.DATE_TIME) {\r\n type = SmartFormWidgetType.DATE_TIME_PICKER;\r\n }\r\n\r\n let widget: SmartFormWidget<any> = {\r\n key,\r\n label,\r\n type,\r\n value: '',\r\n placeholder: placeholder,\r\n showLabel: true,\r\n valueList: possibleValues.map((value: Value) => {\r\n return {\r\n key: value.objectUri ? value.objectUri : value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: value.objectUri ? value.objectUri : value.code,\r\n };\r\n }),\r\n };\r\n\r\n return widget;\r\n }\r\n\r\n constructForm(): void {\r\n this.vcRefForm?.clear();\r\n\r\n let widgets: SmartFormWidget<any>[] = [];\r\n\r\n let key: string | undefined;\r\n if (this.filterExpressionField.widgetType === 'SELECT_MULTIPLE') {\r\n key = 'expressionData.operand2.selectedValues';\r\n }\r\n\r\n if (this.filterExpressionField.expressionData?.operand2) {\r\n if (key !== 'expressionData.operand2.selectedValues') {\r\n key = 'expressionData.operand2.valueAsString';\r\n }\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n this.filterExpressionField.label2!,\r\n this.filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n this.filterExpressionField.possibleValues,\r\n this.filterExpressionField.placeholder2\r\n )\r\n );\r\n }\r\n if (this.filterExpressionField.expressionData?.operand3) {\r\n if (key !== 'selectedValues') {\r\n key = 'expressionData.operand3.valueAsString';\r\n }\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n this.filterExpressionField.label3!,\r\n this.filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n this.filterExpressionField.possibleValues,\r\n this.filterExpressionField.placeholder3\r\n )\r\n );\r\n }\r\n\r\n this.operation = this.filterExpressionField.expressionData?.currentOperation;\r\n this.currentOperation = this.getOptionLabel(this.operation);\r\n\r\n this.smartForm = {\r\n direction: SmartFormWidgetDirection.ROW,\r\n componentModel: { data: this.filterExpressionField },\r\n useOnValueChangeEvent: true,\r\n useOnBlurEvent: true,\r\n submitOnEnter: this.service.filter?.submitOnEnter,\r\n widgets,\r\n translateService: this.service.filter?.translateService,\r\n };\r\n\r\n // Show form on page\r\n this.componentRefForm = this.cfService.createComponent(\r\n this.vcRefForm!,\r\n SmartformComponent,\r\n new Map<string, any>([['smartForm', this.smartForm]])\r\n );\r\n\r\n this.componentRefForm.instance.onValueChangeSubject\r\n ?.pipe(takeUntil(this._destroy$))\r\n .subscribe(() => {\r\n this.submit();\r\n this.service.change.next();\r\n });\r\n\r\n this.componentRefForm.instance.onBlurSubject?.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.submit();\r\n this.service.change.next();\r\n });\r\n }\r\n\r\n submit(): FilterExpressionField {\r\n let form = this.componentRefForm!.instance.submitForm();\r\n\r\n this.filterExpressionField = form.componentModel?.data;\r\n\r\n this.simpleFieldChildren.forEach(\r\n (smartFilterFieldComponent: SmartFilterSimpleFieldComponent, index: number) => {\r\n let filterExpressionField = smartFilterFieldComponent.submit();\r\n\r\n this.filterExpressionField.subFieldList!.filters![index] = filterExpressionField;\r\n }\r\n );\r\n\r\n return this.filterExpressionField;\r\n }\r\n\r\n optionSelected(option: FilterExpressionOperation): void {\r\n let oldOption =\r\n this.componentRefForm!.instance.smartForm!.componentModel!.data.expressionData\r\n .currentOperation;\r\n this.componentRefForm!.instance.smartForm!.componentModel!.data.expressionData.currentOperation =\r\n option;\r\n this.operation = option;\r\n this.currentOperation = this.getOptionLabel(this.operation);\r\n\r\n if (\r\n oldOption !== FilterExpressionOperation.BETWEEN &&\r\n option === FilterExpressionOperation.BETWEEN\r\n ) {\r\n this.submit();\r\n\r\n let label = this.filterExpressionField.label2;\r\n this.filterExpressionField.label2 = `${label} - tól`;\r\n this.filterExpressionField.label3 = `${label} - ig`;\r\n this.filterExpressionField.expressionData!.operand3 = {\r\n isDataName: this.filterExpressionField.expressionData!.operand2?.isDataName,\r\n type: this.filterExpressionField.expressionData!.operand3?.type,\r\n valueAsString: this.filterExpressionField.expressionData!.operand3?.valueAsString,\r\n selectedValues: this.filterExpressionField.expressionData!.operand3?.selectedValues!,\r\n };\r\n this.constructForm();\r\n } else if (\r\n oldOption === FilterExpressionOperation.BETWEEN &&\r\n option !== FilterExpressionOperation.BETWEEN\r\n ) {\r\n let label = this.filterExpressionField.label2!.replace(' - tól', '');\r\n this.filterExpressionField.label2 = `${label}`;\r\n this.filterExpressionField.label3 = undefined;\r\n this.filterExpressionField.expressionData!.operand3 = undefined;\r\n this.constructForm();\r\n }\r\n }\r\n\r\n getOptionLabel(option: FilterExpressionOperation | undefined): string {\r\n if (!option) {\r\n return '';\r\n } else if (this.operationTranslator) {\r\n return this.operationTranslator(option);\r\n }\r\n return option;\r\n }\r\n}\r\n","<div class=\"smart-filter-simple-field-container\">\r\n <div class=\"smart-filter-simple-field-form-widget\">\r\n <div\r\n class=\"smart-filter-simple-field-form-widget-row\"\r\n *ngIf=\"showPossibleActions\"\r\n >\r\n <p>({{ currentOperation }})</p>\r\n <button\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n aria-label=\"Example icon-button with a menu\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let option of filterExpressionField.possibleOperations\"\r\n (click)=\"optionSelected(option)\"\r\n >\r\n <span>\r\n {{ getOptionLabel(option) }}\r\n </span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <ng-template #form></ng-template>\r\n </div>\r\n</div>\r\n","import { Component, OnDestroy, OnInit, ViewChildren } from \"@angular/core\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { SmartFilter } from \"../../../smart-filter.model\";\r\nimport { SmartFilterService } from \"../../smart-filter.service\";\r\nimport { SmartFilterSimpleFieldComponent } from \"./components/smart-filter-simple-field/smart-filter-simple-field.component\";\r\n\r\n@Component({\r\n selector: \"smart-filter-simple\",\r\n templateUrl: \"./smart-filter-simple.component.html\",\r\n styleUrls: [\"./smart-filter-simple.component.css\"],\r\n})\r\nexport class SmartFilterSimpleComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n @ViewChildren(\"simpleField\") simpleFieldChildren!: SmartFilterSimpleFieldComponent[];\r\n smartFilter?: SmartFilter;\r\n\r\n constructor(private service: SmartFilterService) {\r\n this.service.reSubscribeToSubmit.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.subscribeToSubmit();\r\n });\r\n this.subscribeToSubmit();\r\n }\r\n ngOnInit(): void {\r\n this.smartFilter = this.service.filter!;\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n subscribeToSubmit(): void {\r\n this.service.shouldSubmit.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.submit();\r\n });\r\n }\r\n\r\n submit(): void {\r\n this.simpleFieldChildren.forEach(\r\n (smartFilterFieldComponent: SmartFilterSimpleFieldComponent, index: number) => {\r\n this.smartFilter!.data[index] = smartFilterFieldComponent.submit();\r\n }\r\n );\r\n this.service.filter = this.smartFilter;\r\n this.service.shouldSubmit.complete();\r\n }\r\n}\r\n","<div *ngIf=\"smartFilter\" class=\"smart-simple-fields-container\">\r\n <div *ngFor=\"let filterExpressionField of smartFilter.data; let i = index\">\r\n <smart-filter-simple-field\r\n #simpleField\r\n [filterExpressionField]=\"filterExpressionField\"\r\n [operationTranslator]=\"smartFilter.operationTranslator\"\r\n [showPossibleActions]=\"smartFilter.showPossibleActions\"\r\n ></smart-filter-simple-field>\r\n <div *ngFor=\"let subfilterExpressionField of filterExpressionField.subFieldList?.filters\">\r\n <smart-filter-simple-field\r\n #simpleField\r\n [filterExpressionField]=\"filterExpressionField\"\r\n [operationTranslator]=\"smartFilter.operationTranslator\"\r\n [showPossibleActions]=\"smartFilter.showPossibleActions\"\r\n ></smart-filter-simple-field>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { SmartFilter } from '../smart-filter.model';\r\nimport { SmartFilterService } from './smart-filter.service';\r\n\r\n@Component({\r\n selector: 'smart-filter',\r\n templateUrl: './smart-filter.component.html',\r\n styleUrls: ['./smart-filter.component.css'],\r\n providers: [SmartFilterService],\r\n})\r\nexport class SmartFilterComponent implements OnInit, OnChanges {\r\n @Input() filter?: SmartFilter;\r\n\r\n constructor(public service: SmartFilterService) {}\r\n\r\n ngOnInit(): void {\r\n if (this.filter) {\r\n this.setUp();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['filter'].currentValue) {\r\n this.setUp();\r\n }\r\n }\r\n\r\n setUp(): void {\r\n this.service.filter = this.filter;\r\n }\r\n\r\n async submit(): Promise<SmartFilter> {\r\n return await this.service.submit();\r\n }\r\n}\r\n","<smart-filter-simple *ngIf=\"filter\" #simpleFilter></smart-filter-simple>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-smart-filter-expression-field',\r\n templateUrl: './smart-filter-expression-field.component.html',\r\n styleUrls: ['./smart-filter-expression-field.component.css']\r\n})\r\nexport class SmartFilterExpressionFieldComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","","import { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmartFilterExpressionFieldComponent } from './smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component';\r\nimport { SmartFilterSimpleFieldComponent } from './smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component';\r\nimport { SmartFilterSimpleComponent } from './smart-filter/components/smart-filter-simple/smart-filter-simple.component';\r\nimport { SmartFilterComponent } from './smart-filter/smart-filter.component';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartFilterComponent,\r\n SmartFilterExpressionFieldComponent,\r\n SmartFilterSimpleComponent,\r\n SmartFilterSimpleFieldComponent,\r\n ],\r\n imports: [BrowserModule, SmartViewContextModule, MatMenuModule, MatIconModule, MatButtonModule],\r\n exports: [SmartFilterComponent],\r\n})\r\nexport class SmartFilterModule {}\r\n","import { SmartTranslateService } from '../view-context/smart-view-context.model';\r\nimport { FilterExpressionField } from './api/filter/model/filterExpressionField';\r\nimport { FilterExpressionOperation } from './api/filter/model/model';\r\nimport { SmartFilterExpressionFieldComponent } from './smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component';\r\n\r\nexport enum SmartFilterPosition {\r\n TOP,\r\n BOTTOM,\r\n LEFT,\r\n RIGHT,\r\n}\r\n\r\nexport enum SmartFilterType {\r\n SIMPLE,\r\n ADVANCED,\r\n}\r\n\r\nexport interface SmartFilter {\r\n data: FilterExpressionField[];\r\n type: SmartFilterType;\r\n showPossibleActions?: boolean;\r\n controlPanelPosition?: SmartFilterPosition;\r\n queriesPosition?: SmartFilterPosition;\r\n advancedQueryCustomComponent?: SmartFilterExpressionFieldComponent;\r\n operationTranslator?: (operation: FilterExpressionOperation) => string;\r\n submitOnEnter?: () => void;\r\n translateService?: SmartTranslateService;\r\n}\r\n","/*\r\n * Public API Surface of smart-filter\r\n */\r\n\r\nexport * from './smart-filter/smart-filter.component';\r\nexport * from './smart-filter.module';\r\nexport * from './smart-filter.model';\r\nexport * from './api/filter/model/model';\r\nexport * from './api/filter/model/model';\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\nimport { FilterExpressionBuilderModel } from './filterExpressionBuilderModel';\r\nimport { FilterExpressionBuilderApiConfig } from './filterExpressionBuilderApiConfig';\r\nimport { UiAction } from '../../../view-context/api/model/uiAction';\r\nimport { FilterExpressionField } from './filterExpressionField';\r\nimport { FilterExpressionFieldEditor } from './filterExpressionFieldEditor';\r\nimport { FilterExpressionFieldList } from './filterExpressionFieldList';\r\n\r\n\r\nexport interface FilterExpressionBuilderUiModel { \r\n model?: FilterExpressionBuilderModel;\r\n selectedField?: FilterExpressionField;\r\n selectedFieldEditor?: FilterExpressionFieldEditor;\r\n selectUiAction?: UiAction;\r\n deselectUiAction?: UiAction;\r\n possibleActions?: Array<UiAction>;\r\n showGroups?: boolean;\r\n readOnly?: boolean;\r\n extarnalDatabase?: boolean;\r\n filterGroupsAction?: UiAction;\r\n groupFilter?: FilterExpressionFieldList;\r\n groupFilterAction?: UiAction;\r\n viewUuid?: string;\r\n config?: FilterExpressionBuilderApiConfig;\r\n type?: FilterExpressionBuilderUiModelTypeEnum;\r\n}\r\nexport enum FilterExpressionBuilderUiModelTypeEnum {\r\n SIMPLE = 'SIMPLE',\r\n COMPLEX = 'COMPLEX'\r\n};\r\n\r\n\r\n\r\n","export enum FilterExpressionBuilderApiActions {\r\n OPEN_FILTER_GROUPS = 'OPEN_FILTER_GROUPS',\r\n CLOSE_FILTER_GROUPS = 'CLOSE_FILTER_GROUPS',\r\n ADD_BRACKET = 'ADD_BRACKET',\r\n ADD_FILTER_EXPRESSION = 'ADD_FILTER_EXPRESSION',\r\n REMOVE_FILTER_EXPRESSION = 'REMOVE_FILTER_EXPRESSION',\r\n REDO = 'REDO',\r\n FILTER_GROUPS = 'AFILTER_GROUPS',\r\n SELECT_FIELD = 'SELECT_FIELD',\r\n UPDATE_FILTER_EXPRESSION = 'UPDATE_FILTER_EXPRESSION',\r\n SAVE_EXPRESSION_DATA = 'SAVE_EXPRESSION_DATA',\r\n SAVE_EXPRESSION_FIELD_LIST = 'SAVE_EXPRESSION_FIELD_LIST',\r\n}\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport enum FilterExpressionBoolOperator {\r\n AND = 'AND',\r\n OR = 'OR'\r\n}\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport {\r\n ISmartFilterEditorService,\r\n SmartFilterEditorService,\r\n} from '../../../smart-filter-editor.service';\r\nimport { FilterExpressionField } from '../../../api/model/filterExpressionField';\r\nimport { FilterExpressionBoolOperator } from '../../../api/model/filterExpressionBoolOperator';\r\nimport { Value } from './../../../../view-context/value-api/model/value';\r\nimport { V } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: 'app-expression-item',\r\n templateUrl: './smart-filter-expression-item.component.html',\r\n styleUrls: ['./smart-filter-expression-item.component.css'],\r\n})\r\nexport class SmartFilterExpressionItemComponent implements OnInit {\r\n @Input() item!: FilterExpressionField;\r\n @Input() hasNext!: boolean;\r\n @Input() service!: ISmartFilterEditorService;\r\n\r\n isSelected: boolean = false;\r\n\r\n boolOperatorType = FilterExpressionBoolOperator;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.isSelected =\r\n JSON.stringify(this.service.model?.selectedField) === JSON.stringify(this.item);\r\n }\r\n\r\n setOperatorTo(event: any, operationType: FilterExpressionBoolOperator): void {\r\n event?.stopPropagation();\r\n if (!this.service.model?.readOnly) {\r\n this.item.expressionData!.boolOperator = operationType;\r\n this.service.peformWidgetAction({\r\n code: 'UPDATE_FILTER_EXPRESSION',\r\n params: {\r\n model: this.item,\r\n },\r\n });\r\n }\r\n }\r\n\r\n select(event: any, item: FilterExpressionField): void {\r\n event?.stopPropagation();\r\n\r\n if (!this.service.model?.readOnly) {\r\n if (!this.isSelected) {\r\n this.service.peformWidgetAction({\r\n code: 'SELECT_FIELD',\r\n params: {\r\n model: this.item,\r\n },\r\n });\r\n } else {\r\n this.service.peformWidgetAction({\r\n code: 'SELECT_FIELD',\r\n params: {\r\n model: this.item,\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n getDisplayValue(code: string): string {\r\n let value: Value | undefined = this.item.possibleValues.find((value: Value) => {\r\n return value.code === code;\r\n });\r\n\r\n if (value) {\r\n return value.displayValue!;\r\n } else {\r\n return code;\r\n }\r\n }\r\n}\r\n","<div class=\"expressionItemContainer\">\r\n <div\r\n class=\"expressionItemInnerContainer\"\r\n [ngClass]=\"\r\n item.expressionData?.currentOperation === 'EXPRESSION'\r\n ? isSelected\r\n ? 'selectedExpressionContainer'\r\n : 'expressionContainer'\r\n : ''\r\n \"\r\n >\r\n <div\r\n *ngIf=\"\r\n item.expressionData?.currentOperation === 'EXPRESSION';\r\n then expression;\r\n else simpleItem\r\n \"\r\n ></div>\r\n <ng-template #expression>\r\n <div class=\"expressionItemBubble expression\" (click)=\"select($event, item)\">[</div>\r\n <app-expression-item\r\n [item]=\"subItem\"\r\n [hasNext]=\"i < (item.subFieldList?.filters)!.length - 1\"\r\n *ngFor=\"let subItem of item.subFieldList?.filters; let i = index\"\r\n ></app-expression-item>\r\n <div class=\"expressionItemBubble expression\">]</div>\r\n </ng-template>\r\n <ng-template #simpleItem>\r\n <div\r\n (click)=\"select($event, item)\"\r\n class=\"expressionItemBubble simpleItem\"\r\n [ngClass]=\"isSelected ? 'selectedSimpleItem' : ''\"\r\n >\r\n {{ item.label }}:\r\n <div *ngIf=\"item.expressionData?.currentOperation !== 'BETWEEN'\">\r\n <div *ngIf=\"item.widgetType === 'DATE'\">\r\n <b>{{ item.expressionData!.operand2!.valueAsString! | smartDate }}</b>\r\n </div>\r\n <div *ngIf=\"item.widgetType === 'DATE_TIME'\">\r\n <b>{{ item.expressionData!.operand2!.valueAsString! | smartDateTime }}</b>\r\n </div>\r\n <div *ngIf=\"item.widgetType !== 'DATE_TIME' && item.widgetType !== 'DATE'\">\r\n <b>{{ getDisplayValue(item.expressionData!.operand2!.valueAsString!) }}</b>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.expressionData?.currentOperation === 'IN'\">\r\n <b *ngFor=\"let value of item.expressionData?.operand2?.selectedValues; let last = last\">\r\n {{ getDisplayValue(value) }} <b *ngIf=\"!last\">,</b>\r\n </b>\r\n </div>\r\n <div class=\"expressionValues\" *ngIf=\"item.expressionData?.currentOperation === 'BETWEEN'\">\r\n <div *ngIf=\"item.widgetType === 'DATE'\">\r\n <b>{{ item.expressionData!.operand2!.valueAsString! | smartDate }}</b>\r\n </div>\r\n <div *ngIf=\"item.widgetType === 'DATE_TIME'\">\r\n <b>{{ item.expressionData!.operand2!.valueAsString! | smartDateTime }}</b>\r\n </div>\r\n <div *ngIf=\"item.widgetType !== 'DATE_TIME' && item.widgetType !== 'DATE'\">\r\n <b>{{ item.expressionData?.operand2?.valueAsString }}</b>\r\n </div>\r\n <b>-</b>\r\n <div *ngIf=\"item.widgetType === 'DATE'\">\r\n <b>{{ item.expressionData!.operand3!.valueAsString! | smartDate }}</b>\r\n </div>\r\n <div *ngIf=\"item.widgetType === 'DATE_TIME'\">\r\n <b>{{ item.expressionData!.operand3!.valueAsString! | smartDateTime }}</b>\r\n </div>\r\n <div *ngIf=\"item.widgetType !== 'DATE_TIME' && item.widgetType !== 'DATE'\">\r\n <b>{{ item.expressionData?.operand3?.valueAsString }}</b>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"hasNext\" class=\"relationItemBubble\">\r\n <button\r\n mat-button\r\n (click)=\"setOperatorTo($event, boolOperatorType.AND)\"\r\n [ngClass]=\"\r\n item.expressionData?.boolOperator === boolOperatorType.AND\r\n ? 'mat-raised-button and-operator'\r\n : ''\r\n \"\r\n color=\"black\"\r\n >\r\n ÉS\r\n </button>\r\n <button\r\n mat-button\r\n (click)=\"setOperatorTo($event, boolOperatorType.OR)\"\r\n [ngClass]=\"\r\n item.expressionData?.boolOperator === boolOperatorType.OR\r\n ? 'mat-raised-button or-operator'\r\n : ''\r\n \"\r\n color=\"black\"\r\n >\r\n VAGY\r\n </button>\r\n </div>\r\n</div>\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n ISmartFilterEditorService,\r\n SmartFilterEditorService,\r\n} from '../../../smart-filter-editor.service';\r\nimport { FilterExpressionField } from '../../../api/model/filterExpressionField';\r\n\r\n@Component({\r\n selector: 'app-expression-items',\r\n templateUrl: './smart-filter-expression-items.component.html',\r\n styleUrls: ['./smart-filter-expression-items.component.css'],\r\n})\r\nexport class SmartFilterExpressionItemsComponent implements OnDestroy, OnInit {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n @Input() items!: FilterExpressionField[];\r\n @Input() service!: ISmartFilterEditorService;\r\n\r\n isSelected: boolean = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.service.modelChanged.subscribe(() => {\r\n console.log(this.service.model);\r\n this.isSelected = this.service.model?.selectedField === null;\r\n });\r\n this.isSelected = this.service.model?.selectedField === null;\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n select(): void {\r\n // this.service.selectFilterExpressionField(undefined);\r\n }\r\n\r\n drop(event: any) {\r\n moveItemInArray(this.items, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","<div\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"expressionsContainer example-list\"\r\n [ngClass]=\"isSelected ? 'selected' : ''\"\r\n>\r\n <div cdkDrag class=\"expressionItem\" *ngFor=\"let item of items; let i = index\">\r\n <app-expression-item\r\n [item]=\"item\"\r\n [hasNext]=\"i < items.length - 1\"\r\n [service]=\"service\"\r\n ></app-expression-item>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { ComponentFactoryService } from '../../component-factory-service/component-factory-service.service';\r\nimport { FilterExpressionFieldWidgetType } from '../../smart-filter/projects';\r\nimport { SmartFormWidgetDirection } from '../../smart-form/api/model/smartFormWidgetDirection';\r\nimport { SmartFormWidgetType } from '../../smart-form/projects';\r\nimport { SmartformLayoutDefinitionService } from '../../smart-form/services/smartform.layout-definition.service';\r\nimport { SmartformComponent } from '../../smart-form/smartform.component';\r\nimport { SmartFormWidget } from '../../smart-form/smartform.form-model';\r\nimport { SmartForm, SophisticatedValueChange, Value } from '../../smart-form/smartform.model';\r\nimport { UiAction } from '../../view-context/api/model/uiAction';\r\nimport { UiActionModel } from '../../view-context/smart-ui-action/ui-action.model';\r\nimport { FilterExpressionBuilderUiModelTypeEnum } from '../api/model/filterExpressionBuilderUiModel';\r\nimport { FilterExpressionField } from '../api/model/filterExpressionField';\r\nimport { FilterExpressionBuilderApiActions } from '../filterExpressionBuilderApiActions';\r\nimport { ISmartFilterEditorService } from '../smart-filter-editor.service';\r\n\r\n@Component({\r\n selector: 'smart-filter-expression-editor',\r\n templateUrl: './smart-filter-editor-content.component.html',\r\n styleUrls: ['./smart-filter-editor-content.component.css'],\r\n})\r\nexport class SmartFilterEditorContentComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n @Input() service!: ISmartFilterEditorService;\r\n\r\n uiActionModels: UiActionModel[] = [];\r\n expressionUiActionModels: UiActionModel[] = [];\r\n\r\n @ViewChild('form', { read: ViewContainerRef }) vcRef?: ViewContainerRef;\r\n formCompRef?: ComponentRef<SmartformComponent>;\r\n smartForm?: SmartForm;\r\n\r\n @ViewChild('simpleFilterFromChild', { read: ViewContainerRef })\r\n simpleFilterVcRef?: ViewContainerRef;\r\n simpleFilterRef?: ComponentRef<SmartformComponent>;\r\n\r\n type = FilterExpressionBuilderUiModelTypeEnum;\r\n\r\n constructor(\r\n private layoutService: SmartformLayoutDefinitionService,\r\n private cfService: ComponentFactoryService\r\n ) {}\r\n\r\n private subsrcibeSimpleFormChildrenEvents(): void {\r\n this.simpleFilterRef!.instance.onBlurSubject!.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.saveFilter();\r\n });\r\n this.simpleFilterRef!.instance.sophisticatedValueChange?.pipe(\r\n takeUntil(this._destroy$)\r\n ).subscribe((change) => {\r\n if (change.kind === 'selection' && !change.key.includes('selectedValues')) {\r\n this.saveFilter();\r\n }\r\n });\r\n }\r\n\r\n private subscribeEditorFormChildrenEvents(): void {\r\n this.formCompRef?.instance!.onBlurSubject!.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.save();\r\n });\r\n\r\n this.formCompRef!.instance!.sophisticatedValueChange?.pipe(takeUntil(this._destroy$)).subscribe(\r\n (change: SophisticatedValueChange) => {\r\n if (change.key === 'expressionData.currentOperation') {\r\n this.save();\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnInit(): void {}\r\n ngAfterViewInit(): void {\r\n this.service.modelChanged.pipe(takeUntil(this._destroy$)).subscribe(() => this.setUp());\r\n this.service.load();\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n setupSimpleFilter(): void {\r\n this.simpleFilterVcRef?.clear();\r\n this.simpleFilterRef?.destroy();\r\n\r\n if (!this.simpleFilterVcRef) {\r\n return;\r\n }\r\n\r\n let widgets: SmartFormWidget<any>[] = [];\r\n\r\n let key: string | undefined;\r\n\r\n let model: { [key: string]: any } = {};\r\n\r\n this.service.model?.model?.workplaceList?.filters.forEach(\r\n (filterExpressionField: FilterExpressionField, index: number) => {\r\n model[index] = filterExpressionField;\r\n\r\n if (filterExpressionField.widgetType === 'SELECT_MULTIPLE') {\r\n key = index + '.expressionData.operand2.selectedValues';\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n filterExpressionField.label2!,\r\n filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n filterExpressionField.possibleValues as Value[],\r\n filterExpressionField.expressionData?.operand2?.valueAsString ?? ''\r\n )\r\n );\r\n return;\r\n }\r\n\r\n if (filterExpressionField.expressionData?.currentOperation === 'BETWEEN') {\r\n key = index + '.expressionData.operand2.valueAsString';\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n filterExpressionField.label2!,\r\n filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n filterExpressionField.possibleValues as Value[],\r\n filterExpressionField.expressionData?.operand2?.valueAsString ?? ''\r\n )\r\n );\r\n\r\n key = index + '.expressionData.operand3.valueAsString';\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n filterExpressionField.label3!,\r\n filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n filterExpressionField.possibleValues as Value[],\r\n filterExpressionField.expressionData?.operand3?.valueAsString ?? ''\r\n )\r\n );\r\n return;\r\n }\r\n\r\n if (filterExpressionField.expressionData?.operand2) {\r\n if (key !== index + '.expressionData.operand2.selectedValues') {\r\n key = index + '.expressionData.operand2.valueAsString';\r\n }\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n filterExpressionField.label2!,\r\n filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n filterExpressionField.possibleValues as Value[],\r\n filterExpressionField.expressionData?.operand2?.valueAsString ?? ''\r\n )\r\n );\r\n return;\r\n }\r\n if (filterExpressionField?.expressionData?.operand3) {\r\n if (key !== index + '.selectedValues') {\r\n key = index + '.expressionData.operand3.valueAsString';\r\n }\r\n widgets.push(\r\n this.constructFormWidget(\r\n key,\r\n filterExpressionField.label3!,\r\n filterExpressionField.widgetType ?? FilterExpressionFieldWidgetType.TEXT_FIELD,\r\n\r\n filterExpressionField.possibleValues as Value[],\r\n filterExpressionField.expressionData?.operand3?.valueAsString ?? ''\r\n )\r\n );\r\n return;\r\n }\r\n }\r\n );\r\n\r\n let smartForm = {\r\n direction: SmartFormWidgetDirection.ROW,\r\n componentModel: { data: model },\r\n useOnValueChangeEvent: true,\r\n useOnBlurEvent: true,\r\n widgets,\r\n };\r\n\r\n this.simpleFilterRef = this.cfService.createComponent(\r\n this.simpleFilterVcRef!,\r\n SmartformComponent,\r\n new Map<string, any>([['smartForm', smartForm]])\r\n );\r\n\r\n this.subsrcibeSimpleFormChildrenEvents();\r\n }\r\n\r\n private extractFilterFieldFromFormModel(): void {\r\n let simpleFilter = this.simpleFilterRef?.instance?.submitForm(false).componentModel.data;\r\n let result: FilterExpressionField[] = [];\r\n\r\n Object.keys(simpleFilter).forEach((key: string) => {\r\n result.push(simpleFilter[key]);\r\n });\r\n this.service.model!.model!.workplaceList!.filters = result;\r\n }\r\n\r\n setUp(): void {\r\n if (this.service.model?.type === this.type.SIMPLE) {\r\n this.setupSimpleFilter();\r\n } else {\r\n this.constructUiActionModels();\r\n\r\n if (this.service?.model?.selectedFieldEditor) {\r\n this.constructForm();\r\n } else {\r\n this.smartForm = undefined;\r\n }\r\n }\r\n }\r\n\r\n constructUiActionModels(): void {\r\n if (this.service.model?.possibleActions) {\r\n this.uiActionModels = this.service.model.possibleActions.map((action: UiAction) => {\r\n return {\r\n serviceToUse: this.service,\r\n uiAction: action,\r\n };\r\n });\r\n }\r\n\r\n if (this.service.model?.selectedFieldEditor?.possibleActions) {\r\n this.expressionUiActionModels = this.service.model?.selectedFieldEditor.possibleActions.map(\r\n (uiAction: UiAction) => {\r\n let copiedUiAction: UiAction = {};\r\n Object.keys(uiAction).map((key: string) => {\r\n (copiedUiAction as any)[key] = (uiAction as any)[key];\r\n });\r\n copiedUiAction.params = {\r\n field: this.service.model?.selectedField,\r\n };\r\n return {\r\n serviceToUse: this.service,\r\n uiAction: copiedUiAction,\r\n };\r\n }\r\n );\r\n }\r\n }\r\n\r\n constructForm(): void {\r\n this.vcRef?.clear();\r\n this.formCompRef?.destroy();\r\n\r\n if (!this.vcRef) {\r\n return;\r\n }\r\n\r\n let generatedWidgets: SmartFormWidget<any>[] = this.layoutService.render({\r\n layoutDefinitions: this.service.model?.selectedFieldEditor?.layoutDef?.widgets,\r\n });\r\n\r\n this.smartForm = {\r\n direction: SmartFormWidgetDirection.ROW,\r\n useOnBlurEvent: true,\r\n useOnValueChangeEvent: true,\r\n componentModel: { data: this.service.model?.selectedField },\r\n widgets: generatedWidgets,\r\n };\r\n\r\n this.formCompRef = this.cfService.createComponent(\r\n this.vcRef!,\r\n SmartformComponent,\r\n new Map<string, any>([['smartForm', this.smartForm]])\r\n );\r\n\r\n this.subscribeEditorFormChildrenEvents();\r\n }\r\n\r\n save(): void {\r\n this.formCompRef?.instance?.submitForm(false);\r\n this.service.peformWidgetAction({\r\n code: 'UPDATE_FILTER_EXPRESSION',\r\n params: {\r\n model: this.service.model?.selectedField,\r\n },\r\n });\r\n }\r\n\r\n remove(): void {\r\n this.service.peformWidgetAction({\r\n code: 'REMOVE_FILTER_EXPRESSION',\r\n params: {\r\n model: this.service.model?.selectedField,\r\n },\r\n });\r\n }\r\n\r\n async saveFilter(): Promise<void> {\r\n this.extractFilterFieldFromFormModel();\r\n this.service.performUiActionRequest({\r\n code: FilterExpressionBuilderApiActions.SAVE_EXPRESSION_FIELD_LIST,\r\n params: {\r\n model: this.service.model!,\r\n },\r\n });\r\n }\r\n\r\n private constructFormWidget(\r\n key: string,\r\n label: string,\r\n widgetType: FilterExpressionFieldWidgetType,\r\n possibleValues: Value[],\r\n value: string\r\n ): SmartFormWidget<any> {\r\n let type: any = widgetType;\r\n\r\n if (type === FilterExpressionFieldWidgetType.DATE) {\r\n type = SmartFormWidgetType.DATE_PICKER;\r\n } else if (type === FilterExpressionFieldWidgetType.DATE_TIME) {\r\n type = SmartFormWidgetType.DATE_TIME_PICKER;\r\n }\r\n\r\n let widget: SmartFormWidget<any> = {\r\n error: undefined,\r\n key,\r\n label,\r\n type,\r\n value,\r\n showLabel: true,\r\n valueList: possibleValues.map((value: Value) => {\r\n return {\r\n key: value.objectUri ? value.objectUri : value.code!,\r\n label: value.displayValue,\r\n type: SmartFormWidgetType.ITEM,\r\n value: value.objectUri ? value.objectUri : value.code,\r\n };\r\n }),\r\n };\r\n\r\n return widget;\r\n }\r\n}\r\n","<div class=\"smart-filter-editor-container\" *ngIf=\"service.model\">\r\n <h3 class=\"smart-filter-editor-title\">{{ service.model?.model?.label }}</h3>\r\n\r\n <div *ngIf=\"service.model?.type === type.SIMPLE; then simpleFilter; else complexFilter\"></div>\r\n\r\n <ng-template #simpleFilter>\r\n <div class=\"smart-filter-editor-expressionsContainer\">\r\n <ng-template #simpleFilterFromChild></ng-template>\r\n <!-- #simpleFilterFromChild [smartForm]=\"simpleFilterForm\"></smartform> -->\r\n </div>\r\n </ng-template>\r\n <ng-template #complexFilter>\r\n <div class=\"smart-filter-editor-uiActionsBar\" *ngIf=\"!service.model?.readOnly\">\r\n <smart-ui-action-toolbar [uiActionModels]=\"uiActionModels\"></smart-ui-action-toolbar>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n service?.model?.model?.workplaceList?.filters?.length;\r\n then withParameters;\r\n else withoutParameters\r\n \"\r\n ></div>\r\n <ng-template #withoutParameters>\r\n <div class=\"smart-filter-editor-withoutParametersContainer\">\r\n <span class=\"mat-body\"> Még nincs megadva paraméter </span>\r\n </div>\r\n </ng-template>\r\n <ng-template #withParameters>\r\n <div class=\"smart-filter-editor-withParametersContainer\">\r\n <div\r\n class=\"smart-filter-editor-expressionsContainer\"\r\n *ngIf=\"service?.model?.model?.workplaceList?.filters?.length\"\r\n >\r\n <app-expression-items\r\n [items]=\"(service.model?.model?.workplaceList)!.filters\"\r\n [service]=\"service\"\r\n ></app-expression-items>\r\n </div>\r\n <div class=\"smart-filter-editor-expressionEditorContainer\">\r\n <!-- <smartform #form [smartForm]=\"smartForm\"></smartform> -->\r\n <ng-template #form></ng-template>\r\n <div *ngIf=\"smartForm\">\r\n <button (click)=\"remove()\" mat-raised-button color=\"primary\">Törlés</button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { SmartFilterParamsComponent } from './smart-filter-params/smart-filter-params.component';\r\nimport { SmartFilterParamComponent } from './smart-filter-params/components/smart-filter-param/smart-filter-param.component';\r\nimport { SmartFilterEditorContentComponent } from './smart-filter-editor-content/smart-filter-editor-content.component';\r\nimport { SmartFilterExpressionItemsComponent } from './smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component';\r\nimport { SmartFilterExpressionItemComponent } from './smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport { SmartExpandableSectionModule } from '../smart-expandable-section/smart-expandable-section.module';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SmartFilterModule } from '../smart-filter/smart-filter.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartFilterParamsComponent,\r\n SmartFilterParamComponent,\r\n SmartFilterEditorContentComponent,\r\n SmartFilterExpressionItemsComponent,\r\n SmartFilterExpressionItemComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SmartIconModule,\r\n SmartExpandableSectionModule,\r\n SmartViewContextModule,\r\n MatButtonModule,\r\n SmartFilterModule,\r\n SharedModule,\r\n ],\r\n exports: [\r\n SmartFilterParamsComponent,\r\n SmartFilterParamComponent,\r\n SmartFilterEditorContentComponent,\r\n SmartFilterExpressionItemsComponent,\r\n SmartFilterExpressionItemComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SmartFilterEditorModule {}\r\n","import { ThemePalette } from '@angular/material/core';\r\nimport { MatBadgePosition } from '@angular/material/badge';\r\nimport { SmartFormWidget } from '../../projects';\r\n\r\nexport enum SmartUserSettinsIconPosition {\r\n FRONT,\r\n POST,\r\n}\r\nexport interface SmartUserSetting {\r\n label: string;\r\n icon?: string;\r\n iconPosition?: SmartUserSettinsIconPosition;\r\n callback: () => void;\r\n}\r\n\r\nexport interface SmartUserSettings {\r\n icon?: string;\r\n label: string;\r\n settings?: SmartUserSetting[];\r\n callback?: () => void;\r\n}\r\n\r\nexport interface SmartSearchRequest {\r\n widgets: SmartFormWidget<any>[];\r\n searchText: string;\r\n}\r\n\r\nexport interface SmartSearchBar {\r\n placeholder: string;\r\n icon?: string;\r\n quickFilterLabel: string;\r\n quickFilters: string[];\r\n searchCallback?: (...args: any[]) => any;\r\n widget: SmartFormWidget<any>;\r\n}\r\n\r\nexport interface SmartNotification {\r\n icon: string;\r\n iconColor?: string;\r\n notificationCallBack?: () => void;\r\n notificationCount?: number;\r\n counterColor?: ThemePalette;\r\n position?: MatBadgePosition;\r\n}\r\n\r\nexport interface SmartNavbar {\r\n icon?: string;\r\n iconCallback?: () => void;\r\n searchBar?: SmartSearchBar;\r\n filterButtonLabel?: string;\r\n filterButtonCallback?: () => void;\r\n userSettings?: SmartUserSettings;\r\n notification?: SmartNotification;\r\n}\r\n","import { Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { SmartForm, SmartFormWidgetDirection, SmartformComponent } from '../../projects';\r\nimport { SmartNavbar, SmartUserSettinsIconPosition } from './smart-navbar.model';\r\n\r\n@Component({\r\n selector: 'smart-navbar',\r\n templateUrl: './smart-navbar.component.html',\r\n styleUrls: ['./smart-navbar.component.css'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n})\r\nexport class SmartNavbarComponent implements OnInit {\r\n @Input() smartNavbar!: SmartNavbar;\r\n filterForm!: SmartForm;\r\n searchText: string = '';\r\n\r\n @ViewChild('searchOption') formComp!: SmartformComponent;\r\n\r\n constructor() {}\r\n\r\n onSearchButtonClick() {\r\n if (!this.smartNavbar.searchBar?.searchCallback) {\r\n throw new Error(`Searchbar does not have a callback!`);\r\n }\r\n this.smartNavbar.searchBar?.searchCallback(this.formComp.submitForm().widgets, this.searchText);\r\n }\r\n\r\n buttonPosition(): typeof SmartUserSettinsIconPosition {\r\n return SmartUserSettinsIconPosition;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.renderForm();\r\n }\r\n\r\n onIconClick() {\r\n if (this.smartNavbar.iconCallback) {\r\n this.smartNavbar.iconCallback();\r\n }\r\n }\r\n\r\n openFilters() {\r\n if (this.smartNavbar.filterButtonCallback) {\r\n this.smartNavbar.filterButtonCallback();\r\n }\r\n }\r\n\r\n onNotificationClick() {\r\n if (this.smartNavbar?.notification?.notificationCallBack) {\r\n this.smartNavbar?.notification?.notificationCallBack();\r\n }\r\n }\r\n\r\n renderForm() {\r\n this.filterForm = {\r\n direction: SmartFormWidgetDirection.ROW,\r\n widgets: [this.smartNavbar.searchBar?.widget!],\r\n };\r\n }\r\n}\r\n","<mat-toolbar>\r\n <img\r\n *ngIf=\"smartNavbar.icon\"\r\n class=\"title\"\r\n src=\"{{ smartNavbar.icon }}\"\r\n alt=\"\"\r\n (click)=\"onIconClick()\"\r\n />\r\n <ng-content select=\"[titleComponent]\" class=\"title\"></ng-content>\r\n <div *ngIf=\"smartNavbar.searchBar\" class=\"input\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ smartNavbar.searchBar.placeholder }}\"\r\n [(ngModel)]=\"searchText\"\r\n />\r\n <div\r\n *ngIf=\"smartNavbar.searchBar.quickFilterLabel && smartNavbar.searchBar.quickFilters.length\"\r\n class=\"drop_down_btn\"\r\n >\r\n <smartform #searchOption [smartForm]=\"filterForm\"></smartform>\r\n <button\r\n class=\"search_icon\"\r\n *ngIf=\"smartNavbar.searchBar.icon\"\r\n mat-icon-button\r\n (click)=\"onSearchButtonClick()\"\r\n >\r\n <mat-icon class=\"search_icon\">{{ smartNavbar.searchBar.icon }}</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <button\r\n *ngIf=\"smartNavbar.filterButtonCallback\"\r\n mat-raised-button\r\n color=\"primary\"\r\n class=\"filter-btn\"\r\n (click)=\"openFilters()\"\r\n >\r\n <div #customFilter class=\"custom-filter-holder\">\r\n <ng-content select=\"[filterComponent]\"></ng-content>\r\n </div>\r\n <ng-container *ngIf=\"!customFilter.hasChildNodes()\">\r\n <mat-icon>filter_list</mat-icon> {{ smartNavbar.filterButtonLabel }}\r\n </ng-container>\r\n </button>\r\n <div *ngIf=\"smartNavbar.userSettings\" class=\"account-content\">\r\n <button\r\n mat-button\r\n *ngIf=\"smartNavbar?.notification\"\r\n [color]=\"smartNavbar.notification?.iconColor\"\r\n (click)=\"onNotificationClick()\"\r\n class=\"notification-btn\"\r\n >\r\n <mat-icon>\r\n {{ smartNavbar.notification?.icon }}\r\n </mat-icon>\r\n </button>\r\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"smartNavbar.userSettings.icon\">\r\n {{ smartNavbar.userSettings.icon }}\r\n </mat-icon>\r\n <mat-icon *ngIf=\"!smartNavbar.userSettings.icon\"> person_outline </mat-icon>\r\n {{ smartNavbar.userSettings.label }}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let btn of smartNavbar.userSettings.settings\"\r\n (click)=\"btn.callback()\"\r\n class=\"menuButton\"\r\n >\r\n <mat-icon class=\"menuIcon\" *ngIf=\"btn.icon && btn.iconPosition === buttonPosition().FRONT\">\r\n {{ btn.icon }}\r\n </mat-icon>\r\n <div class=\"menuLabel\">\r\n {{ btn.label }}\r\n </div>\r\n <mat-icon class=\"menuIcon\" *ngIf=\"btn.icon && btn.iconPosition === buttonPosition().POST\">\r\n {{ btn.icon }}\r\n </mat-icon>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n</mat-toolbar>\r\n","import { NgModule } from '@angular/core';\r\nimport { SmartNavbarComponent } from './smart-navbar.component';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { SmartViewContextModule } from '../view-context/smart-view-context.module';\r\n\r\n@NgModule({\r\n declarations: [SmartNavbarComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n MatButtonModule,\r\n MatToolbarModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatBadgeModule,\r\n SmartViewContextModule,\r\n ],\r\n exports: [SmartNavbarComponent],\r\n})\r\nexport class SmartNavbarModule {}\r\n","import { ComponentType } from '@angular/cdk/portal';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SmartNavigationService, SmartViewHandlerModel } from '../../projects';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { TabTile } from './tabTile.model';\r\n\r\n@Component({\r\n selector: 'smart-tab-group',\r\n templateUrl: './smart-tab-group.component.html',\r\n styleUrls: ['./smart-tab-group.component.css'],\r\n})\r\nexport class TabGroupComponent implements OnInit {\r\n @Input() tabTiles!: TabTile[];\r\n @Input() handlers!: SmartViewHandlerModel[];\r\n selectedTabIndex: number = 0;\r\n\r\n public selectedTabChanged: Subject<number> = new Subject();\r\n\r\n constructor(private navigationService: SmartNavigationService, private route: ActivatedRoute) {\r\n this.navigationService.route = this.route;\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n navigateTabContent($event: any) {\r\n if (!this.navigationService.route) {\r\n this.navigationService.route = this.route;\r\n }\r\n this.navigationService.navigateTo(\r\n [`${this.tabTiles[$event.index].url}`],\r\n undefined,\r\n 'preserve',\r\n true\r\n );\r\n this.selectedTabChanged.next(this.selectedTabIndex);\r\n }\r\n\r\n getTabComponentFromHandlers(viewName: string): ComponentType<any> | undefined {\r\n for (let handler of this.handlers) {\r\n if (handler.name === viewName) {\r\n return handler.component;\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n","<div class=\"sm-tab-group-container\">\r\n <mat-tab-group\r\n class=\"sm-tab-group\"\r\n (selectedTabChange)=\"navigateTabContent($event)\"\r\n [(selectedIndex)]=\"selectedTabIndex\"\r\n >\r\n <mat-tab\r\n class=\"sm-tab\"\r\n appearance=\"outline\"\r\n *ngFor=\"let tabTile of tabTiles\"\r\n label=\"{{ tabTile.tileName }}\"\r\n >\r\n <ng-template mat-tab-label *ngIf=\"tabTile.extra\">\r\n <span class=\"row\"\r\n >{{ tabTile.tileName }}\r\n <div\r\n [ngClass]=\"\r\n tabTile.extra ? 'sm-tab-notification' : 'sm-tab-notification-none'\r\n \"\r\n >\r\n {{ tabTile.extra }}\r\n </div></span\r\n >\r\n </ng-template>\r\n </mat-tab>\r\n </mat-tab-group>\r\n <div class=\"sm-tab-content-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, ComponentRef, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { ComponentFactoryService } from '../../component-factory-service/projects';\r\n\r\n@Component({\r\n selector: 'tab-content',\r\n templateUrl: './tab-content.component.html',\r\n styleUrls: ['./tab-content.component.css'],\r\n})\r\nexport class TabContentComponent implements OnInit {\r\n @Input() component?: any;\r\n\r\n @ViewChild('component', { read: ViewContainerRef }) vcRefExample?: ViewContainerRef;\r\n\r\n componentRef?: ComponentRef<any>;\r\n\r\n constructor(private cfService: ComponentFactoryService) {\r\n console.log(this.component);\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit() {\r\n if (this.component) {\r\n this.vcRefExample?.clear();\r\n\r\n this.cfService.createComponent(this.vcRefExample!, this.component);\r\n } else {\r\n throw Error('Component cannot be undefined');\r\n }\r\n }\r\n}\r\n","<div class=\"tab-content-container\">\r\n <ng-template #component></ng-template>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChildren,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentFactoryService, SmartNavigationService } from '../../../projects';\r\n\r\n@Component({\r\n selector: 'smart-simplified-tab-group',\r\n templateUrl: './tab-group.component.html',\r\n styleUrls: ['./tab-group.component.css'],\r\n})\r\nexport class SimplifiedTabGroupComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren('tabContent', { read: ViewContainerRef })\r\n vcRefTabContentChildren?: QueryList<ViewContainerRef>;\r\n componentRefTabContentChildren: ComponentRef<any>[] = [];\r\n\r\n @Input() tabGroupData!: TabGroupData[];\r\n @Input() animationDuration?: number = 0;\r\n selectedIndex?: number;\r\n\r\n tabChanges: Subject<number>[] = [];\r\n\r\n constructor(\r\n private cfService: ComponentFactoryService,\r\n private navigate: SmartNavigationService,\r\n private route: ActivatedRoute\r\n ) {\r\n this.navigate.route = this.route;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getTabIndex();\r\n }\r\n ngAfterViewInit(): void {\r\n this.vcRefTabContentChildren?.forEach((item: ViewContainerRef, index: number) => {\r\n this.tabChanges.push(new Subject());\r\n this.componentRefTabContentChildren?.push(\r\n this.cfService.createComponent(\r\n item,\r\n this.tabGroupData[index].component,\r\n new Map<string, any>([['tabChange', this.tabChanges[index]]])\r\n )\r\n );\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.navigate.urlSubscription?.unsubscribe();\r\n }\r\n\r\n changeSelectedTab(event: any): void {\r\n if (this.tabGroupData[event].url) {\r\n this.navigate.navigateTo([this.tabGroupData[event].url!], undefined, 'preserve', true);\r\n }\r\n this.tabChanges[event as number].next(event);\r\n }\r\n\r\n getTabIndex() {\r\n const url = this.navigate.getCurrentPath();\r\n this.selectedIndex = this.tabGroupData.findIndex((t: TabGroupData) => {\r\n if (t.url) {\r\n let tabUrl: string = t.url;\r\n if (tabUrl.includes('../')) {\r\n tabUrl = tabUrl.split('../')[1];\r\n }\r\n return url.includes(tabUrl);\r\n }\r\n return 0;\r\n });\r\n if (this.selectedIndex === -1) {\r\n this.selectedIndex = 0;\r\n }\r\n }\r\n}\r\n\r\nexport interface TabGroupData {\r\n label: string;\r\n component: any;\r\n url?: string;\r\n}\r\n","<div class=\"sm-tab-group-container\">\r\n\t<mat-tab-group\r\n\t\tclass=\"sm-tab-group\"\r\n\t\tmat-stretch-tab=\"false\"\r\n\t\tmat-align-tabs=\"start\"\r\n\t\t[selectedIndex]=\"selectedIndex\"\r\n\t\t(selectedIndexChange)=\"changeSelectedTab($event)\"\r\n\t\t[animationDuration]=\"0\"\r\n\t>\r\n\t\t<mat-tab class=\"sm-tab\" appearance=\"outline\" *ngFor=\"let tab of tabGroupData\" [label]=\"tab.label\">\r\n\t\t\t<ng-template #tabContent></ng-template>\r\n\t\t</mat-tab>\r\n\t</mat-tab-group>\r\n</div>\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { TabGroupComponent } from './smart-tab-group.component';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { TabContentComponent } from './tab-content/tab-content.component';\r\nimport { SimplifiedTabGroupComponent } from './tab-group-simplified/tab-group.component';\r\nimport { SmartViewContextModule, SmartViewContextService } from '../view-context/projects';\r\nimport { ComponentFactoryServiceModule } from '../component-factory-service/projects';\r\n\r\n@NgModule({\r\n declarations: [TabGroupComponent, TabContentComponent, SimplifiedTabGroupComponent],\r\n imports: [BrowserModule, MatTabsModule, ComponentFactoryServiceModule, SmartViewContextModule],\r\n exports: [SimplifiedTabGroupComponent, TabGroupComponent],\r\n providers: [SmartViewContextService],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class SmartTabGroupModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ComponentFactoryServiceModule } from './component-factory-service/projects';\r\nimport { SmartSessionModule } from './session/smart-session.module';\r\nimport { SmartFileUploaderComponent } from './smart-client/smart-file-uploader/smart-file-uploader.component';\r\nimport { SmartComponentLayoutModule } from './smart-component-layout/smart-component-layout.module';\r\nimport { SmartdialogModule } from './smart-dialog/smartdialog.module';\r\nimport { SmartExpandableSectionModule } from './smart-expandable-section/smart-expandable-section.module';\r\nimport { SmartFilterEditorModule } from './smart-filter-editor/smart-filter-editor.module';\r\nimport { SmartFilterModule } from './smart-filter/smart-filter.module';\r\nimport { SmartGridModule } from './smart-grid/smart-grid.module';\r\nimport { SmartIconModule } from './smart-icon/smart-icon.module';\r\nimport { SmartNavbarModule } from './smart-navbar/smart-navbar.module';\r\nimport { SmartNgClientService } from './smart-ng-client.service';\r\nimport { SmartTabGroupModule } from './smart-tab-group/smart-tab-group.module';\r\nimport { SmarttableModule } from './smart-table/smarttable.module';\r\nimport { SmartViewContextModule } from './view-context/smart-view-context.module';\r\nimport { SmarttreeModule } from './smart-tree/smarttree.module';\r\nimport { SharedModule } from './shared/shared.module';\r\n\r\n@NgModule({\r\n declarations: [SmartFileUploaderComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n ComponentFactoryServiceModule,\r\n SmartViewContextModule,\r\n SmartdialogModule,\r\n SmartFilterModule,\r\n SmartGridModule,\r\n SmartIconModule,\r\n SmartNavbarModule,\r\n SmartSessionModule,\r\n SmartTabGroupModule,\r\n SmarttableModule,\r\n SmartExpandableSectionModule,\r\n SmartComponentLayoutModule,\r\n SmartFilterEditorModule,\r\n SharedModule,\r\n ],\r\n exports: [\r\n ComponentFactoryServiceModule,\r\n SmartComponentLayoutModule,\r\n SmartdialogModule,\r\n SmartExpandableSectionModule,\r\n SmartFilterModule,\r\n SmartGridModule,\r\n SmartIconModule,\r\n SmartNavbarModule,\r\n SmartSessionModule,\r\n SmartTabGroupModule,\r\n SmarttableModule,\r\n SmartViewContextModule,\r\n SmartFileUploaderComponent,\r\n SmarttreeModule,\r\n SharedModule,\r\n ],\r\n providers: [SmartNgClientService],\r\n})\r\nexport class SmartNgClientModule {}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { SmartSubject } from '../smart-subject/projects';\r\n\r\nexport interface SmartAuthenticationServiceInterface {\r\n bffApisHaveBeenSetUp: boolean;\r\n headersUpdated: Subject<void>;\r\n}\r\n\r\n@Injectable()\r\nexport class SmartAuthService implements SmartAuthenticationServiceInterface, OnDestroy {\r\n bffApisHaveBeenSetUp: boolean = false;\r\n private _destroy$: Subject<void> = new Subject();\r\n headersUpdated: Subject<void> = new SmartSubject(this._destroy$);\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of smarttree\r\n */\r\n\r\nexport * from './smarttree.service';\r\nexport * from './smarttree.component';\r\nexport * from './smarttree.module';\r\nexport * from './smarttree.model';\r\nexport * from './smarttree-generic.service';\r\n","import { deepEqual } from 'fast-equals';\r\nimport { SmartformComponent } from '../smart-form/projects';\r\nimport { SmartGridComponent } from '../smart-grid/projects';\r\nimport { SmarttreeGenericService } from '../smart-tree/projects';\r\nimport { Style, UiActionToolbarComponent } from '../view-context/projects';\r\nimport { SmartComponentLayoutDefinition } from './api';\r\nimport { SmartComponentLayoutComponent } from './smart-component-layout.component';\r\nimport { ElementRef, Renderer2, RendererStyleFlags2 } from '@angular/core';\r\n\r\nexport class SmartComponentLayoutUtility {\r\n public static getForms(comp: SmartComponentLayoutComponent): SmartformComponent[] {\r\n let result: SmartformComponent[] = [];\r\n if (comp.components) {\r\n const children = comp.components\r\n .map((c) => this.getForms(c))\r\n .reduce((acc, value) => acc.concat(value), []);\r\n result.push(...children);\r\n }\r\n const expandable = this.getExpandableComponent(comp);\r\n if (expandable) {\r\n result.push(...this.getForms(expandable));\r\n }\r\n if (comp.smartFormComponent) {\r\n result.push(comp.smartFormComponent);\r\n }\r\n return result;\r\n }\r\n\r\n public static getGrids(comp: SmartComponentLayoutComponent): SmartGridComponent[] {\r\n let result: SmartGridComponent[] = [];\r\n if (comp.components) {\r\n const children = comp.components\r\n .map((c) => this.getGrids(c))\r\n .reduce((acc, value) => acc.concat(value), []);\r\n result.push(...children);\r\n }\r\n const expandable = this.getExpandableComponent(comp);\r\n if (expandable) {\r\n result.push(...this.getGrids(expandable));\r\n }\r\n if (comp.smartGridComponent) {\r\n result.push(comp.smartGridComponent);\r\n }\r\n return result;\r\n }\r\n\r\n public static getTrees(comp: SmartComponentLayoutComponent): SmarttreeGenericService[] {\r\n let result: SmarttreeGenericService[] = [];\r\n if (comp.components) {\r\n const children = comp.components\r\n ?.map((c) => this.getTrees(c))\r\n .reduce((acc, value) => acc.concat(value), []);\r\n result.push(...children);\r\n }\r\n const expandable = this.getExpandableComponent(comp);\r\n if (expandable) {\r\n result.push(...this.getTrees(expandable));\r\n }\r\n if (comp.treeService) {\r\n result.push(comp.treeService);\r\n }\r\n return result;\r\n }\r\n\r\n public static getToolbars(comp: SmartComponentLayoutComponent): UiActionToolbarComponent[] {\r\n let result: UiActionToolbarComponent[] = [];\r\n if (comp.components) {\r\n const children = comp.components\r\n .map((c) => this.getToolbars(c))\r\n .reduce((acc, value) => acc.concat(value), []);\r\n result.push(...children);\r\n }\r\n const expandable = this.getExpandableComponent(comp);\r\n if (expandable) {\r\n result.push(...this.getToolbars(expandable));\r\n }\r\n if (comp.toolbar) {\r\n result.push(comp.toolbar);\r\n }\r\n return result;\r\n }\r\n\r\n static getExpandableComponent(\r\n comp: SmartComponentLayoutComponent\r\n ): SmartComponentLayoutComponent {\r\n return comp.expandableComponents?.first?.componentRef?.instance;\r\n }\r\n\r\n public static applyStyle(\r\n style: Style | undefined,\r\n elementRef?: ElementRef,\r\n renderer?: Renderer2\r\n ) {\r\n if (style && elementRef && renderer) {\r\n let element = elementRef.nativeElement;\r\n // css style properties\r\n if (style.style) {\r\n Object.entries(style.style).forEach(([key, value]) => {\r\n renderer.setStyle(element, key, value, RendererStyleFlags2.Important);\r\n });\r\n }\r\n // add classes\r\n if (style.classesToAdd) {\r\n style.classesToAdd.forEach((cl) => renderer.addClass(element, cl));\r\n }\r\n // remove classes\r\n if (style.classesToRemove) {\r\n style.classesToRemove.forEach((cl) => renderer.removeClass(element, cl));\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of smart-component-layout\r\n */\r\n\r\nexport * from './smart-component-layout.module';\r\nexport * from './smart-component-layout.component';\r\nexport * from './smart-component-layout-utility';\r\nexport * from './api/model/models';\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\n\r\n/**\r\n * Custom HttpParameterCodec\r\n * Workaround for https://github.com/angular/angular/issues/18261\r\n */\r\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\r\n encodeKey(k: string): string {\r\n return encodeURIComponent(k);\r\n }\r\n encodeValue(v: string): string {\r\n return encodeURIComponent(v);\r\n }\r\n decodeKey(k: string): string {\r\n return decodeURIComponent(k);\r\n }\r\n decodeValue(v: string): string {\r\n return decodeURIComponent(v);\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const BASE_PATH = new InjectionToken<string>('basePath');\r\nexport const COLLECTION_FORMATS = {\r\n 'csv': ',',\r\n 'tsv': ' ',\r\n 'ssv': ' ',\r\n 'pipes': '|'\r\n}\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\nimport { Param } from './param';\r\n\r\nexport interface ConfigurationParameters {\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n /**\r\n * Takes care of encoding query- and form-parameters.\r\n */\r\n encoder?: HttpParameterCodec;\r\n /**\r\n * Override the default method for encoding path parameters in various\r\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\r\n * <p>\r\n * See {@link README.md} for more details\r\n * </p>\r\n */\r\n encodeParam?: (param: Param) => string;\r\n /**\r\n * The keys are the names in the securitySchemes section of the OpenAPI\r\n * document. They should map to the value used for authentication\r\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\r\n */\r\n credentials?: {[ key: string ]: string | (() => string | undefined)};\r\n}\r\n\r\nexport class Configuration {\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n apiKeys?: {[ key: string ]: string};\r\n username?: string;\r\n password?: string;\r\n /**\r\n * @deprecated Since 5.0. Use credentials instead\r\n */\r\n accessToken?: string | (() => string);\r\n basePath?: string;\r\n withCredentials?: boolean;\r\n /**\r\n * Takes care of encoding query- and form-parameters.\r\n */\r\n encoder?: HttpParameterCodec;\r\n /**\r\n * Encoding of various path parameter\r\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\r\n * <p>\r\n * See {@link README.md} for more details\r\n * </p>\r\n */\r\n encodeParam: (param: Param) => string;\r\n /**\r\n * The keys are the names in the securitySchemes section of the OpenAPI\r\n * document. They should map to the value used for authentication\r\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\r\n */\r\n credentials: {[ key: string ]: string | (() => string | undefined)};\r\n\r\n constructor(configurationParameters: ConfigurationParameters = {}) {\r\n this.apiKeys = configurationParameters.apiKeys;\r\n this.username = configurationParameters.username;\r\n this.password = configurationParameters.password;\r\n this.accessToken = configurationParameters.accessToken;\r\n this.basePath = configurationParameters.basePath;\r\n this.withCredentials = configurationParameters.withCredentials;\r\n this.encoder = configurationParameters.encoder;\r\n if (configurationParameters.encodeParam) {\r\n this.encodeParam = configurationParameters.encodeParam;\r\n }\r\n else {\r\n this.encodeParam = param => this.defaultEncodeParam(param);\r\n }\r\n if (configurationParameters.credentials) {\r\n this.credentials = configurationParameters.credentials;\r\n }\r\n else {\r\n this.credentials = {};\r\n }\r\n }\r\n\r\n /**\r\n * Select the correct content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param contentTypes - the array of content types that are available for selection\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\r\n if (contentTypes.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return contentTypes[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Select the correct accept content-type to use for a request.\r\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\r\n * If no content type is found return the first found type if the contentTypes is not empty\r\n * @param accepts - the array of content types that are available for selection.\r\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\r\n */\r\n public selectHeaderAccept(accepts: string[]): string | undefined {\r\n if (accepts.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const type = accepts.find((x: string) => this.isJsonMime(x));\r\n if (type === undefined) {\r\n return accepts[0];\r\n }\r\n return type;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n\r\n public lookupCredential(key: string): string | undefined {\r\n const value = this.credentials[key];\r\n return typeof value === 'function'\r\n ? value()\r\n : value;\r\n }\r\n\r\n private defaultEncodeParam(param: Param): string {\r\n // This implementation exists as fallback for missing configuration\r\n // and for backwards compatibility to older typescript-angular generator versions.\r\n // It only works for the 'simple' parameter style.\r\n // Date-handling only works for the 'date-time' format.\r\n // All other styles and Date-formats are probably handled incorrectly.\r\n //\r\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\r\n\r\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\r\n ? (param.value as Date).toISOString()\r\n : param.value;\r\n\r\n return encodeURIComponent(String(value));\r\n }\r\n}\r\n","/**\r\n * Filter API 2\r\n * Filter API 2\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n/* tslint:disable:no-unused-variable member-ordering */\r\n\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams,\r\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \r\n } from '@angular/common/http';\r\nimport { CustomHttpParameterCodec } from '../encoder';\r\nimport { Observable } from 'rxjs';\r\n\r\n// @ts-ignore\r\nimport { FilterExpressionBuilderUiModel } from '../model/filterExpressionBuilderUiModel';\r\n// @ts-ignore\r\nimport { UiActionRequest } from '../../../view-context/api/model/uiActionRequest';\r\n\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilterService {\r\n\r\n protected basePath = 'http://localhost';\r\n public defaultHeaders = new HttpHeaders();\r\n public configuration = new Configuration();\r\n public encoder: HttpParameterCodec;\r\n\r\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\r\n if (configuration) {\r\n this.configuration = configuration;\r\n }\r\n if (typeof this.configuration.basePath !== 'string') {\r\n if (Array.isArray(basePath) && basePath.length > 0) {\r\n basePath = basePath[0];\r\n }\r\n\r\n if (typeof basePath !== 'string') {\r\n basePath = this.basePath;\r\n }\r\n this.configuration.basePath = basePath;\r\n }\r\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\r\n }\r\n\r\n\r\n // @ts-ignore\r\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\r\n if (typeof value === \"object\" && value instanceof Date === false) {\r\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\r\n } else {\r\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\r\n }\r\n return httpParams;\r\n }\r\n\r\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\r\n if (value == null) {\r\n return httpParams;\r\n }\r\n\r\n if (typeof value === \"object\") {\r\n if (Array.isArray(value)) {\r\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\r\n } else if (value instanceof Date) {\r\n if (key != null) {\r\n httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\r\n } else {\r\n throw Error(\"key may not be null if value is Date\");\r\n }\r\n } else {\r\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\r\n httpParams, value[k], key != null ? `${key}.${k}` : k));\r\n }\r\n } else if (key != null) {\r\n httpParams = httpParams.append(key, value);\r\n } else {\r\n throw Error(\"key may not be null if value is not object or array\");\r\n }\r\n return httpParams;\r\n }\r\n\r\n /**\r\n * \r\n * @param uuid \r\n * @param filterIdentifier \r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public load(uuid: string, filterIdentifier: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<FilterExpressionBuilderUiModel>;\r\n public load(uuid: string, filterIdentifier: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<FilterExpressionBuilderUiModel>>;\r\n public load(uuid: string, filterIdentifier: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<FilterExpressionBuilderUiModel>>;\r\n public load(uuid: string, filterIdentifier: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling load.');\r\n }\r\n if (filterIdentifier === null || filterIdentifier === undefined) {\r\n throw new Error('Required parameter filterIdentifier was null or undefined when calling load.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = [\r\n 'application/json'\r\n ];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/filter/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"filterIdentifier\", value: filterIdentifier, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/load`;\r\n return this.httpClient.request<FilterExpressionBuilderUiModel>('get', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * \r\n * @param uuid \r\n * @param filterIdentifier \r\n * @param body \r\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\r\n * @param reportProgress flag to report request and response progress.\r\n */\r\n public performWidgetAction(uuid: string, filterIdentifier: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<FilterExpressionBuilderUiModel>;\r\n public performWidgetAction(uuid: string, filterIdentifier: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<FilterExpressionBuilderUiModel>>;\r\n public performWidgetAction(uuid: string, filterIdentifier: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<FilterExpressionBuilderUiModel>>;\r\n public performWidgetAction(uuid: string, filterIdentifier: string, body: UiActionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling performWidgetAction.');\r\n }\r\n if (filterIdentifier === null || filterIdentifier === undefined) {\r\n throw new Error('Required parameter filterIdentifier was null or undefined when calling performWidgetAction.');\r\n }\r\n if (body === null || body === undefined) {\r\n throw new Error('Required parameter body was null or undefined when calling performWidgetAction.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n\r\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\r\n if (localVarHttpHeaderAcceptSelected === undefined) {\r\n // to determine the Accept header\r\n const httpHeaderAccepts: string[] = [\r\n 'application/json'\r\n ];\r\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\r\n }\r\n if (localVarHttpHeaderAcceptSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\r\n }\r\n\r\n let localVarHttpContext: HttpContext | undefined = options && options.context;\r\n if (localVarHttpContext === undefined) {\r\n localVarHttpContext = new HttpContext();\r\n }\r\n\r\n\r\n // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'application/json'\r\n ];\r\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\r\n if (httpContentTypeSelected !== undefined) {\r\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\r\n }\r\n\r\n let responseType_: 'text' | 'json' | 'blob' = 'json';\r\n if (localVarHttpHeaderAcceptSelected) {\r\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\r\n responseType_ = 'text';\r\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\r\n responseType_ = 'json';\r\n } else {\r\n responseType_ = 'blob';\r\n }\r\n }\r\n\r\n let localVarPath = `/filter/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/${this.configuration.encodeParam({name: \"filterIdentifier\", value: filterIdentifier, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/performWidgetAction`;\r\n return this.httpClient.request<FilterExpressionBuilderUiModel>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: body,\r\n responseType: <any>responseType_,\r\n withCredentials: this.configuration.withCredentials,\r\n headers: localVarHeaders,\r\n observe: observe,\r\n reportProgress: reportProgress\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, config } from 'rxjs';\r\nimport { SmartFilterEditorConfig } from './smart-filter-editor.model';\r\nimport { UiActionRequest } from '../view-context/api/model/uiActionRequest';\r\nimport {\r\n UiActionAdditionalParams,\r\n UiActionSpecificDemandResponse,\r\n UseUiAction,\r\n} from '../view-context/smart-ui-action/ui-action.model';\r\nimport { UiAction } from '../view-context/api/model/uiAction';\r\nimport { FilterExpressionBuilderUiModel } from './api/model/filterExpressionBuilderUiModel';\r\nimport { FilterService } from './api/api/filter.service';\r\n\r\nexport interface ISmartFilterEditorService extends UseUiAction {\r\n config: SmartFilterEditorConfig;\r\n model?: FilterExpressionBuilderUiModel;\r\n modelChanged: Subject<void>;\r\n submit: Subject<void>;\r\n reSubscribeToChange: Subject<void>;\r\n\r\n load(): Promise<void>;\r\n peformWidgetAction(request: UiActionRequest): void;\r\n performUiActionRequest(\r\n uiActionRequest: UiActionRequest,\r\n widgetId?: string | undefined,\r\n nodeId?: string | undefined\r\n ): Promise<any>;\r\n}\r\n\r\n@Injectable()\r\nexport class SmartFilterEditorService implements ISmartFilterEditorService {\r\n config!: SmartFilterEditorConfig;\r\n model?: FilterExpressionBuilderUiModel;\r\n modelChanged: Subject<void> = new Subject();\r\n submit: Subject<void> = new Subject();\r\n reSubscribeToChange: Subject<void> = new Subject();\r\n\r\n constructor(private service: FilterService) {}\r\n\r\n async load(): Promise<void> {\r\n if (this.config.uuid) {\r\n this.model = await this.service.load(this.config.uuid, this.config.identifier).toPromise();\r\n this.modelChanged.next();\r\n }\r\n }\r\n\r\n async peformWidgetAction(request: UiActionRequest) {\r\n if (this.config.uuid) {\r\n this.model = await this.service\r\n .performWidgetAction(this.config.uuid, this.config.identifier, request)\r\n .toPromise();\r\n this.modelChanged.next();\r\n }\r\n }\r\n\r\n getModel() {\r\n return this.model;\r\n }\r\n async performUiActionRequest(\r\n uiActionRequest: UiActionRequest,\r\n widgetId?: string | undefined,\r\n nodeId?: string | undefined\r\n ): Promise<any> {\r\n await this.peformWidgetAction(uiActionRequest);\r\n }\r\n\r\n async handleSpecificDemandsAsynchronously(\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionSpecificDemandResponse> {\r\n return {\r\n shouldPerformAction: true,\r\n uiActionRequest: uiActionRequest,\r\n };\r\n }\r\n getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n ElementRef,\r\n Inject,\r\n Injector,\r\n QueryList,\r\n Renderer2,\r\n RendererStyleFlags2,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { SmarttreeGenericService } from '../smart-tree/projects';\r\nimport {\r\n ComponentModel,\r\n ComponentModelChange,\r\n DataChange,\r\n DataChangeKind,\r\n ExecuteUiActionOptions,\r\n SmartTranslateService,\r\n SmartViewContextService,\r\n UiAction,\r\n UiActionAdditionalParams,\r\n UiActionDescriptorService,\r\n UiActionModel,\r\n UiActionRequest,\r\n UiActionService,\r\n UiActionSpecificDemandResponse,\r\n UiActionToolbarComponent,\r\n UseUiAction2,\r\n} from '../view-context/projects';\r\nimport { SmartAuthenticationServiceInterface } from './smart-authentication.service';\r\nimport { SmartSubject } from '../smart-subject/projects';\r\nimport { GridOptions, SmartGrid, SmartGridComponent } from '../smart-grid/projects';\r\nimport {\r\n SmartForm,\r\n SmartFormInvalidFields,\r\n SmartformComponent,\r\n SophisticatedValueChange,\r\n ValueChangeMode,\r\n} from '../smart-form/projects';\r\nimport {\r\n SmartComponentLayoutComponent,\r\n SmartComponentLayoutUtility,\r\n} from '../smart-component-layout/projects';\r\nimport { SmartFilterEditorService } from '../smart-filter-editor/project';\r\nimport { SmartStyleUtility } from '../view-context/utility/smart-style-utility';\r\n\r\nexport abstract class SmartComponentApiClient<T> implements UseUiAction2 {\r\n protected _destroy$: Subject<void> = new Subject();\r\n\r\n private detectChange: SmartSubject<ComponentModelChange> = new SmartSubject(this._destroy$);\r\n\r\n private _uuid?: string;\r\n\r\n private uuidOfPageHasBeenChangedSubscription?: Subscription;\r\n\r\n protected componentModelLoaded: boolean = false;\r\n\r\n get uuid(): string | undefined {\r\n return this._uuid;\r\n }\r\n set uuid(uuid: string | undefined) {\r\n if (this._uuid === uuid) {\r\n return;\r\n }\r\n let firstUuid: boolean = true;\r\n if (this.uuid) {\r\n this.viewContext.unfollow(this.uuid);\r\n firstUuid = false;\r\n }\r\n this._uuid = uuid;\r\n this.getWidgets().forEach((ref, key) => {\r\n if (ref instanceof SmartGridComponent) {\r\n ref.uuid = this.componentModelLoaded ? uuid : undefined;\r\n } else if (ref instanceof SmartFilterEditorService) {\r\n ref.config.uuid = this.componentModelLoaded ? uuid : undefined;\r\n } else if (!ref && !firstUuid) {\r\n console.error(`Provided reference for ${key} is undefined on uuid change.`);\r\n }\r\n });\r\n if (!this.uuidOfPageHasBeenChangedSubscription) {\r\n this.uuidOfPageHasBeenChangedSubscription = this.viewContext.uuidOfPageHasBeenChanged\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((pageName) => {\r\n if (pageName === this.pageName!) {\r\n this.run();\r\n }\r\n });\r\n }\r\n if (uuid) {\r\n this.viewContext.follow(this._uuid!, this.detectChange);\r\n }\r\n }\r\n\r\n private _model: ComponentModel | undefined;\r\n\r\n get model(): ComponentModel | undefined {\r\n return this._model;\r\n }\r\n set model(model: ComponentModel | undefined) {\r\n this._model = model;\r\n\r\n this.initComponentByModel();\r\n }\r\n\r\n private _data?: T;\r\n\r\n get data(): T | undefined {\r\n return this._data;\r\n }\r\n set data(model: T | undefined) {\r\n this._data = model;\r\n this.dataChanged.next();\r\n }\r\n\r\n public uiActionModels: UiActionModel[] = [];\r\n\r\n public dataChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n // Grid\r\n smartGrid?: SmartGrid;\r\n\r\n // Services\r\n protected viewContext: SmartViewContextService;\r\n protected uiActionService: UiActionService;\r\n protected uiActionDescriptorService: UiActionDescriptorService;\r\n protected translate?: SmartTranslateService;\r\n\r\n // Tree\r\n private _smartTreeService?: SmarttreeGenericService;\r\n\r\n public get smartTreeService(): SmarttreeGenericService | undefined {\r\n return this._smartTreeService;\r\n }\r\n public set smartTreeService(smartTreeService: SmarttreeGenericService | undefined) {\r\n if (this._smartTreeService !== undefined) {\r\n throw Error('The default tree has already set up!');\r\n }\r\n this._smartTreeService = smartTreeService;\r\n }\r\n\r\n // Contained Widgets\r\n widgets: Map<string, SmartGridComponent | SmarttreeGenericService | undefined> = new Map();\r\n\r\n formWidgets: Map<string, SmartformComponent | undefined> = new Map();\r\n\r\n useQueryLists: boolean = false;\r\n\r\n sendModelOnWidgetAction: boolean = false;\r\n\r\n dataChangeKeys: string[] = [];\r\n protected dataChangeActionHandlers = new Map<SmartformComponent, Subscription>();\r\n\r\n protected changeDetector?: ChangeDetectorRef;\r\n\r\n constructor(\r\n protected inject: Injector,\r\n protected auth: SmartAuthenticationServiceInterface,\r\n protected pageName?: string,\r\n protected _componentName?: string,\r\n protected element?: ElementRef,\r\n protected renderer?: Renderer2\r\n ) {\r\n // check and calculate pageName\r\n if (!this.pageName && !this._componentName) {\r\n throw new Error('pageName or componentName must be specified!');\r\n }\r\n\r\n this.viewContext = inject.get(SmartViewContextService);\r\n if (this._componentName) {\r\n let pageNameForComponent = this.viewContext.getPageNameOfComponent(this._componentName);\r\n if (!this.pageName) {\r\n this.pageName = pageNameForComponent;\r\n } else if (this.pageName !== pageNameForComponent) {\r\n throw new Error(\r\n `pageName (${pageName}) and componentName (${_componentName}) doesn't match!`\r\n );\r\n }\r\n }\r\n // from this point we have this.pageName\r\n this.detectChange.subscribe((change: ComponentModelChange) => {\r\n this.handleChanges(change);\r\n });\r\n\r\n this.uiActionService = inject.get(UiActionService);\r\n this.uiActionDescriptorService = inject.get(UiActionDescriptorService);\r\n }\r\n\r\n _ngOnInit(): void {\r\n this.run();\r\n }\r\n _ngOnDestroy(): void {\r\n this.viewContext.unfollow(this.uuid!);\r\n this.widgets.clear();\r\n\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n _ngAfterViewInit(): void {\r\n this.changeDetector = this.inject.get(ChangeDetectorRef);\r\n if (this.useQueryLists) {\r\n if (!this.getSmartComponentLayoutsQL()) {\r\n console.warn('SmartComponentLayoutsQL not available!');\r\n } else {\r\n this.handleQueryList(this.getSmartComponentLayoutsQL()!, (comp) => {\r\n if (comp.smartComponentLayout) {\r\n this.initActions();\r\n }\r\n if (this.uuid && this.uuid !== comp.uuid) comp.uuid = this.uuid;\r\n SmartComponentLayoutUtility.getGrids(comp).forEach((grid) =>\r\n this.setupGridServices(grid)\r\n );\r\n });\r\n // for handling embedded forms\r\n this.handleQueryList(this.getSmartComponentLayoutsQL()!, (form) => {\r\n this.handleDataChangeSubscriptions();\r\n });\r\n }\r\n if (!this.getSmartFormsQL()) {\r\n console.warn('getSmartFormsQL not available!');\r\n } else {\r\n this.handleQueryList(this.getSmartFormsQL()!, (form) => {\r\n this.handleDataChangeSubscriptions();\r\n });\r\n }\r\n if (!this.getSmartGridsQL()) {\r\n console.warn('SmartGridsQL not available!');\r\n } else {\r\n this.handleQueryList(this.getSmartGridsQL()!, (grid) => {\r\n if (grid) {\r\n if (grid.smartGrid) {\r\n this.setupGridServices(grid);\r\n grid.setupToolbar();\r\n if (grid.toolbar) {\r\n this.initActions();\r\n }\r\n }\r\n if (this.uuid && this.uuid !== grid.uuid) grid.uuid = this.uuid;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n private setupGridServices(grid: SmartGridComponent) {\r\n if (grid.smartGrid) {\r\n if (!grid.smartGrid.uiActionService) {\r\n grid.smartGrid.uiActionService = this.uiActionService;\r\n }\r\n if (!grid.smartGrid.uiActionDescriptorService) {\r\n grid.smartGrid.uiActionDescriptorService = this.uiActionDescriptorService;\r\n }\r\n if (!grid.smartGrid.serviceToUse) {\r\n grid.smartGrid.serviceToUse = this;\r\n }\r\n if (!grid.smartGrid.viewContextService) {\r\n grid.smartGrid.viewContextService = this.viewContext;\r\n }\r\n }\r\n }\r\n\r\n protected handleQueryListSimple<T>(ql: QueryList<T>, handler: () => void) {\r\n handler();\r\n ql.changes.pipe(takeUntil(this._destroy$)).subscribe(() => handler());\r\n }\r\n\r\n protected handleQueryList<T>(ql: QueryList<T>, handler: (el: T) => void) {\r\n ql.forEach((el) => handler(el));\r\n ql.changes\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((list) => (list as QueryList<T>).forEach((el) => handler(el)));\r\n }\r\n\r\n protected abstract getSmartFormsQL(): QueryList<SmartformComponent> | undefined;\r\n\r\n protected abstract getSmartGridsQL(): QueryList<SmartGridComponent> | undefined;\r\n\r\n protected abstract getSmartTreesQL(): QueryList<SmarttreeGenericService> | undefined;\r\n\r\n protected abstract getSmartFilterServicesQL(): QueryList<SmartFilterEditorService> | undefined;\r\n\r\n protected abstract getSmartUiActionToolbarsQL(): QueryList<UiActionToolbarComponent> | undefined;\r\n\r\n protected abstract getSmartComponentLayoutsQL():\r\n | QueryList<SmartComponentLayoutComponent>\r\n | undefined;\r\n\r\n protected getWidgets(): Map<\r\n string,\r\n SmartGridComponent | SmarttreeGenericService | SmartFilterEditorService | undefined\r\n > {\r\n if (this.useQueryLists) {\r\n let widgets: Map<\r\n string,\r\n SmartGridComponent | SmarttreeGenericService | SmartFilterEditorService | undefined\r\n > = new Map();\r\n this.getAllSmartGridComponents()\r\n .filter((grid) => (grid?.smartGrid?.gridIdentifier ? true : false))\r\n .forEach((grid) => widgets.set(grid.smartGrid!.gridIdentifier, grid));\r\n this.getAllSmartTreeComponents()\r\n .filter((tree) => (tree?.smartTreeModel?.identifier ? true : false))\r\n .forEach((tree) => widgets.set(tree!.smartTreeModel!.identifier!, tree));\r\n this.getAllSmartFilterEditorServices()\r\n .filter((filter) => (filter.config.identifier ? true : false))\r\n .forEach((filter) => widgets.set(filter.config.identifier, filter));\r\n return widgets;\r\n }\r\n return this.widgets;\r\n }\r\n\r\n initComponentByModel(): void {\r\n SmartStyleUtility.applyStyle(this.model?.style, this.element, this.renderer);\r\n SmartStyleUtility.applyStyle(this.model?.parentStyle, this.element, this.renderer, true);\r\n this.initData();\r\n if (this.useQueryLists) {\r\n this.getAllSmartFormComponents()?.forEach((form) => {\r\n if (form.smartForm) {\r\n form.smartForm.componentModel = this.model;\r\n // uses data, valueSets, constraints\r\n form.constructForm();\r\n }\r\n });\r\n }\r\n this.changeDetector?.detectChanges();\r\n this.initActions();\r\n // TODO: layout, widgets\r\n }\r\n\r\n protected getAllSmartFormComponents(): SmartformComponent[] {\r\n let forms: SmartformComponent[] = this.getSmartFormsQL()?.toArray() ?? [];\r\n this.getSmartComponentLayoutsQL()?.forEach((comp) => {\r\n forms.push(...SmartComponentLayoutUtility.getForms(comp));\r\n });\r\n return forms;\r\n }\r\n\r\n protected getAllSmartGridComponents(): SmartGridComponent[] {\r\n let grids: SmartGridComponent[] = this.getSmartGridsQL()?.toArray() ?? [];\r\n this.getSmartComponentLayoutsQL()?.forEach((comp) => {\r\n grids.push(...SmartComponentLayoutUtility.getGrids(comp));\r\n });\r\n return grids;\r\n }\r\n\r\n protected getAllSmartTreeComponents(): SmarttreeGenericService[] {\r\n let trees: SmarttreeGenericService[] = this.getSmartTreesQL()?.toArray() ?? [];\r\n this.getSmartComponentLayoutsQL()?.forEach((comp) => {\r\n trees.push(...SmartComponentLayoutUtility.getTrees(comp));\r\n });\r\n return trees;\r\n }\r\n\r\n protected getAllSmartFilterEditorServices(): SmartFilterEditorService[] {\r\n let filters: SmartFilterEditorService[] = this.getSmartFilterServicesQL()?.toArray() ?? [];\r\n return filters;\r\n }\r\n\r\n protected getAllSmartUiActionToolbars(): UiActionToolbarComponent[] {\r\n let toolbars: UiActionToolbarComponent[] = this.getSmartUiActionToolbarsQL()?.toArray() ?? [];\r\n this.getAllSmartGridComponents()?.forEach((grid) => {\r\n if (grid.toolbar) {\r\n toolbars.push(grid.toolbar);\r\n }\r\n });\r\n this.getSmartComponentLayoutsQL()?.forEach((comp) => {\r\n toolbars.push(...SmartComponentLayoutUtility.getToolbars(comp));\r\n });\r\n this.getAllSmartFormComponents()\r\n ?.flatMap((form) => form.getToolbars())\r\n .filter((toolbar) => toolbar !== undefined || toolbar !== null)\r\n .forEach((toolbar) => toolbars.push(toolbar as UiActionToolbarComponent));\r\n\r\n return toolbars;\r\n }\r\n\r\n initData(): void {\r\n if (this.model?.data) {\r\n this.data = this.model?.data as any;\r\n }\r\n }\r\n\r\n initActions(): void {\r\n if (this.model?.actions) {\r\n let uiActionModels = this.model?.actions.map((uiAction: UiAction) => {\r\n return {\r\n serviceToUse: this,\r\n uiAction,\r\n };\r\n });\r\n const allToolbars = this.getAllSmartUiActionToolbars();\r\n let toolbars = allToolbars.filter((toolbar) => toolbar.id);\r\n let toolbarsWithoutId = this.getAllSmartUiActionToolbars().filter(\r\n (toolbar) => toolbar.id === undefined || toolbar.id === null\r\n );\r\n let toolbarModels = new Map<string, UiActionModel[]>();\r\n toolbars.forEach((toolbar) => {\r\n toolbarModels.set(toolbar.id!, []);\r\n });\r\n let globalUiActionModels: UiActionModel[] = [];\r\n uiActionModels.forEach((action) => {\r\n let actionModel: UiActionModel[] | undefined = globalUiActionModels;\r\n let toolbarId = action.uiAction.toolbar;\r\n if (toolbarId && toolbarModels.has(toolbarId)) {\r\n actionModel = toolbarModels.get(toolbarId);\r\n }\r\n if (!actionModel) {\r\n actionModel = globalUiActionModels;\r\n }\r\n actionModel.push(action);\r\n });\r\n this.uiActionModels = globalUiActionModels;\r\n\r\n this.setupAllToolbars(toolbars, toolbarsWithoutId, toolbarModels)\r\n .then(() => {\r\n this.changeDetector?.detectChanges();\r\n })\r\n .catch((error) => {\r\n console.error('Error during setup:', error);\r\n });\r\n }\r\n }\r\n\r\n async setupAllToolbars(\r\n toolbars: UiActionToolbarComponent[],\r\n toolbarsWithoutId: UiActionToolbarComponent[],\r\n toolbarModels: Map<string, UiActionModel[]>\r\n ) {\r\n const setupPromises: Promise<void>[] = [];\r\n\r\n toolbars.forEach((toolbar) => {\r\n toolbar.uiActionModels = toolbarModels.get(toolbar.id!);\r\n setupPromises.push(toolbar.setUp());\r\n });\r\n\r\n toolbarsWithoutId.forEach((toolbar) => {\r\n setupPromises.push(toolbar.setUp());\r\n });\r\n\r\n await Promise.all(setupPromises);\r\n }\r\n\r\n run(): void {\r\n if (this.auth.bffApisHaveBeenSetUp) {\r\n this.load();\r\n } else {\r\n this.auth.headersUpdated.subscribe(() => {\r\n this.load();\r\n });\r\n }\r\n }\r\n\r\n async load(): Promise<void> {\r\n this.componentModelLoaded = false;\r\n const uuid = this.viewContext.getUuidOfPage(this.pageName!);\r\n // this.model = await this.viewContext.load(this.uuid);\r\n const change = await this.viewContext.load2(uuid);\r\n this.componentModelLoaded = true;\r\n this.uuid = uuid;\r\n this.model = change!.result! as ComponentModel;\r\n if (this.model.widgets) {\r\n // grids are already loaded in setUuid()\r\n this.handleChangeWidgets(this.model.widgets, true);\r\n }\r\n }\r\n\r\n async executeUiAction(uiAction: UiAction, options?: ExecuteUiActionOptions): Promise<void> {\r\n this.uiActionService.uiActionModel = {\r\n serviceToUse: this,\r\n uiAction: uiAction,\r\n };\r\n await this.uiActionService.execute(uiAction, options);\r\n }\r\n\r\n addDataChangeActionHandler(key: string) {\r\n if (!this.dataChangeKeys.includes(key)) {\r\n this.dataChangeKeys.push(key);\r\n }\r\n }\r\n\r\n removeDataChangeActionHandler(key: string) {\r\n let idx = this.dataChangeKeys.indexOf(key);\r\n if (idx >= 0) {\r\n this.dataChangeKeys.splice(idx, 1);\r\n }\r\n }\r\n\r\n protected dataChangeActionHandler(event: SophisticatedValueChange) {\r\n if (this.dataChangeKeys.includes(event.key)) {\r\n this.executeUiAction({\r\n code: event.key,\r\n model: true,\r\n params: {\r\n item: event.value,\r\n },\r\n });\r\n }\r\n }\r\n\r\n protected handleDataChangeSubscriptions() {\r\n if (this.useQueryLists) {\r\n let forms = this.getAllSmartFormComponents();\r\n // add elements to dataChangeKeys\r\n forms.forEach((form) => {\r\n form.smartForm?.widgets.forEach((widget) => {\r\n if (widget.key) {\r\n if (widget.valueChangeMode === ValueChangeMode.IMMEDIATE_ACTION) {\r\n this.addDataChangeActionHandler(widget.key);\r\n } else {\r\n this.removeDataChangeActionHandler(widget.key);\r\n }\r\n }\r\n });\r\n });\r\n // subscribe to new forms\r\n forms.forEach((component) => {\r\n if (!this.dataChangeActionHandlers.has(component)) {\r\n let subs = component.sophisticatedValueChange\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((event) => this.dataChangeActionHandler(event));\r\n this.dataChangeActionHandlers.set(component, subs);\r\n }\r\n });\r\n\r\n // unsubscribe from removed forms\r\n this.dataChangeActionHandlers.forEach((subs, form) => {\r\n if (!forms.find((c) => c === form)) {\r\n subs.unsubscribe();\r\n this.dataChangeActionHandlers.delete(form);\r\n }\r\n });\r\n }\r\n }\r\n\r\n getInvalidFields(): SmartFormInvalidFields {\r\n let aggregatedInvalidFields: SmartFormInvalidFields = {\r\n invalidFieldKeys: [],\r\n invalidFieldNames: [],\r\n };\r\n\r\n if (this.useQueryLists) {\r\n this.getAllSmartFormComponents()?.forEach((form) =>\r\n this.validateForm(form, aggregatedInvalidFields)\r\n );\r\n } else {\r\n this.formWidgets?.forEach((form) => this.validateForm(form, aggregatedInvalidFields));\r\n }\r\n\r\n return aggregatedInvalidFields;\r\n }\r\n\r\n protected validateForm(\r\n form: SmartformComponent | undefined,\r\n aggregatedInvalidFields: SmartFormInvalidFields\r\n ) {\r\n let invalidFieldsOfForm = form?.getInvalidFields();\r\n if (invalidFieldsOfForm) {\r\n invalidFieldsOfForm.invalidFieldKeys.forEach((key) =>\r\n aggregatedInvalidFields.invalidFieldKeys.push(key)\r\n );\r\n invalidFieldsOfForm.invalidFieldNames.forEach((key) =>\r\n aggregatedInvalidFields.invalidFieldNames.push(key)\r\n );\r\n }\r\n }\r\n\r\n //#region UseUiAction\r\n getAdditionalParams(uiAction: UiAction): UiActionAdditionalParams {\r\n return {\r\n forTextArea: '',\r\n forTextField: '',\r\n };\r\n }\r\n getModel() {\r\n return this.data;\r\n }\r\n\r\n submitForm(validate: boolean): void {\r\n this.submitForms(validate);\r\n }\r\n\r\n async performUiActionRequest(\r\n uiActionRequest: UiActionRequest,\r\n widgetId?: string,\r\n nodeId?: string\r\n ): Promise<any> {\r\n if (uiActionRequest.params['_files']) {\r\n const param = uiActionRequest.params['param'];\r\n const files = uiActionRequest.params['_files'];\r\n const isMultiple = uiActionRequest.params['isMultiple'];\r\n delete uiActionRequest.params['param'];\r\n delete uiActionRequest.params['_files'];\r\n delete uiActionRequest.params['isMultiple'];\r\n\r\n // await this.sendModelToServer();\r\n if (!isMultiple) {\r\n await this.viewContext.performUploadAction(this.uuid!, uiActionRequest, param, files[0]);\r\n } else {\r\n await this.viewContext.performUploadMultipleAction(\r\n this.uuid!,\r\n uiActionRequest,\r\n param,\r\n files\r\n );\r\n }\r\n } else if (widgetId && nodeId) {\r\n // await this.sendModelToServer();\r\n this.addModelToWidgetAction(uiActionRequest);\r\n await this.viewContext.performWidgetAction(this.uuid!, widgetId, nodeId, uiActionRequest);\r\n } else if (widgetId) {\r\n // await this.sendModelToServer();\r\n this.addModelToWidgetAction(uiActionRequest);\r\n await this.viewContext.performWidgetMainAction(this.uuid!, widgetId, uiActionRequest);\r\n } else {\r\n await this.viewContext.performAction(this.uuid!, uiActionRequest);\r\n }\r\n }\r\n\r\n protected addModelToWidgetAction(uiActionRequest: UiActionRequest) {\r\n if (this.sendModelOnWidgetAction) {\r\n this.submitForm(false);\r\n // mimic ComponentModel\r\n uiActionRequest.params['clientPageModel'] = { data: this.getModel() };\r\n }\r\n }\r\n\r\n // private async sendModelToServer() {\r\n // this.submitForms(false);\r\n // let dataChange = {\r\n // kind: DataChangeKind.Widget,\r\n // source: '',\r\n // values: [['', this.getModel()]],\r\n // };\r\n // await this.viewContext.dataChanged(this.uuid!, dataChange);\r\n // }\r\n\r\n handleSpecificDemandsAsynchronously(\r\n uiAction: UiAction,\r\n uiActionRequest: UiActionRequest\r\n ): Promise<UiActionSpecificDemandResponse> {\r\n throw new Error('handleSpecificDemandsAsynchronously method not implemented.');\r\n }\r\n //#endregion\r\n\r\n /**\r\n * Submits all the registered forms in the SmartComponent\r\n */\r\n public submitForms(validate: boolean): void {\r\n if (this.useQueryLists) {\r\n this.getAllSmartFormComponents()?.forEach((form) => {\r\n form?.submitForm(validate);\r\n });\r\n } else {\r\n this.formWidgets?.forEach((form) => {\r\n form?.submitForm(validate);\r\n });\r\n }\r\n }\r\n\r\n public addGrid(\r\n smartGrid: SmartGrid,\r\n options: GridOptions,\r\n useAsDefaultGrid?: boolean,\r\n componentReference?: SmartGridComponent\r\n ): SmartGrid {\r\n smartGrid.options = options;\r\n smartGrid.uiActionService = this.uiActionService;\r\n smartGrid.uiActionDescriptorService = this.uiActionDescriptorService;\r\n smartGrid.serviceToUse = this;\r\n smartGrid.viewContextService = this.viewContext;\r\n\r\n if (!this.useQueryLists) {\r\n this.widgets.set(smartGrid.gridIdentifier, componentReference);\r\n } else {\r\n console.warn(`Added smartGrid when useQueryLists === true (${smartGrid.gridIdentifier})`);\r\n }\r\n\r\n if (useAsDefaultGrid) {\r\n this.smartGrid = smartGrid;\r\n return this.smartGrid;\r\n }\r\n\r\n return smartGrid;\r\n }\r\n\r\n public addForm(\r\n smartFormId: string,\r\n smartForm: SmartForm,\r\n componentReference?: SmartformComponent\r\n ): SmartForm {\r\n if (!this.useQueryLists) {\r\n this.formWidgets.set(smartFormId, componentReference);\r\n } else {\r\n console.warn(`Added smartForm when useQueryLists === true (${smartFormId})`);\r\n }\r\n\r\n // if (this.sendDataChanges && componentReference) {\r\n // smartForm.useOnValueChangeEvent = true;\r\n\r\n // componentReference.sophisticatedValueChange\r\n // .pipe(takeUntil(this._destroy$))\r\n // .subscribe((valueChange: SophisticatedValueChange) => {\r\n // this.handleValueChanges(valueChange);\r\n // });\r\n // }\r\n\r\n return smartForm;\r\n }\r\n\r\n public setUpDefaultTree(treeId: string): void {\r\n this.smartTreeService = this.createTreeService(treeId);\r\n }\r\n\r\n public createTreeService(treeId: string): SmarttreeGenericService {\r\n const treeService = new SmarttreeGenericService(this.inject, this.pageName!, treeId);\r\n if (!this.useQueryLists) {\r\n this.widgets.set(treeId, treeService);\r\n } else {\r\n console.warn(`Added smartTree when useQueryLists === true (${treeId})`);\r\n }\r\n\r\n return treeService;\r\n }\r\n\r\n public addFileUploader(\r\n uiActionCode: string,\r\n fileFormats?: string[],\r\n maxSizeMb?: number,\r\n isMultiple?: boolean\r\n ): SmartComponentFileUploader {\r\n return {\r\n uiActionCode,\r\n smartComponent: this,\r\n fileFormats,\r\n isMultiple,\r\n maxSizeMb,\r\n };\r\n }\r\n\r\n // #region handle changes\r\n private handleValueChanges(valueChange: SophisticatedValueChange): void {\r\n let dataChange: DataChange;\r\n if (valueChange.key.includes('.')) {\r\n const source = valueChange.key.split('.')[0];\r\n const valueKey = valueChange.key.split('.')[1];\r\n dataChange = {\r\n kind: valueChange.kind === 'basic' ? DataChangeKind.WIDGET : DataChangeKind.SELECTION,\r\n source,\r\n values: [[valueKey, valueChange.value]],\r\n };\r\n } else {\r\n dataChange = {\r\n kind: valueChange.kind === 'basic' ? DataChangeKind.WIDGET : DataChangeKind.SELECTION,\r\n source: valueChange.key,\r\n values: [[valueChange.key, valueChange.value]],\r\n };\r\n }\r\n\r\n this.viewContext.dataChanged(this.uuid!, dataChange);\r\n }\r\n\r\n protected handleChanges(change: ComponentModelChange): void {\r\n try {\r\n if (!this.componentModelLoaded) {\r\n // initial load\r\n return;\r\n }\r\n if (change.changedWidgets) {\r\n this.handleChangeWidgets(change.changedWidgets);\r\n }\r\n\r\n let dataChangeHasBeenNexted = false;\r\n if (change.changes) {\r\n const changes = change.changes;\r\n Object.keys(changes).map((changeKey: string) => {\r\n if (changeKey.startsWith('data.')) {\r\n this.handleDataChange(changes, changeKey);\r\n } else if (changeKey.startsWith('layouts.') && this.model?.layouts) {\r\n this.handleLayoutChange(changes, changeKey);\r\n } else if (changeKey.startsWith('componentLayouts.') && this.model?.layouts) {\r\n this.handleComponentLayoutChange(changes, changeKey);\r\n } else if (changeKey.startsWith('valueSets.') && this.model?.valueSets) {\r\n this.handleValueSetChange(changes, changeKey);\r\n } else if (changeKey === 'actions') {\r\n this.handleActionChange(changes, changeKey);\r\n } else if (changeKey === 'constraints') {\r\n this.handleConstraintChange(changes, changeKey);\r\n } else if (changeKey === '') {\r\n this.model = changes[''] as ComponentModel;\r\n dataChangeHasBeenNexted = true;\r\n }\r\n });\r\n\r\n if (!dataChangeHasBeenNexted) {\r\n this.dataChanged.next();\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n this.model = change.value as ComponentModel;\r\n }\r\n\r\n if (!change.changedWidgets && !change.changes && change.value) {\r\n this.model = change.value as ComponentModel;\r\n }\r\n }\r\n\r\n protected handleChangeWidgets(changedWidgets: string[], skipLoad: boolean = false): void {\r\n let widgets = this.getWidgets();\r\n changedWidgets.forEach((key: string) => {\r\n const reference = widgets.get(key);\r\n\r\n if (reference instanceof SmartGridComponent) {\r\n this.setupGridServices(reference);\r\n if (!skipLoad) {\r\n reference.refresh();\r\n }\r\n } else if (reference instanceof SmarttreeGenericService) {\r\n if (!skipLoad) {\r\n reference.initialize();\r\n }\r\n } else if (reference instanceof SmartFilterEditorService) {\r\n if (!skipLoad) {\r\n reference.load();\r\n }\r\n } else if (!skipLoad && reference === undefined) {\r\n console.error(`Provided reference for ${key} is undefined.`);\r\n }\r\n });\r\n }\r\n\r\n private setValueDeeply(model: any, key: string, value: any) {\r\n let splittedKeys = key.split('.');\r\n\r\n let deepModel: any[] = [model];\r\n let tempModel: any;\r\n\r\n for (let index = 0; index < splittedKeys.length; index++) {\r\n tempModel = deepModel[index];\r\n\r\n if (\r\n typeof tempModel[splittedKeys[index]] !== 'string' &&\r\n typeof tempModel[splittedKeys[index]] !== 'boolean' &&\r\n typeof tempModel[splittedKeys[index]] !== 'number' &&\r\n tempModel[splittedKeys[index]] !== undefined\r\n ) {\r\n deepModel.push(tempModel[splittedKeys[index]]);\r\n }\r\n\r\n if (index === splittedKeys.length - 1) {\r\n let oldValue = tempModel[splittedKeys[index]];\r\n // if (value === '' && (oldValue === null || oldValue === undefined) then don't change value.\r\n if (value !== '' || (oldValue !== null && oldValue !== undefined)) {\r\n tempModel[splittedKeys[index]] = value;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private handleDataChange(changes: { [key: string]: any }, changeKey: string): void {\r\n this.setValueDeeply(this.model, changeKey, changes[changeKey]);\r\n\r\n if (this.useQueryLists) {\r\n this.getAllSmartFormComponents()?.forEach((form) => form.refresh());\r\n } else {\r\n this.formWidgets.forEach((formComponent: SmartformComponent | undefined, key: string) => {\r\n if (formComponent === undefined) {\r\n console.error(`Provided form reference for ${key} is undefined.`);\r\n } else {\r\n formComponent.refresh();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private handleLayoutChange(changes: { [key: string]: any }, changeKey: string): void {\r\n let layoutKey = changeKey.split('.')[1];\r\n this.model!.layouts[layoutKey] = changes[changeKey];\r\n }\r\n\r\n private handleComponentLayoutChange(changes: { [key: string]: any }, changeKey: string): void {\r\n let layoutKey = changeKey.split('.')[1];\r\n let componentLayouts: { [key: string]: Object } = this.model!.componentLayouts as {\r\n [key: string]: Object;\r\n };\r\n componentLayouts[layoutKey] = changes[changeKey];\r\n }\r\n\r\n private handleValueSetChange(changes: { [key: string]: any }, changeKey: string): void {\r\n let valueSetKey = changeKey.split('.')[1];\r\n this.model!.valueSets![valueSetKey] = changes[changeKey];\r\n }\r\n\r\n private handleActionChange(changes: { [key: string]: any }, changeKey: string): void {\r\n this.model!.actions = changes[changeKey];\r\n this.initActions();\r\n }\r\n\r\n private handleConstraintChange(changes: { [key: string]: any }, changeKey: string): void {\r\n this.model!.constraints = changes[changeKey];\r\n }\r\n\r\n // #endregion\r\n}\r\n\r\nexport interface SmartComponentFileUploader {\r\n uiActionCode: string;\r\n maxSizeMb?: number;\r\n fileFormats?: string[];\r\n isMultiple?: boolean;\r\n smartComponent: SmartComponentApiClient<any>;\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Inject,\r\n Injector,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n Renderer2,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport {\r\n SmartAuthService,\r\n SmartAuthenticationServiceInterface,\r\n} from './smart-authentication.service';\r\nimport { SmartComponentApiClient } from './smart-component-api-client';\r\nimport { SmartformComponent } from '../smart-form/projects';\r\nimport { SmartGridComponent } from '../smart-grid/projects';\r\nimport { SmarttreeGenericService } from '../smart-tree/projects';\r\nimport { SmartComponentLayoutComponent } from '../smart-component-layout/projects';\r\nimport { SmartFilterEditorService } from '../smart-filter-editor/project';\r\nimport { UiActionToolbarComponent } from '../view-context/projects';\r\n\r\n@Component({\r\n template: '',\r\n})\r\nexport abstract class SmartComponent<T>\r\n extends SmartComponentApiClient<T>\r\n implements OnInit, OnDestroy, AfterViewInit\r\n{\r\n @ViewChildren(SmartformComponent)\r\n smartFormsQL!: QueryList<SmartformComponent>;\r\n\r\n @ViewChildren(SmartGridComponent)\r\n smartGridsQL!: QueryList<SmartGridComponent>;\r\n\r\n @ViewChildren(SmarttreeGenericService)\r\n smartTreesQL!: QueryList<SmarttreeGenericService>;\r\n\r\n @ViewChildren(SmartComponentLayoutComponent)\r\n smartComponentLayoutsQL!: QueryList<SmartComponentLayoutComponent>;\r\n\r\n @ViewChildren(SmartFilterEditorService)\r\n smartFilterEditorServicesQL!: QueryList<SmartFilterEditorService>;\r\n\r\n @ViewChildren(UiActionToolbarComponent)\r\n smartUiActionToolbarsQL!: QueryList<UiActionToolbarComponent>;\r\n\r\n constructor(\r\n inject: Injector,\r\n @Inject('SmartAuthService') auth: SmartAuthenticationServiceInterface,\r\n @Inject('pageName') pageName?: string,\r\n @Inject('componentName') _componentName?: string,\r\n element?: ElementRef,\r\n renderer?: Renderer2\r\n ) {\r\n super(inject, auth, pageName, _componentName, element, renderer);\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngOnInit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._ngOnDestroy();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._ngAfterViewInit();\r\n }\r\n\r\n override getSmartFormsQL(): QueryList<SmartformComponent> | undefined {\r\n return this.smartFormsQL;\r\n }\r\n\r\n override getSmartGridsQL(): QueryList<SmartGridComponent> | undefined {\r\n return this.smartGridsQL;\r\n }\r\n\r\n override getSmartTreesQL(): QueryList<SmarttreeGenericService> | undefined {\r\n return this.smartTreesQL;\r\n }\r\n\r\n override getSmartComponentLayoutsQL(): QueryList<SmartComponentLayoutComponent> | undefined {\r\n return this.smartComponentLayoutsQL;\r\n }\r\n\r\n override getSmartFilterServicesQL(): QueryList<SmartFilterEditorService> | undefined {\r\n return this.smartFilterEditorServicesQL;\r\n }\r\n\r\n override getSmartUiActionToolbarsQL(): QueryList<UiActionToolbarComponent> | undefined {\r\n return this.smartUiActionToolbarsQL;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Inject,\r\n Injectable,\r\n Injector,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport {\r\n SmartAuthService,\r\n SmartAuthenticationServiceInterface,\r\n} from './smart-authentication.service';\r\nimport { SmartComponentApiClient } from './smart-component-api-client';\r\nimport { SmartformComponent } from '../smart-form/projects';\r\nimport { SmartGridComponent } from '../smart-grid/projects';\r\nimport { SmarttreeGenericService } from '../smart-tree/projects';\r\nimport { SmartComponentLayoutComponent } from '../smart-component-layout/projects';\r\nimport { SmartFilterEditorService } from '../smart-filter-editor/project';\r\nimport { UiActionToolbarComponent } from '../view-context/projects';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport abstract class SmartService<T>\r\n extends SmartComponentApiClient<T>\r\n implements OnInit, OnDestroy, AfterViewInit\r\n{\r\n @ViewChildren(SmartformComponent)\r\n smartFormsQL!: QueryList<SmartformComponent>;\r\n\r\n @ViewChildren(SmartGridComponent)\r\n smartGridsQL!: QueryList<SmartGridComponent>;\r\n\r\n @ViewChildren(SmarttreeGenericService)\r\n smartTreesQL!: QueryList<SmarttreeGenericService>;\r\n\r\n @ViewChildren(SmartComponentLayoutComponent)\r\n smartComponentLayoutsQL!: QueryList<SmartComponentLayoutComponent>;\r\n\r\n @ViewChildren(SmartFilterEditorService)\r\n smartFilterEditorServicesQL!: QueryList<SmartFilterEditorService>;\r\n\r\n @ViewChildren(UiActionToolbarComponent)\r\n smartUiActionToolbarsQL!: QueryList<UiActionToolbarComponent>;\r\n\r\n constructor(\r\n inject: Injector,\r\n @Inject(SmartAuthService) auth: SmartAuthenticationServiceInterface,\r\n @Inject('pageName') pageName: string\r\n ) {\r\n super(inject, auth, pageName);\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngOnInit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._ngOnDestroy();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._ngAfterViewInit();\r\n }\r\n\r\n override getSmartFormsQL(): QueryList<SmartformComponent> | undefined {\r\n return this.smartFormsQL;\r\n }\r\n\r\n override getSmartGridsQL(): QueryList<SmartGridComponent> | undefined {\r\n return this.smartGridsQL;\r\n }\r\n\r\n override getSmartTreesQL(): QueryList<SmarttreeGenericService> | undefined {\r\n return this.smartTreesQL;\r\n }\r\n\r\n override getSmartComponentLayoutsQL(): QueryList<SmartComponentLayoutComponent> | undefined {\r\n return this.smartComponentLayoutsQL;\r\n }\r\n\r\n override getSmartFilterServicesQL(): QueryList<SmartFilterEditorService> | undefined {\r\n return this.smartFilterEditorServicesQL;\r\n }\r\n\r\n override getSmartUiActionToolbarsQL(): QueryList<UiActionToolbarComponent> | undefined {\r\n return this.smartUiActionToolbarsQL;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SmartNavbarService {\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of smart-navbar\r\n */\r\n\r\nexport * from './smart-navbar.service';\r\nexport * from './smart-navbar.component';\r\nexport * from './smart-navbar.model';\r\nexport * from './smart-navbar.module';\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SmartTabGroupService {\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of smart-tab-group\r\n */\r\n\r\nexport * from './smart-tab-group.service';\r\nexport * from './smart-tab-group.component';\r\nexport * from './smart-tab-group.module';\r\nexport * from './tab-group-simplified/tab-group.component';\r\nexport * from './tabTile.model';\r\n","/*\r\n * Public API Surface of smart-ng-client\r\n */\r\n\r\nexport * from './lib/smart-ng-client.service';\r\nexport * from './lib/smart-ng-client.module';\r\nexport * from './lib/smart-client/smart-file-uploader/smart-file-uploader.component';\r\nexport * from './lib/smart-client/projects';\r\n\r\nexport * from './lib/component-factory-service/projects';\r\nexport * from './lib/session/projects';\r\nexport * from './lib/smart-component-layout/projects';\r\nexport * from './lib/smart-dialog/projects';\r\nexport * from './lib/smart-expandable-section/projects';\r\nexport * from './lib/smart-filter/projects';\r\nexport * from './lib/smart-form/projects';\r\nexport * from './lib/smart-grid/projects';\r\nexport * from './lib/smart-icon/projects';\r\nexport * from './lib/smart-navbar/projects';\r\nexport * from './lib/smart-navigation/projects';\r\nexport * from './lib/smart-subject/projects';\r\nexport * from './lib/smart-tab-group/projects';\r\nexport * from './lib/smart-table/projects';\r\nexport * from './lib/smart-tree/projects';\r\nexport * from './lib/view-context/projects';\r\nexport * from './lib/smart-filter-editor/project';\r\nexport * from './lib/shared/projects';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './projects';\n"],"names":["CustomHttpParameterCodec","BASE_PATH","COLLECTION_FORMATS","Configuration","i2.Configuration","i1.SessionService","i2.SmartCookieService","APIS","ApiModule","i1.SmartViewContextService","i3","i4","i1","i2","i1.SmartSessionService","i2.SmartViewContextService","DefaultService","i1.SmartIconService","i2.UiActionDescriptorService","i1.UiActionService","i3.SmartIconComponent","i5.SmartTooltipDirective","i5","i1.SmartIconComponent","i1.SmartFormService","i2.ComponentFactoryService","i6","i9.SmartIconComponent","i10.UiActionToolbarComponent","i14","i17.SmartfileuploaderComponent","i19.SortableWidgetComponent","i21.SmartMonthPickerComponent","i23","i24.TrackCapsDirective","i25","i27.HighlightPipe","i2.SmartformwidgetComponent","i2.SmartIconComponent","i4.MatContextMenuTriggerForDirective","i6.SmartTooltipDirective","i1.ComponentFactoryService","i5.SmartIconComponent","i7","i8.DefaultActionsPopupComponent","i9","i10.SmartTooltipDirective","i11.SmartDateTimePipe","i11.SmartDatePipe","i11.SmartTimePipe","i7.SmartTooltipDirective","i8.SmartDateTimePipe","i8.SmartDatePipe","i8.SmartTimePipe","i3.SmartformComponent","i4.SmarttableComponent","i3.SmartViewContextService","i1.SmartViewContextErrorDialogService","i2.SmartNavigationService","i1.UiActionDescriptorService","i4.SmartformComponent","i4.SmartfileuploaderComponent","i1.SmartSessionTimerService","catchError","i2.SmartfileuploaderComponent","i1.GridService","i4.SmartIconComponent","i5.UiActionToolbarComponent","i8.ExpandableSectionComponent","i9.SmartGridCardComponent","i11","i12","i13","i1.UiActionToolbarComponent","i1.SmartformLayoutDefinitionService","i4.SmartGridComponent","i5.SmartTreeComponent","i6.UiActionToolbarComponent","i1.ExpandableSectionComponent","FilterExpressionBoolOperator","i1.SmartFilterService","i2.SmartFilterSimpleFieldComponent","i2.SmartFilterSimpleComponent","i3.SmartDatePipe","i3.SmartDateTimePipe","i1.SmartFilterExpressionItemComponent","i3.UiActionToolbarComponent","i4.SmartFilterExpressionItemsComponent","i2.SmartformComponent","i1.SmartNavigationService","i1.FilterService"],"mappings":"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"}
|