@smartbit4all/ng-client 5.0.20 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +386 -386
- package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +17 -0
- package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +35 -0
- package/esm2022/lib/component-factory-service/projects.mjs +6 -0
- package/esm2022/lib/session/api/api/api.mjs +4 -0
- package/esm2022/lib/session/api/api/session.service.mjs +306 -0
- package/esm2022/lib/session/api/configuration.mjs +91 -0
- package/esm2022/lib/session/api/encoder.mjs +19 -0
- package/esm2022/lib/session/api/index.mjs +3 -0
- package/esm2022/lib/session/api/model/accountInfo.mjs +13 -0
- package/esm2022/lib/session/api/model/apiError.mjs +13 -0
- package/esm2022/lib/session/api/model/authenticationProviderData.mjs +13 -0
- package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
- package/esm2022/lib/session/api/model/models.mjs +9 -0
- package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +13 -0
- package/esm2022/lib/session/api/model/session.mjs +2 -0
- package/esm2022/lib/session/api/model/sessionInfoData.mjs +2 -0
- package/esm2022/lib/session/api/model/userActivityLog.mjs +13 -0
- package/esm2022/lib/session/api/param.mjs +2 -0
- package/esm2022/lib/session/api/variables.mjs +9 -0
- package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
- package/esm2022/lib/session/projects.mjs +13 -0
- package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +2 -0
- package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +214 -0
- package/esm2022/lib/session/smart-default-error-ui.service.mjs +134 -0
- package/esm2022/lib/session/smart-error-catching.interceptor.mjs +109 -0
- package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +44 -0
- package/esm2022/lib/session/smart-session-handler.service.mjs +7 -0
- package/esm2022/lib/session/smart-session.module.mjs +58 -0
- package/esm2022/lib/session/smart-session.service.mjs +284 -0
- package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +39 -0
- package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +63 -0
- package/esm2022/lib/shared/projects.mjs +4 -0
- package/esm2022/lib/shared/shared.module.mjs +19 -0
- package/esm2022/lib/shared/smart-tooltip.directive.mjs +58 -0
- package/esm2022/lib/shared/smarttable.date-pipe.mjs +43 -0
- package/esm2022/lib/smart-client/projects.mjs +4 -0
- package/esm2022/lib/smart-client/smart-component-api-client.mjs +928 -0
- package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +79 -0
- package/esm2022/lib/smart-client/smart.component.mjs +88 -0
- package/esm2022/lib/smart-client/smart.service.mjs +71 -0
- package/esm2022/lib/smart-component-layout/api/api/api.mjs +4 -0
- package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +133 -0
- package/esm2022/lib/smart-component-layout/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-component-layout/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-component-layout/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-component-layout/api/index.mjs +7 -0
- package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +18 -0
- package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +22 -0
- package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +17 -0
- package/esm2022/lib/smart-component-layout/api/model/models.mjs +9 -0
- package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +17 -0
- package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/param.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/variables.mjs +9 -0
- package/esm2022/lib/smart-component-layout/projects.mjs +8 -0
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +169 -0
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +433 -0
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +57 -0
- package/esm2022/lib/smart-diagram/api/api/api.mjs +4 -0
- package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +141 -0
- package/esm2022/lib/smart-diagram/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-diagram/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-diagram/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-diagram/api/index.mjs +7 -0
- package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +13 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +13 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +18 -0
- package/esm2022/lib/smart-diagram/api/model/labelText.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/models.mjs +10 -0
- package/esm2022/lib/smart-diagram/api/param.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/variables.mjs +9 -0
- package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +312 -0
- package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +359 -0
- package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +40 -0
- package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +10 -0
- package/esm2022/lib/smart-diagram/projects.mjs +5 -0
- package/esm2022/lib/smart-dialog/projects.mjs +8 -0
- package/esm2022/lib/smart-dialog/smartdialog.component.mjs +54 -0
- package/esm2022/lib/smart-dialog/smartdialog.model.mjs +16 -0
- package/esm2022/lib/smart-dialog/smartdialog.module.mjs +46 -0
- package/esm2022/lib/smart-dialog/smartdialog.service.mjs +86 -0
- package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +101 -0
- package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +12 -0
- package/esm2022/lib/smart-expandable-section/projects.mjs +8 -0
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +57 -0
- package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +17 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +8 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +20 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +28 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +32 -0
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +18 -0
- package/esm2022/lib/smart-filter/api/filter/model/model.mjs +16 -0
- package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +2 -0
- package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +13 -0
- package/esm2022/lib/smart-filter/api/value/model/value.mjs +13 -0
- package/esm2022/lib/smart-filter/projects.mjs +9 -0
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -0
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +166 -0
- package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -0
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
- package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -0
- package/esm2022/lib/smart-filter/smart-filter.model.mjs +13 -0
- package/esm2022/lib/smart-filter/smart-filter.module.mjs +33 -0
- package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +198 -0
- package/esm2022/lib/smart-filter-editor/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-filter-editor/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +17 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +13 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +8 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +7 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +20 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +28 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +32 -0
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +19 -0
- package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +17 -0
- package/esm2022/lib/smart-filter-editor/api/param.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/api/variables.mjs +9 -0
- package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +15 -0
- package/esm2022/lib/smart-filter-editor/project.mjs +8 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +73 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +40 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +294 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +2 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +69 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +63 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +24 -0
- package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +57 -0
- package/esm2022/lib/smart-form/api/api/api.mjs +4 -0
- package/esm2022/lib/smart-form/api/api/default.service.mjs +133 -0
- package/esm2022/lib/smart-form/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-form/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-form/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-form/api/index.mjs +7 -0
- package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +13 -0
- package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +2 -0
- package/esm2022/lib/smart-form/api/model/imageProperties.mjs +2 -0
- package/esm2022/lib/smart-form/api/model/models.mjs +19 -0
- package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +2 -0
- package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +13 -0
- package/esm2022/lib/smart-form/api/model/recordingUploaderProperties.mjs +7 -0
- package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +14 -0
- package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +22 -0
- package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +17 -0
- package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +49 -0
- package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +2 -0
- package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
- package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +2 -0
- package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +18 -0
- package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +13 -0
- package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +13 -0
- package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +13 -0
- package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +21 -0
- package/esm2022/lib/smart-form/api/param.mjs +2 -0
- package/esm2022/lib/smart-form/api/variables.mjs +9 -0
- package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +20 -0
- package/esm2022/lib/smart-form/projects.mjs +18 -0
- package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +753 -0
- package/esm2022/lib/smart-form/services/smartform.service.mjs +683 -0
- package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +15 -0
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +193 -0
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +2 -0
- package/esm2022/lib/smart-form/smartform.component.mjs +190 -0
- package/esm2022/lib/smart-form/smartform.form-model.mjs +2 -0
- package/esm2022/lib/smart-form/smartform.model.mjs +38 -0
- package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +179 -0
- package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +83 -0
- package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +170 -0
- package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +151 -0
- package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +35 -0
- package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +79 -0
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +1038 -0
- package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +78 -0
- package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -0
- package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +98 -0
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +2 -0
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +18 -0
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +19 -0
- package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +13 -0
- package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +2 -0
- package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +2 -0
- package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +13 -0
- package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +2 -0
- package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +2 -0
- package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +54 -0
- package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +40 -0
- package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +40 -0
- package/esm2022/lib/smart-generic-pages/projects.mjs +13 -0
- package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +80 -0
- package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +116 -0
- package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +77 -0
- package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +93 -0
- package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +4 -0
- package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +514 -0
- package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
- package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +91 -0
- package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +19 -0
- package/esm2022/lib/smart-grid/api/grid-api/index.mjs +7 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +17 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +20 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +13 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +18 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +17 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +8 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +15 -0
- package/esm2022/lib/smart-grid/api/grid-api/param.mjs +2 -0
- package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +9 -0
- package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -0
- package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +47 -0
- package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +72 -0
- package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +200 -0
- package/esm2022/lib/smart-grid/models/model.mjs +29 -0
- package/esm2022/lib/smart-grid/projects.mjs +9 -0
- package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +65 -0
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +1035 -0
- package/esm2022/lib/smart-grid/smart-grid.module.mjs +103 -0
- package/esm2022/lib/smart-grid/smart-grid.service.mjs +92 -0
- package/esm2022/lib/smart-icon/projects.mjs +9 -0
- package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +95 -0
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +40 -0
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +37 -0
- package/esm2022/lib/smart-icon/smart-icon.module.mjs +26 -0
- package/esm2022/lib/smart-icon/smart-icon.service.mjs +93 -0
- package/esm2022/lib/smart-map/abstract-map.mjs +112 -0
- package/esm2022/lib/smart-map/api/api/api.mjs +4 -0
- package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +312 -0
- package/esm2022/lib/smart-map/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-map/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-map/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-map/api/index.mjs +7 -0
- package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +13 -0
- package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +17 -0
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +19 -0
- package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +18 -0
- package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +17 -0
- package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +18 -0
- package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +17 -0
- package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/models.mjs +21 -0
- package/esm2022/lib/smart-map/api/param.mjs +2 -0
- package/esm2022/lib/smart-map/api/variables.mjs +9 -0
- package/esm2022/lib/smart-map/api-default/api-default.mjs +2 -0
- package/esm2022/lib/smart-map/impl/google-map.mjs +224 -0
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +422 -0
- package/esm2022/lib/smart-map/projects.mjs +9 -0
- package/esm2022/lib/smart-map/smart-map.component.mjs +222 -0
- package/esm2022/lib/smart-map/smart-map.module.mjs +22 -0
- package/esm2022/lib/smart-map/smart-map.types.mjs +2 -0
- package/esm2022/lib/smart-navbar/projects.mjs +8 -0
- package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +61 -0
- package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +6 -0
- package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +63 -0
- package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +14 -0
- package/esm2022/lib/smart-navigation/projects.mjs +6 -0
- package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +2 -0
- package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +18 -0
- package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +27 -0
- package/esm2022/lib/smart-ng-client.module.mjs +130 -0
- package/esm2022/lib/smart-ng-client.service.mjs +19 -0
- package/esm2022/lib/smart-subject/projects.mjs +5 -0
- package/esm2022/lib/smart-subject/smart-subject.mjs +21 -0
- package/esm2022/lib/smart-tab-group/projects.mjs +5 -0
- package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +22 -0
- package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +43 -0
- package/esm2022/lib/smart-table/components/loading/loading.component.mjs +15 -0
- package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +52 -0
- package/esm2022/lib/smart-table/projects.mjs +8 -0
- package/esm2022/lib/smart-table/smarttable.component.mjs +98 -0
- package/esm2022/lib/smart-table/smarttable.model.mjs +177 -0
- package/esm2022/lib/smart-table/smarttable.module.mjs +109 -0
- package/esm2022/lib/smart-table/smarttable.service.mjs +14 -0
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +42 -0
- package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +23 -0
- package/esm2022/lib/smart-table/tables/table.mjs +573 -0
- package/esm2022/lib/smart-tree/projects.mjs +9 -0
- package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +289 -0
- package/esm2022/lib/smart-tree/smarttree.component.mjs +187 -0
- package/esm2022/lib/smart-tree/smarttree.model.mjs +7 -0
- package/esm2022/lib/smart-tree/smarttree.module.mjs +60 -0
- package/esm2022/lib/smart-tree/smarttree.node.model.mjs +6 -0
- package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +2 -0
- package/esm2022/lib/smart-tree/smarttree.service.mjs +47 -0
- package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1190 -0
- package/esm2022/lib/smart-tree/tree-api/configuration.mjs +91 -0
- package/esm2022/lib/smart-tree/tree-api/encoder.mjs +19 -0
- package/esm2022/lib/smart-tree/tree-api/param.mjs +2 -0
- package/esm2022/lib/smart-tree/tree-api/variables.mjs +9 -0
- package/esm2022/lib/smart-validation/named-validator.service.mjs +115 -0
- package/esm2022/lib/smart-validation/projects.mjs +4 -0
- package/esm2022/lib/smart-validation/smart-validation.module.mjs +24 -0
- package/esm2022/lib/smart-validation/smart-validation.types.mjs +4 -0
- package/esm2022/lib/view-context/api/api/api.mjs +4 -0
- package/esm2022/lib/view-context/api/api/view.service.mjs +903 -0
- package/esm2022/lib/view-context/api/api-default/binaryData.mjs +2 -0
- package/esm2022/lib/view-context/api/api-default/invocationError.mjs +2 -0
- package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +2 -0
- package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +2 -0
- package/esm2022/lib/view-context/api/api.module.mjs +40 -0
- package/esm2022/lib/view-context/api/configuration.mjs +91 -0
- package/esm2022/lib/view-context/api/encoder.mjs +19 -0
- package/esm2022/lib/view-context/api/index.mjs +7 -0
- package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +2 -0
- package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +13 -0
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +13 -0
- package/esm2022/lib/view-context/api/model/closeResult.mjs +18 -0
- package/esm2022/lib/view-context/api/model/componentConstraint.mjs +2 -0
- package/esm2022/lib/view-context/api/model/componentModel.mjs +2 -0
- package/esm2022/lib/view-context/api/model/componentModelChange.mjs +13 -0
- package/esm2022/lib/view-context/api/model/dataChange.mjs +2 -0
- package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +2 -0
- package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +21 -0
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +13 -0
- package/esm2022/lib/view-context/api/model/downloadedFile.mjs +13 -0
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +21 -0
- package/esm2022/lib/view-context/api/model/imageResource.mjs +8 -0
- package/esm2022/lib/view-context/api/model/link.mjs +20 -0
- package/esm2022/lib/view-context/api/model/messageData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/messageOption.mjs +2 -0
- package/esm2022/lib/view-context/api/model/messageOptionType.mjs +18 -0
- package/esm2022/lib/view-context/api/model/messageResult.mjs +2 -0
- package/esm2022/lib/view-context/api/model/messageTextType.mjs +17 -0
- package/esm2022/lib/view-context/api/model/messageType.mjs +19 -0
- package/esm2022/lib/view-context/api/model/models.mjs +63 -0
- package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +13 -0
- package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +2 -0
- package/esm2022/lib/view-context/api/model/namedValidator.mjs +19 -0
- package/esm2022/lib/view-context/api/model/openPendingData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +2 -0
- package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +2 -0
- package/esm2022/lib/view-context/api/model/serverRequestType.mjs +24 -0
- package/esm2022/lib/view-context/api/model/smartLinkData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +8 -0
- package/esm2022/lib/view-context/api/model/statisticRecord.mjs +13 -0
- package/esm2022/lib/view-context/api/model/style.mjs +13 -0
- package/esm2022/lib/view-context/api/model/uiAction.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +27 -0
- package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +13 -0
- package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +20 -0
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +21 -0
- package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +13 -0
- package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +13 -0
- package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +22 -0
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +18 -0
- package/esm2022/lib/view-context/api/model/uploadedFile.mjs +2 -0
- package/esm2022/lib/view-context/api/model/valueSet.mjs +2 -0
- package/esm2022/lib/view-context/api/model/view.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewApiError.mjs +13 -0
- package/esm2022/lib/view-context/api/model/viewConstraint.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewContext.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewContextChange.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +8 -0
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +13 -0
- package/esm2022/lib/view-context/api/model/viewState.mjs +22 -0
- package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
- package/esm2022/lib/view-context/api/model/viewType.mjs +18 -0
- package/esm2022/lib/view-context/api/param.mjs +2 -0
- package/esm2022/lib/view-context/api/variables.mjs +9 -0
- package/esm2022/lib/view-context/default-view-components.token.mjs +9 -0
- package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +20 -0
- package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +93 -0
- package/esm2022/lib/view-context/projects.mjs +29 -0
- package/esm2022/lib/view-context/property-definition-data.mjs +2 -0
- package/esm2022/lib/view-context/reuse-router-slot.token.mjs +4 -0
- package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +55 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +199 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +72 -0
- package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +21 -0
- package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +198 -0
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +95 -0
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +134 -0
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +12 -0
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +256 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +77 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +54 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +60 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +106 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +60 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +132 -0
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +58 -0
- package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +33 -0
- package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +215 -0
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +319 -0
- package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +185 -0
- package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
- package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +235 -0
- package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +77 -0
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +35 -0
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +74 -0
- package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +63 -0
- package/esm2022/lib/view-context/smart-view-context.model.mjs +2 -0
- package/esm2022/lib/view-context/smart-view-context.module.mjs +397 -0
- package/esm2022/lib/view-context/smart-view-context.service.mjs +1043 -0
- package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +41 -0
- package/esm2022/lib/view-context/utility/componentLibrary.mjs +9 -0
- package/esm2022/lib/view-context/utility/smart-object-utility.mjs +44 -0
- package/esm2022/lib/view-context/utility/smart-style-utility.mjs +68 -0
- package/esm2022/lib/view-context/value-api/api/api.mjs +4 -0
- package/esm2022/lib/view-context/value-api/api/value.service.mjs +138 -0
- package/esm2022/lib/view-context/value-api/api.module.mjs +40 -0
- package/esm2022/lib/view-context/value-api/configuration.mjs +91 -0
- package/esm2022/lib/view-context/value-api/encoder.mjs +19 -0
- package/esm2022/lib/view-context/value-api/index.mjs +7 -0
- package/esm2022/lib/view-context/value-api/model/genericValue.mjs +13 -0
- package/esm2022/lib/view-context/value-api/model/models.mjs +11 -0
- package/esm2022/lib/view-context/value-api/model/value.mjs +13 -0
- package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +2 -0
- package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +2 -0
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +2 -0
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +13 -0
- package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +24 -0
- package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +2 -0
- package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +2 -0
- package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +19 -0
- package/esm2022/lib/view-context/value-api/param.mjs +2 -0
- package/esm2022/lib/view-context/value-api/variables.mjs +9 -0
- package/esm2022/lib/view-context/view-handler-resolution.mjs +21 -0
- package/esm2022/lib/view-context/view-op.mjs +41 -0
- package/esm2022/lib/view-context/view-slot-resolution.mjs +28 -0
- package/esm2022/projects.mjs +30 -0
- package/esm2022/smartbit4all-ng-client.mjs +5 -0
- package/fesm2022/smartbit4all-ng-client.mjs +10266 -4870
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/session/api/model/accountInfo.d.ts +2 -0
- package/lib/session/projects.d.ts +3 -0
- package/lib/session/smart-backend-bootstrap.config.d.ts +65 -0
- package/lib/session/smart-backend-bootstrap.service.d.ts +55 -0
- package/lib/session/smart-default-error-ui.service.d.ts +90 -0
- package/lib/session/smart-error-catching.interceptor.d.ts +4 -1
- package/lib/session/smart-session-handler.service.d.ts +2 -1
- package/lib/session/smart-session.service.d.ts +16 -1
- package/lib/session/smart-timer/smart-session-timer.component.d.ts +3 -1
- package/lib/smart-client/projects.d.ts +0 -1
- package/lib/smart-client/smart-component-api-client.d.ts +45 -19
- package/lib/smart-client/smart.component.d.ts +7 -5
- package/lib/smart-client/smart.service.d.ts +4 -5
- package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +3 -1
- package/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.d.ts +19 -0
- package/lib/smart-component-layout/api/model/models.d.ts +3 -0
- package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +2 -0
- package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +6 -0
- package/{src/lib/smart-chart/smart-chart/api/model/chartData.d.ts → lib/smart-component-layout/api/model/toolbarDirection.d.ts} +5 -6
- package/{src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.d.ts → lib/smart-component-layout/api/model/toolbarProperties.d.ts} +7 -7
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +9 -1
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +31 -5
- package/lib/smart-component-layout/smart-component-layout.module.d.ts +4 -1
- package/lib/smart-diagram/api/api/api.d.ts +3 -0
- package/lib/smart-diagram/api/api/diagramService.service.d.ts +36 -0
- package/lib/smart-diagram/api/encoder.d.ts +11 -0
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramColor.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataContainer.d.ts +2 -3
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataItem.d.ts +3 -3
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataSet.d.ts +4 -4
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDescriptor.d.ts +13 -9
- package/{src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.d.ts → lib/smart-diagram/api/model/diagramModel.d.ts} +5 -4
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramShape.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/drawTime.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/labelText.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/models.d.ts +1 -2
- package/lib/smart-diagram/component/default-smart-diagram-options.provider.d.ts +33 -0
- package/lib/smart-diagram/component/smart-diagram.component.d.ts +43 -0
- package/lib/smart-diagram/component/smart-diagram.module.d.ts +11 -0
- package/lib/smart-diagram/component/smart-diagram.util.d.ts +1 -0
- package/lib/smart-diagram/projects.d.ts +4 -0
- package/lib/smart-dialog/smartdialog.model.d.ts +2 -1
- package/lib/smart-dialog/smartdialog.module.d.ts +1 -2
- package/lib/smart-dialog/smartdialog.service.d.ts +2 -4
- package/lib/smart-expandable-section/expandable-section.component.d.ts +3 -1
- package/lib/smart-expandable-section/expandable-section.model.d.ts +1 -0
- package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +2 -1
- package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +4 -2
- package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +11 -1
- package/{src/lib/smart-chart/smart-chart/api/model/chartOrientation.d.ts → lib/smart-form/api/model/dateFieldProperties.d.ts} +6 -7
- package/lib/smart-form/api/model/fileUploaderProperties.d.ts +20 -0
- package/lib/smart-form/api/model/imageProperties.d.ts +15 -0
- package/lib/smart-form/api/model/models.d.ts +7 -0
- package/lib/smart-form/api/model/multiFileUploaderProperties.d.ts +19 -0
- package/lib/smart-form/api/model/recordingUploaderProperties.d.ts +20 -0
- package/lib/smart-form/api/model/selectionDefinition.d.ts +17 -0
- package/lib/smart-form/api/model/smartFormWidgetType.d.ts +4 -1
- package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +5 -0
- package/lib/smart-form/api/model/textBoxProperties.d.ts +15 -0
- package/{src/lib/smart-chart/smart-chart/api/model/chartValue.d.ts → lib/smart-form/api/model/textFieldProperties.d.ts} +4 -6
- package/lib/smart-form/api/model/valueChangeMode.d.ts +3 -2
- package/lib/smart-form/projects.d.ts +3 -0
- package/lib/smart-form/services/smartform.layout-definition.service.d.ts +6 -2
- package/lib/smart-form/services/smartform.service.d.ts +7 -6
- package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +19 -3
- package/lib/smart-form/smartform.component.d.ts +3 -2
- package/lib/smart-form/smartform.form-model.d.ts +160 -11
- package/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.d.ts +54 -0
- package/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.d.ts +57 -0
- package/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.d.ts +50 -0
- package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +49 -18
- package/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.d.ts +21 -0
- package/lib/smart-generic-pages/api/platform/acl/model/aCL.d.ts +18 -0
- package/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.d.ts +54 -0
- package/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.d.ts +19 -0
- package/lib/smart-generic-pages/api/platform/acl/model/subject.d.ts +24 -0
- package/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.d.ts +2 -0
- package/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.d.ts +27 -0
- package/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.d.ts +14 -0
- package/lib/smart-generic-pages/api/platform/validation/model/validationItem.d.ts +17 -0
- package/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.d.ts +18 -0
- package/lib/smart-generic-pages/generic-page/generic-page.component.d.ts +12 -0
- package/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.d.ts +11 -0
- package/lib/smart-generic-pages/no-permission-page/no-permission-page.component.d.ts +11 -0
- package/lib/smart-generic-pages/projects.d.ts +9 -0
- package/lib/smart-generic-pages/search-page/search-page.component.d.ts +25 -0
- package/lib/smart-generic-pages/smart-generic-pages.module.d.ts +19 -0
- package/lib/smart-generic-pages/subject-selector/subject-selector.component.d.ts +17 -0
- package/lib/smart-generic-pages/validation-result-page/validation-result-page.component.d.ts +25 -0
- package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +27 -6
- package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +4 -0
- package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +2 -2
- package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +2 -0
- package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +6 -0
- package/lib/smart-grid/components/generic-component/expanded-row-renderer.component.d.ts +21 -0
- package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +1 -0
- package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +1 -0
- package/lib/smart-grid/smart-grid-toolbar-util.d.ts +1 -0
- package/lib/smart-grid/smart-grid.component.d.ts +21 -6
- package/lib/smart-grid/smart-grid.module.d.ts +20 -21
- package/lib/smart-grid/smart-grid.service.d.ts +2 -0
- package/lib/smart-icon/projects.d.ts +2 -0
- package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +15 -5
- package/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.d.ts +12 -0
- package/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.d.ts +14 -0
- package/lib/smart-icon/smart-icon.module.d.ts +8 -4
- package/lib/smart-icon/smart-icon.service.d.ts +1 -0
- package/lib/smart-map/abstract-map.d.ts +1 -1
- package/lib/smart-map/api/model/geoMapItem.d.ts +2 -0
- package/lib/smart-navigation/smart-navigation.interface.d.ts +1 -7
- package/lib/smart-navigation/smart-navigation.service.d.ts +2 -8
- package/lib/smart-ng-client.module.d.ts +3 -4
- package/lib/smart-tab-group/projects.d.ts +0 -4
- package/lib/smart-tab-group/smart-tab-group.module.d.ts +5 -8
- package/lib/smart-table/tables/material-table/material-table.component.d.ts +2 -3
- package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +1 -2
- package/lib/smart-table/tables/table.d.ts +5 -5
- package/lib/smart-tree/smarttree-generic.service.d.ts +0 -1
- package/lib/smart-tree/smarttree.component.d.ts +1 -0
- package/lib/smart-tree/smarttree.model.d.ts +1 -0
- package/lib/smart-tree/smarttree.service.d.ts +1 -0
- package/lib/view-context/api/api/view.service.d.ts +14 -13
- package/lib/view-context/api/api-default/binaryData.d.ts +2 -0
- package/lib/view-context/api/api-default/invocationError.d.ts +2 -0
- package/lib/view-context/api/api-default/invocationRequest.d.ts +2 -0
- package/lib/view-context/api/api-default/invocationRun.d.ts +2 -0
- package/lib/view-context/api/model/backgroundProcessInfo.d.ts +25 -0
- package/lib/view-context/api/model/badgeDescriptor.d.ts +15 -0
- package/lib/view-context/api/model/componentModel.d.ts +5 -0
- package/lib/view-context/api/model/deviceInfo.d.ts +4 -0
- package/lib/view-context/api/model/iconPosition.d.ts +2 -1
- package/lib/view-context/api/model/imageResource.d.ts +2 -0
- package/lib/view-context/api/model/messageOption.d.ts +2 -0
- package/lib/view-context/api/model/models.d.ts +9 -0
- package/lib/view-context/api/model/multiComboBoxElement.d.ts +16 -0
- package/lib/view-context/api/model/multiComboBoxModel.d.ts +16 -0
- package/lib/view-context/api/model/namedValidator.d.ts +1 -0
- package/lib/view-context/api/model/smartLinkData.d.ts +8 -0
- package/lib/view-context/api/model/smartLinkMigrationStatus.d.ts +39 -0
- package/lib/view-context/api/model/uiAction.d.ts +8 -0
- package/lib/view-context/api/model/uiActionDefinition.d.ts +19 -0
- package/lib/view-context/api/model/uiActionDefinitionEntry.d.ts +18 -0
- package/lib/view-context/api/model/uiActionDescriptor.d.ts +6 -0
- package/lib/view-context/api/model/uiActionRequest.d.ts +3 -0
- package/lib/view-context/api/model/uiActionSchedule.d.ts +14 -0
- package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +4 -0
- package/lib/view-context/api/model/uploadWidgetType.d.ts +16 -0
- package/lib/view-context/api/model/uploadedFile.d.ts +2 -1
- package/lib/view-context/api/model/view.d.ts +8 -0
- package/lib/view-context/api/model/viewContext.d.ts +1 -0
- package/lib/view-context/api/model/viewData.d.ts +3 -0
- package/lib/view-context/api/model/viewEventHandler.d.ts +7 -1
- package/lib/view-context/api/model/viewPlaceholder.d.ts +1 -0
- package/lib/view-context/default-view-components.token.d.ts +18 -0
- package/lib/view-context/message-dialog/message-dialog.component.d.ts +8 -2
- package/lib/view-context/projects.d.ts +10 -0
- package/lib/view-context/reuse-router-slot.token.d.ts +3 -0
- package/lib/view-context/smart-embedded-slot.directive.d.ts +20 -0
- package/lib/view-context/smart-ui-action/components/menu/menu.component.d.ts +42 -0
- package/lib/view-context/smart-ui-action/components/menu/menu.constants.d.ts +3 -0
- package/lib/view-context/smart-ui-action/components/menu/menu.service.d.ts +8 -0
- package/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.d.ts +30 -0
- package/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.d.ts +32 -0
- package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.d.ts +40 -0
- package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.d.ts +3 -0
- package/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.d.ts +43 -0
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +6 -4
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +1 -2
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +10 -11
- package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +3 -3
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +1 -2
- package/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.d.ts +13 -0
- package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +49 -0
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +28 -3
- package/lib/view-context/smart-ui-action/ui-action.service.d.ts +4 -3
- package/lib/view-context/smart-view-context-dialog.service.d.ts +1 -3
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +2 -0
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +1 -2
- package/lib/view-context/smart-view-context.interceptor.d.ts +5 -1
- package/lib/view-context/smart-view-context.model.d.ts +7 -2
- package/lib/view-context/smart-view-context.module.d.ts +74 -58
- package/lib/view-context/smart-view-context.service.d.ts +59 -9
- package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +3 -1
- package/lib/view-context/view-handler-resolution.d.ts +11 -0
- package/lib/view-context/view-op.d.ts +18 -0
- package/lib/view-context/view-slot-resolution.d.ts +15 -0
- package/package.json +18 -19
- package/projects.d.ts +2 -0
- package/smartbit4all-ng-client-6.0.0.tgz +0 -0
- package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs +0 -686
- package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +0 -1
- package/lib/smart-client/smart-authentication.service.d.ts +0 -15
- package/lib/smart-tab-group/smart-tab-group.component.d.ts +0 -21
- package/lib/smart-tab-group/smart-tab-group.service.d.ts +0 -6
- package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +0 -14
- package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +0 -29
- package/lib/smart-tab-group/tabTile.model.d.ts +0 -8
- package/smartbit4all-ng-client-5.0.20.tgz +0 -0
- package/src/lib/smart-chart/index.d.ts +0 -5
- package/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.d.ts +0 -37
- package/src/lib/smart-chart/smart-chart/api/model/chartType.d.ts +0 -21
- package/src/lib/smart-chart/smart-chart/api/model/models.d.ts +0 -6
- package/src/lib/smart-chart/smart-chart/default-chart-options.provider.d.ts +0 -31
- package/src/lib/smart-chart/smart-chart/smart-chart.component.d.ts +0 -33
- package/src/lib/smart-chart/smart-chart/smart-chart.module.d.ts +0 -11
- package/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.d.ts +0 -1
- package/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.d.ts +0 -21
- package/src/lib/smart-chart/smart-chart-projects.d.ts +0 -5
- package/src/lib/smart-chart/view-context/utility/componentLibrary.d.ts +0 -6
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/api.module.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/configuration.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/index.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/param.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/variables.d.ts +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export var SmartFormWidgetWidth;
|
|
2
|
+
(function (SmartFormWidgetWidth) {
|
|
3
|
+
SmartFormWidgetWidth[SmartFormWidgetWidth["SMALL"] = 150] = "SMALL";
|
|
4
|
+
SmartFormWidgetWidth[SmartFormWidgetWidth["MEDIUM"] = 250] = "MEDIUM";
|
|
5
|
+
SmartFormWidgetWidth[SmartFormWidgetWidth["LARGE"] = 350] = "LARGE";
|
|
6
|
+
SmartFormWidgetWidth[SmartFormWidgetWidth["EXTRA_LARGE"] = 450] = "EXTRA_LARGE";
|
|
7
|
+
})(SmartFormWidgetWidth || (SmartFormWidgetWidth = {}));
|
|
8
|
+
export var SmartFormTextFieldButtonIconPosition;
|
|
9
|
+
(function (SmartFormTextFieldButtonIconPosition) {
|
|
10
|
+
SmartFormTextFieldButtonIconPosition[SmartFormTextFieldButtonIconPosition["PRE"] = 0] = "PRE";
|
|
11
|
+
SmartFormTextFieldButtonIconPosition[SmartFormTextFieldButtonIconPosition["POST"] = 1] = "POST";
|
|
12
|
+
})(SmartFormTextFieldButtonIconPosition || (SmartFormTextFieldButtonIconPosition = {}));
|
|
13
|
+
export var ToggleLabelPosition;
|
|
14
|
+
(function (ToggleLabelPosition) {
|
|
15
|
+
ToggleLabelPosition["BEFORE"] = "before";
|
|
16
|
+
ToggleLabelPosition["AFTER"] = "after";
|
|
17
|
+
})(ToggleLabelPosition || (ToggleLabelPosition = {}));
|
|
18
|
+
export var SmartValidatorName;
|
|
19
|
+
(function (SmartValidatorName) {
|
|
20
|
+
// Angular validators
|
|
21
|
+
SmartValidatorName["required"] = "required";
|
|
22
|
+
SmartValidatorName["requiredTrue"] = "required";
|
|
23
|
+
SmartValidatorName["email"] = "email";
|
|
24
|
+
SmartValidatorName["max"] = "max";
|
|
25
|
+
SmartValidatorName["maxLength"] = "maxlength";
|
|
26
|
+
SmartValidatorName["min"] = "min";
|
|
27
|
+
SmartValidatorName["minLength"] = "minlength";
|
|
28
|
+
SmartValidatorName["pattern"] = "pattern";
|
|
29
|
+
SmartValidatorName["passwordValidator"] = "passwordValidator";
|
|
30
|
+
// Custom validators
|
|
31
|
+
SmartValidatorName["fieldMatchingValidator"] = "fieldsMatch";
|
|
32
|
+
})(SmartValidatorName || (SmartValidatorName = {}));
|
|
33
|
+
export var SmartWidgetHintPosition;
|
|
34
|
+
(function (SmartWidgetHintPosition) {
|
|
35
|
+
SmartWidgetHintPosition[SmartWidgetHintPosition["UNDER_LABEL"] = 0] = "UNDER_LABEL";
|
|
36
|
+
SmartWidgetHintPosition[SmartWidgetHintPosition["UNDER_INPUT"] = 1] = "UNDER_INPUT";
|
|
37
|
+
})(SmartWidgetHintPosition || (SmartWidgetHintPosition = {}));
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9zbWFydGZvcm0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkJBLE1BQU0sQ0FBTixJQUFZLG9CQUtYO0FBTEQsV0FBWSxvQkFBb0I7SUFDOUIsbUVBQVcsQ0FBQTtJQUNYLHFFQUFZLENBQUE7SUFDWixtRUFBVyxDQUFBO0lBQ1gsK0VBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFLL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxvQ0FHWDtBQUhELFdBQVksb0NBQW9DO0lBQzlDLDZGQUFHLENBQUE7SUFDSCwrRkFBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLG9DQUFvQyxLQUFwQyxvQ0FBb0MsUUFHL0M7QUFXRCxNQUFNLENBQU4sSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLHdDQUFpQixDQUFBO0lBQ2pCLHNDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHOUI7QUEwQkQsTUFBTSxDQUFOLElBQVksa0JBYVg7QUFiRCxXQUFZLGtCQUFrQjtJQUM1QixxQkFBcUI7SUFDckIsMkNBQXFCLENBQUE7SUFDckIsK0NBQXlCLENBQUE7SUFDekIscUNBQWUsQ0FBQTtJQUNmLGlDQUFXLENBQUE7SUFDWCw2Q0FBdUIsQ0FBQTtJQUN2QixpQ0FBVyxDQUFBO0lBQ1gsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7SUFDbkIsNkRBQXVDLENBQUE7SUFDdkMsb0JBQW9CO0lBQ3BCLDREQUFzQyxDQUFBO0FBQ3hDLENBQUMsRUFiVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBYTdCO0FBNENELE1BQU0sQ0FBTixJQUFZLHVCQUdYO0FBSEQsV0FBWSx1QkFBdUI7SUFDakMsbUZBQVcsQ0FBQTtJQUNYLG1GQUFXLENBQUE7QUFDYixDQUFDLEVBSFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUdsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXQgfSBmcm9tIFwiLi9zbWFydGZvcm0uZm9ybS1tb2RlbFwiO1xuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uIH0gZnJvbSBcIi4vYXBpXCI7XG5pbXBvcnQgeyBTbWFydFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC5tb2RlbFwiO1xuaW1wb3J0IHsgTmFtZWRWYWxpZGF0b3IgfSBmcm9tIFwiLi4vdmlldy1jb250ZXh0L2FwaVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBraW5kOiBcImJhc2ljXCIgfCBcInNlbGVjdGlvblwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Rm9ybUNvbXBvbmVudENvbnN0cmFpbnQge1xuICAvKipcbiAgICogVGhlIGRhdGEgbmFtZSB0byBpZGVudGlmeSB0aGUgcmVsYXRlZCBjb21wb25lbnQgb3IgY29tcG9uZW5ldHMuIElmIGl0IGlzIGEgcGF0aCB0aGUgZm9ybWF0IGlzIHRoZSBmb2xsb3dpbmcgLSBkYXRhU2hlZXQuZmllbGQuXG4gICAqL1xuICBkYXRhTmFtZT86IHN0cmluZztcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIG1hbmRhdG9yeT86IGJvb2xlYW47XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBtYXg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG5hbWVkVmFsaWRhdG9ycz86IEFycmF5PE5hbWVkVmFsaWRhdG9yPjtcbn1cblxuZXhwb3J0IGVudW0gU21hcnRGb3JtV2lkZ2V0V2lkdGgge1xuICBTTUFMTCA9IDE1MCxcbiAgTUVESVVNID0gMjUwLFxuICBMQVJHRSA9IDM1MCxcbiAgRVhUUkFfTEFSR0UgPSA0NTAsXG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbkljb25Qb3NpdGlvbiB7XG4gIFBSRSxcbiAgUE9TVCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydEZvcm1UZXh0RmllbGRCdXR0b24ge1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uUG9zaXRpb24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b25JY29uUG9zaXRpb247XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjYWxsYmFjazogKHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4pID0+IGFueTtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGljb25Db2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVG9nZ2xlTGFiZWxQb3NpdGlvbiB7XG4gIEJFRk9SRSA9IFwiYmVmb3JlXCIsXG4gIEFGVEVSID0gXCJhZnRlclwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMge1xuICBpbnZhbGlkRmllbGROYW1lczogc3RyaW5nW107XG4gIGludmFsaWRGaWVsZEtleXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SW5kaWNhdG9yIHtcbiAgaW5kaWNhdGVQcm9wZXJ0eTogc3RyaW5nO1xuICBpbmRpY2F0b3JMZW5ndGg6IG51bWJlcjtcbiAgaW5kaWNhdG9yU3RhdHVzTGFiZWxzOiBzdHJpbmdbXTtcbiAgb3JpZ2luYWxJbmRpY2F0b3JTdGF0dXNMYWJlbHM/OiBzdHJpbmdbXTtcbiAgaW5kaWNhdG9yVmFsdWU6IG51bWJlcjtcbiAgY2hhbmdlSW5kaWNhdG9yU3RhdHVzOiAodmFsdWVUb0NoZWNrOiBzdHJpbmcpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydFZhbGlkYXRvciB7XG4gIHZhbGlkYXRvcjogVmFsaWRhdG9yRm47XG4gIGlzQ3VzdG9tPzogYm9vbGVhbjtcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBvcmlnaW5hbEVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgbmFtZTogU21hcnRWYWxpZGF0b3JOYW1lIHwgc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uQ29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0VmFsaWRhdG9yTmFtZSB7XG4gIC8vIEFuZ3VsYXIgdmFsaWRhdG9yc1xuICByZXF1aXJlZCA9IFwicmVxdWlyZWRcIixcbiAgcmVxdWlyZWRUcnVlID0gXCJyZXF1aXJlZFwiLFxuICBlbWFpbCA9IFwiZW1haWxcIixcbiAgbWF4ID0gXCJtYXhcIixcbiAgbWF4TGVuZ3RoID0gXCJtYXhsZW5ndGhcIixcbiAgbWluID0gXCJtaW5cIixcbiAgbWluTGVuZ3RoID0gXCJtaW5sZW5ndGhcIixcbiAgcGF0dGVybiA9IFwicGF0dGVyblwiLFxuICBwYXNzd29yZFZhbGlkYXRvciA9IFwicGFzc3dvcmRWYWxpZGF0b3JcIixcbiAgLy8gQ3VzdG9tIHZhbGlkYXRvcnNcbiAgZmllbGRNYXRjaGluZ1ZhbGlkYXRvciA9IFwiZmllbGRzTWF0Y2hcIixcbn1cblxuLyoqXG4gKiBEeW5hbWljIGZvcm1zIGNhbiBiZSBlYXNpbHkgZGVmaW5lZCB3aXRoIHRoaXMgaW50ZXJmYWNlLlxuICpcbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBmb3JtXG4gKiBAcGFyYW0gd2lkZ2V0cyBUaGUgd2lkZ2V0cyBwcmVzZW50ZWQgaW4gdGhlIGZvcm1cbiAqXG4gKiBAYXV0aG9yIFJvbGFuZCBGw6lueWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtIHtcbiAgbmFtZT86IHN0cmluZztcbiAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XG4gIHdpZGdldHM6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W107XG4gIGNvbXBvbmVudE1vZGVsPzogYW55O1xuICB1c2VPbkJsdXJFdmVudD86IGJvb2xlYW47XG4gIHVzZU9uVmFsdWVDaGFuZ2VFdmVudD86IGJvb2xlYW47XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIHN1Ym1pdE9uRW50ZXI/OiAoKSA9PiB2b2lkO1xuICBsYWJlbFRoZW1lPzogc3RyaW5nO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgdHJhbnNsYXRlU2VydmljZT86IFNtYXJ0VHJhbnNsYXRlU2VydmljZTtcbiAgaW52YWxpZEZpZWxkcz86IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWUge1xuICAvKipcbiAgICogVGhlIHVyaSB0aGUgb2JqZWN0IG9mIHRoZSB2YWx1ZSBjYW4gYmUgYWNjZXNzZWQuXG4gICAqL1xuICBvYmplY3RVcmk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsIGNvZGUgb2YgdGhlIHNlbGVjdGFibGUgdmFsdWUuXG4gICAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0cmluZyB2YWx1ZSB0aGF0IGNhbiBiZSBzaG93biBvbiB1aS4gSXQgbWlnaHQgYmUgYSBsYWJlbCBjb2RlIG9yIHRoZSBleGFjdCBsYWJlbC5cbiAgICovXG4gIGRpc3BsYXlWYWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvZGUgb2YgaWNvbiB0aGF0IGNhbiBiZSBhc3NvY2lhdGllZCB3aXRoIHRoZSB2YWx1ZS4gSXQgbWF5IGJlIGEgdXJpLlxuICAgKi9cbiAgaWNvbkNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0V2lkZ2V0SGludFBvc2l0aW9uIHtcbiAgVU5ERVJfTEFCRUwsXG4gIFVOREVSX0lOUFVULFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0V2lkZ2V0SGludENvbmZpZyB7XG4gIHBvc2l0aW9uOiBTbWFydFdpZGdldEhpbnRQb3NpdGlvbjtcbn1cbiJdfQ==
|
package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { SmartStyleUtility } from '../../../../view-context/utility/smart-style-utility';
|
|
3
|
+
import { IconPosition, UiActionButtonType, } from '../../../../view-context/api/model/models';
|
|
4
|
+
import { COMPONENT_LIBRARY, ComponentLibrary, } from '../../../../view-context/utility/componentLibrary';
|
|
5
|
+
import { UploadWidgetUtils } from '../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.utils';
|
|
6
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "../../../../smart-icon/smart-icon/smart-icon.component";
|
|
10
|
+
import * as i3 from "../../../../view-context/smart-ui-action/ui-action-toolbar.component";
|
|
11
|
+
import * as i4 from "../../../../view-context/smart-ui-action/ui-action-button/ui-action-button.component";
|
|
12
|
+
import * as i5 from "../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.component";
|
|
13
|
+
import * as i6 from "../../../../view-context/utility/componentLibrary";
|
|
14
|
+
export class SmartFileEditorComponent {
|
|
15
|
+
get widgetInstance() {
|
|
16
|
+
return this._widgetInstance;
|
|
17
|
+
}
|
|
18
|
+
set widgetInstance(value) {
|
|
19
|
+
if (value) {
|
|
20
|
+
this.clone(value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
constructor(cdr, compLib) {
|
|
24
|
+
this.cdr = cdr;
|
|
25
|
+
this.compLib = compLib;
|
|
26
|
+
this.uploadFilesEvent = new EventEmitter();
|
|
27
|
+
// ---- ControlValueAccessor implementation ----
|
|
28
|
+
this.onChange = (value) => { };
|
|
29
|
+
this.onTouched = () => { };
|
|
30
|
+
this.isDisabled = false;
|
|
31
|
+
}
|
|
32
|
+
clone(value) {
|
|
33
|
+
this._widgetInstance =
|
|
34
|
+
typeof structuredClone === 'function'
|
|
35
|
+
? structuredClone(value)
|
|
36
|
+
: JSON.parse(JSON.stringify(value));
|
|
37
|
+
if (!this._widgetInstance.fileUploaderProperties?.undoIcon) {
|
|
38
|
+
this._widgetInstance.fileUploaderProperties = {
|
|
39
|
+
...(this._widgetInstance.fileUploaderProperties ?? {}),
|
|
40
|
+
undoIcon: { identifier: 'undo' },
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
this.cdr.markForCheck();
|
|
44
|
+
}
|
|
45
|
+
upload(event) {
|
|
46
|
+
if (!event.files || event.files.length == 0) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const props = this._widgetInstance.fileUploaderProperties;
|
|
50
|
+
const uiAction = this.fileToChange
|
|
51
|
+
? props.changeAction ?? props.uploadAction
|
|
52
|
+
: props.uploadAction;
|
|
53
|
+
this.uploadFilesEvent.emit({
|
|
54
|
+
files: event.files,
|
|
55
|
+
uiAction: uiAction,
|
|
56
|
+
uploadDescriptor: event.uploadDescriptor,
|
|
57
|
+
});
|
|
58
|
+
this.onChange(this._widgetInstance.value);
|
|
59
|
+
this.fileToChange = undefined;
|
|
60
|
+
}
|
|
61
|
+
change(file) {
|
|
62
|
+
this.fileToChange = file;
|
|
63
|
+
}
|
|
64
|
+
cancelChange() {
|
|
65
|
+
this.fileToChange = undefined;
|
|
66
|
+
}
|
|
67
|
+
isTypeSupported(value) {
|
|
68
|
+
return !!(value && !Array.isArray(value) && 'dataUri' in value);
|
|
69
|
+
}
|
|
70
|
+
formatSize(bytes) {
|
|
71
|
+
return UploadWidgetUtils.formatSize(bytes);
|
|
72
|
+
}
|
|
73
|
+
// ---- Smart form widget functions ----
|
|
74
|
+
getLabelNgClass() {
|
|
75
|
+
return this._widgetInstance?.labelStyle
|
|
76
|
+
? SmartStyleUtility.getNgClasses(this._widgetInstance.labelStyle)
|
|
77
|
+
: {};
|
|
78
|
+
}
|
|
79
|
+
getLabelStyle() {
|
|
80
|
+
return this._widgetInstance?.labelStyle
|
|
81
|
+
? SmartStyleUtility.getNgStyles(this._widgetInstance.labelStyle)
|
|
82
|
+
: {};
|
|
83
|
+
}
|
|
84
|
+
getNgClass() {
|
|
85
|
+
return SmartStyleUtility.getNgClasses(this._widgetInstance?.style);
|
|
86
|
+
}
|
|
87
|
+
getStyle() {
|
|
88
|
+
if (!this._widgetInstance.style) {
|
|
89
|
+
this._widgetInstance.style = {
|
|
90
|
+
classesToAdd: [],
|
|
91
|
+
classesToRemove: [],
|
|
92
|
+
style: {},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (!('width' in this._widgetInstance.style.style) && 'minWidth' in this._widgetInstance) {
|
|
96
|
+
this._widgetInstance.style.style['width'] = `${this._widgetInstance.minWidth}px`;
|
|
97
|
+
}
|
|
98
|
+
return SmartStyleUtility.getNgStyles(this._widgetInstance.style);
|
|
99
|
+
}
|
|
100
|
+
writeValue(value) {
|
|
101
|
+
if (value !== undefined && this._widgetInstance) {
|
|
102
|
+
this._widgetInstance.value = value;
|
|
103
|
+
this.cdr.markForCheck();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
registerOnChange(fn) {
|
|
107
|
+
this.onChange = fn;
|
|
108
|
+
}
|
|
109
|
+
registerOnTouched(fn) {
|
|
110
|
+
this.onTouched = fn;
|
|
111
|
+
}
|
|
112
|
+
setDisabledState(isDisabled) {
|
|
113
|
+
this.isDisabled = isDisabled;
|
|
114
|
+
}
|
|
115
|
+
// ---- UI getters ----
|
|
116
|
+
get fileIcon() {
|
|
117
|
+
return this.compLib == ComponentLibrary.PRIMENG ? 'file' : 'insert_drive_file';
|
|
118
|
+
}
|
|
119
|
+
get changeButton() {
|
|
120
|
+
var props = this._widgetInstance.fileUploaderProperties;
|
|
121
|
+
var baseAction = props.changeAction ?? props.uploadAction;
|
|
122
|
+
var changeDescriptor = {
|
|
123
|
+
...(baseAction.descriptor ?? {}),
|
|
124
|
+
title: '',
|
|
125
|
+
color: 'primary',
|
|
126
|
+
type: UiActionButtonType.ICON,
|
|
127
|
+
icon: this.compLib === ComponentLibrary.PRIMENG ? 'sync' : 'sync_alt',
|
|
128
|
+
iconPosition: IconPosition.PRE,
|
|
129
|
+
};
|
|
130
|
+
return changeDescriptor;
|
|
131
|
+
}
|
|
132
|
+
get removeButton() {
|
|
133
|
+
var changeButton = this.changeButton;
|
|
134
|
+
return {
|
|
135
|
+
title: '',
|
|
136
|
+
color: changeButton.color,
|
|
137
|
+
type: changeButton.type,
|
|
138
|
+
iconResource: this._widgetInstance.fileUploaderProperties.undoIcon,
|
|
139
|
+
iconPosition: IconPosition.PRE,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
get errorIcon() {
|
|
143
|
+
return this.compLib == ComponentLibrary.PRIMENG ? 'exclamation-circle' : 'error';
|
|
144
|
+
}
|
|
145
|
+
get toolbarComponent() {
|
|
146
|
+
return this.toolbar;
|
|
147
|
+
}
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFileEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartFileEditorComponent, selector: "smart-file-editor", inputs: { widgetInstance: "widgetInstance" }, outputs: { uploadFilesEvent: "uploadFilesEvent" }, providers: [
|
|
150
|
+
{
|
|
151
|
+
provide: NG_VALUE_ACCESSOR,
|
|
152
|
+
useExisting: forwardRef(() => SmartFileEditorComponent),
|
|
153
|
+
multi: true,
|
|
154
|
+
},
|
|
155
|
+
], viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], ngImport: i0, template: "@if (widgetInstance && widgetInstance.fileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else if (!widgetInstance.value || fileToChange) {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.fileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"false\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"uploadedFile\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ widgetInstance.value?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(widgetInstance.value?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n ></smart-ui-action-toolbar>\n\n @if (!fileToChange) {\n <ui-action-button\n class=\"changeButton\"\n (actionClick)=\"change(widgetInstance.value)\"\n [disabled]=\"widgetInstance.isDisabled\"\n [descriptor]=\"changeButton\"\n >\n </ui-action-button>\n } @else {\n <ui-action-button\n class=\"removeIcon\"\n (actionClick)=\"cancelChange()\"\n [descriptor]=\"removeButton\"\n ></ui-action-button>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.fileEditorComponent:has(::ng-deep prime-file-uploader) ::ng-deep .uploadedFile,.fileEditorComponent:has(::ng-deep smartfileuploader) ::ng-deep .uploadedFile{border-top:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .fileData *{opacity:.7}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f1f1f1 12px 24px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i3.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i4.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i5.UploadWidgetComponent, selector: "smart-upload-widget", inputs: ["uploadDescriptor", "isMultiple", "isDisabled"], outputs: ["uploadFilesEvent"] }] }); }
|
|
156
|
+
}
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFileEditorComponent, decorators: [{
|
|
158
|
+
type: Component,
|
|
159
|
+
args: [{ selector: 'smart-file-editor', providers: [
|
|
160
|
+
{
|
|
161
|
+
provide: NG_VALUE_ACCESSOR,
|
|
162
|
+
useExisting: forwardRef(() => SmartFileEditorComponent),
|
|
163
|
+
multi: true,
|
|
164
|
+
},
|
|
165
|
+
], template: "@if (widgetInstance && widgetInstance.fileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else if (!widgetInstance.value || fileToChange) {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.fileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"false\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"uploadedFile\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ widgetInstance.value?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(widgetInstance.value?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n ></smart-ui-action-toolbar>\n\n @if (!fileToChange) {\n <ui-action-button\n class=\"changeButton\"\n (actionClick)=\"change(widgetInstance.value)\"\n [disabled]=\"widgetInstance.isDisabled\"\n [descriptor]=\"changeButton\"\n >\n </ui-action-button>\n } @else {\n <ui-action-button\n class=\"removeIcon\"\n (actionClick)=\"cancelChange()\"\n [descriptor]=\"removeButton\"\n ></ui-action-button>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.fileEditorComponent:has(::ng-deep prime-file-uploader) ::ng-deep .uploadedFile,.fileEditorComponent:has(::ng-deep smartfileuploader) ::ng-deep .uploadedFile{border-top:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .fileData *{opacity:.7}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f1f1f1 12px 24px)}\n"] }]
|
|
166
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i6.ComponentLibrary, decorators: [{
|
|
167
|
+
type: Inject,
|
|
168
|
+
args: [COMPONENT_LIBRARY]
|
|
169
|
+
}, {
|
|
170
|
+
type: Optional
|
|
171
|
+
}] }], propDecorators: { toolbar: [{
|
|
172
|
+
type: ViewChild,
|
|
173
|
+
args: ['toolbar']
|
|
174
|
+
}], widgetInstance: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], uploadFilesEvent: [{
|
|
177
|
+
type: Output
|
|
178
|
+
}] } });
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtZmlsZS1lZGl0b3Ivc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtZmlsZS1lZGl0b3Ivc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDekYsT0FBTyxFQUNMLFlBQVksRUFFWixrQkFBa0IsR0FHbkIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUNqQixNQUFNLG1EQUFtRCxDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQzFILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFjekUsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUF3QjtRQUN6QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtB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SztZQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDdkIsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXVCLENBQUMsUUFBUTtZQUNuRSxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ25GLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzsrR0FsTFUsd0JBQXdCLG1EQXlCekIsaUJBQWlCO21HQXpCaEIsd0JBQXdCLDZJQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiw4SEN0Q0gsMCtFQXVFQTs7NEZEL0JhLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkEyQkUsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7eUNBeEJoQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBS2hCLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVUksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXIgfSBmcm9tICcuLi8uLi8uLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xuaW1wb3J0IHtcbiAgSWNvblBvc2l0aW9uLFxuICBVaUFjdGlvbixcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxuICBVaUFjdGlvbkRlc2NyaXB0b3IsXG4gIFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvcixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vdmlldy1jb250ZXh0L2FwaS9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQ09NUE9ORU5UX0xJQlJBUlksXG4gIENvbXBvbmVudExpYnJhcnksXG59IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L2NvbXBvbmVudExpYnJhcnknO1xuaW1wb3J0IHsgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkV2lkZ2V0VXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2NvbXBvbmVudHMvdXBsb2FkLXdpZGdldC91cGxvYWQtd2lkZ2V0LnV0aWxzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtZmlsZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50LmNzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRGaWxlRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0RmlsZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQFZpZXdDaGlsZCgndG9vbGJhcicpIHRvb2xiYXIhOiBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0SW5zdGFuY2UhOiBTbWFydEZpbGVVcGxvYWRlcjtcblxuICBASW5wdXQoKVxuICBnZXQgd2lkZ2V0SW5zdGFuY2UoKTogU21hcnRGaWxlVXBsb2FkZXIge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZTtcbiAgfVxuICBzZXQgd2lkZ2V0SW5zdGFuY2UodmFsdWU6IFNtYXJ0RmlsZVVwbG9hZGVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNsb25lKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgdXBsb2FkRmlsZXNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGZpbGVzOiBhbnlbXTtcbiAgICB1aUFjdGlvbjogVWlBY3Rpb247XG4gICAgdXBsb2FkRGVzY3JpcHRvcj86IFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvcjtcbiAgfT4oKTtcblxuICBmaWxlVG9DaGFuZ2U/OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIEBPcHRpb25hbCgpIHB1YmxpYyBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxuICApIHt9XG5cbiAgcHJpdmF0ZSBjbG9uZSh2YWx1ZTogU21hcnRGaWxlVXBsb2FkZXIpIHtcbiAgICB0aGlzLl93aWRnZXRJbnN0YW5jZSA9XG4gICAgICB0eXBlb2Ygc3RydWN0dXJlZENsb25lID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gc3RydWN0dXJlZENsb25lKHZhbHVlKVxuICAgICAgICA6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcblxuICAgIGlmICghdGhpcy5fd2lkZ2V0SW5zdGFuY2UuZmlsZVVwbG9hZGVyUHJvcGVydGllcz8udW5kb0ljb24pIHtcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLmZpbGVVcGxvYWRlclByb3BlcnRpZXMgPSB7XG4gICAgICAgIC4uLih0aGlzLl93aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgICAgdW5kb0ljb246IHsgaWRlbnRpZmllcjogJ3VuZG8nIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50LmZpbGVzIHx8IGV2ZW50LmZpbGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLl93aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzITtcbiAgICBjb25zdCB1aUFjdGlvbiA9IHRoaXMuZmlsZVRvQ2hhbmdlXG4gICAgICA/IHByb3BzLmNoYW5nZUFjdGlvbiA/PyBwcm9wcy51cGxvYWRBY3Rpb25cbiAgICAgIDogcHJvcHMudXBsb2FkQWN0aW9uO1xuXG4gICAgdGhpcy51cGxvYWRGaWxlc0V2ZW50LmVtaXQoe1xuICAgICAgZmlsZXM6IGV2ZW50LmZpbGVzLFxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uISxcbiAgICAgIHVwbG9hZERlc2NyaXB0b3I6IGV2ZW50LnVwbG9hZERlc2NyaXB0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3dpZGdldEluc3RhbmNlLnZhbHVlKTtcbiAgICB0aGlzLmZpbGVUb0NoYW5nZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNoYW5nZShmaWxlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVUb0NoYW5nZSA9IGZpbGU7XG4gIH1cblxuICBjYW5jZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5maWxlVG9DaGFuZ2UgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1R5cGVTdXBwb3J0ZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh2YWx1ZSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgJ2RhdGFVcmknIGluIHZhbHVlKTtcbiAgfVxuXG4gIGZvcm1hdFNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIFVwbG9hZFdpZGdldFV0aWxzLmZvcm1hdFNpemUoYnl0ZXMpO1xuICB9XG5cbiAgLy8gLS0tLSBTbWFydCBmb3JtIHdpZGdldCBmdW5jdGlvbnMgLS0tLVxuICBnZXRMYWJlbE5nQ2xhc3MoKTogeyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZT8ubGFiZWxTdHlsZVxuICAgICAgPyBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ0NsYXNzZXModGhpcy5fd2lkZ2V0SW5zdGFuY2UubGFiZWxTdHlsZSlcbiAgICAgIDoge307XG4gIH1cblxuICBnZXRMYWJlbFN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZT8ubGFiZWxTdHlsZVxuICAgICAgPyBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ1N0eWxlcyh0aGlzLl93aWRnZXRJbnN0YW5jZS5sYWJlbFN0eWxlKVxuICAgICAgOiB7fTtcbiAgfVxuXG4gIGdldE5nQ2xhc3MoKTogeyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ0NsYXNzZXModGhpcy5fd2lkZ2V0SW5zdGFuY2U/LnN0eWxlKTtcbiAgfVxuXG4gIGdldFN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xuICAgIGlmICghdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUpIHtcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLnN0eWxlID0ge1xuICAgICAgICBjbGFzc2VzVG9BZGQ6IFtdLFxuICAgICAgICBjbGFzc2VzVG9SZW1vdmU6IFtdLFxuICAgICAgICBzdHlsZToge30sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghKCd3aWR0aCcgaW4gdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUuc3R5bGUpICYmICdtaW5XaWR0aCcgaW4gdGhpcy5fd2lkZ2V0SW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLnN0eWxlLnN0eWxlWyd3aWR0aCddID0gYCR7dGhpcy5fd2lkZ2V0SW5zdGFuY2UubWluV2lkdGh9cHhgO1xuICAgIH1cblxuICAgIHJldHVybiBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ1N0eWxlcyh0aGlzLl93aWRnZXRJbnN0YW5jZS5zdHlsZSk7XG4gIH1cblxuICAvLyAtLS0tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uIC0tLS1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl93aWRnZXRJbnN0YW5jZSkge1xuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2UudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvLyAtLS0tIFVJIGdldHRlcnMgLS0tLVxuXG4gIGdldCBmaWxlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBMaWIgPT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2ZpbGUnIDogJ2luc2VydF9kcml2ZV9maWxlJztcbiAgfVxuXG4gIGdldCBjaGFuZ2VCdXR0b24oKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLl93aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzITtcbiAgICB2YXIgYmFzZUFjdGlvbiA9IHByb3BzLmNoYW5nZUFjdGlvbiA/PyBwcm9wcy51cGxvYWRBY3Rpb24hO1xuXG4gICAgdmFyIGNoYW5nZURlc2NyaXB0b3IgPSB7XG4gICAgICAuLi4oYmFzZUFjdGlvbi5kZXNjcmlwdG9yID8/IHt9KSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTixcbiAgICAgIGljb246IHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ3N5bmMnIDogJ3N5bmNfYWx0JyxcbiAgICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNoYW5nZURlc2NyaXB0b3I7XG4gIH1cblxuICBnZXQgcmVtb3ZlQnV0dG9uKCk6IFVpQWN0aW9uRGVzY3JpcHRvciB7XG4gICAgdmFyIGNoYW5nZUJ1dHRvbiA9IHRoaXMuY2hhbmdlQnV0dG9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNvbG9yOiBjaGFuZ2VCdXR0b24uY29sb3IsXG4gICAgICB0eXBlOiBjaGFuZ2VCdXR0b24udHlwZSxcbiAgICAgIGljb25SZXNvdXJjZTogdGhpcy5fd2lkZ2V0SW5zdGFuY2UuZmlsZVVwbG9hZGVyUHJvcGVydGllcyEudW5kb0ljb24sXG4gICAgICBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbi5QUkUsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBlcnJvckljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wTGliID09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdleGNsYW1hdGlvbi1jaXJjbGUnIDogJ2Vycm9yJztcbiAgfVxuXG4gIGdldCB0b29sYmFyQ29tcG9uZW50KCk6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhcjtcbiAgfVxufVxuIiwiQGlmICh3aWRnZXRJbnN0YW5jZSAmJiB3aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzKSB7XG4gIDxoNFxuICAgICpuZ0lmPVwid2lkZ2V0SW5zdGFuY2Uuc2hvd0xhYmVsXCJcbiAgICBjbGFzcz1cImxhYmVsQ29udGFpbmVyIHt7IHdpZGdldEluc3RhbmNlLmNzc0xhYmVsQ2xhc3MgPz8gJycgfX1cIlxuICAgIFtuZ0NsYXNzXT1cImdldExhYmVsTmdDbGFzcygpXCJcbiAgICBbbmdTdHlsZV09XCJnZXRMYWJlbFN0eWxlKClcIlxuICA+XG4gICAge3sgd2lkZ2V0SW5zdGFuY2UubGFiZWwgfX1cbiAgPC9oND5cblxuICA8ZGl2IGNsYXNzPVwiZmlsZUVkaXRvckNvbXBvbmVudFwiPlxuICAgIEBpZiAod2lkZ2V0SW5zdGFuY2UudmFsdWUgJiYgIWlzVHlwZVN1cHBvcnRlZCh3aWRnZXRJbnN0YW5jZS52YWx1ZSkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNtYXJ0LWljb24gW2ljb25dPVwiZXJyb3JJY29uXCIgW2NvbG9yXT1cIid2YXIoLS13YXJuaW5pZy1jb2xvciknXCI+PC9zbWFydC1pY29uPlxuICAgICAgICA8c3Bhbj4gVW5zdXBwb3J0ZWQgd2lkZ2V0SW5zdGFuY2UudmFsdWUgdHlwZSBmb3IgdGhpcyB3aWRnZXQuPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoIXdpZGdldEluc3RhbmNlLnZhbHVlIHx8IGZpbGVUb0NoYW5nZSkge1xuICAgICAgPHNtYXJ0LXVwbG9hZC13aWRnZXRcbiAgICAgICAgY2xhc3M9XCJ3aWRnZXRDb250ZW50IHt7IHdpZGdldEluc3RhbmNlLmNzc0NsYXNzID8/ICcnIH19XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcygpXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0U3R5bGUoKVwiXG4gICAgICAgIFt1cGxvYWREZXNjcmlwdG9yXT1cIndpZGdldEluc3RhbmNlLmZpbGVVcGxvYWRlclByb3BlcnRpZXMudXBsb2FkRGVzY3JpcHRvciFcIlxuICAgICAgICBbaXNNdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cIndpZGdldEluc3RhbmNlLmlzRGlzYWJsZWRcIlxuICAgICAgICAodXBsb2FkRmlsZXNFdmVudCk9XCJ1cGxvYWQoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWRXaWRnZXQ6IHdpZGdldEluc3RhbmNlLmlzRGlzYWJsZWQgfVwiXG4gICAgICBjbGFzcz1cInVwbG9hZGVkRmlsZUNvbnRhaW5lclwiXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCJcbiAgICAgICAgd2lkZ2V0SW5zdGFuY2UudmFsdWUgJiYgaXNUeXBlU3VwcG9ydGVkKHdpZGdldEluc3RhbmNlLnZhbHVlKSA/ICdibG9jaycgOiAnbm9uZSdcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZGVkRmlsZVwiPlxuICAgICAgICA8c21hcnQtaWNvbiBjbGFzcz1cInVwbG9hZGVkRmlsZUljb25cIiBbaWNvbl09XCJmaWxlSWNvblwiPjwvc21hcnQtaWNvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFDb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZU5hbWVcIj57eyB3aWRnZXRJbnN0YW5jZS52YWx1ZT8uZmlsZU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGVTaXplXCI+e3sgZm9ybWF0U2l6ZSh3aWRnZXRJbnN0YW5jZS52YWx1ZT8uc2l6ZSkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlQWN0aW9uc1wiPlxuICAgICAgICAgIDxzbWFydC11aS1hY3Rpb24tdG9vbGJhclxuICAgICAgICAgICAgW2lkXT1cIndpZGdldEluc3RhbmNlLnRvb2xiYXJJZFwiXG4gICAgICAgICAgICAjdG9vbGJhclxuICAgICAgICAgID48L3NtYXJ0LXVpLWFjdGlvbi10b29sYmFyPlxuXG4gICAgICAgICAgQGlmICghZmlsZVRvQ2hhbmdlKSB7XG4gICAgICAgICAgICA8dWktYWN0aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNoYW5nZUJ1dHRvblwiXG4gICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJjaGFuZ2Uod2lkZ2V0SW5zdGFuY2UudmFsdWUpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIndpZGdldEluc3RhbmNlLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJjaGFuZ2VCdXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHVpLWFjdGlvbi1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmVJY29uXCJcbiAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cImNhbmNlbENoYW5nZSgpXCJcbiAgICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwicmVtb3ZlQnV0dG9uXCJcbiAgICAgICAgICAgID48L3VpLWFjdGlvbi1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { UntypedFormControl } from '@angular/forms';
|
|
3
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter, } from '@angular/material-moment-adapter';
|
|
4
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
5
|
+
import moment from 'moment';
|
|
6
|
+
import { SmartWidgetHintPositionEnum } from '../../../api';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "@angular/material/form-field";
|
|
10
|
+
import * as i3 from "@angular/material/input";
|
|
11
|
+
import * as i4 from "@angular/material/datepicker";
|
|
12
|
+
export const YEARH_MONTH_FORMAT = {
|
|
13
|
+
parse: {
|
|
14
|
+
dateInput: 'MM/YYYY',
|
|
15
|
+
},
|
|
16
|
+
display: {
|
|
17
|
+
dateInput: 'MM/YYYY' || 'YYYY/MM',
|
|
18
|
+
monthYearLabel: 'MMM YYYY',
|
|
19
|
+
dateA11yLabel: 'LL',
|
|
20
|
+
monthYearA11yLabel: 'MMMM YYYY',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export class SmartMonthPickerComponent {
|
|
24
|
+
constructor() {
|
|
25
|
+
this.valueChange = new EventEmitter();
|
|
26
|
+
this.SmartWidgetHintPosition = SmartWidgetHintPositionEnum;
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
// if (this.widgetInstance.value && this.widgetInstance.value.length) {
|
|
30
|
+
// let date = new Date(this.widgetInstance.value);
|
|
31
|
+
// let valueInMoment = moment(date);
|
|
32
|
+
// this.date = new FormControl(valueInMoment);
|
|
33
|
+
// } else {
|
|
34
|
+
// this.date = new FormControl(moment());
|
|
35
|
+
// this.valueChange.next(this.date.value);
|
|
36
|
+
// }
|
|
37
|
+
moment(this.widgetInstance.value || '');
|
|
38
|
+
if (this.widgetInstance.value) {
|
|
39
|
+
let momemtValue = moment(this.widgetInstance.value);
|
|
40
|
+
this.date = new UntypedFormControl(momemtValue);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// let momemtValue = moment();
|
|
44
|
+
this.date = new UntypedFormControl('');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
chosenMonthHandler(moment, datepicker) {
|
|
48
|
+
// const ctrlValue = this.date.value;
|
|
49
|
+
// ctrlValue.month(moment.month());
|
|
50
|
+
// ctrlValue.year(moment.year());
|
|
51
|
+
this.date.setValue(moment);
|
|
52
|
+
this.valueChange.next(moment);
|
|
53
|
+
datepicker.close();
|
|
54
|
+
}
|
|
55
|
+
handleChange(event) {
|
|
56
|
+
this.valueChange.next(this.date.value);
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMonthPickerComponent, selector: "lib-smart-month-picker", inputs: { widgetInstance: "widgetInstance" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
60
|
+
{
|
|
61
|
+
provide: DateAdapter,
|
|
62
|
+
useClass: MomentDateAdapter,
|
|
63
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
64
|
+
},
|
|
65
|
+
{ provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
|
|
66
|
+
], ngImport: i0, template: "<div class=\"smart-month-picker-container\">\n <mat-form-field appearance=\"outline\">\n <input matInput [matDatepicker]=\"dp\" [formControl]=\"date\" (input)=\"handleChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\n <mat-datepicker\n #dp\n startView=\"multi-year\"\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\n panelClass=\"example-month-picker\"\n >\n </mat-datepicker>\n </mat-form-field>\n @if (widgetInstance.hint?.position === SmartWidgetHintPosition.INPUT) {\n <div class=\"smart-month-picker-hint\">\n <mat-hint>{{ widgetInstance.hint?.text }}</mat-hint>\n </div>\n }\n</div>\n", styles: [".smart-month-picker-container{display:flex}.smart-month-picker-container mat-form-field{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMonthPickerComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'lib-smart-month-picker', providers: [
|
|
71
|
+
{
|
|
72
|
+
provide: DateAdapter,
|
|
73
|
+
useClass: MomentDateAdapter,
|
|
74
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
75
|
+
},
|
|
76
|
+
{ provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
|
|
77
|
+
], template: "<div class=\"smart-month-picker-container\">\n <mat-form-field appearance=\"outline\">\n <input matInput [matDatepicker]=\"dp\" [formControl]=\"date\" (input)=\"handleChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\n <mat-datepicker\n #dp\n startView=\"multi-year\"\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\n panelClass=\"example-month-picker\"\n >\n </mat-datepicker>\n </mat-form-field>\n @if (widgetInstance.hint?.position === SmartWidgetHintPosition.INPUT) {\n <div class=\"smart-month-picker-hint\">\n <mat-hint>{{ widgetInstance.hint?.text }}</mat-hint>\n </div>\n }\n</div>\n", styles: [".smart-month-picker-container{display:flex}.smart-month-picker-container mat-form-field{flex:1}\n"] }]
|
|
78
|
+
}], propDecorators: { widgetInstance: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], valueChange: [{
|
|
81
|
+
type: Output
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vd2lkZ2V0cy9jb21wb25lbnRzL3NtYXJ0LW1vbnRoLXBpY2tlci9zbWFydC1tb250aC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbW9udGgtcGlja2VyL3NtYXJ0LW1vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsaUJBQWlCLEdBQ2xCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl4RixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFtQiwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBRTVFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxTQUFTO0tBQ3JCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLFNBQVMsSUFBSSxTQUFTO1FBQ2pDLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO0FBZUYsTUFBTSxPQUFPLHlCQUF5QjtJQWJ0QztRQWVZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyw0QkFBdUIsR0FBRywyQkFBMkIsQ0FBQztLQXFDdkQ7SUFuQ0MsUUFBUTtRQUNOLHVFQUF1RTtRQUN2RSxvREFBb0Q7UUFDcEQsc0NBQXNDO1FBQ3RDLGdEQUFnRDtRQUNoRCxXQUFXO1FBQ1gsMkNBQTJDO1FBQzNDLDRDQUE0QztRQUM1QyxJQUFJO1FBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDTiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFVBQWlDO1FBQ2xFLHFDQUFxQztRQUNyQyxtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQXhDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix3SUFUekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO2FBQ3pEO1lBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1NBQzVELDBCQ3RDSCxtckJBa0JBOzs0RkRzQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3lCQUN6RDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7cUJBQzVEOzhCQUdRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUyxcbiAgTW9tZW50RGF0ZUFkYXB0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBTbWFydE1vbnRoUGlja2VyIH0gZnJvbSAnLi4vLi4vLi4vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBTbWFydFZhbGlkYXRvciwgU21hcnRXaWRnZXRIaW50UG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zbWFydGZvcm0ubW9kZWwnO1xuaW1wb3J0IHsgU21hcnRXaWRnZXRIaW50LCBTbWFydFdpZGdldEhpbnRQb3NpdGlvbkVudW0gfSBmcm9tICcuLi8uLi8uLi9hcGknO1xuXG5leHBvcnQgY29uc3QgWUVBUkhfTU9OVEhfRk9STUFUID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ01NL1lZWVknLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnTU0vWVlZWScgfHwgJ1lZWVkvTU0nLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zbWFydC1tb250aC1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IFlFQVJIX01PTlRIX0ZPUk1BVCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydE1vbnRoUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgd2lkZ2V0SW5zdGFuY2UhOiBTbWFydE1vbnRoUGlja2VyO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGRhdGUhOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIFNtYXJ0V2lkZ2V0SGludFBvc2l0aW9uID0gU21hcnRXaWRnZXRIaW50UG9zaXRpb25FbnVtO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLndpZGdldEluc3RhbmNlLnZhbHVlICYmIHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUubGVuZ3RoKSB7XG4gICAgLy8gICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xuICAgIC8vICAgbGV0IHZhbHVlSW5Nb21lbnQgPSBtb21lbnQoZGF0ZSk7XG4gICAgLy8gICB0aGlzLmRhdGUgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWVJbk1vbWVudCk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHRoaXMuZGF0ZSA9IG5ldyBGb3JtQ29udHJvbChtb21lbnQoKSk7XG4gICAgLy8gICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5kYXRlLnZhbHVlKTtcbiAgICAvLyB9XG5cbiAgICBtb21lbnQodGhpcy53aWRnZXRJbnN0YW5jZS52YWx1ZSB8fCAnJyk7XG5cbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS52YWx1ZSkge1xuICAgICAgbGV0IG1vbWVtdFZhbHVlID0gbW9tZW50KHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xuICAgICAgdGhpcy5kYXRlID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChtb21lbXRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGxldCBtb21lbXRWYWx1ZSA9IG1vbWVudCgpO1xuICAgICAgdGhpcy5kYXRlID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XG4gICAgfVxuICB9XG5cbiAgY2hvc2VuTW9udGhIYW5kbGVyKG1vbWVudDogTW9tZW50LCBkYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPE1vbWVudD4pIHtcbiAgICAvLyBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmRhdGUudmFsdWU7XG4gICAgLy8gY3RybFZhbHVlLm1vbnRoKG1vbWVudC5tb250aCgpKTtcbiAgICAvLyBjdHJsVmFsdWUueWVhcihtb21lbnQueWVhcigpKTtcblxuICAgIHRoaXMuZGF0ZS5zZXRWYWx1ZShtb21lbnQpO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KG1vbWVudCk7XG4gICAgZGF0ZXBpY2tlci5jbG9zZSgpO1xuICB9XG5cbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5kYXRlLnZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LW1vbnRoLXBpY2tlci1jb250YWluZXJcIj5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImRwXCIgW2Zvcm1Db250cm9sXT1cImRhdGVcIiAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZHBcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICNkcFxuICAgICAgc3RhcnRWaWV3PVwibXVsdGkteWVhclwiXG4gICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5Nb250aEhhbmRsZXIoJGV2ZW50LCBkcClcIlxuICAgICAgcGFuZWxDbGFzcz1cImV4YW1wbGUtbW9udGgtcGlja2VyXCJcbiAgICA+XG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgQGlmICh3aWRnZXRJbnN0YW5jZS5oaW50Py5wb3NpdGlvbiA9PT0gU21hcnRXaWRnZXRIaW50UG9zaXRpb24uSU5QVVQpIHtcbiAgICA8ZGl2IGNsYXNzPVwic21hcnQtbW9udGgtcGlja2VyLWhpbnRcIj5cbiAgICAgIDxtYXQtaGludD57eyB3aWRnZXRJbnN0YW5jZS5oaW50Py50ZXh0IH19PC9tYXQtaGludD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { SmartStyleUtility } from '../../../../view-context/utility/smart-style-utility';
|
|
3
|
+
import { COMPONENT_LIBRARY, ComponentLibrary, } from '../../../../view-context/utility/componentLibrary';
|
|
4
|
+
import { UploadWidgetUtils } from '../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.utils';
|
|
5
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "../../../../smart-icon/smart-icon/smart-icon.component";
|
|
9
|
+
import * as i3 from "../../../../view-context/smart-ui-action/ui-action-toolbar.component";
|
|
10
|
+
import * as i4 from "../../../../view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component";
|
|
11
|
+
import * as i5 from "../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.component";
|
|
12
|
+
import * as i6 from "../../../../view-context/utility/componentLibrary";
|
|
13
|
+
export class SmartMultiFileEditorComponent {
|
|
14
|
+
get widgetInstance() {
|
|
15
|
+
return this._widgetInstance;
|
|
16
|
+
}
|
|
17
|
+
set widgetInstance(value) {
|
|
18
|
+
if (value) {
|
|
19
|
+
this.clone(value);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
constructor(cdr, compLib) {
|
|
23
|
+
this.cdr = cdr;
|
|
24
|
+
this.compLib = compLib;
|
|
25
|
+
this.uploadFilesEvent = new EventEmitter();
|
|
26
|
+
this.fileEvent = new EventEmitter();
|
|
27
|
+
// ---- ControlValueAccessor implementation ----
|
|
28
|
+
this.onChange = (value) => { };
|
|
29
|
+
this.onTouched = () => { };
|
|
30
|
+
this.isDisabled = false;
|
|
31
|
+
}
|
|
32
|
+
clone(value) {
|
|
33
|
+
this._widgetInstance =
|
|
34
|
+
typeof structuredClone === 'function'
|
|
35
|
+
? structuredClone(value)
|
|
36
|
+
: JSON.parse(JSON.stringify(value));
|
|
37
|
+
this.cdr.markForCheck();
|
|
38
|
+
}
|
|
39
|
+
upload(event) {
|
|
40
|
+
if (!event.files || event.files.length == 0) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
let props = this._widgetInstance.multiFileUploaderProperties;
|
|
44
|
+
let uiAction = props.uploadAction;
|
|
45
|
+
let params = {
|
|
46
|
+
...uiAction.params,
|
|
47
|
+
isMultiple: true,
|
|
48
|
+
};
|
|
49
|
+
uiAction.params = params;
|
|
50
|
+
this.uploadFilesEvent.emit({
|
|
51
|
+
files: event.files,
|
|
52
|
+
uiAction: uiAction,
|
|
53
|
+
uploadDescriptor: event.uploadDescriptor,
|
|
54
|
+
});
|
|
55
|
+
this.onChange(this._widgetInstance.value);
|
|
56
|
+
}
|
|
57
|
+
emitFileAction(actionCode, dataUri) {
|
|
58
|
+
const uiAction = {
|
|
59
|
+
code: actionCode,
|
|
60
|
+
model: true,
|
|
61
|
+
path: this._widgetInstance.key,
|
|
62
|
+
params: { _dataUri: dataUri },
|
|
63
|
+
};
|
|
64
|
+
this.fileEvent.emit({
|
|
65
|
+
uiAction,
|
|
66
|
+
uploadDescriptor: this._widgetInstance.multiFileUploaderProperties?.uploadDescriptor,
|
|
67
|
+
});
|
|
68
|
+
this.onChange(this._widgetInstance.value);
|
|
69
|
+
}
|
|
70
|
+
deleteFile(dataUri) {
|
|
71
|
+
this.emitFileAction(this._widgetInstance.multiFileUploaderProperties?.removeActionCode ?? 'defaultRemove', dataUri);
|
|
72
|
+
}
|
|
73
|
+
downloadFile(dataUri) {
|
|
74
|
+
this.emitFileAction(this._widgetInstance.multiFileUploaderProperties?.downloadActionCode ?? 'defaultDownload', dataUri);
|
|
75
|
+
}
|
|
76
|
+
isTypeSupported(value) {
|
|
77
|
+
return (value == null || (Array.isArray(value) && value.every((item) => item && 'dataUri' in item)));
|
|
78
|
+
}
|
|
79
|
+
formatSize(bytes) {
|
|
80
|
+
return UploadWidgetUtils.formatSize(bytes);
|
|
81
|
+
}
|
|
82
|
+
// ---- Smart form widget functions ----
|
|
83
|
+
getLabelNgClass() {
|
|
84
|
+
return this._widgetInstance?.labelStyle
|
|
85
|
+
? SmartStyleUtility.getNgClasses(this._widgetInstance.labelStyle)
|
|
86
|
+
: {};
|
|
87
|
+
}
|
|
88
|
+
getLabelStyle() {
|
|
89
|
+
return this._widgetInstance?.labelStyle
|
|
90
|
+
? SmartStyleUtility.getNgStyles(this._widgetInstance.labelStyle)
|
|
91
|
+
: {};
|
|
92
|
+
}
|
|
93
|
+
getNgClass() {
|
|
94
|
+
return SmartStyleUtility.getNgClasses(this._widgetInstance?.style);
|
|
95
|
+
}
|
|
96
|
+
getStyle() {
|
|
97
|
+
if (!this._widgetInstance.style) {
|
|
98
|
+
this._widgetInstance.style = {
|
|
99
|
+
classesToAdd: [],
|
|
100
|
+
classesToRemove: [],
|
|
101
|
+
style: {},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (!('width' in this._widgetInstance.style.style) && 'minWidth' in this._widgetInstance) {
|
|
105
|
+
this._widgetInstance.style.style['width'] = `${this._widgetInstance.minWidth}px`;
|
|
106
|
+
}
|
|
107
|
+
return SmartStyleUtility.getNgStyles(this._widgetInstance.style);
|
|
108
|
+
}
|
|
109
|
+
writeValue(value) {
|
|
110
|
+
if (value !== undefined && this._widgetInstance) {
|
|
111
|
+
this._widgetInstance.value = value;
|
|
112
|
+
this.cdr.markForCheck();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
registerOnChange(fn) {
|
|
116
|
+
this.onChange = fn;
|
|
117
|
+
}
|
|
118
|
+
registerOnTouched(fn) {
|
|
119
|
+
this.onTouched = fn;
|
|
120
|
+
}
|
|
121
|
+
setDisabledState(isDisabled) {
|
|
122
|
+
this.isDisabled = isDisabled;
|
|
123
|
+
}
|
|
124
|
+
// ---- UI getters ----
|
|
125
|
+
get removeIcon() {
|
|
126
|
+
return this.compLib == ComponentLibrary.PRIMENG ? 'trash' : 'delete';
|
|
127
|
+
}
|
|
128
|
+
get fileIcon() {
|
|
129
|
+
return this.compLib == ComponentLibrary.PRIMENG ? 'file' : 'insert_drive_file';
|
|
130
|
+
}
|
|
131
|
+
get errorIcon() {
|
|
132
|
+
return this.compLib == ComponentLibrary.PRIMENG ? 'exclamation-circle' : 'error';
|
|
133
|
+
}
|
|
134
|
+
get toolbarComponent() {
|
|
135
|
+
return this.toolbar;
|
|
136
|
+
}
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMultiFileEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
138
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMultiFileEditorComponent, selector: "smart-multi-file-editor", inputs: { widgetInstance: "widgetInstance" }, outputs: { uploadFilesEvent: "uploadFilesEvent", fileEvent: "fileEvent" }, providers: [
|
|
139
|
+
{
|
|
140
|
+
provide: NG_VALUE_ACCESSOR,
|
|
141
|
+
useExisting: forwardRef(() => SmartMultiFileEditorComponent),
|
|
142
|
+
multi: true,
|
|
143
|
+
},
|
|
144
|
+
], viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], ngImport: i0, template: "@if (widgetInstance && widgetInstance.multiFileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n [style]=\"{ display: 'none' }\"\n ></smart-ui-action-toolbar>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.multiFileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"true\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"scrollable\">\n <div class=\"uploadedFile\" *ngFor=\"let file of widgetInstance.value; let i = index\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ file?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(file?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n @if (toolbarComponent && toolbarComponent.uiActionModels) {\n <file-editor-toolbar\n [id]=\"widgetInstance.toolbarId\"\n [dataUri]=\"file.dataUri\"\n [uiActionModels]=\"toolbarComponent.uiActionModels\"\n ></file-editor-toolbar>\n }\n <smart-icon\n class=\"downloadIcon\"\n icon=\"download\"\n (click)=\"downloadFile(file.dataUri)\"\n ></smart-icon>\n @if (!file.readOnly) {\n <smart-icon\n class=\"removeIcon\"\n [icon]=\"removeIcon\"\n (click)=\"!isDisabled && file.readOnly === false && deleteFile(file.dataUri)\"\n ></smart-icon>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius);overflow:hidden}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column;border-top:1px solid #e0e0e0}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.scrollable{max-height:30vh;overflow-y:auto}.scrollable>div:not(:last-child){border-bottom:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon *{opacity:.4!important;pointer-events:none!important}:host ::ng-deep .disabledWidget ::ng-deep .changeButton:hover,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon:hover{cursor:not-allowed}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 6px,#f1f1f1 6px 12px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i3.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i4.FileEditorToolbarComponent, selector: "file-editor-toolbar", inputs: ["dataUri"], outputs: ["actionEvent"] }, { kind: "component", type: i5.UploadWidgetComponent, selector: "smart-upload-widget", inputs: ["uploadDescriptor", "isMultiple", "isDisabled"], outputs: ["uploadFilesEvent"] }] }); }
|
|
145
|
+
}
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMultiFileEditorComponent, decorators: [{
|
|
147
|
+
type: Component,
|
|
148
|
+
args: [{ selector: 'smart-multi-file-editor', providers: [
|
|
149
|
+
{
|
|
150
|
+
provide: NG_VALUE_ACCESSOR,
|
|
151
|
+
useExisting: forwardRef(() => SmartMultiFileEditorComponent),
|
|
152
|
+
multi: true,
|
|
153
|
+
},
|
|
154
|
+
], template: "@if (widgetInstance && widgetInstance.multiFileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n [style]=\"{ display: 'none' }\"\n ></smart-ui-action-toolbar>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.multiFileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"true\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"scrollable\">\n <div class=\"uploadedFile\" *ngFor=\"let file of widgetInstance.value; let i = index\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ file?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(file?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n @if (toolbarComponent && toolbarComponent.uiActionModels) {\n <file-editor-toolbar\n [id]=\"widgetInstance.toolbarId\"\n [dataUri]=\"file.dataUri\"\n [uiActionModels]=\"toolbarComponent.uiActionModels\"\n ></file-editor-toolbar>\n }\n <smart-icon\n class=\"downloadIcon\"\n icon=\"download\"\n (click)=\"downloadFile(file.dataUri)\"\n ></smart-icon>\n @if (!file.readOnly) {\n <smart-icon\n class=\"removeIcon\"\n [icon]=\"removeIcon\"\n (click)=\"!isDisabled && file.readOnly === false && deleteFile(file.dataUri)\"\n ></smart-icon>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius);overflow:hidden}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column;border-top:1px solid #e0e0e0}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.scrollable{max-height:30vh;overflow-y:auto}.scrollable>div:not(:last-child){border-bottom:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon *{opacity:.4!important;pointer-events:none!important}:host ::ng-deep .disabledWidget ::ng-deep .changeButton:hover,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon:hover{cursor:not-allowed}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 6px,#f1f1f1 6px 12px)}\n"] }]
|
|
155
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i6.ComponentLibrary, decorators: [{
|
|
156
|
+
type: Inject,
|
|
157
|
+
args: [COMPONENT_LIBRARY]
|
|
158
|
+
}, {
|
|
159
|
+
type: Optional
|
|
160
|
+
}] }], propDecorators: { toolbar: [{
|
|
161
|
+
type: ViewChild,
|
|
162
|
+
args: ['toolbar']
|
|
163
|
+
}], widgetInstance: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], uploadFilesEvent: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}], fileEvent: [{
|
|
168
|
+
type: Output
|
|
169
|
+
}] } });
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbXVsdGktZmlsZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbXVsdGktZmlsZS1lZGl0b3Ivc21hcnQtbXVsdGktZmlsZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbXVsdGktZmlsZS1lZGl0b3Ivc21hcnQtbXVsdGktZmlsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFekYsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSxtREFBbUQsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUMxSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyw2QkFBNkI7SUFLeEMsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBNkI7UUFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFD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QUFvQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOytHQWpMVSw2QkFBNkIsbURBNEI5QixpQkFBaUI7bUdBNUJoQiw2QkFBNkIsMktBUjdCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDNUQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDhIQ2hDSCxreUZBNkVBOzs0RkQzQ2EsNkJBQTZCO2tCQVp6QyxTQUFTOytCQUNFLHlCQUF5QixhQUd4Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzs0QkFDNUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQThCRSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQUcsUUFBUTt5Q0EzQmhCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFLaEIsY0FBYztzQkFEakIsS0FBSztnQkFVSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBTUcsU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXIgfSBmcm9tICcuLi8uLi8uLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xuaW1wb3J0IHsgVWlBY3Rpb24sIFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC9hcGkvbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7XG4gIENPTVBPTkVOVF9MSUJSQVJZLFxuICBDb21wb25lbnRMaWJyYXJ5LFxufSBmcm9tICcuLi8uLi8uLi8uLi92aWV3LWNvbnRleHQvdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcbmltcG9ydCB7IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZFdpZGdldFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9jb21wb25lbnRzL3VwbG9hZC13aWRnZXQvdXBsb2FkLXdpZGdldC51dGlscyc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LW11bHRpLWZpbGUtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LW11bHRpLWZpbGUtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NtYXJ0LW11bHRpLWZpbGUtZWRpdG9yLmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNtYXJ0TXVsdGlGaWxlRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0TXVsdGlGaWxlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBAVmlld0NoaWxkKCd0b29sYmFyJykgdG9vbGJhciE6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudDtcblxuICBwcml2YXRlIF93aWRnZXRJbnN0YW5jZSE6IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IHdpZGdldEluc3RhbmNlKCk6IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXIge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZTtcbiAgfVxuICBzZXQgd2lkZ2V0SW5zdGFuY2UodmFsdWU6IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY2xvbmUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSB1cGxvYWRGaWxlc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgZmlsZXM6IGFueVtdO1xuICAgIHVpQWN0aW9uOiBVaUFjdGlvbjtcbiAgICB1cGxvYWREZXNjcmlwdG9yPzogVWlBY3Rpb25VcGxvYWREZXNjcmlwdG9yO1xuICB9PigpO1xuXG4gIEBPdXRwdXQoKSBmaWxlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICB1aUFjdGlvbjogVWlBY3Rpb247XG4gICAgdXBsb2FkRGVzY3JpcHRvcj86IFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvcjtcbiAgfT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgQE9wdGlvbmFsKCkgcHVibGljIGNvbXBMaWI/OiBDb21wb25lbnRMaWJyYXJ5XG4gICkge31cblxuICBwcml2YXRlIGNsb25lKHZhbHVlOiBTbWFydE11bHRpRmlsZVVwbG9hZGVyKSB7XG4gICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2UgPVxuICAgICAgdHlwZW9mIHN0cnVjdHVyZWRDbG9uZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHN0cnVjdHVyZWRDbG9uZSh2YWx1ZSlcbiAgICAgICAgOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHVwbG9hZChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCFldmVudC5maWxlcyB8fCBldmVudC5maWxlcy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwcm9wcyA9IHRoaXMuX3dpZGdldEluc3RhbmNlLm11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcyE7XG4gICAgbGV0IHVpQWN0aW9uID0gcHJvcHMudXBsb2FkQWN0aW9uITtcblxuICAgIGxldCBwYXJhbXMgPSB7XG4gICAgICAuLi51aUFjdGlvbi5wYXJhbXMsXG4gICAgICBpc011bHRpcGxlOiB0cnVlLFxuICAgIH07XG4gICAgdWlBY3Rpb24ucGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy51cGxvYWRGaWxlc0V2ZW50LmVtaXQoe1xuICAgICAgZmlsZXM6IGV2ZW50LmZpbGVzLFxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uLFxuICAgICAgdXBsb2FkRGVzY3JpcHRvcjogZXZlbnQudXBsb2FkRGVzY3JpcHRvcixcbiAgICB9KTtcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5fd2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmlsZUFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGRhdGFVcmk6IHN0cmluZykge1xuICAgIGNvbnN0IHVpQWN0aW9uID0ge1xuICAgICAgY29kZTogYWN0aW9uQ29kZSxcbiAgICAgIG1vZGVsOiB0cnVlLFxuICAgICAgcGF0aDogdGhpcy5fd2lkZ2V0SW5zdGFuY2Uua2V5LFxuICAgICAgcGFyYW1zOiB7IF9kYXRhVXJpOiBkYXRhVXJpIH0sXG4gICAgfTtcblxuICAgIHRoaXMuZmlsZUV2ZW50LmVtaXQoe1xuICAgICAgdWlBY3Rpb24sXG4gICAgICB1cGxvYWREZXNjcmlwdG9yOiB0aGlzLl93aWRnZXRJbnN0YW5jZS5tdWx0aUZpbGVVcGxvYWRlclByb3BlcnRpZXM/LnVwbG9hZERlc2NyaXB0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3dpZGdldEluc3RhbmNlLnZhbHVlKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoZGF0YVVyaTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbWl0RmlsZUFjdGlvbihcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLm11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcz8ucmVtb3ZlQWN0aW9uQ29kZSA/PyAnZGVmYXVsdFJlbW92ZScsXG4gICAgICBkYXRhVXJpXG4gICAgKTtcbiAgfVxuXG4gIGRvd25sb2FkRmlsZShkYXRhVXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXRGaWxlQWN0aW9uKFxuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2UubXVsdGlGaWxlVXBsb2FkZXJQcm9wZXJ0aWVzPy5kb3dubG9hZEFjdGlvbkNvZGUgPz8gJ2RlZmF1bHREb3dubG9hZCcsXG4gICAgICBkYXRhVXJpXG4gICAgKTtcbiAgfVxuXG4gIGlzVHlwZVN1cHBvcnRlZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHZhbHVlID09IG51bGwgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBpdGVtICYmICdkYXRhVXJpJyBpbiBpdGVtKSlcbiAgICApO1xuICB9XG5cbiAgZm9ybWF0U2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVXBsb2FkV2lkZ2V0VXRpbHMuZm9ybWF0U2l6ZShieXRlcyk7XG4gIH1cblxuICAvLyAtLS0tIFNtYXJ0IGZvcm0gd2lkZ2V0IGZ1bmN0aW9ucyAtLS0tXG4gIGdldExhYmVsTmdDbGFzcygpOiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldEluc3RhbmNlPy5sYWJlbFN0eWxlXG4gICAgICA/IFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nQ2xhc3Nlcyh0aGlzLl93aWRnZXRJbnN0YW5jZS5sYWJlbFN0eWxlKVxuICAgICAgOiB7fTtcbiAgfVxuXG4gIGdldExhYmVsU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldEluc3RhbmNlPy5sYWJlbFN0eWxlXG4gICAgICA/IFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHRoaXMuX3dpZGdldEluc3RhbmNlLmxhYmVsU3R5bGUpXG4gICAgICA6IHt9O1xuICB9XG5cbiAgZ2V0TmdDbGFzcygpOiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nQ2xhc3Nlcyh0aGlzLl93aWRnZXRJbnN0YW5jZT8uc3R5bGUpO1xuICB9XG5cbiAgZ2V0U3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XG4gICAgaWYgKCF0aGlzLl93aWRnZXRJbnN0YW5jZS5zdHlsZSkge1xuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUgPSB7XG4gICAgICAgIGNsYXNzZXNUb0FkZDogW10sXG4gICAgICAgIGNsYXNzZXNUb1JlbW92ZTogW10sXG4gICAgICAgIHN0eWxlOiB7fSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKCEoJ3dpZHRoJyBpbiB0aGlzLl93aWRnZXRJbnN0YW5jZS5zdHlsZS5zdHlsZSkgJiYgJ21pbldpZHRoJyBpbiB0aGlzLl93aWRnZXRJbnN0YW5jZSkge1xuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUuc3R5bGVbJ3dpZHRoJ10gPSBgJHt0aGlzLl93aWRnZXRJbnN0YW5jZS5taW5XaWR0aH1weGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHRoaXMuX3dpZGdldEluc3RhbmNlLnN0eWxlKTtcbiAgfVxuXG4gIC8vIC0tLS0gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24gLS0tLVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3dpZGdldEluc3RhbmNlKSB7XG4gICAgICB0aGlzLl93aWRnZXRJbnN0YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIC0tLS0gVUkgZ2V0dGVycyAtLS0tXG5cbiAgZ2V0IHJlbW92ZUljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wTGliID09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICd0cmFzaCcgOiAnZGVsZXRlJztcbiAgfVxuXG4gIGdldCBmaWxlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBMaWIgPT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2ZpbGUnIDogJ2luc2VydF9kcml2ZV9maWxlJztcbiAgfVxuXG4gIGdldCBlcnJvckljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wTGliID09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdleGNsYW1hdGlvbi1jaXJjbGUnIDogJ2Vycm9yJztcbiAgfVxuXG4gIGdldCB0b29sYmFyQ29tcG9uZW50KCk6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhcjtcbiAgfVxufVxuIiwiQGlmICh3aWRnZXRJbnN0YW5jZSAmJiB3aWRnZXRJbnN0YW5jZS5tdWx0aUZpbGVVcGxvYWRlclByb3BlcnRpZXMpIHtcbiAgPGg0XG4gICAgKm5nSWY9XCJ3aWRnZXRJbnN0YW5jZS5zaG93TGFiZWxcIlxuICAgIGNsYXNzPVwibGFiZWxDb250YWluZXIge3sgd2lkZ2V0SW5zdGFuY2UuY3NzTGFiZWxDbGFzcyA/PyAnJyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiZ2V0TGFiZWxOZ0NsYXNzKClcIlxuICAgIFtuZ1N0eWxlXT1cImdldExhYmVsU3R5bGUoKVwiXG4gID5cbiAgICB7eyB3aWRnZXRJbnN0YW5jZS5sYWJlbCB9fVxuICA8L2g0PlxuICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXJcbiAgICBbaWRdPVwid2lkZ2V0SW5zdGFuY2UudG9vbGJhcklkXCJcbiAgICAjdG9vbGJhclxuICAgIFtzdHlsZV09XCJ7IGRpc3BsYXk6ICdub25lJyB9XCJcbiAgPjwvc21hcnQtdWktYWN0aW9uLXRvb2xiYXI+XG5cbiAgPGRpdiBjbGFzcz1cImZpbGVFZGl0b3JDb21wb25lbnRcIj5cbiAgICBAaWYgKHdpZGdldEluc3RhbmNlLnZhbHVlICYmICFpc1R5cGVTdXBwb3J0ZWQod2lkZ2V0SW5zdGFuY2UudmFsdWUpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzbWFydC1pY29uIFtpY29uXT1cImVycm9ySWNvblwiIFtjb2xvcl09XCIndmFyKC0td2FybmluaWctY29sb3IpJ1wiPjwvc21hcnQtaWNvbj5cbiAgICAgICAgPHNwYW4+IFVuc3VwcG9ydGVkIHdpZGdldEluc3RhbmNlLnZhbHVlIHR5cGUgZm9yIHRoaXMgd2lkZ2V0Ljwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNtYXJ0LXVwbG9hZC13aWRnZXRcbiAgICAgICAgY2xhc3M9XCJ3aWRnZXRDb250ZW50IHt7IHdpZGdldEluc3RhbmNlLmNzc0NsYXNzID8/ICcnIH19XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcygpXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0U3R5bGUoKVwiXG4gICAgICAgIFt1cGxvYWREZXNjcmlwdG9yXT1cIndpZGdldEluc3RhbmNlLm11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcy51cGxvYWREZXNjcmlwdG9yIVwiXG4gICAgICAgIFtpc011bHRpcGxlXT1cInRydWVcIlxuICAgICAgICBbaXNEaXNhYmxlZF09XCJ3aWRnZXRJbnN0YW5jZS5pc0Rpc2FibGVkXCJcbiAgICAgICAgKHVwbG9hZEZpbGVzRXZlbnQpPVwidXBsb2FkKCRldmVudClcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkV2lkZ2V0OiB3aWRnZXRJbnN0YW5jZS5pc0Rpc2FibGVkIH1cIlxuICAgICAgY2xhc3M9XCJ1cGxvYWRlZEZpbGVDb250YWluZXJcIlxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiXG4gICAgICAgIHdpZGdldEluc3RhbmNlLnZhbHVlICYmIGlzVHlwZVN1cHBvcnRlZCh3aWRnZXRJbnN0YW5jZS52YWx1ZSkgPyAnYmxvY2snIDogJ25vbmUnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRlZEZpbGVcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB3aWRnZXRJbnN0YW5jZS52YWx1ZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDxzbWFydC1pY29uIGNsYXNzPVwidXBsb2FkZWRGaWxlSWNvblwiIFtpY29uXT1cImZpbGVJY29uXCI+PC9zbWFydC1pY29uPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVEYXRhXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFDb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlTmFtZVwiPnt7IGZpbGU/LmZpbGVOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGVTaXplXCI+e3sgZm9ybWF0U2l6ZShmaWxlPy5zaXplKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVBY3Rpb25zXCI+XG4gICAgICAgICAgICBAaWYgKHRvb2xiYXJDb21wb25lbnQgJiYgdG9vbGJhckNvbXBvbmVudC51aUFjdGlvbk1vZGVscykge1xuICAgICAgICAgICAgICA8ZmlsZS1lZGl0b3ItdG9vbGJhclxuICAgICAgICAgICAgICAgIFtpZF09XCJ3aWRnZXRJbnN0YW5jZS50b29sYmFySWRcIlxuICAgICAgICAgICAgICAgIFtkYXRhVXJpXT1cImZpbGUuZGF0YVVyaVwiXG4gICAgICAgICAgICAgICAgW3VpQWN0aW9uTW9kZWxzXT1cInRvb2xiYXJDb21wb25lbnQudWlBY3Rpb25Nb2RlbHNcIlxuICAgICAgICAgICAgICA+PC9maWxlLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJkb3dubG9hZEljb25cIlxuICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRGaWxlKGZpbGUuZGF0YVVyaSlcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgIEBpZiAoIWZpbGUucmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlbW92ZUljb25cIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cInJlbW92ZUljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXNEaXNhYmxlZCAmJiBmaWxlLnJlYWRPbmx5ID09PSBmYWxzZSAmJiBkZWxldGVGaWxlKGZpbGUuZGF0YVVyaSlcIlxuICAgICAgICAgICAgICA+PC9zbWFydC1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
|