@smartbit4all/ng-client 2.2.2 → 3.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/esm2020/lib/component-factory-service/component-factory-service.module.mjs +17 -0
- package/esm2020/lib/component-factory-service/component-factory-service.service.mjs +35 -0
- package/esm2020/lib/component-factory-service/projects.mjs +6 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs +1 -1
- package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs +5 -5
- package/esm2020/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.mjs +1 -1
- package/esm2020/lib/session/dev-tool/smart-dev-tool.service.mjs +2 -2
- package/esm2020/lib/session/smart-session.module.mjs +18 -18
- package/esm2020/lib/session/smart-session.service.mjs +2 -2
- package/esm2020/lib/session/smart-timer/smart-session-timer.service.mjs +2 -2
- package/esm2020/lib/smart-client/smart-authentication.service.mjs +2 -2
- package/esm2020/lib/smart-client/smart-component-api-client.mjs +2 -3
- package/esm2020/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +2 -2
- package/esm2020/lib/smart-component-layout/api/api/api.mjs +4 -0
- package/esm2020/lib/smart-component-layout/api/api/default.service.mjs +133 -0
- package/esm2020/lib/smart-component-layout/api/api.module.mjs +40 -0
- package/esm2020/lib/smart-component-layout/api/configuration.mjs +91 -0
- package/esm2020/lib/smart-component-layout/api/encoder.mjs +19 -0
- package/esm2020/lib/smart-component-layout/api/index.mjs +7 -0
- package/esm2020/lib/smart-component-layout/api/model/componentType.mjs +17 -0
- package/esm2020/lib/smart-component-layout/api/model/componentWidgetType.mjs +17 -0
- package/esm2020/lib/smart-component-layout/api/model/layoutDirection.mjs +16 -0
- package/esm2020/lib/smart-component-layout/api/model/models.mjs +6 -0
- package/esm2020/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
- package/esm2020/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
- package/esm2020/lib/smart-component-layout/api/param.mjs +2 -0
- package/esm2020/lib/smart-component-layout/api/variables.mjs +9 -0
- package/esm2020/lib/smart-component-layout/projects.mjs +8 -0
- package/esm2020/lib/smart-component-layout/smart-component-layout-utility.mjs +7 -0
- package/esm2020/lib/smart-component-layout/smart-component-layout.component.mjs +123 -0
- package/esm2020/lib/smart-component-layout/smart-component-layout.module.mjs +43 -0
- package/esm2020/lib/smart-dialog/projects.mjs +8 -0
- package/esm2020/lib/smart-dialog/smartdialog.component.mjs +54 -0
- package/esm2020/lib/smart-dialog/smartdialog.model.mjs +16 -0
- package/esm2020/lib/smart-dialog/smartdialog.module.mjs +49 -0
- package/esm2020/lib/smart-dialog/smartdialog.service.mjs +60 -0
- package/esm2020/lib/smart-expandable-section/expandable-section.component.mjs +82 -0
- package/esm2020/lib/smart-expandable-section/expandable-section.model.mjs +12 -0
- package/esm2020/lib/smart-expandable-section/projects.mjs +8 -0
- package/esm2020/lib/smart-expandable-section/smart-expandable-section.module.mjs +51 -0
- package/esm2020/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +16 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +9 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +19 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionField.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +25 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +31 -0
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +19 -0
- package/esm2020/lib/smart-filter/api/filter/model/model.mjs +16 -0
- package/esm2020/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +2 -0
- package/esm2020/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +13 -0
- package/esm2020/lib/smart-filter/api/value/model/value.mjs +13 -0
- package/esm2020/lib/smart-filter/projects.mjs +9 -0
- package/esm2020/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -0
- package/esm2020/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +159 -0
- package/esm2020/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -0
- package/esm2020/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
- package/esm2020/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -0
- package/esm2020/lib/smart-filter/smart-filter.model.mjs +13 -0
- package/esm2020/lib/smart-filter/smart-filter.module.mjs +33 -0
- package/esm2020/lib/smart-form/api/api/api.mjs +4 -0
- package/esm2020/lib/smart-form/api/api/default.service.mjs +133 -0
- package/esm2020/lib/smart-form/api/api.module.mjs +40 -0
- package/esm2020/lib/smart-form/api/configuration.mjs +91 -0
- package/esm2020/lib/smart-form/api/encoder.mjs +19 -0
- package/esm2020/lib/smart-form/api/index.mjs +7 -0
- package/esm2020/lib/smart-form/api/model/models.mjs +8 -0
- package/esm2020/lib/smart-form/api/model/propertyMapping.mjs +13 -0
- package/esm2020/lib/smart-form/api/model/selectionDefinition.mjs +8 -0
- package/esm2020/lib/smart-form/api/model/smartFormWidgetDirection.mjs +16 -0
- package/esm2020/lib/smart-form/api/model/smartFormWidgetType.mjs +44 -0
- package/esm2020/lib/smart-form/api/model/smartLayoutDefinition.mjs +2 -0
- package/esm2020/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
- package/esm2020/lib/smart-form/api/model/smartWidgetDefinition.mjs +2 -0
- package/esm2020/lib/smart-form/api/param.mjs +2 -0
- package/esm2020/lib/smart-form/api/variables.mjs +9 -0
- package/esm2020/lib/smart-form/projects.mjs +13 -0
- package/esm2020/lib/smart-form/services/smartform.layout-definition.service.mjs +397 -0
- package/esm2020/lib/smart-form/services/smartform.service.mjs +483 -0
- package/esm2020/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +14 -0
- package/esm2020/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +78 -0
- package/esm2020/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +2 -0
- package/esm2020/lib/smart-form/smartform.component.mjs +117 -0
- package/esm2020/lib/smart-form/smartform.form-model.mjs +2 -0
- package/esm2020/lib/smart-form/smartform.model.mjs +38 -0
- package/esm2020/lib/smart-form/smartform.module.mjs +146 -0
- package/esm2020/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +76 -0
- package/esm2020/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +589 -0
- package/esm2020/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +59 -0
- package/esm2020/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -0
- package/esm2020/lib/smart-grid/api/grid-api/api/api.mjs +4 -0
- package/esm2020/lib/smart-grid/api/grid-api/api/grid.service.mjs +372 -0
- package/esm2020/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
- package/esm2020/lib/smart-grid/api/grid-api/configuration.mjs +72 -0
- package/esm2020/lib/smart-grid/api/grid-api/encoder.mjs +19 -0
- package/esm2020/lib/smart-grid/api/grid-api/index.mjs +6 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +13 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +21 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridModel.mjs +2 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridPage.mjs +2 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridRow.mjs +2 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +17 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +16 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +2 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +2 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridView.mjs +2 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +8 -0
- package/esm2020/lib/smart-grid/api/grid-api/model/models.mjs +12 -0
- package/esm2020/lib/smart-grid/api/grid-api/variables.mjs +9 -0
- package/esm2020/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -0
- package/esm2020/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +56 -0
- package/esm2020/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +166 -0
- package/esm2020/lib/smart-grid/models/model.mjs +28 -0
- package/esm2020/lib/smart-grid/projects.mjs +9 -0
- package/esm2020/lib/smart-grid/smart-grid.component.mjs +452 -0
- package/esm2020/lib/smart-grid/smart-grid.module.mjs +69 -0
- package/esm2020/lib/smart-grid/smart-grid.service.mjs +71 -0
- package/esm2020/lib/smart-icon/projects.mjs +7 -0
- package/esm2020/lib/smart-icon/smart-icon/smart-icon.component.mjs +48 -0
- package/esm2020/lib/smart-icon/smart-icon.module.mjs +22 -0
- package/esm2020/lib/smart-icon/smart-icon.service.mjs +45 -0
- package/esm2020/lib/smart-navbar/projects.mjs +8 -0
- package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +61 -0
- package/esm2020/lib/smart-navbar/smart-navbar.model.mjs +6 -0
- package/esm2020/lib/smart-navbar/smart-navbar.module.mjs +65 -0
- package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +14 -0
- package/esm2020/lib/smart-navigation/projects.mjs +6 -0
- package/esm2020/lib/smart-navigation/smart-navigation.interface.mjs +2 -0
- package/esm2020/lib/smart-navigation/smart-navigation.module.mjs +18 -0
- package/esm2020/lib/smart-navigation/smart-navigation.service.mjs +56 -0
- package/esm2020/lib/smart-ng-client.module.mjs +16 -4
- package/esm2020/lib/smart-subject/projects.mjs +5 -0
- package/esm2020/lib/smart-subject/smart-subject.mjs +21 -0
- package/esm2020/lib/smart-tab-group/projects.mjs +8 -0
- package/esm2020/lib/smart-tab-group/smart-tab-group.component.mjs +43 -0
- package/esm2020/lib/smart-tab-group/smart-tab-group.module.mjs +25 -0
- package/esm2020/lib/smart-tab-group/smart-tab-group.service.mjs +14 -0
- package/esm2020/lib/smart-tab-group/tab-content/tab-content.component.mjs +31 -0
- package/esm2020/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +66 -0
- package/esm2020/lib/smart-tab-group/tabTile.model.mjs +2 -0
- package/esm2020/lib/smart-table/components/loading/loading.component.mjs +15 -0
- package/esm2020/lib/smart-table/projects.mjs +9 -0
- package/esm2020/lib/smart-table/smarttable.component.mjs +98 -0
- package/esm2020/lib/smart-table/smarttable.date-pipe.mjs +43 -0
- package/esm2020/lib/smart-table/smarttable.model.mjs +167 -0
- package/esm2020/lib/smart-table/smarttable.module.mjs +89 -0
- package/esm2020/lib/smart-table/smarttable.service.mjs +14 -0
- package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +36 -0
- package/esm2020/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +22 -0
- package/esm2020/lib/smart-table/tables/table.mjs +411 -0
- package/esm2020/lib/smart-tree/smarttree.component.mjs +2 -2
- package/esm2020/lib/smart-tree/smarttree.model.mjs +1 -1
- package/esm2020/lib/smart-tree/smarttree.module.mjs +2 -2
- package/esm2020/lib/smart-tree/smarttree.service.interface.mjs +1 -1
- package/esm2020/lib/smart-tree/smarttree.service.mjs +1 -1
- package/esm2020/lib/view-context/api/api/api.mjs +1 -1
- package/esm2020/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2020/lib/view-context/api/api.module.mjs +1 -1
- package/esm2020/lib/view-context/api/configuration.mjs +1 -1
- package/esm2020/lib/view-context/api/encoder.mjs +1 -1
- package/esm2020/lib/view-context/api/index.mjs +1 -1
- package/esm2020/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/models.mjs +1 -1
- package/esm2020/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonIconPos.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2020/lib/view-context/api/model/view.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2020/lib/view-context/api/param.mjs +1 -1
- package/esm2020/lib/view-context/api/variables.mjs +1 -1
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +1 -1
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +3 -3
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +3 -3
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +3 -3
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +8 -7
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +3 -3
- package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +4 -3
- package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +2 -2
- package/esm2020/lib/view-context/smart-ui-action/ui-action.model.mjs +1 -1
- package/esm2020/lib/view-context/smart-ui-action/ui-action.service.mjs +2 -2
- package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +2 -2
- package/esm2020/lib/view-context/smart-view-context.module.mjs +3 -3
- package/esm2020/lib/view-context/smart-view-context.service.mjs +4 -4
- package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +9 -9
- package/esm2020/lib/view-context/value-api/model/valueSetData.mjs +1 -1
- package/esm2020/projects.mjs +15 -3
- package/fesm2015/smartbit4all-ng-client.mjs +9465 -3578
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +9275 -3460
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/component-factory-service/component-factory-service.module.d.ts +6 -0
- package/lib/component-factory-service/component-factory-service.service.d.ts +13 -0
- package/lib/component-factory-service/projects.d.ts +2 -0
- package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.d.ts +1 -1
- package/lib/session/smart-session.module.d.ts +1 -1
- package/lib/smart-client/smart-component-api-client.d.ts +3 -4
- package/lib/smart-client/smart-file-uploader/smart-file-uploader.component.d.ts +3 -3
- package/lib/smart-component-layout/api/api/api.d.ts +3 -0
- package/lib/smart-component-layout/api/api/default.service.d.ts +33 -0
- package/lib/smart-component-layout/api/api.module.d.ts +11 -0
- package/lib/smart-component-layout/api/configuration.d.ts +104 -0
- package/lib/smart-component-layout/api/encoder.d.ts +11 -0
- package/lib/smart-component-layout/api/index.d.ts +6 -0
- package/lib/smart-component-layout/api/model/componentType.d.ts +17 -0
- package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +17 -0
- package/lib/smart-component-layout/api/model/layoutDirection.d.ts +16 -0
- package/lib/smart-component-layout/api/model/models.d.ts +5 -0
- package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +29 -0
- package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +21 -0
- package/lib/smart-component-layout/api/param.d.ts +37 -0
- package/lib/smart-component-layout/api/variables.d.ts +8 -0
- package/lib/smart-component-layout/projects.d.ts +4 -0
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +4 -0
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +35 -0
- package/lib/smart-component-layout/smart-component-layout.module.d.ts +13 -0
- package/lib/smart-dialog/projects.d.ts +4 -0
- package/lib/smart-dialog/smartdialog.component.d.ts +19 -0
- package/lib/smart-dialog/smartdialog.model.d.ts +67 -0
- package/lib/smart-dialog/smartdialog.module.d.ts +14 -0
- package/lib/smart-dialog/smartdialog.service.d.ts +20 -0
- package/lib/smart-expandable-section/expandable-section.component.d.ts +25 -0
- package/lib/smart-expandable-section/expandable-section.model.d.ts +40 -0
- package/lib/smart-expandable-section/projects.d.ts +4 -0
- package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +15 -0
- package/lib/smart-expandable-section/smart-expandable-section.service.d.ts +6 -0
- package/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.d.ts +16 -0
- package/lib/smart-filter/api/filter/model/filterExpressionBuilderField.d.ts +27 -0
- package/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.d.ts +39 -0
- package/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.d.ts +21 -0
- package/lib/smart-filter/api/filter/model/filterExpressionData.d.ts +27 -0
- package/lib/smart-filter/api/filter/model/filterExpressionDataType.d.ts +19 -0
- package/lib/smart-filter/api/filter/model/filterExpressionField.d.ts +37 -0
- package/lib/smart-filter/api/filter/model/filterExpressionFieldList.d.ts +21 -0
- package/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.d.ts +25 -0
- package/lib/smart-filter/api/filter/model/filterExpressionList.d.ts +18 -0
- package/lib/smart-filter/api/filter/model/filterExpressionOperandData.d.ts +24 -0
- package/lib/smart-filter/api/filter/model/filterExpressionOperation.d.ts +31 -0
- package/lib/smart-filter/api/filter/model/filterExpressionOrderBy.d.ts +28 -0
- package/lib/smart-filter/api/filter/model/model.d.ts +15 -0
- package/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.d.ts +19 -0
- package/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.d.ts +18 -0
- package/lib/smart-filter/api/value/model/value.d.ts +29 -0
- package/lib/smart-filter/projects.d.ts +5 -0
- package/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.d.ts +8 -0
- package/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.d.ts +31 -0
- package/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.d.ts +18 -0
- package/lib/smart-filter/smart-filter/smart-filter.component.d.ts +15 -0
- package/lib/smart-filter/smart-filter/smart-filter.service.d.ts +16 -0
- package/lib/smart-filter/smart-filter.model.d.ts +25 -0
- package/lib/smart-filter/smart-filter.module.d.ts +15 -0
- package/lib/smart-form/api/api/api.d.ts +3 -0
- package/lib/smart-form/api/api/default.service.d.ts +33 -0
- package/lib/smart-form/api/api.module.d.ts +11 -0
- package/lib/smart-form/api/configuration.d.ts +104 -0
- package/lib/smart-form/api/encoder.d.ts +11 -0
- package/lib/smart-form/api/index.d.ts +6 -0
- package/lib/smart-form/api/model/models.d.ts +7 -0
- package/lib/smart-form/api/model/propertyMapping.d.ts +24 -0
- package/lib/smart-form/api/model/selectionDefinition.d.ts +40 -0
- package/lib/smart-form/api/model/smartFormWidgetDirection.d.ts +16 -0
- package/lib/smart-form/api/model/smartFormWidgetType.d.ts +42 -0
- package/lib/smart-form/api/model/smartLayoutDefinition.d.ts +15 -0
- package/lib/smart-form/api/model/smartMatrixModel.d.ts +28 -0
- package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +77 -0
- package/lib/smart-form/api/param.d.ts +37 -0
- package/lib/smart-form/api/variables.d.ts +8 -0
- package/lib/smart-form/projects.d.ts +9 -0
- package/lib/smart-form/services/smartform.layout-definition.service.d.ts +40 -0
- package/lib/smart-form/services/smartform.service.d.ts +29 -0
- package/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.d.ts +8 -0
- package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +22 -0
- package/lib/smart-form/smartfileuploader/smartfileuploader.model.d.ts +7 -0
- package/lib/smart-form/smartform.component.d.ts +33 -0
- package/lib/smart-form/smartform.form-model.d.ts +521 -0
- package/lib/smart-form/smartform.model.d.ts +120 -0
- package/lib/smart-form/smartform.module.d.ts +34 -0
- package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts +29 -0
- package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +84 -0
- package/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.d.ts +20 -0
- package/lib/smart-form/widgets/smartformwidget/trackCaps.directive.d.ts +9 -0
- package/lib/smart-grid/api/grid-api/api/api.d.ts +3 -0
- package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +140 -0
- package/lib/smart-grid/api/grid-api/api.module.d.ts +11 -0
- package/lib/smart-grid/api/grid-api/configuration.d.ts +80 -0
- package/lib/smart-grid/api/grid-api/encoder.d.ts +11 -0
- package/lib/smart-grid/api/grid-api/index.d.ts +5 -0
- package/lib/smart-grid/api/grid-api/model/gridColumnMeta.d.ts +18 -0
- package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +35 -0
- package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +30 -0
- package/lib/smart-grid/api/grid-api/model/gridPage.d.ts +26 -0
- package/lib/smart-grid/api/grid-api/model/gridRow.d.ts +22 -0
- package/lib/smart-grid/api/grid-api/model/gridSelectionMode.d.ts +17 -0
- package/lib/smart-grid/api/grid-api/model/gridSelectionType.d.ts +16 -0
- package/lib/smart-grid/api/grid-api/model/gridServerModel.d.ts +20 -0
- package/lib/smart-grid/api/grid-api/model/gridUpdateData.d.ts +19 -0
- package/lib/smart-grid/api/grid-api/model/gridView.d.ts +21 -0
- package/lib/smart-grid/api/grid-api/model/gridViewDescriptor.d.ts +33 -0
- package/lib/smart-grid/api/grid-api/model/models.d.ts +11 -0
- package/lib/smart-grid/api/grid-api/variables.d.ts +8 -0
- package/lib/smart-grid/components/expandable-grid/expandable-grid.component.d.ts +10 -0
- package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +21 -0
- package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +40 -0
- package/lib/smart-grid/models/model.d.ts +70 -0
- package/lib/smart-grid/projects.d.ts +5 -0
- package/lib/smart-grid/smart-grid.component.d.ts +67 -0
- package/lib/smart-grid/smart-grid.module.d.ts +20 -0
- package/lib/smart-grid/smart-grid.service.d.ts +26 -0
- package/lib/smart-icon/projects.d.ts +3 -0
- package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +17 -0
- package/lib/smart-icon/smart-icon.module.d.ts +10 -0
- package/lib/smart-icon/smart-icon.service.d.ts +21 -0
- package/lib/smart-navbar/projects.d.ts +4 -0
- package/lib/smart-navbar/smart-navbar.component.d.ts +20 -0
- package/lib/smart-navbar/smart-navbar.model.d.ts +48 -0
- package/lib/smart-navbar/smart-navbar.module.d.ts +18 -0
- package/lib/smart-navbar/smart-navbar.service.d.ts +6 -0
- package/lib/smart-navigation/projects.d.ts +2 -0
- package/lib/smart-navigation/smart-navigation.interface.d.ts +11 -0
- package/lib/smart-navigation/smart-navigation.module.d.ts +6 -0
- package/lib/smart-navigation/smart-navigation.service.d.ts +18 -0
- package/lib/smart-ng-client.module.d.ts +9 -6
- package/lib/smart-subject/projects.d.ts +1 -0
- package/lib/smart-subject/smart-subject.d.ts +6 -0
- package/lib/smart-tab-group/projects.d.ts +4 -0
- package/lib/smart-tab-group/smart-tab-group.component.d.ts +21 -0
- package/lib/smart-tab-group/smart-tab-group.module.d.ts +13 -0
- package/lib/smart-tab-group/smart-tab-group.service.d.ts +6 -0
- package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +14 -0
- package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +29 -0
- package/lib/smart-tab-group/tabTile.model.d.ts +8 -0
- package/lib/smart-table/components/loading/loading.component.d.ts +8 -0
- package/lib/smart-table/projects.d.ts +5 -0
- package/lib/smart-table/smarttable.component.d.ts +34 -0
- package/lib/smart-table/smarttable.date-pipe.d.ts +18 -0
- package/lib/smart-table/smarttable.model.d.ts +183 -0
- package/lib/smart-table/smarttable.module.d.ts +23 -0
- package/lib/smart-table/smarttable.service.d.ts +6 -0
- package/lib/smart-table/tables/material-table/material-table.component.d.ts +8 -0
- package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +8 -0
- package/lib/smart-table/tables/table.d.ts +59 -0
- package/lib/smart-tree/smarttree.component.d.ts +1 -1
- package/lib/smart-tree/smarttree.model.d.ts +1 -1
- package/lib/smart-tree/smarttree.module.d.ts +1 -1
- package/lib/smart-tree/smarttree.service.d.ts +1 -1
- package/lib/smart-tree/smarttree.service.interface.d.ts +1 -1
- package/lib/view-context/api/model/componentModel.d.ts +3 -2
- package/lib/view-context/api/model/view.d.ts +1 -1
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +1 -1
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +1 -1
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +1 -1
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +1 -1
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +1 -1
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +1 -1
- package/lib/view-context/smart-ui-action/ui-action.model.d.ts +3 -1
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +1 -1
- package/lib/view-context/smart-view-context.module.d.ts +2 -2
- package/lib/view-context/smart-view-context.service.d.ts +3 -3
- package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +3 -3
- package/lib/view-context/value-api/model/valueSetData.d.ts +1 -1
- package/package.json +1 -4
- package/projects.d.ts +14 -2
- package/smartbit4all-ng-client-3.0.1.tgz +0 -0
- package/src/lib/component-factory-service/README.md +99 -0
- package/src/lib/smart-component-layout/README.md +31 -0
- package/src/lib/smart-component-layout/api/README.md +226 -0
- package/src/lib/smart-dialog/README.md +197 -0
- package/src/lib/smart-expandable-section/README.md +249 -0
- package/src/lib/smart-filter/README.md +101 -0
- package/src/lib/smart-form/README.md +1178 -0
- package/src/lib/smart-form/api/README.md +226 -0
- package/src/lib/smart-grid/README.md +24 -0
- package/src/lib/smart-grid/api/grid-api/README.md +203 -0
- package/src/lib/smart-icon/README.md +116 -0
- package/src/lib/smart-navbar/README.md +119 -0
- package/src/lib/smart-navigation/README.md +141 -0
- package/src/lib/smart-tab-group/README.md +155 -0
- package/src/lib/smart-table/README.md +667 -0
- package/src/lib/view-context/api/README.md +226 -226
- package/esm2020/lib/smart-client/projects.mjs +0 -5
- package/esm2020/lib/smart-client/smart.component.mjs +0 -30
- package/esm2020/lib/smart-client/smart.service.mjs +0 -30
- package/lib/smart-client/projects.d.ts +0 -4
- package/lib/smart-client/smart.component.d.ts +0 -11
- package/lib/smart-client/smart.service.d.ts +0 -11
- package/smartbit4all-ng-client-2.2.2.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartbit4all-ng-client.mjs","sources":["../../../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/api/model/accountInfo.ts","../../../projects/smart-ng-client/src/lib/session/api/model/apiError.ts","../../../projects/smart-ng-client/src/lib/session/api/model/authenticationProviderData.ts","../../../projects/smart-ng-client/src/lib/session/api/model/refreshSessionRequest.ts","../../../projects/smart-ng-client/src/lib/session/api/model/userActivityLog.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/componentModelChange.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/dataChangeKind.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageOptionType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonDescriptor.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonIconPos.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionConstraint.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/uiActionRequest.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionUploadDescriptor.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uploadedFile.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/viewApiError.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/view-context/smart-view-context.service.ts","../../../projects/smart-ng-client/src/lib/smart-ng-client.service.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool.service.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.html","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.html","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool.interceptor.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-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/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/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-confirm-dialog/ui-action-confirm-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-input-dialog/ui-action-input-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/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/ui-action.service.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/view-context/smart-view-context.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-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-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-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/projects.ts","../../../projects/smart-ng-client/src/smartbit4all-ng-client.ts"],"sourcesContent":["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'\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 * Session api\r\n * Session 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/* 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 { ApiError } from '../model/apiError';\r\n// @ts-ignore\r\nimport { GetAuthenticationProvidersResponse } from '../model/getAuthenticationProvidersResponse';\r\n// @ts-ignore\r\nimport { RefreshSessionRequest } from '../model/refreshSessionRequest';\r\n// @ts-ignore\r\nimport { SessionInfoData } from '../model/sessionInfoData';\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 SessionService {\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 * Returns the available authentication providers\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 getAuthenticationProviders(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GetAuthenticationProvidersResponse>;\r\n public getAuthenticationProviders(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GetAuthenticationProvidersResponse>>;\r\n public getAuthenticationProviders(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GetAuthenticationProvidersResponse>>;\r\n public getAuthenticationProviders(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/authenticationProviders`;\r\n return this.httpClient.request<GetAuthenticationProvidersResponse>('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 * Returns the existing session info\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 getSession(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public getSession(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public getSession(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public getSession(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/session`;\r\n return this.httpClient.request<SessionInfoData>('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 * Refreshes the session\r\n * @param refreshSessionRequest \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 refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (refreshSessionRequest === null || refreshSessionRequest === undefined) {\r\n throw new Error('Required parameter refreshSessionRequest was null or undefined when calling refreshSession.');\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 = `/refresh`;\r\n return this.httpClient.request<SessionInfoData>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: refreshSessionRequest,\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 * Sets the locale of the session\r\n * Sets the locale of the current session and returns the SessionInfoData\r\n * @param locale \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 setLocale(locale: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public setLocale(locale: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public setLocale(locale: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public setLocale(locale: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (locale === null || locale === undefined) {\r\n throw new Error('Required parameter locale was null or undefined when calling setLocale.');\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 = `/locale/${this.configuration.encodeParam({name: \"locale\", value: locale, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\r\n return this.httpClient.request<SessionInfoData>('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 * Creates a new session\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 startSession(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public startSession(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public startSession(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public startSession(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/session`;\r\n return this.httpClient.request<SessionInfoData>('put', `${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 \"./session.service\";\r\nimport { SessionService } from \"./session.service\";\r\nexport const SessionAPIS = [SessionService];\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface AccountInfo { \r\n kind: string;\r\n userName: string;\r\n displayName: string;\r\n imageContent?: string;\r\n imageFormat?: string;\r\n roles?: Array<string>;\r\n parameters?: { [key: string]: string; };\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface ApiError { \r\n code: string;\r\n message: string;\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface AuthenticationProviderData { \r\n kind: string;\r\n parameters?: { [key: string]: string; };\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface RefreshSessionRequest { \r\n refreshToken: string;\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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/**\r\n * When a user executes an activity this entry is created based on the current session. It contains the information we know about the user and the time of the execution. The user is not necessarily user of the system so the user uri is optional and the user is a copied value from the session. \r\n */\r\nexport interface UserActivityLog { \r\n /**\r\n * The uri reference of the user.\r\n */\r\n userUri?: string;\r\n /**\r\n * The login name of the user.\r\n */\r\n userName?: string;\r\n /**\r\n * The role of the user.\r\n */\r\n role?: string;\r\n /**\r\n * The natural name of the user.\r\n */\r\n name?: string;\r\n timestamp?: string;\r\n}\r\n\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 '@smartbit4all/subject';\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?: undefined, context?: HttpContext}): Observable<any>;\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, 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 ];\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<any>('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 type CloseResult = 'approved' | 'pending' | 'rejected';\n\nexport const CloseResult = {\n Approved: 'approved' as CloseResult,\n Pending: 'pending' as CloseResult,\n Rejected: 'rejected' as CloseResult\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 * Change of a ComponentModel. \n */\nexport interface ComponentModelChange { \n uuid: string;\n path: string;\n value?: object;\n /**\n * Changed values, in a key-value map. Refers to different parts of ComponentModel, for example data changes are prefixed with \\'data.\\', layout changes with \\'layouts.\\', etc. \n */\n changes: { [key: string]: any; };\n /**\n * List of changed widgets (widgetIds).\n */\n changedWidgets?: Array<string>;\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 type DataChangeKind = 'WIDGET' | 'SELECTION' | 'LOOKUP';\n\nexport const DataChangeKind = {\n Widget: 'WIDGET' as DataChangeKind,\n Selection: 'SELECTION' as DataChangeKind,\n Lookup: 'LOOKUP' as DataChangeKind\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 type MessageOptionType = 'confirm' | 'reject' | 'cancel';\n\nexport const MessageOptionType = {\n Confirm: 'confirm' as MessageOptionType,\n Reject: 'reject' as MessageOptionType,\n Cancel: 'cancel' as MessageOptionType\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 type MessageType = 'info' | 'question' | 'warning' | 'error';\n\nexport const MessageType = {\n Info: 'info' as MessageType,\n Question: 'question' as MessageType,\n Warning: 'warning' as MessageType,\n Error: 'error' as MessageType\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 * Describes a button which is presented on the UiAction dialog. \n */\nexport interface UiActionButtonDescriptor { \n caption: string;\n color: string;\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 type UiActionButtonIconPos = 'PRE' | 'POST';\n\nexport const UiActionButtonIconPos = {\n Pre: 'PRE' as UiActionButtonIconPos,\n Post: 'POST' as UiActionButtonIconPos\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 type UiActionButtonType = 'NORMAL' | 'FLAT' | 'STROKED' | 'RAISED' | 'ICON' | 'MINI_FAB' | 'FAB';\n\nexport const UiActionButtonType = {\n Normal: 'NORMAL' as UiActionButtonType,\n Flat: 'FLAT' as UiActionButtonType,\n Stroked: 'STROKED' as UiActionButtonType,\n Raised: 'RAISED' as UiActionButtonType,\n Icon: 'ICON' as UiActionButtonType,\n MiniFab: 'MINI_FAB' as UiActionButtonType,\n Fab: 'FAB' as UiActionButtonType\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 * The UiAction constraint is responsible for the constraints belong to a given action (button, menu option etc.) on the view. The UI must identify the action by the dataName that is a path of the data name separated by dot like dataSheet.field. \n */\nexport interface UiActionConstraint { \n /**\n * The path format is the following - dataSheet.actionCode.\n */\n path?: string;\n visible?: boolean;\n enabled?: boolean;\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 type UiActionFeedbackType = 'NONE' | 'SNACKBAR';\n\nexport const UiActionFeedbackType = {\n None: 'NONE' as UiActionFeedbackType,\n Snackbar: 'SNACKBAR' as UiActionFeedbackType\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 type UiActionInputType = 'none' | 'textfield' | 'textarea' | 'user_select' | 'file' | 'multiple_files';\n\nexport const UiActionInputType = {\n None: 'none' as UiActionInputType,\n Textfield: 'textfield' as UiActionInputType,\n Textarea: 'textarea' as UiActionInputType,\n UserSelect: 'user_select' as UiActionInputType,\n File: 'file' as UiActionInputType,\n MultipleFiles: 'multiple_files' as UiActionInputType\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 UiActionRequest { \n /**\n * Code of the executed UI action.\n */\n code: string;\n path?: string;\n /**\n * Identifier of UI element, or UI action, where action is performed (for example treeNode\\'s / listItem\\'s identifier, etc.). Optional. \n */\n identifier?: string;\n /**\n * Additional parameters for executing the UI action. \n */\n params: { [key: string]: any; };\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 * Describes the look of an upload component that is related to a specific UiAction. \n */\nexport interface UiActionUploadDescriptor { \n title: string;\n description?: string;\n maxSize?: string;\n formats?: string;\n uploadButtonTitle?: string;\n backgroundColour?: string;\n textColour?: string;\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 * Information about uploaded file.\r\n */\r\nexport interface UploadedFile {\r\n filename?: string;\r\n size?: number;\r\n data?: any;\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\n/**\n * Generic API error object.\n */\nexport interface ViewApiError { \n code?: string;\n message?: string;\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?: ViewEventHandler.ViewEventTypeEnum;\r\n invocationRequestDefinition?: any;\r\n}\r\nexport namespace ViewEventHandler {\r\n export type ViewEventTypeEnum = 'before' | 'instead' | 'after';\r\n export const ViewEventTypeEnum = {\r\n Before: 'before' as ViewEventTypeEnum,\r\n Instead: 'instead' as ViewEventTypeEnum,\r\n After: 'after' as ViewEventTypeEnum,\r\n };\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 type ViewState = 'open_pending' | 'to_open' | 'opened' | 'close_pending' | 'close_approved' | 'to_close' | 'closed';\n\nexport const ViewState = {\n OpenPending: 'open_pending' as ViewState,\n ToOpen: 'to_open' as ViewState,\n Opened: 'opened' as ViewState,\n ClosePending: 'close_pending' as ViewState,\n CloseApproved: 'close_approved' as ViewState,\n ToClose: 'to_close' as ViewState,\n Closed: 'closed' as ViewState\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 type ViewType = 'normal' | 'dialog' | 'embedded';\n\nexport const ViewType = {\n Normal: 'normal' as ViewType,\n Dialog: 'dialog' as ViewType,\n Embedded: 'embedded' as ViewType\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 } 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","<div class=\"taskDialogContainer\" *ngIf=\"messageData\">\r\n\t<h2>\r\n\t\t{{ messageData.header }}\r\n\t</h2>\r\n\t<p>{{ messageData.text }}</p>\r\n\t<div class=\"buttonsContainer\">\r\n\t\t<button\r\n\t\t\t*ngFor=\"let option of messageData.options\"\r\n\t\t\tmat-button\r\n\t\t\tclass=\"taskDialogButton\"\r\n\t\t\t[ngClass]=\"getType(option)\"\r\n\t\t\tcolor=\"{{ getColor(option) }}\"\r\n\t\t\t(click)=\"onClick(option)\"\r\n\t\t>\r\n\t\t\t<mat-icon *ngIf=\"option.icon\">\r\n\t\t\t\t{{ option.icon }}\r\n\t\t\t</mat-icon>\r\n\t\t\t{{ option.label }}\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { SmartdialogService } from '@smartbit4all/dialog';\r\nimport { SmartNavigationService } from '@smartbit4all/navigation';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSessionService } from '../session/smart-session.service';\r\nimport {\r\n ComponentModel,\r\n ComponentModelChange,\r\n DataChange,\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 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 '@smartbit4all/subject';\r\n\r\nexport const SmartViewContextErrorDialogButtonLabel = 'SmartViewContextErrorDialogButtonLabel';\r\nexport const SmartViewContextErrorDialogTitle = 'SmartViewContextErrorDialogTitle';\r\nexport const SmartViewContextErrorDialogMessage = 'SmartViewContextErrorDialogMessage';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartViewContextService implements OnDestroy {\r\n private tabIdName: string = 'viewContextUuid';\r\n private tabIdhttpHeaderName: string = 'viewContextUuid';\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: SmartdialogService,\r\n private apiQueueService: ApiQueueService\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.getUuidOfPage(this.tabIdName);\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 let viewContextUuid = sessionStorage.getItem(this.tabIdName);\r\n if (!viewContextUuid) {\r\n throw new Error('View context is not initialized!');\r\n }\r\n await this.getViewContext(viewContextUuid!);\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 private setTabId(tabId: string): void {\r\n sessionStorage.setItem(this.tabIdName, tabId);\r\n this.session.addHeaderParam({\r\n headerName: this.tabIdhttpHeaderName,\r\n value: tabId,\r\n });\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.setTabId(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.setTabId(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): void {\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 dialogRef = this.dialog.openComponentAsDialog(viewHandler.component, viewHandler.name);\r\n dialogRef.disableClose = true;\r\n // if (view.viewName === this.messageDialogname) {\r\n // if (view.message?.options && view.message.options.length) {\r\n // }\r\n // }\r\n this.dialogRefs.push({\r\n uuid: view.uuid,\r\n dialogRef,\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 sessionStorage.setItem(view.viewName, view.uuid);\r\n this.uuidOfPageHasBeenChanged.next(view.viewName);\r\n\r\n this.updateViewContext({\r\n updates: [\r\n {\r\n state: ViewState.Opened,\r\n uuid: view.uuid,\r\n },\r\n ],\r\n uuid: this.viewContext?.uuid,\r\n });\r\n }\r\n\r\n public closeView(view: ViewData): void {\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 throw new Error('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 sessionStorage.removeItem(view.viewName);\r\n }\r\n\r\n this.updateViewContext({\r\n updates: [\r\n {\r\n state: ViewState.Closed,\r\n uuid: view.uuid,\r\n },\r\n ],\r\n uuid: this.viewContext?.uuid,\r\n });\r\n }\r\n\r\n public async restoreViews(uuid: string): Promise<void> {\r\n if (!this.viewContext) {\r\n await this.getViewContext(uuid);\r\n }\r\n this.viewContext!.views.map((view: ViewData) => {\r\n this.openView(view);\r\n });\r\n }\r\n\r\n public syncView(): void {\r\n this.viewContext?.views.map((view: ViewData) => {\r\n switch (view.state) {\r\n case ViewState.ToOpen:\r\n this.openView(view);\r\n break;\r\n case ViewState.ToClose:\r\n 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 this.closeView(viewData);\r\n });\r\n }\r\n\r\n this.viewContextHasBeenSynced.next();\r\n }\r\n\r\n public getUuidOfPage(pageName: string): string {\r\n let uuid = sessionStorage.getItem(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 async message(messageData: MessageData, messageResult: MessageResult): Promise<void> {\r\n await this.view\r\n .message(messageData.viewUuid ?? '', messageData.uuid, messageResult)\r\n .toPromise();\r\n await this.getAndSyncViewContext();\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' | 'INPUT2',\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<void> {\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<void> {\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 }\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 return await this.view.getComponentModel2(uuid).toPromise();\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 { DatePipe } from '@angular/common';\r\nimport { HttpErrorResponse, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { SmartCookieService } from '../cookie-service/smart-cookie.service';\r\nimport { SmartSubject } from '@smartbit4all/subject';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartDevToolService implements OnDestroy {\r\n descriptor?: SmartDevToolDescriptor;\r\n\r\n smartDevToolName: string = 'smartDevTool';\r\n isSmartDevToolActiveName: string = 'smartDevToolActive';\r\n isActive: boolean = false;\r\n smartDevToolHoursName: string = 'smartDevToolHours';\r\n smartDevToolMaxName: string = 'smartDevToolMaxCalls';\r\n hoursToSave: number = 1;\r\n maxNumOfSavedCalls: number = 50;\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n descriptorChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n newErrorsCount: number = 0;\r\n newErrorsCountChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n constructor(private cookieService: SmartCookieService) {\r\n this.setUpLocalStorage();\r\n\r\n let apiCallsFromLocalStorage = localStorage.getItem(this.smartDevToolName);\r\n if (apiCallsFromLocalStorage) {\r\n this.descriptor = JSON.parse(apiCallsFromLocalStorage);\r\n } else {\r\n this.descriptor = { apiCalls: [] };\r\n this.save();\r\n }\r\n\r\n window.addEventListener('storage', (event) => {\r\n if (event.storageArea === localStorage) {\r\n this.isActive = localStorage.getItem(this.isSmartDevToolActiveName) === 'true';\r\n let hoursToSaveString = localStorage.getItem(this.smartDevToolHoursName);\r\n if (hoursToSaveString) {\r\n this.hoursToSave = Number.parseInt(hoursToSaveString);\r\n }\r\n let maxNumOfSavedCalls = localStorage.getItem(this.smartDevToolMaxName);\r\n if (maxNumOfSavedCalls) {\r\n this.maxNumOfSavedCalls = Number.parseInt(maxNumOfSavedCalls);\r\n }\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 setUpLocalStorage(): void {\r\n let keysOfLocalStorage = Object.keys(localStorage);\r\n if (!keysOfLocalStorage.includes(this.isSmartDevToolActiveName)) {\r\n localStorage.setItem(this.isSmartDevToolActiveName, 'true');\r\n }\r\n }\r\n\r\n writeResponse(\r\n request: HttpRequest<any>,\r\n response: HttpResponse<any> | HttpErrorResponse,\r\n requestDate: Date,\r\n responseDate: Date\r\n ): void {\r\n this.sanitizeByLength();\r\n this.sanitizeByTime();\r\n\r\n let requestHeader: any = this.createObject(request.headers.keys(), request.headers, false);\r\n let responseHeader: any = this.createObject(response.headers.keys(), response.headers, false);\r\n\r\n let _localStorage: any = this.createObject(\r\n Object.keys(localStorage).filter((key: string) => key !== this.smartDevToolName),\r\n localStorage,\r\n true\r\n );\r\n let _sessionStorage: any = this.createObject(Object.keys(sessionStorage), sessionStorage, true);\r\n let _cookies: any = this.cookieService.getAll();\r\n\r\n this.descriptor!.apiCalls = [\r\n {\r\n url: response.url,\r\n requestBody: request.body,\r\n requestHeader,\r\n requestDate,\r\n requestMethod: request.method,\r\n responseBody: (response as HttpResponse<any>).body ?? null,\r\n responseHeader,\r\n responseStatus: response.status,\r\n responseStatusText: response.statusText,\r\n responseDate,\r\n localStorage: _localStorage,\r\n sessionStorage: _sessionStorage,\r\n cookies: _cookies,\r\n },\r\n ...this.descriptor!.apiCalls,\r\n ];\r\n\r\n if (response.status !== 200) {\r\n this.newErrorsCount++;\r\n this.newErrorsCountChanged.next();\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n clearErrors(): void {\r\n this.newErrorsCount = 0;\r\n this.newErrorsCountChanged.next();\r\n }\r\n\r\n createObject(keys: string[], mapWithValues: any, useGetItem: boolean): any {\r\n let newObject: any = {};\r\n keys.forEach((key: string) => {\r\n if (useGetItem) {\r\n newObject[key] = mapWithValues.getItem(key);\r\n } else {\r\n newObject[key] = mapWithValues.get(key);\r\n }\r\n });\r\n return newObject;\r\n }\r\n\r\n sanitizeByTime(): void {\r\n let now: Date = new Date();\r\n this.descriptor!.apiCalls = this.descriptor!.apiCalls.filter(\r\n (apiCall: SmartDevToolApiCallDescriptor) => {\r\n let hoursBetween: number;\r\n if (typeof apiCall.requestDate === 'string') {\r\n hoursBetween = Math.floor(\r\n Math.abs(now.getMilliseconds() - new Date(apiCall.requestDate).getMilliseconds()) / 36e5\r\n );\r\n } else {\r\n hoursBetween = Math.floor(\r\n Math.abs(now.getMilliseconds() - apiCall.requestDate.getMilliseconds()) / 36e5\r\n );\r\n }\r\n\r\n return hoursBetween < this.hoursToSave;\r\n }\r\n );\r\n }\r\n\r\n sanitizeByLength(): void {\r\n if (this.descriptor?.apiCalls && this.descriptor.apiCalls.length > this.maxNumOfSavedCalls) {\r\n let length = this.descriptor.apiCalls.length;\r\n this.descriptor.apiCalls.splice(\r\n this.maxNumOfSavedCalls - 1,\r\n length - this.maxNumOfSavedCalls\r\n );\r\n }\r\n }\r\n\r\n save(): void {\r\n try {\r\n localStorage.setItem(this.smartDevToolName, JSON.stringify(this.descriptor));\r\n this.descriptorChanged.next();\r\n } catch (error: any) {\r\n // localStorage.setItem() throws a \"QuotaExceededError\" DOMException exception if the new value\r\n // couldn't be set. (Setting could fail if, e.g., the user has disabled storage for the site,\r\n // or if the quota has been exceeded.)\r\n this.sanitizeByLength();\r\n this.save();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.descriptor = {\r\n apiCalls: [],\r\n };\r\n this.save();\r\n }\r\n\r\n getPureString(): string {\r\n return localStorage.getItem(this.smartDevToolName)!;\r\n }\r\n}\r\n\r\nexport interface SmartDevToolDescriptor {\r\n apiCalls: SmartDevToolApiCallDescriptor[];\r\n}\r\n\r\nexport interface SmartDevToolApiCallDescriptor {\r\n url: string | null;\r\n responseBody: any;\r\n responseHeader: any;\r\n responseStatus: number;\r\n responseStatusText: string;\r\n responseDate: Date;\r\n requestHeader: any;\r\n requestBody: any;\r\n requestDate: Date;\r\n requestMethod: string;\r\n localStorage: any;\r\n sessionStorage: any;\r\n cookies: any;\r\n}\r\n\r\n@Pipe({\r\n name: 'smartDevToolDatePipe',\r\n})\r\nexport class SmartDevToolDatePipe extends DatePipe implements PipeTransform {\r\n override transform(value: any, format: string = 'yyyy.MM.dd. H:mm:ss'): any {\r\n return super.transform(value, format);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData, SmartdialogService } from '@smartbit4all/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { SmartDevToolDescriptor, SmartDevToolService } from '../smart-dev-tool.service';\r\nimport { SmartDevToolDialogComponent } from './smart-dev-tool-dialog.component';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SmartDevToolDialogService extends SmartdialogService {\r\n\tupdate: Subject<void>;\r\n\r\n\tconstructor(dialog: MatDialog, router: Router, public service: SmartDevToolService) {\r\n\t\tsuper(dialog, router);\r\n\t\tthis.update = this.service.descriptorChanged;\r\n\t}\r\n\r\n\toverride handleAfterClosed(result: any): void {}\r\n\r\n\toverride openDialog(): void {\r\n\t\tconst dialogData: SmartDialogData = {\r\n\t\t\tcontent: {\r\n\t\t\t\ttitle: ''\r\n\t\t\t},\r\n\t\t\tsize: {},\r\n\t\t\tcustomComponent: SmartDevToolDialogComponent\r\n\t\t};\r\n\t\tthis.createDialog(dialogData, SmartDevToolDialogComponent);\r\n\t}\r\n\r\n\tgetData(): SmartDevToolDescriptor {\r\n\t\treturn this.service.descriptor!;\r\n\t}\r\n\r\n\tgetPureString(): string {\r\n\t\treturn this.service.getPureString();\r\n\t}\r\n\r\n\tclear(): void {\r\n\t\tthis.service.clear();\r\n\t}\r\n}\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartDevToolDescriptor } from '../smart-dev-tool.service';\r\nimport { SmartDevToolDialogService } from './smart-dev-tool-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-smart-dev-tool-dialog',\r\n templateUrl: './smart-dev-tool-dialog.component.html',\r\n styleUrls: ['./smart-dev-tool-dialog.component.css'],\r\n})\r\nexport class SmartDevToolDialogComponent implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n descriptor?: SmartDevToolDescriptor;\r\n\r\n constructor(private service: SmartDevToolDialogService) {\r\n this.descriptor = this.service.getData();\r\n this.service.update.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.descriptor = this.service.getData();\r\n });\r\n this.service.service.clearErrors();\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n }\r\n\r\n clear(): void {\r\n this.service.clear();\r\n }\r\n\r\n getBody(inp: any) {\r\n return this.syntaxHighlight(inp);\r\n }\r\n\r\n syntaxHighlight(json: any) {\r\n if (typeof json != 'string') {\r\n json = JSON.stringify(json, undefined, 2);\r\n }\r\n json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\r\n return json.replace(\r\n /(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g,\r\n function (match: any) {\r\n var cls = 'number';\r\n if (/^\"/.test(match)) {\r\n if (/:$/.test(match)) {\r\n cls = 'key';\r\n } else {\r\n cls = 'string';\r\n }\r\n } else if (/true|false/.test(match)) {\r\n cls = 'boolean';\r\n } else if (/null/.test(match)) {\r\n cls = 'null';\r\n }\r\n return '<span class=\"' + cls + '\">' + match + '</span>';\r\n }\r\n );\r\n }\r\n\r\n copy(): void {\r\n copyToClipboard({\r\n value: this.service.getPureString(),\r\n });\r\n }\r\n\r\n close(): void {\r\n this.service.closeDialog();\r\n }\r\n}\r\n\r\ninterface ICopyToClipboard {\r\n /** HTML reference identifier ```<div id=\"foo\"></div>``` */\r\n target?: string;\r\n /** String value */\r\n value?: string;\r\n /** (Optional) message to display in snackbar on success */\r\n message?: string;\r\n}\r\n\r\nexport const copyToClipboard = async ({ target, message, value }: ICopyToClipboard) => {\r\n try {\r\n let copyValue = '';\r\n\r\n if (!navigator.clipboard) {\r\n throw new Error(\"Browser don't have support for native clipboard.\");\r\n }\r\n\r\n if (target) {\r\n const node = document.querySelector(target);\r\n\r\n if (!node || !node.textContent) {\r\n throw new Error('Element not found');\r\n }\r\n\r\n value = node.textContent;\r\n }\r\n\r\n if (value) {\r\n copyValue = value;\r\n }\r\n\r\n await navigator.clipboard.writeText(copyValue);\r\n } catch (error: any) {\r\n console.error(error.toString());\r\n }\r\n};\r\n","<div class=\"smartDevToolDialogContainer\">\r\n <div class=\"header\">\r\n <h2>Developer tool</h2>\r\n <button mat-icon-button title=\"close\" (click)=\"close()\">\r\n <smart-icon icon=\"close\"></smart-icon>\r\n </button>\r\n </div>\r\n <div class=\"requestsContainer\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel\r\n class=\"requestCard\"\r\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\r\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"titlePanel\">\r\n <span class=\"date\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </span>\r\n <span class=\"urlText\">\r\n {{ apiCall.url }}\r\n </span>\r\n <div [ngClass]=\"apiCall.requestMethod\">\r\n {{ apiCall.requestMethod }}\r\n </div>\r\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div>\r\n <div class=\"table\">\r\n <div class=\"row\">\r\n <div class=\"mainCol heading\">Request</div>\r\n <div class=\"mainCol heading\">Response</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.requestDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status text</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatusText }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Session Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Local Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Cookies</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.sessionStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.localStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.localStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.cookies\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.cookies)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n <div class=\"buttonsContainer\">\r\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\r\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\r\n </div>\r\n</div>\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartDevToolDialogService } from '../smart-dev-tool-dialog/smart-dev-tool-dialog.service';\r\n\r\n@Component({\r\n selector: 'smart-session-dev-tool',\r\n templateUrl: './smart-dev-tool-floating-button.component.html',\r\n styleUrls: ['./smart-dev-tool-floating-button.component.css'],\r\n})\r\nexport class SmartDevToolFloatingButtonComponent implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n adminKeyName: string = 'useDevTool';\r\n isShown: boolean = false;\r\n\r\n errorsCount: string = '';\r\n\r\n constructor(private service: SmartDevToolDialogService) {\r\n this.service.service.newErrorsCountChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.errorsCount = `${\r\n this.service.service.newErrorsCount > 0 ? this.service.service.newErrorsCount : ''\r\n }`;\r\n });\r\n\r\n window.addEventListener('storage', (event) => {\r\n if (event.storageArea === localStorage) {\r\n if (Object.keys(localStorage).includes(this.adminKeyName)) {\r\n this.isShown = localStorage.getItem(this.adminKeyName) === 'true';\r\n }\r\n }\r\n });\r\n\r\n this.isShown = localStorage.getItem(this.adminKeyName) === 'true';\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n }\r\n\r\n openDevToolDialog(): void {\r\n this.service.openDialog();\r\n }\r\n}\r\n","<button\r\n *ngIf=\"isShown\"\r\n mat-fab\r\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\r\n class=\"floatingButton\"\r\n extended\r\n title=\"devTool\"\r\n (click)=\"openDevToolDialog()\"\r\n>\r\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\r\n {{ errorsCount }}\r\n</button>\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpEventType,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { catchError, map, Observable, throwError } from \"rxjs\";\r\nimport { SmartDevToolService } from \"./smart-dev-tool.service\";\r\n\r\n@Injectable()\r\nexport class SmartDevToolInterceptor implements HttpInterceptor {\r\n constructor(private service: SmartDevToolService) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n if (!this.service.isActive) {\r\n return next.handle(request);\r\n }\r\n let requestDate = new Date();\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event.type === HttpEventType.Response) {\r\n let responseDate = new Date();\r\n this.service.writeResponse(request, event, requestDate, responseDate);\r\n }\r\n\r\n return event;\r\n })\r\n );\r\n }\r\n}\r\n@Injectable()\r\nexport class SmartDevToolErrorInterceptor implements HttpInterceptor {\r\n constructor(private service: SmartDevToolService) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n if (!this.service.isActive) {\r\n return next.handle(request);\r\n }\r\n let requestDate = new Date();\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status !== 200) {\r\n let responseDate = new Date();\r\n this.service.writeResponse(request, error, requestDate, responseDate);\r\n }\r\n\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\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 '@smartbit4all/subject';\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 let sessionInfoData = this.session.sessionInfoData;\r\n let expiration = new Date(sessionInfoData!.expiration!);\r\n let now = new Date();\r\n\r\n this.timeLeftInSeconds = Math.floor((expiration.getTime() - now.getTime()) / 1000);\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 \"./dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component\";\r\nexport * from \"./dev-tool/smart-dev-tool.service\";\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 \"@smartbit4all/dialog\";\r\nimport { SmartIconModule } from \"@smartbit4all/icon\";\r\nimport { SmartCookieService } from \"./cookie-service/smart-cookie.service\";\r\nimport { SmartDevToolDialogComponent } from \"./dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component\";\r\nimport { SmartDevToolFloatingButtonComponent } from \"./dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component\";\r\nimport {\r\n SmartDevToolInterceptor,\r\n SmartDevToolErrorInterceptor,\r\n} from \"./dev-tool/smart-dev-tool.interceptor\";\r\nimport { SmartDevToolDatePipe } from \"./dev-tool/smart-dev-tool.service\";\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: [\r\n SmartDevToolDialogComponent,\r\n SmartDevToolFloatingButtonComponent,\r\n SmartDevToolDatePipe,\r\n SmartSessionTimerComponent,\r\n ],\r\n imports: [BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule],\r\n exports: [SmartDevToolFloatingButtonComponent, 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 { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolErrorInterceptor, multi: true },\r\n ],\r\n})\r\nexport class SmartSessionModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData, SmartdialogService } from '@smartbit4all/dialog';\r\n\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 { SmartNavigationService } from \"@smartbit4all/navigation\";\r\nimport { SmartViewContextService } from \"../smart-view-context.service\";\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, OnDestroy } from '@angular/core';\r\nimport {\r\n UiAction,\r\n UiActionButtonIconPos,\r\n UiActionButtonType,\r\n UiActionDescriptor,\r\n UiActionFeedbackType,\r\n} from '../api';\r\nimport { SmartViewContextService } from '../smart-view-context.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSubject } from '@smartbit4all/subject';\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 actionDescriptorFromDescriptors = this.viewContext.getActionDescriptors()?.get(code);\r\n let isUnkown = false;\r\n\r\n let actionDescriptor: UiActionDescriptor | undefined | null;\r\n if (actionDescriptorFromDescriptors) {\r\n actionDescriptor = JSON.parse(JSON.stringify(actionDescriptorFromDescriptors));\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 && actionDescriptor && !isUnkown) {\r\n actionDescriptor = await this.translateUiActionDescriptor(actionDescriptor);\r\n }\r\n\r\n return actionDescriptor!;\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: UiActionButtonIconPos.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, 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 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 { SmartDialogData, SmartdialogService } from '@smartbit4all/dialog';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction } from '../../../api';\r\nimport { UiActionConfirmDialogComponent } from './ui-action-confirm-dialog.component';\r\nimport { SmartSubject } from '@smartbit4all/subject';\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, OnDestroy, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport {\r\n\tSmartForm,\r\n\tSmartformComponent,\r\n\tSmartFormWidget,\r\n\tSmartFormWidgetDirection,\r\n\tSmartFormWidgetType,\r\n\tSmartValidatorName,\r\n} from '@smartbit4all/form';\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\r\n@Component({\r\n\tselector: 'smart-ui-action-input-dialog',\r\n\ttemplateUrl: './ui-action-input-dialog.component.html',\r\n\tstyleUrls: ['./ui-action-input-dialog.component.css'],\r\n})\r\nexport class UiActionInputDialogComponent implements OnDestroy {\r\n\t@ViewChild('form') folderFormChild!: SmartformComponent;\r\n\tcode!: string;\r\n\tfolderForm!: SmartForm;\r\n\r\n\tdialogType!: 'dialog' | 'inputDialog' | 'input2Dialog';\r\n\r\n\tdescriptor?: UiActionDescriptor;\r\n\r\n\tconstructor(private service: UiActionInputDialogService, private manager: UiActionDescriptorService) {\r\n\t\tthis.code = this.service.action.code!;\r\n\t\tthis.setUp();\r\n\t}\r\n\tngOnDestroy(): void {\r\n\t\tthis.service._destroy$.next();\r\n\t\tthis.cancel();\r\n\t}\r\n\r\n\tasync setUp(): Promise<void> {\r\n\t\tthis.descriptor = await this.manager.getActionDescriptor(this.service.action);\r\n\r\n\t\tif (this.descriptor[this.service.inputTypeName]) {\r\n\t\t\tthis.dialogType = this.service.inputTypeName;\r\n\t\t} else {\r\n\t\t\tthis.dialogType = this.descriptor.inputDialog ? 'inputDialog' : 'dialog';\r\n\t\t}\r\n\r\n\t\tthis.constructForm();\r\n\t}\r\n\r\n\tgetTitle(): string {\r\n\t\treturn this.descriptor![this.dialogType]!.title;\r\n\t}\r\n\tgetText(): string {\r\n\t\treturn this.descriptor![this.dialogType]!.text ?? '';\r\n\t}\r\n\tgetActionButtonLabel(): string {\r\n\t\treturn this.descriptor![this.dialogType]!.actionButton.caption;\r\n\t}\r\n\tgetActionButtonColor(): string {\r\n\t\treturn this.descriptor![this.dialogType]!.actionButton.color;\r\n\t}\r\n\tgetCancelButtonLabel(): string {\r\n\t\treturn this.descriptor![this.dialogType]!.cancelButton.caption;\r\n\t}\r\n\tgetCancelButtonColor(): string {\r\n\t\treturn this.descriptor![this.dialogType]!.cancelButton.color;\r\n\t}\r\n\r\n\tconstructForm(): void {\r\n\t\tlet model: any = {};\r\n\t\tlet inputName: 'input' | 'input2';\r\n\r\n\t\tif (this.service.inputTypeName === 'inputDialog') {\r\n\t\t\tinputName = 'input';\r\n\t\t} else {\r\n\t\t\tinputName = 'input2';\r\n\t\t}\r\n\r\n\t\tif (this.service.nodeName) {\r\n\t\t\tmodel[inputName] = this.service.nodeName;\r\n\t\t} else {\r\n\t\t\tmodel[inputName] = '';\r\n\t\t}\r\n\t\tlet type: SmartFormWidgetType;\r\n\t\tlet inputType: 'inputType' | 'input2Type' = `${inputName}Type`;\r\n\r\n\t\tif (this.service.action[inputType] === UiActionInputType.Textfield) {\r\n\t\t\ttype = SmartFormWidgetType.TEXT_FIELD;\r\n\t\t} else {\r\n\t\t\ttype = SmartFormWidgetType.TEXT_BOX;\r\n\t\t}\r\n\r\n\t\tlet widgets: SmartFormWidget<any>[] = [\r\n\t\t\t{\r\n\t\t\t\tkey: inputName,\r\n\t\t\t\tlabel: '',\r\n\t\t\t\ttype,\r\n\t\t\t\tvalue: '',\r\n\t\t\t\tvalidators: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvalidator: Validators.required,\r\n\t\t\t\t\t\tname: SmartValidatorName.required,\r\n\t\t\t\t\t\terrorMessage: 'Ez a mező kötelező',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t\tplaceholder: this.descriptor![this.dialogType]!.placeholder ?? '',\r\n\t\t\t\tshowLabel: true,\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tif (widgets[0].type === SmartFormWidgetType.TEXT_FIELD && this.descriptor![this.dialogType]?.mask) {\r\n\t\t\twidgets[0].mask = this.descriptor![this.dialogType]?.mask;\r\n\t\t}\r\n\r\n\t\tthis.folderForm = {\r\n\t\t\tdirection: SmartFormWidgetDirection.COL,\r\n\t\t\tmodel,\r\n\t\t\twidgets,\r\n\t\t};\r\n\t}\r\n\r\n\tsave(): void {\r\n\t\tlet form = this.folderFormChild.submitForm();\r\n\t\tif ((form as SmartForm).invalidFields) {\r\n\t\t\tthrow new Error('The form is invalid!');\r\n\t\t}\r\n\t\tthis.service.onSave((form as SmartForm).model);\r\n\t}\r\n\r\n\tcancel(): void {\r\n\t\tthis.service.cancel();\r\n\t}\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 { SmartDialogData, SmartdialogService } from '@smartbit4all/dialog';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction, UiActionRequest } from '../../../api';\r\nimport { UiActionInputDialogComponent } from './ui-action-input-dialog.component';\r\nimport { SmartSubject } from '@smartbit4all/subject';\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, OnDestroy } from '@angular/core';\r\nimport { SmartFileUploaderI18n } from '@smartbit4all/form';\r\nimport { UiActionDescriptor } from '../../../api';\r\nimport { UiActionDescriptorService } from '../../ui-action.descriptor.service';\r\nimport { UiActionFileUploadDialogService } from './ui-action-file-upload-dialog.service';\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;\r\n fileFormats?: string[];\r\n isMultiple?: boolean;\r\n\r\n constructor(\r\n 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 { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData, SmartdialogService } from '@smartbit4all/dialog';\r\nimport { SmartSubject } from '@smartbit4all/subject';\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction } from '../../../api';\r\nimport { UiActionFileUploadDialogComponent } from './ui-action-file-upload-dialog.component';\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 { 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 { UiActionConfirmDialogService } from './dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service';\r\nimport { UiActionInputDialogService } from './dialogs/ui-action-input-dialog/ui-action-input-dialog.service';\r\nimport { UiActionModel } from './ui-action.model';\r\nimport { SmartSubject } from '@smartbit4all/subject';\r\nimport { UiActionFileUploadDialogService } from './dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service';\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 private confirmDialogService: UiActionConfirmDialogService,\r\n private textFieldDialogService: UiActionInputDialogService,\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.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 }\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) {\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) {\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.UserSelect:\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.MultipleFiles:\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) {\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","import {\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 { UiActionButtonIconPos, UiActionButtonType } from '../api';\r\nimport { UiActionDescriptorService } from './ui-action.descriptor.service';\r\nimport { UiActionModel } from './ui-action.model';\r\nimport { ExecuteUiActionOptions, UiActionService } from './ui-action.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\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\r\n uiActionModelsWithDescriptions?: UiActionModel[];\r\n\r\n private manager!: UiActionDescriptorService;\r\n private languageChangedSubscription?: Subscription;\r\n\r\n constructor(private service: UiActionService, private inject: Injector) {\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 ngOnChanges(changes: SimpleChanges): void {\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 ngOnDestroy(): void {\r\n this._destroy$.next();\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 this.uiActionModelsWithDescriptions = await Promise.all(\r\n this.uiActionModels.map(async (uiActionModel: UiActionModel) => {\r\n uiActionModel.descriptor = await this.manager.getActionDescriptor(uiActionModel.uiAction);\r\n\r\n return uiActionModel;\r\n })\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 (this.pressedButtonActive) {\r\n this.pressedButtonActive = false;\r\n\r\n this.service.uiActionModel = uiActionModel;\r\n let options: ExecuteUiActionOptions = {\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 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.MiniFab:\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 UiActionButtonIconPos {\r\n return UiActionButtonIconPos;\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.MiniFab ||\r\n uiActionModel.descriptor?.type === UiActionButtonType.Fab\r\n );\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 [ngClass]=\"getType(uiActionModel)\"\r\n class=\"{{ uiActionModel.cssClass }}\"\r\n [color]=\"uiActionModel.descriptor?.color\"\r\n (click)=\"onActionClicked($event, uiActionModel)\"\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 { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { 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 { MessageDialogComponent } from './message-dialog/message-dialog.component';\r\nimport { 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 { SmartIconModule } from '@smartbit4all/icon';\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 { SmartformModule } from '@smartbit4all/form';\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\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 ],\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 SmartformModule,\r\n ],\r\n exports: [UiActionToolbarComponent, UiActionInputDialogComponent],\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 ],\r\n})\r\nexport class SmartViewContextModule {}\r\n","import { Subject } from 'rxjs';\r\nimport { UiAction, UiActionDescriptor, UiActionRequest } from '../api';\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 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 { SmartFileUploaderI18n } from '@smartbit4all/form';\r\nimport {\r\n UiActionDescriptorService,\r\n UiActionModel,\r\n UiActionService,\r\n} from '../../view-context/projects';\r\nimport { SmartFileUploader } from '../smart-component-api-client';\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?: SmartFileUploader;\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 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 { 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'\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 domain objects\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\n// @ts-ignore\r\nimport { UiAction, UiActionRequest } from '../view-context/projects';\r\n// @ts-ignore\r\n\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\nimport { SmartTreeNode } from '../../smarttree.model';\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 * 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 * 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 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 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 * 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 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 * 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","import { UiAction } from '../view-context/projects';\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/projects';\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\n\r\nexport interface SmarttreeConfiguration {\r\n treeid: string;\r\n viewContextName: 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 viewContextName: string = 'viewContextUuid';\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 ) {\r\n super();\r\n\r\n this.configureTree({\r\n pageName: this.pageName,\r\n treeid: this.treeId,\r\n viewContextName: this.viewContextName,\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.viewContextName = configuration.viewContextName;\r\n this.pageName = configuration.pageName;\r\n }\r\n\r\n override async initialize(): Promise<void> {\r\n if (sessionStorage.getItem(this.viewContextName!)) {\r\n await this.downloadTree().then((rootNodes: SmartTreeNode[]) => {\r\n this.treeFromBackend = rootNodes;\r\n this.syncTree();\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.service.getRootNodes(uuid, this.treeId!).toPromise();\r\n const uiActions = await this.service.getMainActions(uuid, this.treeId!).toPromise();\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.service\r\n .getChildrenNodes(uuid, this.treeId!, parentNode.identifier!)\r\n .toPromise();\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.service\r\n .collapseNode(viewUuid, this.treeId!, treeNode.identifier!)\r\n .toPromise();\r\n treeNode = tempTreeNode!;\r\n } else if (!treeNode?.expanded) {\r\n let tempTreeNode = await this.service\r\n .expandNode(viewUuid, this.treeId!, treeNode?.identifier!)\r\n .toPromise();\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 await this.service\r\n .selectNode(viewUuid, this.treeId!, treeNode!.identifier!)\r\n .toPromise()\r\n .then((updatedTreeNode: SmartTreeNode | undefined) => {\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(\r\n this.viewContext.getUuidOfPage(this.viewContextName!)\r\n );\r\n });\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 await this.cacheActionDesciptors(this.getAllNodes(this.treeFromBackend!));\r\n\r\n if (!this.treeFromBackend) {\r\n throw new Error('There is no treeFromBackend available!');\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 nodes.map((node: SmartTreeNode) => {\r\n node.button = node.actions?.length\r\n ? {\r\n type: SmartTreeNodeButtonType.MENU,\r\n icon: 'more_vert',\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 await Promise.all(\r\n nodes.map(async (node: SmartTreeNode) => {\r\n let newUiActions = node.actions?.filter(\r\n (uiAction: UiAction) => !this.uiActionDescriptors.get(uiAction.code!)\r\n );\r\n if (!newUiActions) {\r\n return;\r\n }\r\n\r\n await Promise.all(\r\n newUiActions!.map(async (uiAction: UiAction) => {\r\n if (!this.uiActionDescriptors.get(uiAction.code!)) {\r\n let descriptor = await this.uiActionDescriptorService.getActionDescriptor(uiAction);\r\n this.uiActionDescriptors.set(uiAction.code!, descriptor);\r\n }\r\n })\r\n );\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.service\r\n .performAction(viewUuid, this.treeId!, nodeId, uiActionRequest)\r\n .toPromise();\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.service\r\n .performMainAction(viewUuid, this.treeId!, uiActionRequest)\r\n .toPromise();\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/projects';\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 { SmartIconModule } from '@smartbit4all/icon';\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\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: [SmarttreeService, SmarttreeGenericService],\r\n})\r\nexport class SmarttreeModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmartExpandableSectionModule } from '@smartbit4all/expandable-section';\r\nimport { SmartformModule } from '@smartbit4all/form';\r\nimport { SmartSessionModule } from './session/smart-session.module';\r\nimport { SmartFileUploaderComponent } from './smart-client/smart-file-uploader/smart-file-uploader.component';\r\nimport { SmartNgClientService } from './smart-ng-client.service';\r\nimport { SmartViewContextModule } from './view-context/smart-view-context.module';\r\nimport { SmarttreeModule } from './smart-tree/smarttree.module';\r\n\r\n@NgModule({\r\n declarations: [SmartFileUploaderComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n SmartSessionModule,\r\n SmartViewContextModule,\r\n SmartformModule,\r\n SmartExpandableSectionModule,\r\n ],\r\n exports: [\r\n SmartSessionModule,\r\n SmartViewContextModule,\r\n SmartFileUploaderComponent,\r\n SmarttreeModule,\r\n ],\r\n providers: [SmartNgClientService],\r\n})\r\nexport class SmartNgClientModule {}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { SmartSubject } from '@smartbit4all/subject';\r\nimport { Subject } from 'rxjs';\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 { Inject, Injector } from '@angular/core';\r\nimport { SmartForm, SmartformComponent, SophisticatedValueChange } from '@smartbit4all/form';\r\nimport { GridOptions, SmartGrid, SmartGridComponent } from '@smartbit4all/grid';\r\nimport { SmartSubject } from '@smartbit4all/subject';\r\nimport { SmarttreeGenericService } from '../smart-tree/projects';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport {\r\n ComponentModel,\r\n ComponentModelChange,\r\n DataChange,\r\n DataChangeKind,\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 UseUiAction2,\r\n} from '../view-context/projects';\r\nimport { SmartAuthenticationServiceInterface } from './smart-authentication.service';\r\n\r\nexport abstract class SmartComponentApiClient<T> implements UseUiAction2 {\r\n protected _destroy$: Subject<void> = new Subject();\r\n\r\n // protected sendDataChanges: boolean = false;\r\n\r\n // private _useAutoSubmit: boolean = false;\r\n // private _useAutoSubmitTurnedOff: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n // protected get useAutoSubmit(): boolean {\r\n // return this._useAutoSubmit;\r\n // }\r\n // protected set useAutoSubmit(useAutoSubmit: boolean) {\r\n // this._useAutoSubmit = useAutoSubmit;\r\n // if (this._useAutoSubmit) {\r\n // this.subscribeToAutoSubmit();\r\n // this.reSubscribeToChange.pipe(takeUntil(this._useAutoSubmitTurnedOff)).subscribe(() => {\r\n // this.subscribeToAutoSubmit();\r\n // });\r\n // } else {\r\n // this._useAutoSubmitTurnedOff.next();\r\n // }\r\n // }\r\n\r\n // private subscribeToAutoSubmit(): void {\r\n // this.submit.pipe(takeUntil(this._useAutoSubmitTurnedOff)).subscribe(() => {\r\n // this.submitForms();\r\n // this.submit.complete();\r\n // });\r\n // }\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 get uuid(): string | undefined {\r\n return this._uuid;\r\n }\r\n set uuid(uuid: string | undefined) {\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 if (uuid) {\r\n this.widgets.widgets.forEach((ref, key) => {\r\n if (ref instanceof SmartGridComponent) {\r\n ref.uuid = uuid;\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 }\r\n this.viewContext.follow(this._uuid!, this.detectChange);\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 // UseUiAction\r\n // submit: Subject<void> = new SmartSubject(this._destroy$);\r\n // reSubscribeToChange: 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: WidgetMap<SmartGridComponent | SmarttreeGenericService | undefined> = new WidgetMap();\r\n\r\n formWidgets: WidgetMap<SmartformComponent | undefined> = new WidgetMap();\r\n\r\n constructor(\r\n protected inject: Injector,\r\n protected auth: SmartAuthenticationServiceInterface,\r\n @Inject('pageName') protected pageName: string\r\n ) {\r\n this.detectChange.subscribe((change: ComponentModelChange) => {\r\n this.handleChanges(change);\r\n });\r\n\r\n this.viewContext = inject.get(SmartViewContextService);\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.clearWidgets();\r\n\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n initComponentByModel(): void {\r\n this.initData();\r\n this.initActions();\r\n\r\n // TODO: layout, valueSet, widgets\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 this.uiActionModels = this.model?.actions.map((uiAction: UiAction) => {\r\n return {\r\n serviceToUse: this,\r\n uiAction,\r\n };\r\n });\r\n }\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.uuid = this.viewContext.getUuidOfPage(this.pageName);\r\n this.model = await this.viewContext.load(this.uuid);\r\n // await this.viewContext.load2(this.uuid);\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 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.viewContext.performWidgetAction(this.uuid!, widgetId, nodeId, uiActionRequest);\r\n } else if (widgetId) {\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 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 this.formWidgets?.widgets?.forEach((form) => {\r\n form?.submitForm(validate);\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 this.widgets.addWidget(smartGrid.gridIdentifier, componentReference);\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 this.formWidgets.addWidget(smartFormId, componentReference);\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 = new SmarttreeGenericService(this.inject, this.pageName, treeId);\r\n this.widgets.addWidget(treeId, this.smartTreeService);\r\n }\r\n\r\n public createTreeService(treeId: string): SmarttreeGenericService {\r\n const treeService = new SmarttreeGenericService(this.inject, this.pageName, treeId);\r\n this.widgets.addWidget(treeId, treeService);\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 ): SmartFileUploader {\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 private handleChanges(change: ComponentModelChange): void {\r\n try {\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 private handleChangeWidgets(changedWidgets: string[]): void {\r\n changedWidgets.forEach((key: string) => {\r\n const reference = this.widgets.get(key);\r\n\r\n if (reference instanceof SmartGridComponent) {\r\n reference.refresh();\r\n } else if (reference instanceof SmarttreeGenericService) {\r\n reference.initialize();\r\n } else if (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): 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 tempModel[splittedKeys[index]] = value;\r\n break;\r\n }\r\n }\r\n return model;\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 this.formWidgets.widgets.forEach(\r\n (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 class WidgetMap<T> {\r\n private _widgets: Map<string, T> = new Map();\r\n\r\n get widgets(): Map<string, T> {\r\n return this._widgets;\r\n }\r\n set widgets(widgets: Map<string, T>) {\r\n this._widgets = widgets;\r\n }\r\n addWidget(key: string, reference: T, isForm?: boolean): void {\r\n this._widgets.set(key, reference);\r\n }\r\n removeWidget(key: string): void {\r\n this._widgets.delete(key);\r\n }\r\n clearWidgets(): void {\r\n this._widgets.clear();\r\n }\r\n\r\n get(key: string): T | undefined {\r\n return this.widgets.get(key);\r\n }\r\n}\r\n\r\nexport interface SmartFileUploader {\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 { Component, Inject, Injector, OnDestroy, OnInit } from '@angular/core';\r\nimport { SmartAuthService, SmartAuthenticationServiceInterface } from './smart-authentication.service';\r\nimport { SmartComponentApiClient } from './smart-component-api-client';\r\n\r\n@Component({\r\n\ttemplate: '',\r\n})\r\nexport abstract class SmartComponent<T> extends SmartComponentApiClient<T> implements OnInit, OnDestroy {\r\n\tconstructor(\r\n\t\tinject: Injector,\r\n\t\t@Inject(SmartAuthService) auth: SmartAuthenticationServiceInterface,\r\n\t\t@Inject('pageName') pageName: string\r\n\t) {\r\n\t\tsuper(inject, auth, pageName);\r\n\t}\r\n\tngOnInit(): void {\r\n\t\tthis._ngOnInit();\r\n\t}\r\n\tngOnDestroy(): void {\r\n\t\tthis._ngOnDestroy();\r\n\t}\r\n}\r\n","import { Inject, Injectable, Injector, OnDestroy, OnInit } from '@angular/core';\r\nimport { SmartAuthService, SmartAuthenticationServiceInterface } from './smart-authentication.service';\r\nimport { SmartComponentApiClient } from './smart-component-api-client';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport abstract class SmartService<T> extends SmartComponentApiClient<T> implements OnInit, OnDestroy {\r\n\tconstructor(\r\n\t\tinject: Injector,\r\n\t\t@Inject(SmartAuthService) auth: SmartAuthenticationServiceInterface,\r\n\t\t@Inject('pageName') pageName: string\r\n\t) {\r\n\t\tsuper(inject, auth, pageName);\r\n\t}\r\n\tngOnInit(): void {\r\n\t\tthis._ngOnInit();\r\n\t}\r\n\tngOnDestroy(): void {\r\n\t\tthis._ngOnDestroy();\r\n\t}\r\n}\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\n\r\nexport * from './lib/view-context/projects';\r\nexport * from './lib/session/projects';\r\n\r\nexport * from './lib/smart-client/projects';\r\nexport * from './lib/smart-tree/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","i1.SmartViewContextService","i1.SmartSessionService","i2.SmartViewContextService","i1.SmartCookieService","i1","i2","i3.SmartDevToolService","i1.SmartDevToolDialogService","i3","i4","i5","i6.SmartDevToolDatePipe","i1.SmartDevToolService","i1.SmartSessionTimerService","catchError","i3.SmartViewContextService","i1.SmartViewContextErrorDialogService","i2.UiActionDescriptorService","i1.UiActionConfirmDialogService","i1.UiActionInputDialogService","i1.UiActionFileUploadDialogService","i2.UiActionInputDialogService","i3.UiActionFileUploadDialogService","i1.UiActionService","i1.UiActionDescriptorService","i1.UiActionToolbarComponent","i7"],"mappings":"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"}
|
|
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/api/model/accountInfo.ts","../../../projects/smart-ng-client/src/lib/session/api/model/apiError.ts","../../../projects/smart-ng-client/src/lib/session/api/model/authenticationProviderData.ts","../../../projects/smart-ng-client/src/lib/session/api/model/refreshSessionRequest.ts","../../../projects/smart-ng-client/src/lib/session/api/model/userActivityLog.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/componentModelChange.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/dataChangeKind.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageOptionType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/messageType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonDescriptor.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonIconPos.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionButtonType.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionConstraint.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/uiActionRequest.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uiActionUploadDescriptor.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/uploadedFile.ts","../../../projects/smart-ng-client/src/lib/view-context/api/model/viewApiError.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/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/propertyMapping.ts","../../../projects/smart-ng-client/src/lib/smart-form/api/model/selectionDefinition.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/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/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-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/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/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/components/loading/loading.component.ts","../../../projects/smart-ng-client/src/lib/smart-table/components/loading/loading.component.html","../../../projects/smart-ng-client/src/lib/smart-table/tables/table.ts","../../../projects/smart-ng-client/src/lib/smart-table/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-icon/smart-icon.module.ts","../../../projects/smart-ng-client/src/lib/smart-icon/projects.ts","../../../projects/smart-ng-client/src/lib/smart-form/smartform.module.ts","../../../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/smart-table/smarttable.service.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/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/view-context/smart-view-context.service.ts","../../../projects/smart-ng-client/src/lib/smart-ng-client.service.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool.service.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.html","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.ts","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.html","../../../projects/smart-ng-client/src/lib/session/dev-tool/smart-dev-tool.interceptor.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-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/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/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-confirm-dialog/ui-action-confirm-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-input-dialog/ui-action-input-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/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/ui-action.service.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/view-context/smart-view-context.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-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-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-expandable-section/smart-expandable-section.module.ts","../../../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-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/gridColumnMeta.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/smart-grid.service.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-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/searchIndexPropertyDefinitionData.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-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/projects.ts","../../../projects/smart-ng-client/src/lib/smart-grid/smart-grid.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-ng-client.module.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-navbar/smart-navbar.service.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-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/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-tab-group/projects.ts","../../../projects/smart-ng-client/src/lib/smart-tree/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';\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'\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 * Session api\r\n * Session 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/* 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 { ApiError } from '../model/apiError';\r\n// @ts-ignore\r\nimport { GetAuthenticationProvidersResponse } from '../model/getAuthenticationProvidersResponse';\r\n// @ts-ignore\r\nimport { RefreshSessionRequest } from '../model/refreshSessionRequest';\r\n// @ts-ignore\r\nimport { SessionInfoData } from '../model/sessionInfoData';\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 SessionService {\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 * Returns the available authentication providers\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 getAuthenticationProviders(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GetAuthenticationProvidersResponse>;\r\n public getAuthenticationProviders(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GetAuthenticationProvidersResponse>>;\r\n public getAuthenticationProviders(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GetAuthenticationProvidersResponse>>;\r\n public getAuthenticationProviders(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/authenticationProviders`;\r\n return this.httpClient.request<GetAuthenticationProvidersResponse>('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 * Returns the existing session info\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 getSession(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public getSession(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public getSession(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public getSession(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/session`;\r\n return this.httpClient.request<SessionInfoData>('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 * Refreshes the session\r\n * @param refreshSessionRequest \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 refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public refreshSession(refreshSessionRequest: RefreshSessionRequest, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (refreshSessionRequest === null || refreshSessionRequest === undefined) {\r\n throw new Error('Required parameter refreshSessionRequest was null or undefined when calling refreshSession.');\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 = `/refresh`;\r\n return this.httpClient.request<SessionInfoData>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: refreshSessionRequest,\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 * Sets the locale of the session\r\n * Sets the locale of the current session and returns the SessionInfoData\r\n * @param locale \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 setLocale(locale: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public setLocale(locale: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public setLocale(locale: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public setLocale(locale: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (locale === null || locale === undefined) {\r\n throw new Error('Required parameter locale was null or undefined when calling setLocale.');\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 = `/locale/${this.configuration.encodeParam({name: \"locale\", value: locale, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\r\n return this.httpClient.request<SessionInfoData>('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 * Creates a new session\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 startSession(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<SessionInfoData>;\r\n public startSession(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<SessionInfoData>>;\r\n public startSession(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<SessionInfoData>>;\r\n public startSession(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/session`;\r\n return this.httpClient.request<SessionInfoData>('put', `${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 \"./session.service\";\r\nimport { SessionService } from \"./session.service\";\r\nexport const SessionAPIS = [SessionService];\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface AccountInfo { \r\n kind: string;\r\n userName: string;\r\n displayName: string;\r\n imageContent?: string;\r\n imageFormat?: string;\r\n roles?: Array<string>;\r\n parameters?: { [key: string]: string; };\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface ApiError { \r\n code: string;\r\n message: string;\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface AuthenticationProviderData { \r\n kind: string;\r\n parameters?: { [key: string]: string; };\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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\nexport interface RefreshSessionRequest { \r\n refreshToken: string;\r\n}\r\n\r\n","/**\r\n * Session api\r\n * Session 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/**\r\n * When a user executes an activity this entry is created based on the current session. It contains the information we know about the user and the time of the execution. The user is not necessarily user of the system so the user uri is optional and the user is a copied value from the session. \r\n */\r\nexport interface UserActivityLog { \r\n /**\r\n * The uri reference of the user.\r\n */\r\n userUri?: string;\r\n /**\r\n * The login name of the user.\r\n */\r\n userName?: string;\r\n /**\r\n * The role of the user.\r\n */\r\n role?: string;\r\n /**\r\n * The natural name of the user.\r\n */\r\n name?: string;\r\n timestamp?: string;\r\n}\r\n\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';\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 * 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/* 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 { ComponentModel } from '../model/componentModel';\r\n// @ts-ignore\r\nimport { DataChange } from '../model/dataChange';\r\n// @ts-ignore\r\nimport { MessageResult } from '../model/messageResult';\r\n// @ts-ignore\r\nimport { UiActionRequest } from '../model/uiActionRequest';\r\n// @ts-ignore\r\nimport { ViewConstraint } from '../model/viewConstraint';\r\n// @ts-ignore\r\nimport { ViewContextChange } from '../model/viewContextChange';\r\n// @ts-ignore\r\nimport { ViewContextData } from '../model/viewContextData';\r\n// @ts-ignore\r\nimport { ViewContextUpdate } from '../model/viewContextUpdate';\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 ViewService {\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 * @param consumes string[] mime-types\r\n * @return true: consumes contains 'multipart/form-data', false: otherwise\r\n */\r\n private canConsumeForm(consumes: string[]): boolean {\r\n const form = 'multipart/form-data';\r\n for (const consume of consumes) {\r\n if (form === consume) {\r\n return true;\r\n }\r\n }\r\n return false;\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 * Creates a new ViewContext\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 createViewContext(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextData>;\r\n public createViewContext(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextData>>;\r\n public createViewContext(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextData>>;\r\n public createViewContext(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', 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 '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 = `/context`;\r\n return this.httpClient.request<ViewContextData>('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 * Notification of a data change event.. \r\n * @param uuid \r\n * @param dataChange \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 dataChanged(uuid: string, dataChange: DataChange, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\n public dataChanged(uuid: string, dataChange: DataChange, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\r\n public dataChanged(uuid: string, dataChange: DataChange, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\r\n public dataChanged(uuid: string, dataChange: DataChange, 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 dataChanged.');\r\n }\r\n if (dataChange === null || dataChange === undefined) {\r\n throw new Error('Required parameter dataChange was null or undefined when calling dataChanged.');\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 = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/data`;\r\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: dataChange,\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 * @param uuid \r\n * @param item \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 downloadItem(uuid: string, item: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<Blob>;\r\n public downloadItem(uuid: string, item: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpResponse<Blob>>;\r\n public downloadItem(uuid: string, item: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpEvent<Blob>>;\r\n public downloadItem(uuid: string, item: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/octet-stream', 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 downloadItem.');\r\n }\r\n if (item === null || item === undefined) {\r\n throw new Error('Required parameter item was null or undefined when calling downloadItem.');\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/octet-stream'\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 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})}`;\r\n return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: \"blob\",\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 * @param uuid \r\n * @param item \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 downloadItemDeprecated(uuid: string, item: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<Blob>;\r\n public downloadItemDeprecated(uuid: string, item: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpResponse<Blob>>;\r\n public downloadItemDeprecated(uuid: string, item: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream', context?: HttpContext}): Observable<HttpEvent<Blob>>;\r\n public downloadItemDeprecated(uuid: string, item: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/octet-stream', 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 downloadItemDeprecated.');\r\n }\r\n if (item === null || item === undefined) {\r\n throw new Error('Required parameter item was null or undefined when calling downloadItemDeprecated.');\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/octet-stream'\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 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})}`;\r\n return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n responseType: \"blob\",\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 * Returns component\\'s model.\r\n * @param uuid Component\\'s unique identifier.\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 getComponentModel(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ComponentModel>;\r\n public getComponentModel(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ComponentModel>>;\r\n public getComponentModel(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ComponentModel>>;\r\n public getComponentModel(uuid: 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 getComponentModel.');\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 = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}`;\r\n return this.httpClient.request<ComponentModel>('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 * Returns component\\'s model in a ViewContextChange.\r\n * @param uuid Component\\'s unique identifier.\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 getComponentModel2(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\n public getComponentModel2(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\r\n public getComponentModel2(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\r\n public getComponentModel2(uuid: 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 getComponentModel2.');\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 = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/load`;\r\n return this.httpClient.request<ViewContextChange>('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 * Returns the view constraint object belongs to the given view\r\n * @param uuid View\\'s unique identifier.\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 getViewConstraint(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewConstraint>;\r\n public getViewConstraint(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewConstraint>>;\r\n public getViewConstraint(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewConstraint>>;\r\n public getViewConstraint(uuid: 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 getViewConstraint.');\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 = `/view/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/constraint`;\r\n return this.httpClient.request<ViewConstraint>('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 * Returns the existing session info\r\n * @param uuid ViewContext\\'s unique identifier.\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 getViewContext(uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextData>;\r\n public getViewContext(uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextData>>;\r\n public getViewContext(uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextData>>;\r\n public getViewContext(uuid: 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 getViewContext.');\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 = `/context/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}`;\r\n return this.httpClient.request<ViewContextData>('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 viewUuid View UUID.\r\n * @param messageUuid Message UUID.\r\n * @param messageResult \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 message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\r\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\r\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\r\n public message(viewUuid: string, messageUuid: string, messageResult: MessageResult, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\r\n if (viewUuid === null || viewUuid === undefined) {\r\n throw new Error('Required parameter viewUuid was null or undefined when calling message.');\r\n }\r\n if (messageUuid === null || messageUuid === undefined) {\r\n throw new Error('Required parameter messageUuid was null or undefined when calling message.');\r\n }\r\n if (messageResult === null || messageResult === undefined) {\r\n throw new Error('Required parameter messageResult was null or undefined when calling message.');\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 ];\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 = `/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\"})}`;\r\n return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: messageResult,\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 a generic UI action. \r\n * @param uuid \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(uuid: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\n public performAction(uuid: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\r\n public performAction(uuid: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\r\n public performAction(uuid: 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 performAction.');\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[] = [\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 = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/action`;\r\n return this.httpClient.request<ViewContextChange>('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 * Performs a widget UI action. \r\n * @param uuid \r\n * @param widgetId \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 performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\n public performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\r\n public performWidgetAction(uuid: string, widgetId: string, nodeId: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\r\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> {\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 (widgetId === null || widgetId === undefined) {\r\n throw new Error('Required parameter widgetId was null or undefined when calling performWidgetAction.');\r\n }\r\n if (nodeId === null || nodeId === undefined) {\r\n throw new Error('Required parameter nodeId 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 = `/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`;\r\n return this.httpClient.request<ViewContextChange>('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 * Performs a widget UI action. \r\n * @param uuid \r\n * @param widgetId \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 performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\n public performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\r\n public performWidgetMainAction(uuid: string, widgetId: string, body: UiActionRequest, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\r\n public performWidgetMainAction(uuid: string, widgetId: 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 performWidgetMainAction.');\r\n }\r\n if (widgetId === null || widgetId === undefined) {\r\n throw new Error('Required parameter widgetId was null or undefined when calling performWidgetMainAction.');\r\n }\r\n if (body === null || body === undefined) {\r\n throw new Error('Required parameter body was null or undefined when calling performWidgetMainAction.');\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 = `/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`;\r\n return this.httpClient.request<ViewContextChange>('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 * @param channel Smartlink\\'s channel.\r\n * @param uuid Smartlink\\'s unique identifier\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 showPublishedView(channel: string, uuid: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\r\n public showPublishedView(channel: string, uuid: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\r\n public showPublishedView(channel: string, uuid: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\r\n public showPublishedView(channel: string, uuid: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\r\n if (channel === null || channel === undefined) {\r\n throw new Error('Required parameter channel was null or undefined when calling showPublishedView.');\r\n }\r\n if (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling showPublishedView.');\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 ];\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 = `/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\"})}`;\r\n return this.httpClient.request<any>('put', `${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 * Updates an existing ViewContext\r\n * @param viewContextUpdate \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 updateViewContext(viewContextUpdate: ViewContextUpdate, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextData>;\r\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextData>>;\r\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextData>>;\r\n public updateViewContext(viewContextUpdate: ViewContextUpdate, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\r\n if (viewContextUpdate === null || viewContextUpdate === undefined) {\r\n throw new Error('Required parameter viewContextUpdate was null or undefined when calling updateViewContext.');\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 = `/context`;\r\n return this.httpClient.request<ViewContextData>('put', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: viewContextUpdate,\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 upload UI action. \r\n * @param uuid \r\n * @param uiActionRequest Stringify-d UiActionRequest.\r\n * @param param Parameter name to use when converting uploaded file to BinaryData.\r\n * @param content \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 uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\n public uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ViewContextChange>>;\r\n public uploadAction(uuid: string, uiActionRequest?: string, param?: string, content?: Blob, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ViewContextChange>>;\r\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> {\r\n if (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling uploadAction.');\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 // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'multipart/form-data'\r\n ];\r\n\r\n const canConsumeForm = this.canConsumeForm(consumes);\r\n\r\n let localVarFormParams: { append(param: string, value: any): any; };\r\n let localVarUseForm = false;\r\n let localVarConvertFormParamsToString = false;\r\n // use FormData to transmit files using content-type \"multipart/form-data\"\r\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n localVarUseForm = canConsumeForm;\r\n if (localVarUseForm) {\r\n localVarFormParams = new FormData();\r\n } else {\r\n localVarFormParams = new HttpParams({encoder: this.encoder});\r\n }\r\n\r\n if (uiActionRequest !== undefined) {\r\n localVarFormParams = localVarFormParams.append('uiActionRequest', <any>uiActionRequest) as any || localVarFormParams;\r\n }\r\n if (param !== undefined) {\r\n localVarFormParams = localVarFormParams.append('param', <any>param) as any || localVarFormParams;\r\n }\r\n if (content !== undefined) {\r\n localVarFormParams = localVarFormParams.append('content', <any>content) as any || localVarFormParams;\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 = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/upload`;\r\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\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 a generic UI action. \r\n * @param uuid \r\n * @param uiActionRequest Stringify-d UiActionRequest.\r\n * @param param Parameter name to use when converting uploaded file to BinaryData.\r\n * @param contents \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 uploadMultipleAction(uuid: string, uiActionRequest?: string, param?: string, contents?: Array<Blob>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ViewContextChange>;\r\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>>;\r\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>>;\r\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> {\r\n if (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling uploadMultipleAction.');\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 // to determine the Content-Type header\r\n const consumes: string[] = [\r\n 'multipart/form-data'\r\n ];\r\n\r\n const canConsumeForm = this.canConsumeForm(consumes);\r\n\r\n let localVarFormParams: { append(param: string, value: any): any; };\r\n let localVarUseForm = false;\r\n let localVarConvertFormParamsToString = false;\r\n // use FormData to transmit files using content-type \"multipart/form-data\"\r\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\r\n localVarUseForm = canConsumeForm;\r\n if (localVarUseForm) {\r\n localVarFormParams = new FormData();\r\n } else {\r\n localVarFormParams = new HttpParams({encoder: this.encoder});\r\n }\r\n\r\n if (uiActionRequest !== undefined) {\r\n localVarFormParams = localVarFormParams.append('uiActionRequest', <any>uiActionRequest) as any || localVarFormParams;\r\n }\r\n if (param !== undefined) {\r\n localVarFormParams = localVarFormParams.append('param', <any>param) as any || localVarFormParams;\r\n }\r\n if (contents) {\r\n if (localVarUseForm) {\r\n contents.forEach((element) => {\r\n localVarFormParams = localVarFormParams.append('contents', <any>element) as any || localVarFormParams;\r\n })\r\n } else {\r\n localVarFormParams = localVarFormParams.append('contents', [...contents].join(COLLECTION_FORMATS['csv'])) as any || localVarFormParams;\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 = `/component/${this.configuration.encodeParam({name: \"uuid\", value: uuid, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: \"uuid\"})}/uploadMultiple`;\r\n return this.httpClient.request<ViewContextChange>('post', `${this.configuration.basePath}${localVarPath}`,\r\n {\r\n context: localVarHttpContext,\r\n body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\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 './view.service';\r\nimport { ViewService } from './view.service';\r\nexport const APIS = [ViewService];\r\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\nexport type CloseResult = 'approved' | 'pending' | 'rejected';\r\n\r\nexport const CloseResult = {\r\n Approved: 'approved' as CloseResult,\r\n Pending: 'pending' as CloseResult,\r\n Rejected: 'rejected' as CloseResult\r\n};\r\n\r\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/**\r\n * Change of a ComponentModel. \r\n */\r\nexport interface ComponentModelChange { \r\n uuid: string;\r\n path: string;\r\n value?: object;\r\n /**\r\n * Changed values, in a key-value map. Refers to different parts of ComponentModel, for example data changes are prefixed with \\'data.\\', layout changes with \\'layouts.\\', etc. \r\n */\r\n changes: { [key: string]: any; };\r\n /**\r\n * List of changed widgets (widgetIds).\r\n */\r\n changedWidgets?: Array<string>;\r\n}\r\n\r\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/**\r\n * Defines the kind of the source of this event.. \r\n */\r\nexport type DataChangeKind = 'WIDGET' | 'SELECTION' | 'LOOKUP';\r\n\r\nexport const DataChangeKind = {\r\n Widget: 'WIDGET' as DataChangeKind,\r\n Selection: 'SELECTION' as DataChangeKind,\r\n Lookup: 'LOOKUP' as DataChangeKind\r\n};\r\n\r\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\nexport type MessageOptionType = 'confirm' | 'reject' | 'cancel';\r\n\r\nexport const MessageOptionType = {\r\n Confirm: 'confirm' as MessageOptionType,\r\n Reject: 'reject' as MessageOptionType,\r\n Cancel: 'cancel' as MessageOptionType\r\n};\r\n\r\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\nexport type MessageType = 'info' | 'question' | 'warning' | 'error';\r\n\r\nexport const MessageType = {\r\n Info: 'info' as MessageType,\r\n Question: 'question' as MessageType,\r\n Warning: 'warning' as MessageType,\r\n Error: 'error' as MessageType\r\n};\r\n\r\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/**\r\n * Describes a button which is presented on the UiAction dialog. \r\n */\r\nexport interface UiActionButtonDescriptor { \r\n caption: string;\r\n color: string;\r\n}\r\n\r\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/**\r\n * Defines the position of an icon related to the button\\'s label. \r\n */\r\nexport type UiActionButtonIconPos = 'PRE' | 'POST';\r\n\r\nexport const UiActionButtonIconPos = {\r\n Pre: 'PRE' as UiActionButtonIconPos,\r\n Post: 'POST' as UiActionButtonIconPos\r\n};\r\n\r\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/**\r\n * Defines the type of the button. \r\n */\r\nexport type UiActionButtonType = 'NORMAL' | 'FLAT' | 'STROKED' | 'RAISED' | 'ICON' | 'MINI_FAB' | 'FAB';\r\n\r\nexport const UiActionButtonType = {\r\n Normal: 'NORMAL' as UiActionButtonType,\r\n Flat: 'FLAT' as UiActionButtonType,\r\n Stroked: 'STROKED' as UiActionButtonType,\r\n Raised: 'RAISED' as UiActionButtonType,\r\n Icon: 'ICON' as UiActionButtonType,\r\n MiniFab: 'MINI_FAB' as UiActionButtonType,\r\n Fab: 'FAB' as UiActionButtonType\r\n};\r\n\r\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/**\r\n * The UiAction constraint is responsible for the constraints belong to a given action (button, menu option etc.) on the view. The UI must identify the action by the dataName that is a path of the data name separated by dot like dataSheet.field. \r\n */\r\nexport interface UiActionConstraint { \r\n /**\r\n * The path format is the following - dataSheet.actionCode.\r\n */\r\n path?: string;\r\n visible?: boolean;\r\n enabled?: boolean;\r\n}\r\n\r\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/**\r\n * Defines the possible feedback types which are shown if a UiAction was completed. \r\n */\r\nexport type UiActionFeedbackType = 'NONE' | 'SNACKBAR';\r\n\r\nexport const UiActionFeedbackType = {\r\n None: 'NONE' as UiActionFeedbackType,\r\n Snackbar: 'SNACKBAR' as UiActionFeedbackType\r\n};\r\n\r\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\nexport type UiActionInputType = 'none' | 'textfield' | 'textarea' | 'user_select' | 'file' | 'multiple_files';\r\n\r\nexport const UiActionInputType = {\r\n None: 'none' as UiActionInputType,\r\n Textfield: 'textfield' as UiActionInputType,\r\n Textarea: 'textarea' as UiActionInputType,\r\n UserSelect: 'user_select' as UiActionInputType,\r\n File: 'file' as UiActionInputType,\r\n MultipleFiles: 'multiple_files' as UiActionInputType\r\n};\r\n\r\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\nexport interface UiActionRequest { \r\n /**\r\n * Code of the executed UI action.\r\n */\r\n code: string;\r\n path?: string;\r\n /**\r\n * Identifier of UI element, or UI action, where action is performed (for example treeNode\\'s / listItem\\'s identifier, etc.). Optional. \r\n */\r\n identifier?: string;\r\n /**\r\n * Additional parameters for executing the UI action. \r\n */\r\n params: { [key: string]: any; };\r\n}\r\n\r\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/**\r\n * Describes the look of an upload component that is related to a specific UiAction. \r\n */\r\nexport interface UiActionUploadDescriptor { \r\n title: string;\r\n description?: string;\r\n maxSize?: string;\r\n formats?: string;\r\n uploadButtonTitle?: string;\r\n backgroundColour?: string;\r\n textColour?: string;\r\n}\r\n\r\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 * Information about uploaded file.\r\n */\r\nexport interface UploadedFile {\r\n filename?: string;\r\n size?: number;\r\n data?: any;\r\n}\r\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/**\r\n * Generic API error object.\r\n */\r\nexport interface ViewApiError { \r\n code?: string;\r\n message?: string;\r\n}\r\n\r\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?: ViewEventHandler.ViewEventTypeEnum;\r\n invocationRequestDefinition?: any;\r\n}\r\nexport namespace ViewEventHandler {\r\n export type ViewEventTypeEnum = 'before' | 'instead' | 'after';\r\n export const ViewEventTypeEnum = {\r\n Before: 'before' as ViewEventTypeEnum,\r\n Instead: 'instead' as ViewEventTypeEnum,\r\n After: 'after' as ViewEventTypeEnum,\r\n };\r\n}\r\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\nexport type ViewState = 'open_pending' | 'to_open' | 'opened' | 'close_pending' | 'close_approved' | 'to_close' | 'closed';\r\n\r\nexport const ViewState = {\r\n OpenPending: 'open_pending' as ViewState,\r\n ToOpen: 'to_open' as ViewState,\r\n Opened: 'opened' as ViewState,\r\n ClosePending: 'close_pending' as ViewState,\r\n CloseApproved: 'close_approved' as ViewState,\r\n ToClose: 'to_close' as ViewState,\r\n Closed: 'closed' as ViewState\r\n};\r\n\r\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\nexport type ViewType = 'normal' | 'dialog' | 'embedded';\r\n\r\nexport const ViewType = {\r\n Normal: 'normal' as ViewType,\r\n Dialog: 'dialog' as ViewType,\r\n Embedded: 'embedded' as ViewType\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","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { MessageData, MessageOption, MessageOptionType } 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","<div class=\"taskDialogContainer\" *ngIf=\"messageData\">\r\n\t<h2>\r\n\t\t{{ messageData.header }}\r\n\t</h2>\r\n\t<p>{{ messageData.text }}</p>\r\n\t<div class=\"buttonsContainer\">\r\n\t\t<button\r\n\t\t\t*ngFor=\"let option of messageData.options\"\r\n\t\t\tmat-button\r\n\t\t\tclass=\"taskDialogButton\"\r\n\t\t\t[ngClass]=\"getType(option)\"\r\n\t\t\tcolor=\"{{ getColor(option) }}\"\r\n\t\t\t(click)=\"onClick(option)\"\r\n\t\t>\r\n\t\t\t<mat-icon *ngIf=\"option.icon\">\r\n\t\t\t\t{{ option.icon }}\r\n\t\t\t</mat-icon>\r\n\t\t\t{{ option.label }}\r\n\t\t</button>\r\n\t</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 './smartdialog.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartdialogService {\r\n dialogRef?: MatDialogRef<any, any>;\r\n dialogData?: SmartDialogData;\r\n\r\n constructor(protected dialog: MatDialog, protected router: Router) {}\r\n\r\n createDialog(smartDialog: SmartDialogData, component: ComponentType<any>): void {\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 }\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 this.createDialog(smartDialog, component);\r\n return this.dialogRef!;\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';\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\n/**\r\n * Mapping of two properties.\r\n */\r\nexport interface PropertyMapping { \r\n /**\r\n * Property name in the data model. This will be saved.\r\n */\r\n data?: string;\r\n /**\r\n * Property name in the selection model. This will won\\'t be saved here, we use it for selection.\r\n */\r\n selection?: string;\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\nimport { PropertyMapping } from './propertyMapping';\r\n\r\n\r\n/**\r\n * The definition of an arbitrary selection.\r\n */\r\nexport interface SelectionDefinition { \r\n /**\r\n * Name of the ValueSet used for this selection.\r\n */\r\n valueSetName: string;\r\n /**\r\n * Defines how the selection should work: for properties or the whole selected Object. \r\n */\r\n type: SelectionDefinition.TypeEnum;\r\n /**\r\n * Specifies which property from ValueSetData.values as Object should be used in selection widget. \r\n */\r\n displayProperty?: string;\r\n /**\r\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 \r\n */\r\n mapping: Array<PropertyMapping>;\r\n}\r\nexport namespace SelectionDefinition {\r\n export type TypeEnum = 'PROPERTY' | 'OBJECT';\r\n export const TypeEnum = {\r\n Property: 'PROPERTY' as TypeEnum,\r\n Object: 'OBJECT' as TypeEnum\r\n };\r\n}\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\nexport type SmartFormWidgetDirection = \"COL\" | \"ROW\";\r\n\r\nexport const SmartFormWidgetDirection = {\r\n COL: \"COL\" as SmartFormWidgetDirection,\r\n ROW: \"ROW\" as SmartFormWidgetDirection,\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\nexport enum SmartFormWidgetType {\r\n CHECK_BOX = \"CHECK_BOX\",\r\n CHECK_BOX_2 = \"CHECK_BOX_2\",\r\n CONTAINER = \"CONTAINER\",\r\n DATE_PICKER = \"DATE_PICKER\",\r\n DATE_TIME_PICKER = \"DATE_TIME_PICKER\",\r\n INDICATOR = \"INDICATOR\",\r\n ITEM = \"ITEM\",\r\n ITEM_GROUP = \"ITEM_GROUP\",\r\n LABEL = \"LABEL\",\r\n RADIO_BUTTON = \"RADIO_BUTTON\",\r\n SELECT = \"SELECT\",\r\n SELECT_MULTIPLE = \"SELECT_MULTIPLE\",\r\n TEXT_BOX = \"TEXT_BOX\",\r\n TEXT_FIELD = \"TEXT_FIELD\",\r\n TEXT_FIELD_CHIPS = \"TEXT_FIELD_CHIPS\",\r\n TEXT_FIELD_NUMBER = \"TEXT_FIELD_NUMBER\",\r\n TIME = \"TIME\",\r\n TOGGLE = \"TOGGLE\",\r\n IMAGE = \"IMAGE\",\r\n FILE_UPLOADER = \"FILE_UPLOADER\",\r\n MEDIA = \"MEDIA\",\r\n BUTTON = \"BUTTON\",\r\n DIVIDER = \"DIVIDER\",\r\n COMPONENT = \"COMPONENT\",\r\n RICH_TEXT = \"RICH_TEXT\",\r\n SORTABLE = \"SORTABLE\",\r\n MATRIX = \"MATRIX\",\r\n YOUTUBE_PLAYER = \"YOUTUBE_PLAYER\",\r\n MONTH_PICKER = \"MONTH_PICKER\",\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\nimport { DefaultService } from './api/default.service';\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","import { Injectable } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SelectionDefinition, 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 group: any = {};\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 tempModel[splittedKeys[index]] = value;\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(): void {\r\n const smartForm = this.smartForm!;\r\n const data = this.smartForm?.componentModel?.data;\r\n if (!data) {\r\n return;\r\n }\r\n\r\n const keys: string[] = this.collectKeysFromSmartForm(smartForm.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(smartForm.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 if (\r\n widget.type === SmartFormWidgetType.SELECT ||\r\n widget.type === SmartFormWidgetType.TEXT_FIELD\r\n ) {\r\n if (widget.selection && smartForm.componentModel.valueSets) {\r\n if (\r\n widget.selection.type === SelectionDefinition.TypeEnum.Property &&\r\n !widget.selection.mapping.length\r\n ) {\r\n let valueSetData =\r\n smartForm.componentModel.valueSets[widget.selection.valueSetName].valueSetData;\r\n widget.valueList = valueSetData.values.map((value: any) => {\r\n return {\r\n key: value[valueSetData.keyProperty],\r\n label:\r\n value[\r\n (widget as SmartSelect<any>).selection?.displayProperty ?? 'displayValue'\r\n ],\r\n type: SmartFormWidgetType.ITEM,\r\n value: value[valueSetData.keyProperty],\r\n };\r\n });\r\n } else if (\r\n widget.selection.type === SelectionDefinition.TypeEnum.Object &&\r\n !widget.selection.mapping.length\r\n ) {\r\n let valueSetData =\r\n smartForm.componentModel.valueSets[widget.selection.valueSetName].valueSetData;\r\n widget.valueList = valueSetData.values.map((value: any, index: number) => {\r\n return {\r\n key: `${index}`,\r\n label:\r\n value[\r\n (widget as SmartSelect<any>).selection?.displayProperty ?? 'displayValue'\r\n ],\r\n type: SmartFormWidgetType.ITEM,\r\n value: value,\r\n };\r\n });\r\n }\r\n }\r\n }\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(smartForm.widgets, splittedKeys.join('.'));\r\n if (widget && widget.type === SmartFormWidgetType.CHECK_BOX_2 && 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 toFormGroup(): FormGroup {\r\n this.createFormControls(this.smartForm!.widgets);\r\n\r\n let formGroup = new FormGroup(this.group);\r\n\r\n if (this.smartForm!.validators && this.smartForm!.validators.length) {\r\n 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 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.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 let formControl = new FormControl(\r\n widget.value || '',\r\n widget.validators?.map((validator: SmartValidator) => {\r\n return validator.validator;\r\n })\r\n );\r\n\r\n if (widget.isDisabled) {\r\n formControl.disable();\r\n }\r\n\r\n this.group[`${widget.key}`] = formControl;\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 let formControl = new FormControl(\r\n widget.value.data[key][item],\r\n widget.validators?.map((validator: SmartValidator) => {\r\n return validator.validator;\r\n })\r\n );\r\n this.group[`${widget.key}.data.${key}.${item}`] = formControl;\r\n });\r\n });\r\n } else {\r\n Object.keys(widget.value.data).map((key: string) => {\r\n let formControl = new FormControl(\r\n widget.isMultiple ? widget.value.data[key] : widget.value.data[key][0] || '',\r\n widget.validators?.map((validator: SmartValidator) => {\r\n return validator.validator;\r\n })\r\n );\r\n\r\n if (widget.isDisabled) {\r\n formControl.disable();\r\n }\r\n\r\n this.group[`${widget.key}.${key}`] = formControl;\r\n });\r\n }\r\n }\r\n if (widget.type === SmartFormWidgetType.ITEM && parentKey) {\r\n let formControl = new FormControl(widget.value);\r\n\r\n if (widget.isDisabled) {\r\n formControl.disable();\r\n }\r\n\r\n this.group[`${parentKey}.${widget.key}`] = formControl;\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 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.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 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 constraint = constraints?.filter(\r\n (constraint: SmartFormComponentConstraint) => constraint.dataName === widget.key\r\n );\r\n\r\n if (constraint && constraint.length) {\r\n widget.isVisible = constraint[0].visible === undefined ? true : constraint[0].visible;\r\n if (constraint[0].mandatory !== undefined && constraint[0].mandatory) {\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.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.validators = [\r\n ...(widget.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 }\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.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.isDisabled = constraint[0].enabled === undefined ? false : !constraint[0].enabled;\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 applyConstraints(): void {\r\n if (\r\n this.smartForm!.componentModel?.constraints &&\r\n this.smartForm!.componentModel?.constraints.length\r\n ) {\r\n this.applyComponentConstraints(\r\n this.smartForm!.widgets,\r\n this.smartForm!.componentModel?.constraints\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.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 { 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 { Injectable } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\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","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { SmartIconService, SmartIconSet } 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 matIconRegistry: MatIconRegistry, private service: SmartIconService) {}\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 await Promise.all(\r\n this.service.smartIconSets!.map(async (iconSet: SmartIconSet) => {\r\n let namespace = iconSet.iconSetName;\r\n let svgIcon = await this.matIconRegistry\r\n .getNamedSvgIcon(this.iconWithoutNamespace, namespace)\r\n .toPromise()\r\n .catch((err) => {});\r\n if (!svgIcon) {\r\n return;\r\n }\r\n if (this.isCustom) {\r\n return;\r\n }\r\n this.icon = `${namespace}:${this.iconWithoutNamespace}`;\r\n\r\n this.isCustom = true;\r\n })\r\n );\r\n if (!this.isCustom) {\r\n this.icon = this.iconWithoutNamespace;\r\n }\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 { 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 {\r\n DateAdapter,\r\n MAT_DATE_FORMATS,\r\n MAT_DATE_LOCALE,\r\n} 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 {\r\n SmartValidator,\r\n SmartWidgetHintPosition,\r\n} from \"../../../smartform.model\";\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\",\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 = SmartWidgetHintPosition;\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 }\r\n }\r\n\r\n chosenYearHandler(normalizedYear: Moment) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(normalizedYear.year());\r\n this.date.setValue(ctrlValue);\r\n }\r\n\r\n chosenMonthHandler(\r\n normalizedMonth: Moment,\r\n datepicker: MatDatepicker<Moment>\r\n ) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.month(normalizedMonth.month());\r\n this.date.setValue(ctrlValue);\r\n\r\n this.valueChange.next(ctrlValue);\r\n datepicker.close();\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 />\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 (yearSelected)=\"chosenYearHandler($event)\"\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?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</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 { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\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 moment from 'moment';\r\nimport { Observable, Subject, distinctUntilChanged, map, startWith, takeUntil } from 'rxjs';\r\nimport { SmartFormWidgetDirection, SmartFormWidgetType } 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 SmartWidgetHintPosition,\r\n SophisticatedValueChange,\r\n Value,\r\n} from '../../smartform.model';\r\nimport { ComponentFactoryService } from '../../../component-factory-service/projects';\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})\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\r\n isEnterPressed: boolean = false;\r\n\r\n isDatePickerRequired: boolean = false;\r\n\r\n SmartWidgetHintPosition = SmartWidgetHintPosition;\r\n\r\n constructor(private service: SmartFormService, private cfService: ComponentFactoryService) {}\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(takeUntil(this._destroy$)).pipe(\r\n startWith(''),\r\n map((value) => this._filter(value || ''))\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())\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 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 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 }\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 addOnBlur = true;\r\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\r\n\r\n add(event: MatChipInputEvent): void {\r\n const value = (event.value || '').trim();\r\n\r\n if (this.widgetInstance.type !== SmartFormWidgetType.TEXT_FIELD_CHIPS) {\r\n return;\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 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 // 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 if (this.widgetInstance.type !== SmartFormWidgetType.TEXT_FIELD_CHIPS) {\r\n return;\r\n }\r\n let value = event.option.viewValue;\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 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.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 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.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.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 if (!filterValue) {\r\n filterValue = '';\r\n }\r\n\r\n if (\r\n this.widgetInstance.type === SmartFormWidgetType.TEXT_FIELD &&\r\n this.widgetInstance.valueList\r\n ) {\r\n if (filterValue) {\r\n return this.widgetInstance.valueList.filter((option: SmartItem<any>) =>\r\n option.label.toLowerCase().includes(filterValue!)\r\n );\r\n } else {\r\n this.widgetInstance.valueList;\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 asd(opt: any): string {\r\n console.log(opt);\r\n return opt;\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 console.log(yearMonthValue);\r\n this.setDateFormControl(this.form.controls[this.widgetInstance.key!], yearMonthValue, '00:00');\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=\"\r\n widgetInstance.isVisible === undefined ? true : widgetInstance.isVisible\r\n \"\r\n >\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.CONTAINER\"\r\n [ngClass]=\"getDirection()\"\r\n >\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 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <mat-form-field\r\n class=\"input textField 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\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=\"{{\r\n widgetInstance.isPassword\r\n ? hidePassword\r\n ? 'password'\r\n : 'text'\r\n : ''\r\n }}\"\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>{{\r\n hidePassword ? \"visibility_off\" : \"visibility\"\r\n }}</mat-icon>\r\n </button>\r\n <mat-autocomplete #textFieldAuto=\"matAutocomplete\">\r\n <mat-option\r\n *ngFor=\"let option of filteredOptions | async\"\r\n [value]=\"option.label\"\r\n >\r\n {{ option.label }}\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 ||\r\n 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 <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 &&\r\n 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 &&\r\n 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=\"\r\n widgetInstance.showCharacterLimitSuffix && widgetInstance.maxLength\r\n \"\r\n matSuffix\r\n align=\"end\"\r\n >{{\r\n widgetInstance.maxLength -\r\n form.controls[widgetInstance.key].value.length\r\n }}</mat-hint\r\n >\r\n </mat-form-field>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</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 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <mat-form-field\r\n class=\"input textField 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 <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 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\r\n *ngIf=\"widgetInstance.icon\"\r\n [icon]=\"widgetInstance.icon\"\r\n matSuffix\r\n >\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 &&\r\n 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 &&\r\n 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 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\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-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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.TEXT_BOX\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\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 <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=\"\r\n widgetInstance.showCharacterLimitSuffix && widgetInstance.maxLength\r\n \"\r\n matSuffix\r\n align=\"end\"\r\n >{{\r\n widgetInstance.maxLength -\r\n form.controls[widgetInstance.key].value.length\r\n }}</mat-hint\r\n >\r\n </mat-form-field>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance.hintConfig ||\r\n widgetInstance.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.CHECK_BOX\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <div\r\n class=\"input checkbox widgetContent\"\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.CHECK_BOX_2\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <div\r\n class=\"input checkbox widgetContent\"\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.RADIO_BUTTON\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <mat-radio-group\r\n class=\"input radio-section widgetContent\"\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\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\r\n class=\"radio-item-container\"\r\n *ngFor=\"let radio of widgetInstance.valueList\"\r\n >\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 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <mat-form-field\r\n class=\"input widgetContent date\"\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]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></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 }}\">\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 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <div class=\"dateTimePickerContainer\">\r\n <mat-form-field\r\n class=\"input widgetContent date\"\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\r\n matSuffix\r\n [for]=\"picker\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker></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 <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 <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 </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.SELECT\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\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-select\r\n [formControlName]=\"widgetInstance.key\"\r\n (selectionChange)=\"onValueChange?.next($event.value)\"\r\n [disabled]=\"widgetInstance.isDisabled!\"\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?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</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 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\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-select\r\n [formControlName]=\"widgetInstance.key\"\r\n multiple\r\n (blur)=\"onBlur?.next($event)\"\r\n (selectionChange)=\"onValueChange?.next($event.value)\"\r\n [disabled]=\"widgetInstance.isDisabled!\"\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?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</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 [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n [ngStyle]=\"{ width: widgetInstance.minWidth + 'px' }\"\r\n >\r\n <div\r\n class=\"label-title labelContainer\"\r\n [ngClass]=\"widgetInstance.cssClass ?? ''\"\r\n >\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <p>{{ widgetInstance.widgetDescription }}</p>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.TIME\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <mat-form-field\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 <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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.TOGGLE\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <div class=\"widgetContent\">\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 >{{\r\n !widgetInstance.showLabel ? widgetInstance.label : \"\"\r\n }}</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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.INDICATOR\"\r\n class=\"widgetContainer\"\r\n >\r\n <h4\r\n class=\"labelContainer\"\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"{{ labelColor }}\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <div class=\"smartIndicator widgetContent\">\r\n <div class=\"indicatorItems\">\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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.FILE_UPLOADER\"\r\n class=\"widgetContainer\"\r\n >\r\n <h4\r\n class=\"labelContainer\"\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"{{ labelColor }}\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <smartfileuploader\r\n class=\"widgetContent\"\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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.IMAGE\"\r\n class=\"widgetContainer\"\r\n >\r\n <h4\r\n class=\"labelContainer\"\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"{{ labelColor }}\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <img\r\n class=\"widgetContent\"\r\n title=\"{{ widgetInstance.key }}\"\r\n [ngClass]=\"widgetInstance.imageCss ?? ''\"\r\n [src]=\"widgetInstance.value\"\r\n />\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.DIVIDER\"\r\n class=\"widgetContainer\"\r\n >\r\n <hr class=\"smartDivider\" />\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.BUTTON\"\r\n class=\"widgetContainer\"\r\n >\r\n <h4\r\n class=\"labelContainer\"\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"{{ labelColor }}\"\r\n >\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <div class=\"widgetContent\">\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=\"\r\n isOnlyIcon(widgetInstance.uiActionDescriptor);\r\n then iconOnly;\r\n else text\r\n \"\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=\"\r\n widgetInstance.type === smartFormWidgetType.COMPONENT &&\r\n widgetInstance.showLabel\r\n \"\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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.RICH_TEXT\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <div class=\"widgetContent\">\r\n <quill-editor\r\n [formControlName]=\"widgetInstance.key\"\r\n [id]=\"widgetInstance.key\"\r\n [modules]=\"widgetInstance.quillModules\"\r\n [placeholder]=\"widgetInstance.placeholder\"\r\n [readOnly]=\"widgetInstance.isReadonly\"\r\n ></quill-editor>\r\n <mat-hint\r\n *ngIf=\"\r\n !widgetInstance?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.SORTABLE\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\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\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.MATRIX\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n\r\n <table class=\"matrixTable widgetContent\">\r\n <tr>\r\n <th></th>\r\n <th\r\n class=\"optionLabel\"\r\n *ngFor=\"let option of widgetInstance.value.columns\"\r\n >\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\r\n class=\"selectTd\"\r\n *ngFor=\"let option of widgetInstance.value.columns; let j = index\"\r\n >\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]=\"\r\n widgetInstance.key +\r\n '.data.' +\r\n question.code +\r\n '.' +\r\n option.code\r\n \"\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 </tr>\r\n </table>\r\n </div>\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.YOUTUBE_PLAYER\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\">\r\n <h4 *ngIf=\"widgetInstance.showLabel\" class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <youtube-player\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?.hintConfig ||\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_INPUT\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\r\n </div>\r\n <div\r\n *ngIf=\"widgetInstance.type === smartFormWidgetType.MONTH_PICKER\"\r\n class=\"widgetContainer\"\r\n >\r\n <div class=\"labelContainer\" *ngIf=\"widgetInstance.showLabel\">\r\n <h4 class=\"{{ labelColor }}\">\r\n {{ getWidgetLabel(widgetInstance) }}\r\n </h4>\r\n <mat-hint\r\n *ngIf=\"\r\n widgetInstance?.hintConfig?.position ===\r\n SmartWidgetHintPosition.UNDER_LABEL\r\n \"\r\n >{{ widgetInstance.hint }}</mat-hint\r\n >\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 { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } 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\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\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 constructor(private service: SmartFormService) {}\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.smartForm = changes['smartForm'].currentValue;\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 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 this.service.setValuesFromModel();\r\n this.service.applyConstraints();\r\n this.smartForm.widgets = this.service.filterWidgetsByVisibility(this.smartForm.widgets);\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.service.translateWidgets(this.smartForm!.widgets);\r\n });\r\n this.service.translateWidgets(this.smartForm.widgets);\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 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.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 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.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","<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\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}\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}\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?:\r\n | ((value: string) => string)\r\n | ((value: string) => Promise<string>);\r\n showCheckboxInHeader?: boolean | undefined;\r\n order?: SmartTableOrder;\r\n orderNumber?: number;\r\n isSortable?: boolean;\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 type: SmartTableButtonType;\r\n menuItemButtons?: SmartTableButton[];\r\n menuItemButtonsPropertyName?: string;\r\n translator?:\r\n | ((label: string) => string)\r\n | ((label: string) => Promise<string>);\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}\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 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}\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 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}\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 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\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\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\"\r\n ? true\r\n : 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 =\r\n 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.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) =>\r\n originalHeaders.includes(property)\r\n ) &&\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 { 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","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 {\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 { Subject } from 'rxjs';\r\nimport { LoadingComponent } from '../components/loading/loading.component';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { ComponentFactoryService } from '../../component-factory-service/projects';\r\n\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) trigger!: QueryList<MatMenuTrigger>;\r\n @ViewChildren('expandedArea', { read: ViewContainerRef })\r\n vcRef?: ViewContainerRef[];\r\n componentRef?: ComponentRef<any>;\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 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(element: any): void {\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 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\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.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 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 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.highlightedRows || !this.highlightedRows.length) {\r\n return false;\r\n }\r\n return this.highlightedRows.includes(row);\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\r\n return length > 0;\r\n } catch (error) {\r\n console.error(`The type of property ${button.menuItemButtonsPropertyName} is not a list.`);\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 let headers = header.split('.');\r\n if (headers.length > 1) {\r\n let value: any = element;\r\n for (let index = 0; index < headers.length; index++) {\r\n const element = headers[index];\r\n value = value[element];\r\n if (!value && index !== headers.length - 1) {\r\n return undefined;\r\n }\r\n }\r\n return value;\r\n }\r\n return 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","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 mat-header-cell *matHeaderCellDef>\r\n <div\r\n *ngIf=\"\r\n header === 'icon' ||\r\n header === 'img' ||\r\n header === 'options' ||\r\n header === 'button'\r\n \"\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\r\n *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\r\n >\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)=\"\r\n sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\r\n \"\r\n *ngIf=\"\r\n smartTable.sortable &&\r\n isSortable(smartTable.customSmartTableHeaders![i])\r\n \"\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\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\"\r\n >\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(\r\n element,\r\n smartTable.selectionProperty\r\n )\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 &&\r\n smartTable.customSmartTableHeaders[i].properties\r\n \"\r\n >\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type ===\r\n type().DATETIME\r\n \"\r\n >\r\n {{\r\n getValue(element, header)\r\n | smartDateTime\r\n : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type ===\r\n type().DATE\r\n \"\r\n >\r\n {{\r\n getValue(element, header)\r\n | smartDate\r\n : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type ===\r\n type().TIME\r\n \"\r\n >\r\n {{\r\n getValue(element, header)\r\n | smartTime\r\n : smartTable.customSmartTableHeaders[i].properties?.dateFormat\r\n }}\r\n </div>\r\n <div\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders[i].properties?.type ===\r\n type().ICON &&\r\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\r\n \"\r\n >\r\n <smart-icon\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\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].buttons\r\n \"\r\n class=\"smart-table-buttons-col\"\r\n >\r\n <div\r\n *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\"\r\n >\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\r\n title=\"{{ button.label }}\"\r\n [icon]=\"button.icon!\"\r\n ></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) : '') }}\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) : '') }}\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)=\"\r\n customButtonClicked($event, button, element, undefined, true)\r\n \"\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) : '') }}\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)=\"\r\n customButtonClicked($event, btn, element, undefined, true)\r\n \"\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=\"\r\n let btn of getValue(\r\n element,\r\n button.menuItemButtonsPropertyName\r\n )\r\n \"\r\n (click)=\"\r\n customButtonClicked($event, button, element, btn, true)\r\n \"\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\r\n *ngIf=\"\r\n smartTable.customSmartTableHeaders &&\r\n smartTable.customSmartTableHeaders[i].icon\r\n \"\r\n >\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 {{\r\n smartTable.customSmartTableHeaders[i].translator!(\r\n getValue(element, header)\r\n )\r\n }}\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\r\n *ngIf=\"expandedElement !== element\"\r\n [icon]=\"'keyboard_arrow_down'\"\r\n ></smart-icon>\r\n <smart-icon\r\n *ngIf=\"expandedElement === element\"\r\n [icon]=\"'keyboard_arrow_up'\"\r\n ></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 !(\r\n smartTable.customSmartTableHeaders[i].propertyName === 'select'\r\n ) &&\r\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\r\n \"\r\n >\r\n <smart-icon\r\n *ngIf=\"header === 'icon'\"\r\n [icon]=\"getValue(element, header)!\"\r\n >\r\n </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 \"\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\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n [attr.colspan]=\"smartTable.tableHeaders.length\"\r\n >\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\r\n mat-header-row\r\n *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let element; columns: smartTable.tableHeaders\"\r\n class=\"example-element-row\"\r\n [class.example-expanded-row]=\"expandedElement === element\"\r\n [ngClass]=\"[\r\n isHighlighted(element) ? smartTable.highlightClass! : 'unselected',\r\n smartTable.hover ? 'smartTableRowHover' : '',\r\n isSelected(element) ? 'selected' : ''\r\n ]\"\r\n (click)=\"handleOnRowClick(element)\"\r\n (dblclick)=\"handleOnRowDoubleClick(element)\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: ['expandedDetail']\"\r\n class=\"example-detail-row\"\r\n ></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]=\"[isSelected(row) ? 'selected' : '']\"\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(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\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 [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\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 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 { 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 { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SmartformComponent } from './smartform.component';\r\n\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { SmartFormService } from './services/smartform.service';\r\nimport { SmartfileuploaderComponent } from './smartfileuploader/smartfileuploader.component';\r\nimport {\r\n SmartWidgetSettings,\r\n SmartformwidgetComponent,\r\n} from './widgets/smartformwidget/smartformwidget.component';\r\n\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 { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { TrackCapsDirective } from './widgets/smartformwidget/trackCaps.directive';\r\n\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { LargeFileSnackBarComponent } from './smartfileuploader/large-file-snack-bar/large-file-snack-bar.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { SortableWidgetComponent } from './widgets/smartformwidget/sortable-widget/sortable-widget.component';\r\nimport { YouTubePlayerModule } from '@angular/youtube-player';\r\nimport { SmartMonthPickerComponent } from './widgets/components/smart-month-picker/smart-month-picker.component';\r\nimport { SmartIconModule } from '../smart-icon/projects';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartformComponent,\r\n SmartformwidgetComponent,\r\n SmartfileuploaderComponent,\r\n TrackCapsDirective,\r\n LargeFileSnackBarComponent,\r\n SortableWidgetComponent,\r\n SmartMonthPickerComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n MatChipsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n MatRadioModule,\r\n MatSlideToggleModule,\r\n SmartIconModule,\r\n MatSnackBarModule,\r\n MatAutocompleteModule,\r\n NgxMaskModule.forRoot(),\r\n QuillModule.forRoot(),\r\n DragDropModule,\r\n YouTubePlayerModule,\r\n ],\r\n exports: [SmartformComponent, SmartformwidgetComponent, SmartfileuploaderComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\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 SmartformModule {}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n SmartFormWidgetDirection,\r\n SmartFormWidgetType,\r\n SmartWidgetDefinition,\r\n} from \"../api\";\r\nimport { SmartFormWidget } from \"../smartform.form-model\";\r\nimport { Value } from \"../smartform.model\";\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 constructor() {}\r\n\r\n public render(\r\n config: SmartformLayoutCreateWidgetConfig\r\n ): SmartFormWidget<any>[] {\r\n let widgets: SmartFormWidget<any>[] = [];\r\n\r\n config.layoutDefinitions?.forEach(\r\n (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\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.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.uploadCallback) {\r\n throw Error(\"No upload function injected.\");\r\n }\r\n return this.createFileUploader(\r\n config.layoutDefinition,\r\n config.uploadCallback!\r\n );\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 }\r\n return;\r\n }\r\n\r\n private createMonthPicker(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n key: layoutDefinition.key,\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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): 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 showLabel: layoutDefinition.showLabel,\r\n //TODO set isMultiple variable from layoutDefinition\r\n isMultiple: false,\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 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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.LABEL,\r\n label: layoutDefinition.label,\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(\r\n (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\r\n let widget: SmartFormWidget<any> = {\r\n key: layoutDefinition.key,\r\n type: SmartFormWidgetType.CONTAINER,\r\n cssClass: layoutDefinition.cssClass,\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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_FIELD,\r\n key: layoutDefinition.key,\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 showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n isPassword: layoutDefinition.isPassword,\r\n selection: layoutDefinition.selection,\r\n };\r\n return widget;\r\n }\r\n private createTextFieldChips(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_FIELD_CHIPS,\r\n key: layoutDefinition.key,\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 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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_FIELD_NUMBER,\r\n key: layoutDefinition.key,\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 };\r\n return widget;\r\n }\r\n private createTextBox(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TEXT_BOX,\r\n key: layoutDefinition.key,\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 };\r\n return widget;\r\n }\r\n private createRichText(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.RICH_TEXT,\r\n key: layoutDefinition.key,\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 quillModules: {\r\n toolbar: {\r\n container: [\r\n [\"bold\", \"italic\", \"underline\", \"strike\"],\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 };\r\n return widget;\r\n }\r\n private createToggle(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.TOGGLE,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n };\r\n return widget;\r\n }\r\n private createRadioButton(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.RADIO_BUTTON,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n valueList: [],\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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.CHECK_BOX_2,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\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: false,\r\n };\r\n });\r\n }\r\n return widget;\r\n }\r\n private createSelect(\r\n layoutDefinition: SmartWidgetDefinition,\r\n model?: any\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.SELECT,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n valueList: [],\r\n selection: layoutDefinition.selection,\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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.SELECT_MULTIPLE,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\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 createDatePicker(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.DATE_PICKER,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n };\r\n return widget;\r\n }\r\n private createDateTimePicker(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.DATE_TIME_PICKER,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n cssLabelClass: layoutDefinition.cssLabelClass,\r\n };\r\n return widget;\r\n }\r\n private createImage(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.IMAGE,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n };\r\n return widget;\r\n }\r\n private createButton(\r\n config: SmartformLayoutCreateWidgetConfig\r\n ): 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 label: config.layoutDefinition?.label!,\r\n showLabel: config.layoutDefinition?.showLabel,\r\n cssClass: config.layoutDefinition?.cssClass,\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(\r\n layoutDefinition: SmartWidgetDefinition\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.DIVIDER,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n };\r\n return widget;\r\n }\r\n private createFileUploader(\r\n layoutDefinition: SmartWidgetDefinition,\r\n uploadCallback: (key: string, files: any[]) => void\r\n ): SmartFormWidget<any> {\r\n let widget: SmartFormWidget<any> = {\r\n type: SmartFormWidgetType.FILE_UPLOADER,\r\n key: layoutDefinition.key,\r\n label: layoutDefinition.label,\r\n showLabel: layoutDefinition.showLabel,\r\n cssClass: layoutDefinition.cssClass,\r\n uploadCallback,\r\n };\r\n return widget;\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.module';\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\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, 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\nimport { SmartDatePipe, SmartDateTimePipe, SmartTimePipe } from './smarttable.date-pipe';\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\n\r\n@NgModule({\r\n declarations: [\r\n SmarttableComponent,\r\n SmartDatePipe,\r\n SmartDateTimePipe,\r\n SmartTimePipe,\r\n LoadingComponent,\r\n MaterialTableComponent,\r\n MobileTableComponent,\r\n ],\r\n imports: [\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 ],\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\nexport * from './smarttable.date-pipe';\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 { SmartdialogService } from './smartdialog.service';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmartformModule } from '../smart-form/projects';\r\nimport { SmarttableModule } from '../smart-table/projects';\r\nimport { SmartIconModule } from '../smart-icon/projects';\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 SmartformModule,\r\n SmarttableModule,\r\n SmartIconModule,\r\n ],\r\n exports: [SmartDialog],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [SmartdialogService],\r\n})\r\nexport class SmartdialogModule {}\r\n","import { SmartForm } from '../smart-form/projects';\r\nimport { SmartTable } from '../smart-table/projects';\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","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSessionService } from '../session/smart-session.service';\r\nimport {\r\n ComponentModel,\r\n ComponentModelChange,\r\n DataChange,\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 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 { SmartdialogService } from '../smart-dialog/projects';\r\n\r\nexport const SmartViewContextErrorDialogButtonLabel = 'SmartViewContextErrorDialogButtonLabel';\r\nexport const SmartViewContextErrorDialogTitle = 'SmartViewContextErrorDialogTitle';\r\nexport const SmartViewContextErrorDialogMessage = 'SmartViewContextErrorDialogMessage';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartViewContextService implements OnDestroy {\r\n private tabIdName: string = 'viewContextUuid';\r\n private tabIdhttpHeaderName: string = 'viewContextUuid';\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: SmartdialogService,\r\n private apiQueueService: ApiQueueService\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.getUuidOfPage(this.tabIdName);\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 let viewContextUuid = sessionStorage.getItem(this.tabIdName);\r\n if (!viewContextUuid) {\r\n throw new Error('View context is not initialized!');\r\n }\r\n await this.getViewContext(viewContextUuid!);\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 private setTabId(tabId: string): void {\r\n sessionStorage.setItem(this.tabIdName, tabId);\r\n this.session.addHeaderParam({\r\n headerName: this.tabIdhttpHeaderName,\r\n value: tabId,\r\n });\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.setTabId(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.setTabId(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): void {\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 dialogRef = this.dialog.openComponentAsDialog(viewHandler.component, viewHandler.name);\r\n dialogRef.disableClose = true;\r\n // if (view.viewName === this.messageDialogname) {\r\n // if (view.message?.options && view.message.options.length) {\r\n // }\r\n // }\r\n this.dialogRefs.push({\r\n uuid: view.uuid,\r\n dialogRef,\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 sessionStorage.setItem(view.viewName, view.uuid);\r\n this.uuidOfPageHasBeenChanged.next(view.viewName);\r\n\r\n this.updateViewContext({\r\n updates: [\r\n {\r\n state: ViewState.Opened,\r\n uuid: view.uuid,\r\n },\r\n ],\r\n uuid: this.viewContext?.uuid,\r\n });\r\n }\r\n\r\n public closeView(view: ViewData): void {\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 throw new Error('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 sessionStorage.removeItem(view.viewName);\r\n }\r\n\r\n this.updateViewContext({\r\n updates: [\r\n {\r\n state: ViewState.Closed,\r\n uuid: view.uuid,\r\n },\r\n ],\r\n uuid: this.viewContext?.uuid,\r\n });\r\n }\r\n\r\n public async restoreViews(uuid: string): Promise<void> {\r\n if (!this.viewContext) {\r\n await this.getViewContext(uuid);\r\n }\r\n this.viewContext!.views.map((view: ViewData) => {\r\n this.openView(view);\r\n });\r\n }\r\n\r\n public syncView(): void {\r\n this.viewContext?.views.map((view: ViewData) => {\r\n switch (view.state) {\r\n case ViewState.ToOpen:\r\n this.openView(view);\r\n break;\r\n case ViewState.ToClose:\r\n 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 this.closeView(viewData);\r\n });\r\n }\r\n\r\n this.viewContextHasBeenSynced.next();\r\n }\r\n\r\n public getUuidOfPage(pageName: string): string {\r\n let uuid = sessionStorage.getItem(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 async message(messageData: MessageData, messageResult: MessageResult): Promise<void> {\r\n await this.view\r\n .message(messageData.viewUuid ?? '', messageData.uuid, messageResult)\r\n .toPromise();\r\n await this.getAndSyncViewContext();\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' | 'INPUT2',\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<void> {\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<void> {\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 }\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 return await this.view.getComponentModel2(uuid).toPromise();\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 { DatePipe } from '@angular/common';\r\nimport { HttpErrorResponse, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { SmartCookieService } from '../cookie-service/smart-cookie.service';\r\nimport { SmartSubject } from '../../smart-subject/projects';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartDevToolService implements OnDestroy {\r\n descriptor?: SmartDevToolDescriptor;\r\n\r\n smartDevToolName: string = 'smartDevTool';\r\n isSmartDevToolActiveName: string = 'smartDevToolActive';\r\n isActive: boolean = false;\r\n smartDevToolHoursName: string = 'smartDevToolHours';\r\n smartDevToolMaxName: string = 'smartDevToolMaxCalls';\r\n hoursToSave: number = 1;\r\n maxNumOfSavedCalls: number = 50;\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n descriptorChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n newErrorsCount: number = 0;\r\n newErrorsCountChanged: Subject<void> = new SmartSubject(this._destroy$);\r\n\r\n constructor(private cookieService: SmartCookieService) {\r\n this.setUpLocalStorage();\r\n\r\n let apiCallsFromLocalStorage = localStorage.getItem(this.smartDevToolName);\r\n if (apiCallsFromLocalStorage) {\r\n this.descriptor = JSON.parse(apiCallsFromLocalStorage);\r\n } else {\r\n this.descriptor = { apiCalls: [] };\r\n this.save();\r\n }\r\n\r\n window.addEventListener('storage', (event) => {\r\n if (event.storageArea === localStorage) {\r\n this.isActive = localStorage.getItem(this.isSmartDevToolActiveName) === 'true';\r\n let hoursToSaveString = localStorage.getItem(this.smartDevToolHoursName);\r\n if (hoursToSaveString) {\r\n this.hoursToSave = Number.parseInt(hoursToSaveString);\r\n }\r\n let maxNumOfSavedCalls = localStorage.getItem(this.smartDevToolMaxName);\r\n if (maxNumOfSavedCalls) {\r\n this.maxNumOfSavedCalls = Number.parseInt(maxNumOfSavedCalls);\r\n }\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 setUpLocalStorage(): void {\r\n let keysOfLocalStorage = Object.keys(localStorage);\r\n if (!keysOfLocalStorage.includes(this.isSmartDevToolActiveName)) {\r\n localStorage.setItem(this.isSmartDevToolActiveName, 'true');\r\n }\r\n }\r\n\r\n writeResponse(\r\n request: HttpRequest<any>,\r\n response: HttpResponse<any> | HttpErrorResponse,\r\n requestDate: Date,\r\n responseDate: Date\r\n ): void {\r\n this.sanitizeByLength();\r\n this.sanitizeByTime();\r\n\r\n let requestHeader: any = this.createObject(request.headers.keys(), request.headers, false);\r\n let responseHeader: any = this.createObject(response.headers.keys(), response.headers, false);\r\n\r\n let _localStorage: any = this.createObject(\r\n Object.keys(localStorage).filter((key: string) => key !== this.smartDevToolName),\r\n localStorage,\r\n true\r\n );\r\n let _sessionStorage: any = this.createObject(Object.keys(sessionStorage), sessionStorage, true);\r\n let _cookies: any = this.cookieService.getAll();\r\n\r\n this.descriptor!.apiCalls = [\r\n {\r\n url: response.url,\r\n requestBody: request.body,\r\n requestHeader,\r\n requestDate,\r\n requestMethod: request.method,\r\n responseBody: (response as HttpResponse<any>).body ?? null,\r\n responseHeader,\r\n responseStatus: response.status,\r\n responseStatusText: response.statusText,\r\n responseDate,\r\n localStorage: _localStorage,\r\n sessionStorage: _sessionStorage,\r\n cookies: _cookies,\r\n },\r\n ...this.descriptor!.apiCalls,\r\n ];\r\n\r\n if (response.status !== 200) {\r\n this.newErrorsCount++;\r\n this.newErrorsCountChanged.next();\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n clearErrors(): void {\r\n this.newErrorsCount = 0;\r\n this.newErrorsCountChanged.next();\r\n }\r\n\r\n createObject(keys: string[], mapWithValues: any, useGetItem: boolean): any {\r\n let newObject: any = {};\r\n keys.forEach((key: string) => {\r\n if (useGetItem) {\r\n newObject[key] = mapWithValues.getItem(key);\r\n } else {\r\n newObject[key] = mapWithValues.get(key);\r\n }\r\n });\r\n return newObject;\r\n }\r\n\r\n sanitizeByTime(): void {\r\n let now: Date = new Date();\r\n this.descriptor!.apiCalls = this.descriptor!.apiCalls.filter(\r\n (apiCall: SmartDevToolApiCallDescriptor) => {\r\n let hoursBetween: number;\r\n if (typeof apiCall.requestDate === 'string') {\r\n hoursBetween = Math.floor(\r\n Math.abs(now.getMilliseconds() - new Date(apiCall.requestDate).getMilliseconds()) / 36e5\r\n );\r\n } else {\r\n hoursBetween = Math.floor(\r\n Math.abs(now.getMilliseconds() - apiCall.requestDate.getMilliseconds()) / 36e5\r\n );\r\n }\r\n\r\n return hoursBetween < this.hoursToSave;\r\n }\r\n );\r\n }\r\n\r\n sanitizeByLength(): void {\r\n if (this.descriptor?.apiCalls && this.descriptor.apiCalls.length > this.maxNumOfSavedCalls) {\r\n let length = this.descriptor.apiCalls.length;\r\n this.descriptor.apiCalls.splice(\r\n this.maxNumOfSavedCalls - 1,\r\n length - this.maxNumOfSavedCalls\r\n );\r\n }\r\n }\r\n\r\n save(): void {\r\n try {\r\n localStorage.setItem(this.smartDevToolName, JSON.stringify(this.descriptor));\r\n this.descriptorChanged.next();\r\n } catch (error: any) {\r\n // localStorage.setItem() throws a \"QuotaExceededError\" DOMException exception if the new value\r\n // couldn't be set. (Setting could fail if, e.g., the user has disabled storage for the site,\r\n // or if the quota has been exceeded.)\r\n this.sanitizeByLength();\r\n this.save();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.descriptor = {\r\n apiCalls: [],\r\n };\r\n this.save();\r\n }\r\n\r\n getPureString(): string {\r\n return localStorage.getItem(this.smartDevToolName)!;\r\n }\r\n}\r\n\r\nexport interface SmartDevToolDescriptor {\r\n apiCalls: SmartDevToolApiCallDescriptor[];\r\n}\r\n\r\nexport interface SmartDevToolApiCallDescriptor {\r\n url: string | null;\r\n responseBody: any;\r\n responseHeader: any;\r\n responseStatus: number;\r\n responseStatusText: string;\r\n responseDate: Date;\r\n requestHeader: any;\r\n requestBody: any;\r\n requestDate: Date;\r\n requestMethod: string;\r\n localStorage: any;\r\n sessionStorage: any;\r\n cookies: any;\r\n}\r\n\r\n@Pipe({\r\n name: 'smartDevToolDatePipe',\r\n})\r\nexport class SmartDevToolDatePipe extends DatePipe implements PipeTransform {\r\n override transform(value: any, format: string = 'yyyy.MM.dd. H:mm:ss'): any {\r\n return super.transform(value, format);\r\n }\r\n}\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 { SmartDevToolDescriptor, SmartDevToolService } from '../smart-dev-tool.service';\r\nimport { SmartDevToolDialogComponent } from './smart-dev-tool-dialog.component';\r\nimport { SmartDialogData, SmartdialogService } from '../../../../projects';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartDevToolDialogService extends SmartdialogService {\r\n update: Subject<void>;\r\n\r\n constructor(dialog: MatDialog, router: Router, public service: SmartDevToolService) {\r\n super(dialog, router);\r\n this.update = this.service.descriptorChanged;\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: SmartDevToolDialogComponent,\r\n };\r\n this.createDialog(dialogData, SmartDevToolDialogComponent);\r\n }\r\n\r\n getData(): SmartDevToolDescriptor {\r\n return this.service.descriptor!;\r\n }\r\n\r\n getPureString(): string {\r\n return this.service.getPureString();\r\n }\r\n\r\n clear(): void {\r\n this.service.clear();\r\n }\r\n}\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartDevToolDescriptor } from '../smart-dev-tool.service';\r\nimport { SmartDevToolDialogService } from './smart-dev-tool-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-smart-dev-tool-dialog',\r\n templateUrl: './smart-dev-tool-dialog.component.html',\r\n styleUrls: ['./smart-dev-tool-dialog.component.css'],\r\n})\r\nexport class SmartDevToolDialogComponent implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n descriptor?: SmartDevToolDescriptor;\r\n\r\n constructor(private service: SmartDevToolDialogService) {\r\n this.descriptor = this.service.getData();\r\n this.service.update.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.descriptor = this.service.getData();\r\n });\r\n this.service.service.clearErrors();\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n }\r\n\r\n clear(): void {\r\n this.service.clear();\r\n }\r\n\r\n getBody(inp: any) {\r\n return this.syntaxHighlight(inp);\r\n }\r\n\r\n syntaxHighlight(json: any) {\r\n if (typeof json != 'string') {\r\n json = JSON.stringify(json, undefined, 2);\r\n }\r\n json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\r\n return json.replace(\r\n /(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g,\r\n function (match: any) {\r\n var cls = 'number';\r\n if (/^\"/.test(match)) {\r\n if (/:$/.test(match)) {\r\n cls = 'key';\r\n } else {\r\n cls = 'string';\r\n }\r\n } else if (/true|false/.test(match)) {\r\n cls = 'boolean';\r\n } else if (/null/.test(match)) {\r\n cls = 'null';\r\n }\r\n return '<span class=\"' + cls + '\">' + match + '</span>';\r\n }\r\n );\r\n }\r\n\r\n copy(): void {\r\n copyToClipboard({\r\n value: this.service.getPureString(),\r\n });\r\n }\r\n\r\n close(): void {\r\n this.service.closeDialog();\r\n }\r\n}\r\n\r\ninterface ICopyToClipboard {\r\n /** HTML reference identifier ```<div id=\"foo\"></div>``` */\r\n target?: string;\r\n /** String value */\r\n value?: string;\r\n /** (Optional) message to display in snackbar on success */\r\n message?: string;\r\n}\r\n\r\nexport const copyToClipboard = async ({ target, message, value }: ICopyToClipboard) => {\r\n try {\r\n let copyValue = '';\r\n\r\n if (!navigator.clipboard) {\r\n throw new Error(\"Browser don't have support for native clipboard.\");\r\n }\r\n\r\n if (target) {\r\n const node = document.querySelector(target);\r\n\r\n if (!node || !node.textContent) {\r\n throw new Error('Element not found');\r\n }\r\n\r\n value = node.textContent;\r\n }\r\n\r\n if (value) {\r\n copyValue = value;\r\n }\r\n\r\n await navigator.clipboard.writeText(copyValue);\r\n } catch (error: any) {\r\n console.error(error.toString());\r\n }\r\n};\r\n","<div class=\"smartDevToolDialogContainer\">\r\n <div class=\"header\">\r\n <h2>Developer tool</h2>\r\n <button mat-icon-button title=\"close\" (click)=\"close()\">\r\n <smart-icon icon=\"close\"></smart-icon>\r\n </button>\r\n </div>\r\n <div class=\"requestsContainer\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel\r\n class=\"requestCard\"\r\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\r\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"titlePanel\">\r\n <span class=\"date\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </span>\r\n <span class=\"urlText\">\r\n {{ apiCall.url }}\r\n </span>\r\n <div [ngClass]=\"apiCall.requestMethod\">\r\n {{ apiCall.requestMethod }}\r\n </div>\r\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div>\r\n <div class=\"table\">\r\n <div class=\"row\">\r\n <div class=\"mainCol heading\">Request</div>\r\n <div class=\"mainCol heading\">Response</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.requestDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status text</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatusText }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Session Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Local Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Cookies</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.sessionStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.localStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.localStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.cookies\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.cookies)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n <div class=\"buttonsContainer\">\r\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\r\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\r\n </div>\r\n</div>\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartDevToolDialogService } from '../smart-dev-tool-dialog/smart-dev-tool-dialog.service';\r\n\r\n@Component({\r\n selector: 'smart-session-dev-tool',\r\n templateUrl: './smart-dev-tool-floating-button.component.html',\r\n styleUrls: ['./smart-dev-tool-floating-button.component.css'],\r\n})\r\nexport class SmartDevToolFloatingButtonComponent implements OnDestroy {\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n adminKeyName: string = 'useDevTool';\r\n isShown: boolean = false;\r\n\r\n errorsCount: string = '';\r\n\r\n constructor(private service: SmartDevToolDialogService) {\r\n this.service.service.newErrorsCountChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n this.errorsCount = `${\r\n this.service.service.newErrorsCount > 0 ? this.service.service.newErrorsCount : ''\r\n }`;\r\n });\r\n\r\n window.addEventListener('storage', (event) => {\r\n if (event.storageArea === localStorage) {\r\n if (Object.keys(localStorage).includes(this.adminKeyName)) {\r\n this.isShown = localStorage.getItem(this.adminKeyName) === 'true';\r\n }\r\n }\r\n });\r\n\r\n this.isShown = localStorage.getItem(this.adminKeyName) === 'true';\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n }\r\n\r\n openDevToolDialog(): void {\r\n this.service.openDialog();\r\n }\r\n}\r\n","<button\r\n *ngIf=\"isShown\"\r\n mat-fab\r\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\r\n class=\"floatingButton\"\r\n extended\r\n title=\"devTool\"\r\n (click)=\"openDevToolDialog()\"\r\n>\r\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\r\n {{ errorsCount }}\r\n</button>\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpEventType,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { catchError, map, Observable, throwError } from \"rxjs\";\r\nimport { SmartDevToolService } from \"./smart-dev-tool.service\";\r\n\r\n@Injectable()\r\nexport class SmartDevToolInterceptor implements HttpInterceptor {\r\n constructor(private service: SmartDevToolService) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n if (!this.service.isActive) {\r\n return next.handle(request);\r\n }\r\n let requestDate = new Date();\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event.type === HttpEventType.Response) {\r\n let responseDate = new Date();\r\n this.service.writeResponse(request, event, requestDate, responseDate);\r\n }\r\n\r\n return event;\r\n })\r\n );\r\n }\r\n}\r\n@Injectable()\r\nexport class SmartDevToolErrorInterceptor implements HttpInterceptor {\r\n constructor(private service: SmartDevToolService) {}\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n if (!this.service.isActive) {\r\n return next.handle(request);\r\n }\r\n let requestDate = new Date();\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status !== 200) {\r\n let responseDate = new Date();\r\n this.service.writeResponse(request, error, requestDate, responseDate);\r\n }\r\n\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\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 let sessionInfoData = this.session.sessionInfoData;\r\n let expiration = new Date(sessionInfoData!.expiration!);\r\n let now = new Date();\r\n\r\n this.timeLeftInSeconds = Math.floor((expiration.getTime() - now.getTime()) / 1000);\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 \"./dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component\";\r\nexport * from \"./dev-tool/smart-dev-tool.service\";\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 { SmartCookieService } from './cookie-service/smart-cookie.service';\r\nimport { SmartDevToolDialogComponent } from './dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component';\r\nimport { SmartDevToolFloatingButtonComponent } from './dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component';\r\nimport {\r\n SmartDevToolInterceptor,\r\n SmartDevToolErrorInterceptor,\r\n} from './dev-tool/smart-dev-tool.interceptor';\r\nimport { SmartDevToolDatePipe } from './dev-tool/smart-dev-tool.service';\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\nimport { SmartIconModule } from '../smart-icon/projects';\r\nimport { SmartdialogModule } from '../smart-dialog/projects';\r\n\r\n@NgModule({\r\n declarations: [\r\n SmartDevToolDialogComponent,\r\n SmartDevToolFloatingButtonComponent,\r\n SmartDevToolDatePipe,\r\n SmartSessionTimerComponent,\r\n ],\r\n imports: [BrowserModule, MatCommonModule, MatExpansionModule, MatButtonModule, SmartIconModule],\r\n exports: [SmartDevToolFloatingButtonComponent, 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 { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: SmartDevToolErrorInterceptor, multi: true },\r\n ],\r\n})\r\nexport class SmartSessionModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData, SmartdialogService } from '../../../projects';\r\n\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, OnDestroy } from '@angular/core';\r\nimport {\r\n UiAction,\r\n UiActionButtonIconPos,\r\n UiActionButtonType,\r\n UiActionDescriptor,\r\n UiActionFeedbackType,\r\n} from '../api';\r\nimport { SmartViewContextService } from '../smart-view-context.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SmartSubject } from '../../smart-subject/projects';\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 actionDescriptorFromDescriptors = this.viewContext.getActionDescriptors()?.get(code);\r\n let isUnkown = false;\r\n\r\n let actionDescriptor: UiActionDescriptor | undefined | null;\r\n if (actionDescriptorFromDescriptors) {\r\n actionDescriptor = JSON.parse(JSON.stringify(actionDescriptorFromDescriptors));\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 && actionDescriptor && !isUnkown) {\r\n actionDescriptor = await this.translateUiActionDescriptor(actionDescriptor);\r\n }\r\n\r\n return actionDescriptor!;\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: UiActionButtonIconPos.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, 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 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 { SmartDialogData, SmartdialogService } from '../../../../smart-dialog/projects';\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\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, OnDestroy, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport {\r\n SmartForm,\r\n SmartformComponent,\r\n SmartFormWidget,\r\n SmartFormWidgetDirection,\r\n SmartFormWidgetType,\r\n SmartValidatorName,\r\n} from '../../../../smart-form/projects';\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\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!: SmartformComponent;\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 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 { SmartDialogData, SmartdialogService } from '../../../../smart-dialog/projects';\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\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, OnDestroy } from '@angular/core';\r\nimport { SmartFileUploaderI18n } from '../../../../smart-form/projects';\r\nimport { UiActionDescriptor } from '../../../api';\r\nimport { UiActionDescriptorService } from '../../ui-action.descriptor.service';\r\nimport { UiActionFileUploadDialogService } from './ui-action-file-upload-dialog.service';\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;\r\n fileFormats?: string[];\r\n isMultiple?: boolean;\r\n\r\n constructor(\r\n 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 { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { SmartDialogData, SmartdialogService } from '../../../../smart-dialog/projects';\r\nimport { SmartSubject } from '../../../../smart-subject/projects';\r\nimport { Subject } from 'rxjs';\r\nimport { UiAction } from '../../../api';\r\nimport { UiActionFileUploadDialogComponent } from './ui-action-file-upload-dialog.component';\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 { 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 { UiActionConfirmDialogService } from './dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service';\r\nimport { UiActionInputDialogService } from './dialogs/ui-action-input-dialog/ui-action-input-dialog.service';\r\nimport { UiActionModel } from './ui-action.model';\r\nimport { UiActionFileUploadDialogService } from './dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service';\r\nimport { SmartSubject } from '../../smart-subject/projects';\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 private confirmDialogService: UiActionConfirmDialogService,\r\n private textFieldDialogService: UiActionInputDialogService,\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.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 }\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) {\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) {\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.UserSelect:\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.MultipleFiles:\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) {\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","import {\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 { UiActionDescriptorService } from './ui-action.descriptor.service';\r\nimport { UiActionModel } from './ui-action.model';\r\nimport { ExecuteUiActionOptions, UiActionService } from './ui-action.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { UiActionButtonType } from '../api/model/uiActionButtonType';\r\nimport { UiActionButtonIconPos } from '../api/model/uiActionButtonIconPos';\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\r\n uiActionModelsWithDescriptions?: UiActionModel[];\r\n\r\n private manager!: UiActionDescriptorService;\r\n private languageChangedSubscription?: Subscription;\r\n\r\n constructor(private service: UiActionService, private inject: Injector) {\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 ngOnChanges(changes: SimpleChanges): void {\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 ngOnDestroy(): void {\r\n this._destroy$.next();\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 this.uiActionModelsWithDescriptions = await Promise.all(\r\n this.uiActionModels.map(async (uiActionModel: UiActionModel) => {\r\n uiActionModel.descriptor = await this.manager.getActionDescriptor(uiActionModel.uiAction);\r\n\r\n return uiActionModel;\r\n })\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 (this.pressedButtonActive) {\r\n this.pressedButtonActive = false;\r\n\r\n this.service.uiActionModel = uiActionModel;\r\n let options: ExecuteUiActionOptions = {\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 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.MiniFab:\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 UiActionButtonIconPos {\r\n return UiActionButtonIconPos;\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.MiniFab ||\r\n uiActionModel.descriptor?.type === UiActionButtonType.Fab\r\n );\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 [ngClass]=\"getType(uiActionModel)\"\r\n class=\"{{ uiActionModel.cssClass }}\"\r\n [color]=\"uiActionModel.descriptor?.color\"\r\n (click)=\"onActionClicked($event, uiActionModel)\"\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 { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { 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 { MessageDialogComponent } from './message-dialog/message-dialog.component';\r\nimport { 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 { SmartformModule } from '../smart-form/projects';\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 ],\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 SmartformModule,\r\n ],\r\n exports: [UiActionToolbarComponent, UiActionInputDialogComponent],\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 ],\r\n})\r\nexport class SmartViewContextModule {}\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\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 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 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 { 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'\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 domain objects\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\n// @ts-ignore\r\nimport { UiAction, UiActionRequest } from '../view-context/projects';\r\n// @ts-ignore\r\n\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\r\nimport { Configuration } from '../configuration';\r\nimport { SmartTreeNode } from '../../smarttree.model';\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 * 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 * 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 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 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 * 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 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 * 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","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\n\r\nexport interface SmarttreeConfiguration {\r\n treeid: string;\r\n viewContextName: 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 viewContextName: string = 'viewContextUuid';\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 ) {\r\n super();\r\n\r\n this.configureTree({\r\n pageName: this.pageName,\r\n treeid: this.treeId,\r\n viewContextName: this.viewContextName,\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.viewContextName = configuration.viewContextName;\r\n this.pageName = configuration.pageName;\r\n }\r\n\r\n override async initialize(): Promise<void> {\r\n if (sessionStorage.getItem(this.viewContextName!)) {\r\n await this.downloadTree().then((rootNodes: SmartTreeNode[]) => {\r\n this.treeFromBackend = rootNodes;\r\n this.syncTree();\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.service.getRootNodes(uuid, this.treeId!).toPromise();\r\n const uiActions = await this.service.getMainActions(uuid, this.treeId!).toPromise();\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.service\r\n .getChildrenNodes(uuid, this.treeId!, parentNode.identifier!)\r\n .toPromise();\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.service\r\n .collapseNode(viewUuid, this.treeId!, treeNode.identifier!)\r\n .toPromise();\r\n treeNode = tempTreeNode!;\r\n } else if (!treeNode?.expanded) {\r\n let tempTreeNode = await this.service\r\n .expandNode(viewUuid, this.treeId!, treeNode?.identifier!)\r\n .toPromise();\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 await this.service\r\n .selectNode(viewUuid, this.treeId!, treeNode!.identifier!)\r\n .toPromise()\r\n .then((updatedTreeNode: SmartTreeNode | undefined) => {\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(\r\n this.viewContext.getUuidOfPage(this.viewContextName!)\r\n );\r\n });\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 await this.cacheActionDesciptors(this.getAllNodes(this.treeFromBackend!));\r\n\r\n if (!this.treeFromBackend) {\r\n throw new Error('There is no treeFromBackend available!');\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 nodes.map((node: SmartTreeNode) => {\r\n node.button = node.actions?.length\r\n ? {\r\n type: SmartTreeNodeButtonType.MENU,\r\n icon: 'more_vert',\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 await Promise.all(\r\n nodes.map(async (node: SmartTreeNode) => {\r\n let newUiActions = node.actions?.filter(\r\n (uiAction: UiAction) => !this.uiActionDescriptors.get(uiAction.code!)\r\n );\r\n if (!newUiActions) {\r\n return;\r\n }\r\n\r\n await Promise.all(\r\n newUiActions!.map(async (uiAction: UiAction) => {\r\n if (!this.uiActionDescriptors.get(uiAction.code!)) {\r\n let descriptor = await this.uiActionDescriptorService.getActionDescriptor(uiAction);\r\n this.uiActionDescriptors.set(uiAction.code!, descriptor);\r\n }\r\n })\r\n );\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.service\r\n .performAction(viewUuid, this.treeId!, nodeId, uiActionRequest)\r\n .toPromise();\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.service\r\n .performMainAction(viewUuid, this.treeId!, uiActionRequest)\r\n .toPromise();\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: [SmarttreeService, SmarttreeGenericService],\r\n})\r\nexport class SmarttreeModule {}\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 index?: number;\r\n stateChanged?: Subject<ExpandableSectionStateChange<T>>;\r\n cssClass?: string;\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 this.componentRef = this.cfService.createComponent(\r\n this.vcRef!,\r\n this.data.customComponent,\r\n new Map<string, any>([\r\n [this.data.inputName ?? '', this.data.data],\r\n ['stateChange', this.stateChange],\r\n ['index', this.data.index],\r\n ['sectionIndex', this.index],\r\n ])\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 >\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 ||\r\n 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 ||\r\n 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 &&\r\n (!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 { 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","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}\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\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","<ng-template #customCardComponent></ng-template>\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","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\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 encoder?: HttpParameterCodec;\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 encoder?: HttpParameterCodec;\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.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","/**\r\n * Grid api\r\n * The grid api is resposible for the grid components that shows a list of item.\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 { GridModel } from '../model/gridModel';\r\n// @ts-ignore\r\nimport { GridUpdateData } from '../model/gridUpdateData';\r\n// @ts-ignore\r\nimport { ViewContextChange } from '../../../../view-context/api/model/viewContextChange';\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 GridService {\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,\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 (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 *\r\n * @param uuid\r\n * @param gridId\r\n * @param rowId\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 expand(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<object>;\r\n public expand(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<object>>;\r\n public expand(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<object>>;\r\n public expand(\r\n uuid: string,\r\n gridId: string,\r\n rowId: 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 (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling expand.');\r\n }\r\n if (gridId === null || gridId === undefined) {\r\n throw new Error('Required parameter gridId was null or undefined when calling expand.');\r\n }\r\n if (rowId === null || rowId === undefined) {\r\n throw new Error('Required parameter rowId was null or undefined when calling expand.');\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 return this.httpClient.post<object>(\r\n `${this.configuration.basePath}/grid/${encodeURIComponent(String(uuid))}/${encodeURIComponent(\r\n String(gridId)\r\n )}/${encodeURIComponent(String(rowId))}/expand`,\r\n null,\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 gridIdentifier\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(\r\n uuid: string,\r\n gridIdentifier: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<GridModel>;\r\n public load(\r\n uuid: string,\r\n gridIdentifier: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<GridModel>>;\r\n public load(\r\n uuid: string,\r\n gridIdentifier: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<GridModel>>;\r\n public load(\r\n uuid: string,\r\n gridIdentifier: 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 (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling load.');\r\n }\r\n if (gridIdentifier === null || gridIdentifier === undefined) {\r\n throw new Error('Required parameter gridIdentifier 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[] = ['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 return this.httpClient.post<GridModel>(\r\n `${this.configuration.basePath}/grid/${encodeURIComponent(String(uuid))}/${encodeURIComponent(\r\n String(gridIdentifier)\r\n )}/load`,\r\n null,\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 gridId\r\n * @param rowId\r\n * @param selected\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 select(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n selected?: boolean,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public select(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n selected?: boolean,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public select(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n selected?: boolean,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public select(\r\n uuid: string,\r\n gridId: string,\r\n rowId: string,\r\n selected?: boolean,\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 (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling select.');\r\n }\r\n if (gridId === null || gridId === undefined) {\r\n throw new Error('Required parameter gridId was null or undefined when calling select.');\r\n }\r\n if (rowId === null || rowId === undefined) {\r\n throw new Error('Required parameter rowId was null or undefined when calling select.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n if (selected !== undefined && selected !== null) {\r\n localVarHeaders = localVarHeaders.set('selected', String(selected));\r\n }\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 return this.httpClient.post<ViewContextChange>(\r\n `${this.configuration.basePath}/grid/${encodeURIComponent(String(uuid))}/${encodeURIComponent(\r\n String(gridId)\r\n )}/${encodeURIComponent(String(rowId))}/select`,\r\n null,\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 gridId\r\n * @param selected\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 selectAll(\r\n uuid: string,\r\n gridId: string,\r\n selected?: boolean,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<ViewContextChange>;\r\n public selectAll(\r\n uuid: string,\r\n gridId: string,\r\n selected?: boolean,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<ViewContextChange>>;\r\n public selectAll(\r\n uuid: string,\r\n gridId: string,\r\n selected?: boolean,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<ViewContextChange>>;\r\n public selectAll(\r\n uuid: string,\r\n gridId: string,\r\n selected?: boolean,\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 (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling selectAll.');\r\n }\r\n if (gridId === null || gridId === undefined) {\r\n throw new Error('Required parameter gridId was null or undefined when calling selectAll.');\r\n }\r\n\r\n let localVarHeaders = this.defaultHeaders;\r\n if (selected !== undefined && selected !== null) {\r\n localVarHeaders = localVarHeaders.set('selected', String(selected));\r\n }\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 return this.httpClient.post<ViewContextChange>(\r\n `${this.configuration.basePath}/grid/${encodeURIComponent(String(uuid))}/${encodeURIComponent(\r\n String(gridId)\r\n )}/select`,\r\n null,\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 gridIdentifier\r\n * @param offset\r\n * @param limit\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 setPage(\r\n uuid: string,\r\n gridIdentifier: string,\r\n offset: string,\r\n limit: string,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: undefined; context?: HttpContext }\r\n ): Observable<any>;\r\n public setPage(\r\n uuid: string,\r\n gridIdentifier: string,\r\n offset: string,\r\n limit: string,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: undefined; context?: HttpContext }\r\n ): Observable<HttpResponse<any>>;\r\n public setPage(\r\n uuid: string,\r\n gridIdentifier: string,\r\n offset: string,\r\n limit: string,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: undefined; context?: HttpContext }\r\n ): Observable<HttpEvent<any>>;\r\n public setPage(\r\n uuid: string,\r\n gridIdentifier: string,\r\n offset: string,\r\n limit: string,\r\n observe: any = 'body',\r\n reportProgress: boolean = false,\r\n options?: { httpHeaderAccept?: undefined; context?: HttpContext }\r\n ): Observable<any> {\r\n if (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling setPage.');\r\n }\r\n if (gridIdentifier === null || gridIdentifier === undefined) {\r\n throw new Error(\r\n 'Required parameter gridIdentifier was null or undefined when calling setPage.'\r\n );\r\n }\r\n if (offset === null || offset === undefined) {\r\n throw new Error('Required parameter offset was null or undefined when calling setPage.');\r\n }\r\n if (limit === null || limit === undefined) {\r\n throw new Error('Required parameter limit was null or undefined when calling setPage.');\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 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 return this.httpClient.post<any>(\r\n `${this.configuration.basePath}/grid/${encodeURIComponent(String(uuid))}/${encodeURIComponent(\r\n String(gridIdentifier)\r\n )}/page/${encodeURIComponent(String(offset))}/${encodeURIComponent(String(limit))}`,\r\n null,\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 gridIdentifier\r\n * @param gridUpdateData\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 update(\r\n uuid: string,\r\n gridIdentifier: string,\r\n gridUpdateData: GridUpdateData,\r\n observe?: 'body',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<GridModel>;\r\n public update(\r\n uuid: string,\r\n gridIdentifier: string,\r\n gridUpdateData: GridUpdateData,\r\n observe?: 'response',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpResponse<GridModel>>;\r\n public update(\r\n uuid: string,\r\n gridIdentifier: string,\r\n gridUpdateData: GridUpdateData,\r\n observe?: 'events',\r\n reportProgress?: boolean,\r\n options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext }\r\n ): Observable<HttpEvent<GridModel>>;\r\n public update(\r\n uuid: string,\r\n gridIdentifier: string,\r\n gridUpdateData: GridUpdateData,\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 (uuid === null || uuid === undefined) {\r\n throw new Error('Required parameter uuid was null or undefined when calling update.');\r\n }\r\n if (gridIdentifier === null || gridIdentifier === undefined) {\r\n throw new Error(\r\n 'Required parameter gridIdentifier was null or undefined when calling update.'\r\n );\r\n }\r\n if (gridUpdateData === null || gridUpdateData === undefined) {\r\n throw new Error(\r\n 'Required parameter gridUpdateData was null or undefined when calling update.'\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 return this.httpClient.post<GridModel>(\r\n `${this.configuration.basePath}/grid/${encodeURIComponent(String(uuid))}/${encodeURIComponent(\r\n String(gridIdentifier)\r\n )}/update`,\r\n gridUpdateData,\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","export * from './grid.service';\r\nimport { GridService } from './grid.service';\r\nexport const APIS = [GridService];\r\n","/**\r\n * Grid api\r\n * The grid api is resposible for the grid components that shows a list of item. \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 interface GridColumnMeta { \r\n label: string;\r\n propertyName: string;\r\n typeClass?: string;\r\n alwaysHidden?: boolean;\r\n alwaysShow?: boolean;\r\n}\r\n\r\n","/**\r\n * Grid api\r\n * The grid api is resposible for the grid components that shows a list of item. \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 * 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 \r\n */\r\nexport interface GridDataAccessConfig { \r\n /**\r\n * The uri of the table data that contains the data of the list.\r\n */\r\n dataUri?: string;\r\n /**\r\n * The path to access the identifier GridRow.data\r\n */\r\n identifierPath?: Array<string>;\r\n apiClass?: string;\r\n kind?: GridDataAccessConfig.KindEnum;\r\n}\r\nexport namespace GridDataAccessConfig {\r\n export type KindEnum = 'TABLEDATA' | 'OBJECTLIST' | 'APIBASED' | 'INVOCATIONS';\r\n export const KindEnum = {\r\n Tabledata: 'TABLEDATA' as KindEnum,\r\n Objectlist: 'OBJECTLIST' as KindEnum,\r\n Apibased: 'APIBASED' as KindEnum,\r\n Invocations: 'INVOCATIONS' as KindEnum\r\n };\r\n}\r\n\r\n\r\n","/**\r\n * Grid api\r\n * The grid api is resposible for the grid components that shows a list of item. \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 type GridSelectionMode = 'none' | 'single' | 'multiple';\r\n\r\nexport const GridSelectionMode = {\r\n None: 'none' as GridSelectionMode,\r\n Single: 'single' as GridSelectionMode,\r\n Multiple: 'multiple' as GridSelectionMode\r\n};\r\n\r\n","/**\r\n * Grid api\r\n * The grid api is resposible for the grid components that shows a list of item. \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 type GridSelectionType = 'row' | 'checkbox';\r\n\r\nexport const GridSelectionType = {\r\n Row: 'row' as GridSelectionType,\r\n Checkbox: 'checkbox' as GridSelectionType\r\n};\r\n\r\n","/**\r\n * Grid api\r\n * The grid api is resposible for the grid components that shows a list of item. \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 { GridSelectionType } from './gridSelectionType';\r\nimport { GridSelectionMode } from './gridSelectionMode';\r\nimport { GridColumnMeta } from './gridColumnMeta';\r\n\r\n\r\n/**\r\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. \r\n */\r\nexport interface GridViewDescriptor { \r\n label?: string;\r\n icon?: string;\r\n kind?: GridViewDescriptor.KindEnum;\r\n columns: Array<GridColumnMeta>;\r\n selectionMode?: GridSelectionMode;\r\n selectionType?: GridSelectionType;\r\n preserveSelectionOnPageChange?: boolean;\r\n}\r\nexport namespace GridViewDescriptor {\r\n export type KindEnum = 'TABLE' | 'EXPANDABLECARDS1';\r\n export const KindEnum = {\r\n Table: 'TABLE' as KindEnum,\r\n Expandablecards1: 'EXPANDABLECARDS1' as KindEnum\r\n };\r\n}\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\nimport { GridService } from './api/grid.service';\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","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 { GridModel, GridRow, GridService, GridUpdateData } from './api/grid-api';\r\nimport { SmartGrid } from './projects';\r\nimport { SmartdialogService } from '../smart-dialog/projects';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmartGridService extends SmartdialogService {\r\n gridModelChanged: Subject<void> = new Subject();\r\n gridModel!: GridModel;\r\n pageSize?: number;\r\n length?: number;\r\n constructor(private api: GridService, dialog: MatDialog, router: Router) {\r\n super(dialog, router);\r\n }\r\n\r\n async load(uuid: string, gridIdentifier: string): Promise<void> {\r\n this.gridModel = await lastValueFrom(this.api.load(uuid, gridIdentifier));\r\n this.length = this.gridModel.totalRowCount;\r\n this.pageSize = this.gridModel.pageSize;\r\n\r\n this.gridModelChanged.next();\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.load(uuid, gridIdentifier);\r\n }\r\n\r\n async sort(smartGrid: SmartGrid, gridUpdateData: GridUpdateData): Promise<void> {\r\n let gridModel = await this.api\r\n .update(smartGrid.gridModel.viewUuid!, smartGrid.gridIdentifier, gridUpdateData)\r\n .toPromise();\r\n if (gridModel) {\r\n this.gridModel = gridModel;\r\n this.gridModelChanged.next();\r\n }\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 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 let res = await this.api.update(uuid, identifier, updateData).toPromise();\r\n if (res) {\r\n this.gridModel = res;\r\n this.gridModelChanged.next();\r\n }\r\n }\r\n\r\n override async closeDialog(): Promise<void> {\r\n this.dialog.closeAll();\r\n }\r\n\r\n override handleAfterClosed(): void {\r\n this.gridModelChanged.next();\r\n }\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AfterViewInit, Component, Inject, OnDestroy, ViewChildren } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } 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, 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}\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\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: SmartDialogData,\r\n private service: SmartGridService\r\n ) {\r\n this.view = Object.assign(data.customComponentInputs.config.view);\r\n this.mapOrderedColumnsToObject();\r\n this.constructForms();\r\n this.getAlwaysShowColumns();\r\n console.log(this.alwaysShowColumns);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\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 ?? false;\r\n });\r\n });\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 this.view?.orderedColumnNames.push('');\r\n this.orderedColumnsAsObject[this.view!.orderedColumnNames.length - 1] = '';\r\n this.constructForms();\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 }\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 this.service.update(config.uuid, config.identifier, updateData);\r\n this.service.closeDialog();\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=\"container\">\r\n <div class=\"example-list\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div\r\n class=\"column-meta-row\"\r\n *ngFor=\"let col of forms\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n >\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\r\n <button mat-icon-button color=\"primary\" (click)=\"addColumn()\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n [disabled]=\"disableSave\"\r\n (click)=\"submit()\"\r\n >\r\n Mentés\r\n </button>\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 type FilterExpressionBoolOperator = 'AND' | 'OR';\r\n\r\nexport const FilterExpressionBoolOperator = {\r\n And: 'AND' as FilterExpressionBoolOperator,\r\n Or: 'OR' as FilterExpressionBoolOperator\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 type FilterExpressionDataType = 'STRING' | 'NUMBER' | 'DATE' | 'DATE_TIME' | 'BOOLEAN';\r\n\r\nexport const FilterExpressionDataType = {\r\n String: 'STRING' as FilterExpressionDataType,\r\n Number: 'NUMBER' as FilterExpressionDataType,\r\n Date: 'DATE' as FilterExpressionDataType,\r\n DateTime: 'DATE_TIME' as FilterExpressionDataType,\r\n Boolean: 'BOOLEAN' as FilterExpressionDataType\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 type FilterExpressionFieldWidgetType = 'TEXT_FIELD' | 'TEXT_FIELD_CHIPS' | 'TEXT_BOX' | 'SELECT' | 'SELECT_MULTIPLE' | 'DATE' | 'TIME' | 'DATE_TIME' | 'CHECK_BOX' | 'RADIO_BUTTON' | 'RANGE';\r\n\r\nexport const FilterExpressionFieldWidgetType = {\r\n TextField: 'TEXT_FIELD' as FilterExpressionFieldWidgetType,\r\n TextFieldChips: 'TEXT_FIELD_CHIPS' as FilterExpressionFieldWidgetType,\r\n TextBox: 'TEXT_BOX' as FilterExpressionFieldWidgetType,\r\n Select: 'SELECT' as FilterExpressionFieldWidgetType,\r\n SelectMultiple: 'SELECT_MULTIPLE' as FilterExpressionFieldWidgetType,\r\n Date: 'DATE' as FilterExpressionFieldWidgetType,\r\n Time: 'TIME' as FilterExpressionFieldWidgetType,\r\n DateTime: 'DATE_TIME' as FilterExpressionFieldWidgetType,\r\n CheckBox: 'CHECK_BOX' as FilterExpressionFieldWidgetType,\r\n RadioButton: 'RADIO_BUTTON' as FilterExpressionFieldWidgetType,\r\n Range: 'RANGE' as FilterExpressionFieldWidgetType\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 type FilterExpressionOperation = 'EXPRESSION' | 'EQUAL' | 'NOT_EQUAL' | 'LESS' | 'LESS_OR_EQUAL' | 'GREATER' | 'GREATER_OR_EQUAL' | 'LIKE' | 'NOT_LIKE' | 'BETWEEN' | 'NOT_BETWEEN' | 'IS_EMPTY' | 'IS_NOT_EMPTY' | 'EXISTS' | 'NOT_EXISTS' | 'IN' | 'NOT_IN';\r\n\r\nexport const FilterExpressionOperation = {\r\n Expression: 'EXPRESSION' as FilterExpressionOperation,\r\n Equal: 'EQUAL' as FilterExpressionOperation,\r\n NotEqual: 'NOT_EQUAL' as FilterExpressionOperation,\r\n Less: 'LESS' as FilterExpressionOperation,\r\n LessOrEqual: 'LESS_OR_EQUAL' as FilterExpressionOperation,\r\n Greater: 'GREATER' as FilterExpressionOperation,\r\n GreaterOrEqual: 'GREATER_OR_EQUAL' as FilterExpressionOperation,\r\n Like: 'LIKE' as FilterExpressionOperation,\r\n NotLike: 'NOT_LIKE' as FilterExpressionOperation,\r\n Between: 'BETWEEN' as FilterExpressionOperation,\r\n NotBetween: 'NOT_BETWEEN' as FilterExpressionOperation,\r\n IsEmpty: 'IS_EMPTY' as FilterExpressionOperation,\r\n IsNotEmpty: 'IS_NOT_EMPTY' as FilterExpressionOperation,\r\n Exists: 'EXISTS' as FilterExpressionOperation,\r\n NotExists: 'NOT_EXISTS' as FilterExpressionOperation,\r\n In: 'IN' as FilterExpressionOperation,\r\n NotIn: 'NOT_IN' as FilterExpressionOperation\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?: 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\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 * This mapping binds the objects of the domain with the entities of the search index. By default all the properties are included in the search index. But we can have positive and negative exceptions to specify the exact attributes to include. \r\n */\r\nexport interface SearchIndexPropertyDefinitionData { \r\n propertyPath?: string;\r\n include?: 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\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?: FilterExpressionBuilderGroup.BuilderGroupKindEnum;\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 namespace FilterExpressionBuilderGroup {\r\n export type BuilderGroupKindEnum = 'DIPLAY' | 'BRACKET' | 'EXIST';\r\n export const BuilderGroupKindEnum = {\r\n Diplay: 'DIPLAY' as BuilderGroupKindEnum,\r\n Bracket: 'BRACKET' as BuilderGroupKindEnum,\r\n Exist: 'EXIST' as BuilderGroupKindEnum\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 ): 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.DateTime) {\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 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.TextField,\r\n this.filterExpressionField.possibleValues\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.TextField,\r\n this.filterExpressionField.possibleValues\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 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\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 { SmartformModule } from '../smart-form/projects';\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, SmartformModule, 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","import { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n ComponentRef,\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 { PageEvent } from '@angular/material/paginator';\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 { Subject, takeUntil } from 'rxjs';\r\nimport {\r\n GridColumnMeta,\r\n GridRow,\r\n GridSelectionMode,\r\n GridSelectionType,\r\n GridUpdateData,\r\n} from './api/grid-api';\r\nimport { GridUiActionType, SmartGrid, SmartLayoutDef } from './models/model';\r\nimport { SmartGridService } from './smart-grid.service';\r\nimport { TableLayoutDefinerComponent } from './components/table-layout-definer/table-layout-definer.component';\r\nimport { ExpandableSection } from '../smart-expandable-section/projects';\r\nimport { ComponentFactoryService } from '../component-factory-service/projects';\r\nimport { FilterExpressionOrderBy } from '../smart-filter/projects';\r\nimport { SmartDialogData } from '../smart-dialog/projects';\r\nimport { UiAction } from '../view-context/api';\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 _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 // 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 values: any;\r\n gridTable!: SmartTable<any>;\r\n\r\n pageSizeOptions: number[] = [2, 3, 4, 10];\r\n\r\n selectionChanges: Subject<any> = new Subject();\r\n\r\n uiActionDescriptors: Map<string, any> = new Map();\r\n\r\n afterViewInitExecuted: boolean = false;\r\n isBlocked: boolean = true;\r\n\r\n constructor(private service: SmartGridService, private cfService: ComponentFactoryService) {\r\n this.service.gridModelChanged.subscribe(() => {\r\n this.smartGrid!!.gridModel = this.service.gridModel;\r\n if (this.service.gridModel.pageSizeOptions) {\r\n this.pageSizeOptions = this.service.gridModel.pageSizeOptions;\r\n }\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 }\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 this.render();\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 await this.service.load(this.uuid, this.smartGrid!.gridIdentifier);\r\n this.length = this.service.gridModel.totalRowCount;\r\n this.pageSize = this.service.gridModel.pageSize ?? 5;\r\n }\r\n\r\n private async render(): Promise<void> {\r\n this.length = this.service.length;\r\n this.pageSize = this.service.pageSize;\r\n // this.smartGrid!.gridModel = this.service.gridModel;\r\n this.service.gridModel = this.smartGrid!.gridModel;\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 }\r\n this.isBlocked = false;\r\n }\r\n\r\n private async renderTable(): Promise<void> {\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 };\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 async constructHeader(): Promise<SmartTableHeader[]> {\r\n let header: SmartTableHeader[] = [];\r\n\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: any) => {\r\n let descriptor =\r\n await this.smartGrid!.uiActionDescriptorService.getActionDescriptor(uiAction);\r\n this.uiActionDescriptors.set(uiAction.code!, descriptor);\r\n })\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n await Promise.all(\r\n this.smartGrid!.gridModel.view!.orderedColumnNames.map(async (propertyName: string) => {\r\n let descColumn: any = this.smartGrid!.gridModel.view!.descriptor!.columns!.find(\r\n (colDescriptor: GridColumnMeta) => colDescriptor.propertyName === propertyName\r\n );\r\n let customTableHeader = this.smartGrid!.tableConfig?.customSmartTableHeaders?.find(\r\n (header: SmartTableHeader) => header.propertyName === propertyName\r\n );\r\n if (descColumn) {\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: string;\r\n\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 let properties = customTableHeader?.properties;\r\n if (!properties) {\r\n if (descColumn.typeClass === 'java.time.OffsetDateTime') {\r\n properties = {\r\n type: SmartTableHeaderPropertyType.DATETIME,\r\n dateFormat: 'yyyy.MM.dd H:mm',\r\n };\r\n } else if (descColumn.typeClass === 'java.time.OffsetDate') {\r\n properties = {\r\n type: SmartTableHeaderPropertyType.DATETIME,\r\n dateFormat: 'yyyy.MM.dd',\r\n };\r\n }\r\n }\r\n\r\n header.push({\r\n ...customTableHeader,\r\n label: label,\r\n propertyName: 'data.' + descColumn.propertyName,\r\n order,\r\n orderNumber,\r\n properties,\r\n });\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 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: 'more_vert',\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 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 _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: any): string {\r\n let desc = this.uiActionDescriptors.get(uiAction.code);\r\n return desc ? desc.title : uiAction.code;\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 private async onSelect(rowId: any): Promise<void> {\r\n this.isBlocked = true;\r\n\r\n const row = this.service.gridModel.page.rows?.find((gridRow: GridRow) => gridRow.id === rowId);\r\n const viewContextChange = await this.service.select(this.smartGrid!, row!);\r\n this.smartGrid!.viewContextService.handleChanges(viewContextChange.changes);\r\n\r\n this.refresh();\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 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 },\r\n },\r\n };\r\n this.service.createDialog(dialogData, TableLayoutDefinerComponent);\r\n }\r\n}\r\n","<div *ngIf=\"smartGrid\" class=\"smartGrid-container\">\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 <div class=\"smart-grid-edit-button\" *ngIf=\"smartGrid.showEditColumns\">\r\n <button (click)=\"editColumns()\" mat-raised-button color=\"primary\">\r\n Oszlopok testreszabása\r\n </button>\r\n </div>\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 ></app-smart-grid-card>\r\n </div>\r\n </div>\r\n\r\n <mat-paginator\r\n *ngIf=\"smartGrid.paginator\"\r\n #paginator\r\n [length]=\"length\"\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","/*\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 { SmartformModule } from '../smart-form/projects';\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 SmartExpandableSectionModule,\r\n DragDropModule,\r\n SmartformModule,\r\n MatSelectModule,\r\n ],\r\n exports: [SmartGridComponent],\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 * 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 type ComponentType = 'container' | 'form' | 'widget';\r\n\r\nexport const ComponentType = {\r\n Container: 'container' as ComponentType,\r\n Form: 'form' as ComponentType,\r\n Widget: 'widget' as ComponentType\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 type ComponentWidgetType = 'grid' | 'filter' | 'tree';\r\n\r\nexport const ComponentWidgetType = {\r\n Grid: 'grid' as ComponentWidgetType,\r\n Filter: 'filter' as ComponentWidgetType,\r\n Tree: 'tree' as ComponentWidgetType\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 type LayoutDirection = 'horizontal' | 'vertical';\r\n\r\nexport const LayoutDirection = {\r\n Horizontal: 'horizontal' as LayoutDirection,\r\n Vertical: 'vertical' as LayoutDirection\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 { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ComponentType, ComponentWidgetType, SmartComponentLayoutDefinition } 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 { ExpandableSection } from '../smart-expandable-section/projects';\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 OnInit, OnChanges {\r\n @Input() smartComponentLayout?: SmartComponentLayoutDefinition;\r\n\r\n uuid?: string;\r\n\r\n @ViewChild('form') formChild?: SmartformComponent;\r\n smartForm?: SmartForm;\r\n\r\n @ViewChild('grid') gridChild?: SmartGridComponent;\r\n smartGrid?: SmartGrid;\r\n\r\n @ViewChild('filter') filterChild?: SmartFilterComponent;\r\n smartFilter?: SmartFilter;\r\n\r\n parent?: any; //SmartComponent<any>\r\n treeService?: SmarttreeGenericService;\r\n\r\n expandableSection?: ExpandableSection<SmartComponentLayoutDefinition>;\r\n\r\n constructor(private layoutService: SmartformLayoutDefinitionService) {}\r\n\r\n ngOnInit(): void {\r\n if (this.smartComponentLayout) {\r\n this.setUp();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.smartComponentLayout = changes['smartComponentLayout'].currentValue;\r\n\r\n if (this.smartComponentLayout) {\r\n this.setUp();\r\n }\r\n }\r\n\r\n private setUp(): void {\r\n this.parent = this.smartComponentLayout?.parentComponent as any;\r\n this.uuid = this.parent.uuid;\r\n this.treeService = this.parent.smartTreeService;\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 this.constructFilter();\r\n } else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.Tree) {\r\n this.constructTree();\r\n }\r\n }\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 data,\r\n inputName: 'smartComponentLayout',\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: SmartFormWidgetDirection.COL,\r\n componentModel: this.parent?.model,\r\n widgets,\r\n };\r\n\r\n this.parent?.addForm(\r\n // unique identifier for the form\r\n `form_${this.makeid(5)}`,\r\n this.smartForm,\r\n this.formChild\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?.gridIdentifier!,\r\n gridModel: {\r\n page: {},\r\n },\r\n layoutDef: SmartLayoutDef.TABLE,\r\n };\r\n this.smartGrid = this.parent?.addGrid(\r\n this.smartGrid,\r\n {\r\n rowUiActionType: GridUiActionType.POPUP_MENU,\r\n },\r\n false,\r\n this.gridChild\r\n );\r\n }\r\n\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.filterChild\r\n );\r\n }\r\n\r\n constructTree(): void {\r\n this.parent.setUpDefaultTree(this.smartComponentLayout?.widget?.treeIdentifier);\r\n this.treeService?.initialize();\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 [smartComponentLayout]=\"layout\"\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree [treeService]=\"treeService!\"></smart-tree>\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 { SmartformModule } from '../smart-form/smartform.module';\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\n\r\n@NgModule({\r\n declarations: [SmartComponentLayoutComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n SmartformModule,\r\n SmartGridModule,\r\n SmartExpandableSectionModule,\r\n SmarttreeModule,\r\n ],\r\n exports: [SmartComponentLayoutComponent],\r\n providers: [],\r\n})\r\nexport class SmartComponentLayoutModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { SmartSessionModule } from './session/smart-session.module';\r\nimport { SmartFileUploaderComponent } from './smart-client/smart-file-uploader/smart-file-uploader.component';\r\nimport { SmartNgClientService } from './smart-ng-client.service';\r\nimport { SmartViewContextModule } from './view-context/smart-view-context.module';\r\nimport { SmarttreeModule } from './smart-tree/smarttree.module';\r\nimport { SmartformModule } from './smart-form/smartform.module';\r\nimport { SmartExpandableSectionModule } from './smart-expandable-section/smart-expandable-section.module';\r\nimport { SmartIconModule } from './smart-icon/smart-icon.module';\r\nimport { SmartComponentLayoutModule } from './smart-component-layout/smart-component-layout.module';\r\nimport { ComponentFactoryServiceModule } from './component-factory-service/projects';\r\n\r\n@NgModule({\r\n declarations: [SmartFileUploaderComponent],\r\n imports: [\r\n BrowserModule,\r\n MatCommonModule,\r\n ComponentFactoryServiceModule,\r\n SmartSessionModule,\r\n SmartViewContextModule,\r\n SmartformModule,\r\n SmartExpandableSectionModule,\r\n SmartIconModule,\r\n SmartComponentLayoutModule,\r\n ],\r\n exports: [\r\n SmartSessionModule,\r\n SmartViewContextModule,\r\n SmartFileUploaderComponent,\r\n SmarttreeModule,\r\n ],\r\n providers: [SmartNgClientService],\r\n})\r\nexport class SmartNgClientModule {}\r\n","import { SmartComponentLayoutDefinition } from './api';\r\n\r\nexport class SmartComponentLayoutUtility {\r\n public static setParent(layout: SmartComponentLayoutDefinition, parent: any): void {\r\n layout.parentComponent = parent;\r\n layout.components?.forEach((l) => this.setParent(l, parent));\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 { 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","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 { SmartformModule } from '../smart-form/projects';\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 SmartformModule,\r\n ],\r\n exports: [SmartNavbarComponent],\r\n})\r\nexport class SmartNavbarModule {}\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","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","/*\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\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","/*\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\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\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","i2","i3","i4","i1","DefaultService","i2.SmartIconService","i5","i1.SmartIconComponent","i1.SmartFormService","i2.ComponentFactoryService","i8.SmartIconComponent","i12","i15.SmartfileuploaderComponent","i17.SortableWidgetComponent","i19.SmartMonthPickerComponent","i21","i22.TrackCapsDirective","i23","i2.SmartformwidgetComponent","i1.ComponentFactoryService","i5.SmartIconComponent","i6","i7","i8.SmartDateTimePipe","i8.SmartDatePipe","i8.SmartTimePipe","i3.SmartIconComponent","i7.SmartDateTimePipe","i7.SmartDatePipe","i7.SmartTimePipe","i2.SmartIconComponent","i3.SmartformComponent","i4.SmarttableComponent","i1.SmartSessionService","i2.SmartViewContextService","i1.SmartCookieService","i3.SmartDevToolService","i1.SmartDevToolDialogService","i6.SmartDevToolDatePipe","i1.SmartDevToolService","i1.SmartSessionTimerService","catchError","i3.SmartViewContextService","i1.SmartViewContextErrorDialogService","i2.SmartNavigationService","i2.UiActionDescriptorService","i1.UiActionConfirmDialogService","i4.SmartIconComponent","i1.UiActionInputDialogService","i5.SmartformComponent","i1.UiActionFileUploadDialogService","i5.SmartfileuploaderComponent","i2.UiActionInputDialogService","i3.UiActionFileUploadDialogService","i1.UiActionService","i1.UiActionDescriptorService","i2.SmartfileuploaderComponent","i1.UiActionToolbarComponent","i1.GridService","i1.SmartGridService","i1.SmartFilterService","i2.SmartFilterSimpleFieldComponent","i2.SmartFilterSimpleComponent","i4.ExpandableSectionComponent","i5.SmartGridCardComponent","i1.SmartformLayoutDefinitionService","i2.ExpandableSectionComponent","i4.SmartGridComponent","i5.SmartTreeComponent","i2.SmartformComponent","i1.SmartNavigationService"],"mappings":"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"}
|