@smartbit4all/ng-client 5.0.21 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +934 -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 +436 -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 +292 -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 +57 -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 +1074 -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 +8990 -4553
- 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/lib/smart-component-layout/api/model/toolbarProperties.d.ts +16 -0
- 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 +1 -3
- 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.service.d.ts +4 -2
- 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 +3 -2
- 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 +38 -7
- 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 +20 -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 +10 -4
- 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 -5
- package/lib/smart-map/abstract-map.d.ts +1 -1
- 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/invocationRun.d.ts +2 -0
- package/lib/view-context/api/model/backgroundProcessInfo.d.ts +25 -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 +6 -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 +3 -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 +4 -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 +2 -0
- package/lib/view-context/api/model/view.d.ts +7 -0
- package/lib/view-context/api/model/viewContext.d.ts +1 -0
- package/lib/view-context/api/model/viewData.d.ts +2 -0
- package/lib/view-context/api/model/viewEventHandler.d.ts +5 -0
- 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 +1 -0
- package/lib/view-context/projects.d.ts +8 -3
- 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 +6 -2
- 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/{dialogs/ui-action-file-upload-dialog → components/upload-widget}/voice-record-widget/voice-record-widget.component.d.ts +15 -6
- 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 +2 -16
- 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 +14 -7
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +27 -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.service.d.ts +1 -2
- package/lib/view-context/smart-view-context.model.d.ts +7 -2
- package/lib/view-context/smart-view-context.module.d.ts +74 -65
- package/lib/view-context/smart-view-context.service.d.ts +55 -8
- 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 +27 -0
- package/package.json +16 -18
- package/projects.d.ts +2 -0
- package/smartbit4all-ng-client-6.0.1.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/lib/view-context/smart-ui-action/components/action-badge/action-badge.component.d.ts +0 -12
- package/smartbit4all-ng-client-5.0.21.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/api/model/pieChartLegendPosition.d.ts +0 -16
- 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
- /package/lib/view-context/smart-ui-action/{dialogs/ui-action-file-upload-dialog → components/upload-widget}/photo-capture-widget/photo-capture-widget.component.d.ts +0 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { AbstractMap } from '../abstract-map';
|
|
3
|
+
import { GeoMapItemKind } from '../api';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
function createLeafletMapItem(item, config) {
|
|
6
|
+
let color = item.color ?? config.color;
|
|
7
|
+
switch (item.kind) {
|
|
8
|
+
case GeoMapItemKind.MARKER:
|
|
9
|
+
let marker = L.marker(L.latLng(item.position.latitude, item.position.longitude), {
|
|
10
|
+
draggable: config.draggable,
|
|
11
|
+
}).bindTooltip(item.label, {
|
|
12
|
+
permanent: item.permanentLabel ?? false,
|
|
13
|
+
direction: 'auto',
|
|
14
|
+
});
|
|
15
|
+
marker.originalLatLng = L.latLng(item.position.latitude, item.position.longitude); //
|
|
16
|
+
return marker;
|
|
17
|
+
case GeoMapItemKind.POLYGON:
|
|
18
|
+
const polygonRoutePoints = item.route.points;
|
|
19
|
+
return L.layerGroup([
|
|
20
|
+
L.polygon(polygonRoutePoints.map((p) => [p.latitude, p.longitude]), { title: item.label, color: color }),
|
|
21
|
+
...polygonRoutePoints.map((p) => L.marker([p.latitude, p.longitude], {
|
|
22
|
+
title: item.label,
|
|
23
|
+
markerColor: color,
|
|
24
|
+
draggable: config.draggable,
|
|
25
|
+
icon: getIcon(color),
|
|
26
|
+
})),
|
|
27
|
+
]);
|
|
28
|
+
case GeoMapItemKind.LINE:
|
|
29
|
+
const lineRoutePoints = item.route.points;
|
|
30
|
+
return L.layerGroup([
|
|
31
|
+
L.polyline(lineRoutePoints.map((p) => [p.latitude, p.longitude]), { title: item.label, color: color }),
|
|
32
|
+
...lineRoutePoints.map((p) => L.marker([p.latitude, p.longitude], {
|
|
33
|
+
title: item.label,
|
|
34
|
+
color: color,
|
|
35
|
+
draggable: config.draggable,
|
|
36
|
+
icon: getIcon(color),
|
|
37
|
+
})),
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class LeafletMap extends AbstractMap {
|
|
42
|
+
constructor(el, cd, zone) {
|
|
43
|
+
super(el, cd, zone, createLeafletMapItem);
|
|
44
|
+
this.offsetDistance = 0.00004;
|
|
45
|
+
this.markers = [];
|
|
46
|
+
}
|
|
47
|
+
ngAfterViewChecked() {
|
|
48
|
+
if (!this.map && this.el.nativeElement.offsetParent) {
|
|
49
|
+
this.initialize();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
initialize() {
|
|
53
|
+
const options = this.createLeafletMapOptions();
|
|
54
|
+
this.map = L.map('leaflet', { preferCanvas: true }).setView(options.centre, options.zoom);
|
|
55
|
+
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
|
56
|
+
maxZoom: 19,
|
|
57
|
+
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
|
|
58
|
+
}).addTo(this.map);
|
|
59
|
+
const items = this.items();
|
|
60
|
+
const toAdd = items.map((it) => ({
|
|
61
|
+
id: it.id,
|
|
62
|
+
record: createLeafletMapItem(it, { color: '#3388ff', draggable: false }),
|
|
63
|
+
}));
|
|
64
|
+
this.handleItemChanges([], toAdd);
|
|
65
|
+
const model = this.model();
|
|
66
|
+
if (model.viewState?.fitToInitialItems) {
|
|
67
|
+
const datasetBounds = this.findDatasetBounds();
|
|
68
|
+
if (datasetBounds) {
|
|
69
|
+
const { a, b } = datasetBounds;
|
|
70
|
+
const pntA = L.latLng(a.x, a.y);
|
|
71
|
+
const pntB = L.latLng(b.x, b.y);
|
|
72
|
+
const bounds = L.latLngBounds(pntA, pntB);
|
|
73
|
+
this.zone.run(() => {
|
|
74
|
+
this.map.fitBounds(bounds);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
this.map.on('click', (event) => {
|
|
79
|
+
this.zone.run(() => {
|
|
80
|
+
const pos = event.latlng;
|
|
81
|
+
this.onMapClick.emit({
|
|
82
|
+
coordinates: {
|
|
83
|
+
latitude: pos.lat,
|
|
84
|
+
longitude: pos.lng,
|
|
85
|
+
},
|
|
86
|
+
originalEvent: event,
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
this.map.on('moveend', (event) => {
|
|
91
|
+
this.zone.run(() => {
|
|
92
|
+
const viewport = this.getViewport();
|
|
93
|
+
this.onMapDragEnd.emit({
|
|
94
|
+
viewport,
|
|
95
|
+
originalEvent: event,
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
this.map.on('zoomend', (event) => {
|
|
100
|
+
this.zone.run(() => {
|
|
101
|
+
const viewport = this.getViewport();
|
|
102
|
+
this.onMapDragEnd.emit({
|
|
103
|
+
viewport,
|
|
104
|
+
originalEvent: event,
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
getViewport() {
|
|
110
|
+
if (!this.map) {
|
|
111
|
+
throw new Error('Map is not yet initialised!');
|
|
112
|
+
}
|
|
113
|
+
const center = this.map.getCenter();
|
|
114
|
+
const zoomLevel = this.map.getZoom();
|
|
115
|
+
const leafletBounds = this.map.getBounds();
|
|
116
|
+
const { lat: swLat, lng: swLng } = leafletBounds.getSouthWest();
|
|
117
|
+
const { lat: neLat, lng: neLng } = leafletBounds.getNorthEast();
|
|
118
|
+
return {
|
|
119
|
+
center: {
|
|
120
|
+
latitude: center.lat,
|
|
121
|
+
longitude: center.lng,
|
|
122
|
+
},
|
|
123
|
+
zoomLevel,
|
|
124
|
+
bounds: [
|
|
125
|
+
{ latitude: swLat, longitude: swLng },
|
|
126
|
+
{ latitude: neLat, longitude: neLng },
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
createLeafletMapOptions() {
|
|
131
|
+
const viewport = this.model().viewport;
|
|
132
|
+
return {
|
|
133
|
+
centre: [viewport.center.latitude, viewport.center.longitude],
|
|
134
|
+
zoom: viewport.zoomLevel,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
handleItemChanges(toRemove, toAdd) {
|
|
138
|
+
if (!this.map) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this.markers = [];
|
|
142
|
+
const markerGroups = new Map();
|
|
143
|
+
toAdd.forEach((item) => {
|
|
144
|
+
if (item.record instanceof L.Marker) {
|
|
145
|
+
const key = item.record.getLatLng().lat.toFixed(6) + ',' + item.record.getLatLng().lng.toFixed(6);
|
|
146
|
+
if (!markerGroups.get(key)) {
|
|
147
|
+
markerGroups.set(key, []);
|
|
148
|
+
}
|
|
149
|
+
markerGroups.get(key).push(item.record);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
toRemove.forEach((it) => {
|
|
153
|
+
it.record.remove();
|
|
154
|
+
this.overlays.delete(it.id);
|
|
155
|
+
});
|
|
156
|
+
toAdd.forEach((it, index) => {
|
|
157
|
+
let record = it.record;
|
|
158
|
+
if (record instanceof L.LayerGroup) {
|
|
159
|
+
Object.values(record._layers).forEach((at) => {
|
|
160
|
+
at.on('click', (event) => {
|
|
161
|
+
this.zone.run(() => {
|
|
162
|
+
this.onOverlayClick.emit({
|
|
163
|
+
itemId: it.id,
|
|
164
|
+
originalEvent: {
|
|
165
|
+
originalEvent: event,
|
|
166
|
+
overlay: it.record,
|
|
167
|
+
map: this.map,
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
it.record.on('click', (event) => {
|
|
176
|
+
this.zone.run(() => {
|
|
177
|
+
this.onOverlayClick.emit({
|
|
178
|
+
itemId: it.id,
|
|
179
|
+
originalEvent: {
|
|
180
|
+
originalEvent: event,
|
|
181
|
+
overlay: it.record,
|
|
182
|
+
map: this.map,
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
let group = markerGroups.get(it.record.getLatLng().lat.toFixed(6) + ',' + it.record.getLatLng().lng.toFixed(6));
|
|
188
|
+
if (group && group.length > 1) {
|
|
189
|
+
const icon = this.createNumberedIcon(group.length);
|
|
190
|
+
const label = this.createLabel(group);
|
|
191
|
+
const extraMarker = L.marker(group[0].originalLatLng, { icon });
|
|
192
|
+
if (!extraMarker._tooltip) {
|
|
193
|
+
extraMarker.bindTooltip(label, {
|
|
194
|
+
permanent: false,
|
|
195
|
+
direction: 'auto',
|
|
196
|
+
});
|
|
197
|
+
this.markers.push(extraMarker);
|
|
198
|
+
}
|
|
199
|
+
const clusterMarker = extraMarker.addTo(this.map);
|
|
200
|
+
it.record.on('mouseover', (_event) => {
|
|
201
|
+
toAdd.forEach((item, index) => {
|
|
202
|
+
if (item.record instanceof L.Marker &&
|
|
203
|
+
item.record.originalLatLng.lat == it.record.originalLatLng.lat &&
|
|
204
|
+
item.record.originalLatLng.lng == it.record.originalLatLng.lng) {
|
|
205
|
+
it.record.setZIndexOffset(1000);
|
|
206
|
+
const angle = ((360 / toAdd.length) * index * Math.PI) / 180;
|
|
207
|
+
const newLat = item.record.originalLatLng.lat + this.offsetDistance * Math.cos(angle);
|
|
208
|
+
const newLng = item.record.originalLatLng.lng + this.offsetDistance * Math.sin(angle);
|
|
209
|
+
item.record.setLatLng([newLat, newLng]);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
if (this.map.hasLayer(clusterMarker)) {
|
|
213
|
+
this.map.removeLayer(clusterMarker);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
it.record.on('mouseout', (_event) => {
|
|
217
|
+
toAdd.forEach((item, _index) => {
|
|
218
|
+
if (item.record instanceof L.Marker) {
|
|
219
|
+
item.record.setLatLng(item.record.originalLatLng);
|
|
220
|
+
it.record.setZIndexOffset(0);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
if (!this.map.hasLayer(clusterMarker)) {
|
|
224
|
+
clusterMarker.addTo(this.map);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
this.markers.push(it.record);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
it.record.addTo(this.map);
|
|
233
|
+
this.overlays.set(it.id, it.record);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
handleEditingItemChanges(toRemove, toAdd) {
|
|
237
|
+
if (!this.map) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
toRemove.forEach((it) => {
|
|
241
|
+
it.record.remove();
|
|
242
|
+
this.editingOverlays.delete(it.id);
|
|
243
|
+
});
|
|
244
|
+
toAdd.forEach((it) => {
|
|
245
|
+
let record = it.record;
|
|
246
|
+
if (record instanceof L.LayerGroup) {
|
|
247
|
+
Object.values(record._layers).forEach((at) => {
|
|
248
|
+
at.on('click', (event) => {
|
|
249
|
+
this.zone.run(() => {
|
|
250
|
+
this.onEditingOverlayClick.emit({
|
|
251
|
+
itemId: it.id,
|
|
252
|
+
coord: {
|
|
253
|
+
x: event.latlng.lng,
|
|
254
|
+
y: event.latlng.lat,
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
at.on('dragstart', (event) => {
|
|
260
|
+
this.originalLatLng = event.target.getLatLng();
|
|
261
|
+
});
|
|
262
|
+
at.on('dragend', (event) => {
|
|
263
|
+
this.zone.run(() => {
|
|
264
|
+
this.onEditingOverlayDrag.emit({
|
|
265
|
+
itemId: it.id,
|
|
266
|
+
startPosition: {
|
|
267
|
+
x: this.originalLatLng.lng,
|
|
268
|
+
y: this.originalLatLng.lat,
|
|
269
|
+
},
|
|
270
|
+
dragTo: {
|
|
271
|
+
x: event.target.getLatLng().lng,
|
|
272
|
+
y: event.target.getLatLng().lat,
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
this.originalLatLng = null;
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
it.record.on('click', (event) => {
|
|
282
|
+
this.zone.run(() => {
|
|
283
|
+
this.onEditingOverlayClick.emit({
|
|
284
|
+
itemId: it.id,
|
|
285
|
+
coord: {
|
|
286
|
+
x: event.latlng.lng,
|
|
287
|
+
y: event.latlng.lat,
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
it.record.addTo(this.map);
|
|
294
|
+
this.editingOverlays.set(it.id, it.record);
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
findDatasetBounds() {
|
|
298
|
+
const items = this.items()
|
|
299
|
+
.flatMap((it) => (it.position ? [it.position] : it.route ? it.route.points : []))
|
|
300
|
+
.map((it) => {
|
|
301
|
+
return { x: it.latitude, y: it.longitude };
|
|
302
|
+
});
|
|
303
|
+
if (!items || items.length === 0) {
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
let southwest = { x: items[0].x, y: items[0].y };
|
|
307
|
+
let northeast = { x: items[0].x, y: items[0].y };
|
|
308
|
+
items.forEach((it) => {
|
|
309
|
+
if (it.x < southwest.x)
|
|
310
|
+
southwest.x = it.x;
|
|
311
|
+
if (it.y < southwest.y)
|
|
312
|
+
southwest.y = it.y;
|
|
313
|
+
if (it.x > northeast.x)
|
|
314
|
+
northeast.x = it.x;
|
|
315
|
+
if (it.y > northeast.y)
|
|
316
|
+
northeast.y = it.y;
|
|
317
|
+
});
|
|
318
|
+
return { a: southwest, b: northeast };
|
|
319
|
+
}
|
|
320
|
+
toBase64() {
|
|
321
|
+
return new Promise((resolve, reject) => {
|
|
322
|
+
setTimeout(() => {
|
|
323
|
+
leafletImage(this.map, (err, canvas) => {
|
|
324
|
+
if (err) {
|
|
325
|
+
console.error('Leaflet image capture error', err);
|
|
326
|
+
reject(err);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
const ctx = canvas.getContext('2d');
|
|
330
|
+
if (!ctx) {
|
|
331
|
+
reject('No context');
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
this.markers.forEach((marker) => {
|
|
335
|
+
const tooltip = marker.getTooltip();
|
|
336
|
+
if (!tooltip) {
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
const latLng = marker.getLatLng();
|
|
340
|
+
const point = this.map.latLngToContainerPoint(latLng);
|
|
341
|
+
const text = tooltip.getContent();
|
|
342
|
+
// Tooltip szöveg megjelenítése
|
|
343
|
+
ctx.font = 'bold 30px sans-serif';
|
|
344
|
+
ctx.fillStyle = 'black';
|
|
345
|
+
ctx.strokeStyle = 'white';
|
|
346
|
+
ctx.lineWidth = 4;
|
|
347
|
+
ctx.textAlign = 'center';
|
|
348
|
+
ctx.textBaseline = 'bottom';
|
|
349
|
+
ctx.strokeText(text, point.x, point.y + 10); // fehér kontúr
|
|
350
|
+
ctx.fillText(text, point.x, point.y + 10); // fekete szöveg
|
|
351
|
+
});
|
|
352
|
+
resolve(canvas.toDataURL('image/png'));
|
|
353
|
+
});
|
|
354
|
+
}, 300);
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
createLabel(group) {
|
|
358
|
+
let label = '';
|
|
359
|
+
group.forEach((item) => {
|
|
360
|
+
label += item._tooltip._content + ', ';
|
|
361
|
+
item._tooltip.permanent = false;
|
|
362
|
+
});
|
|
363
|
+
return label;
|
|
364
|
+
}
|
|
365
|
+
createNumberedIcon(number) {
|
|
366
|
+
const size = 35;
|
|
367
|
+
const scaleFactor = 15;
|
|
368
|
+
const scaledSize = size * scaleFactor;
|
|
369
|
+
const canvas = document.createElement('canvas');
|
|
370
|
+
canvas.width = scaledSize;
|
|
371
|
+
canvas.height = scaledSize;
|
|
372
|
+
canvas.style.width = canvas.style.height = '35px';
|
|
373
|
+
const ctx = canvas.getContext('2d');
|
|
374
|
+
ctx.scale(scaleFactor, scaleFactor);
|
|
375
|
+
ctx.beginPath();
|
|
376
|
+
ctx.arc(size / 2, size / 2, size / 2 - 2, 0, 2 * Math.PI, false);
|
|
377
|
+
ctx.fillStyle = '#0078d4';
|
|
378
|
+
ctx.fill();
|
|
379
|
+
ctx.lineWidth = 2;
|
|
380
|
+
ctx.strokeStyle = '#ffffff';
|
|
381
|
+
ctx.stroke();
|
|
382
|
+
ctx.fillStyle = '#ffffff';
|
|
383
|
+
ctx.font = 'bold 16px sans-serif';
|
|
384
|
+
ctx.textAlign = 'center';
|
|
385
|
+
ctx.textBaseline = 'middle';
|
|
386
|
+
ctx.fillText(number.toString(), size / 2, size / 2);
|
|
387
|
+
return L.icon({
|
|
388
|
+
iconUrl: canvas.toDataURL(),
|
|
389
|
+
iconSize: [size, size],
|
|
390
|
+
iconAnchor: [size / 2, size / 2],
|
|
391
|
+
popupAnchor: [0, -size / 2],
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
395
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: LeafletMap, selector: "leaflet-map", usesInheritance: true, ngImport: i0, template: ` <div id="leaflet"></div>`, isInline: true, styles: ["#leaflet{height:720px}::ng-deep .marker-count{background-color:#0078d4;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;border:2px solid white;box-shadow:0 0 4px #0006}::ng-deep .custom-cluster-icon{pointer-events:auto!important}\n"] }); }
|
|
396
|
+
}
|
|
397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, decorators: [{
|
|
398
|
+
type: Component,
|
|
399
|
+
args: [{ selector: 'leaflet-map', template: ` <div id="leaflet"></div>`, styles: ["#leaflet{height:720px}::ng-deep .marker-count{background-color:#0078d4;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;border:2px solid white;box-shadow:0 0 4px #0006}::ng-deep .custom-cluster-icon{pointer-events:auto!important}\n"] }]
|
|
400
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }] });
|
|
401
|
+
function getIcon(color) {
|
|
402
|
+
const size = 12;
|
|
403
|
+
const scaleFactor = 12;
|
|
404
|
+
const scaledSize = size * scaleFactor;
|
|
405
|
+
const canvas = document.createElement('canvas');
|
|
406
|
+
canvas.width = scaledSize;
|
|
407
|
+
canvas.height = scaledSize;
|
|
408
|
+
canvas.style.width = canvas.style.height = `${size}px`;
|
|
409
|
+
const ctx = canvas.getContext('2d');
|
|
410
|
+
ctx.scale(scaleFactor, scaleFactor);
|
|
411
|
+
ctx.beginPath();
|
|
412
|
+
ctx.arc(size / 2, size / 2, size / 2, 0, 2 * Math.PI, false);
|
|
413
|
+
ctx.fillStyle = color;
|
|
414
|
+
ctx.fill();
|
|
415
|
+
return L.icon({
|
|
416
|
+
iconUrl: canvas.toDataURL(),
|
|
417
|
+
iconSize: [size, size],
|
|
418
|
+
iconAnchor: [size / 2, size / 2],
|
|
419
|
+
popupAnchor: [0, -size / 2],
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvaW1wbC9sZWFmbGV0LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsY0FBYyxFQUFrQixNQUFNLFFBQVEsQ0FBQzs7QUFZcEUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFnQixFQUFFLE1BQTRCO0lBQzFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN2QyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3hCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNqRixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7YUFDNUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLO2dCQUN2QyxTQUFTLEVBQUUsTUFBTTthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkYsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxj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QUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUMxQixNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO0lBQ3ZELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFFLENBQUM7SUFDckMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFcEMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdELEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQzNCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFDdEIsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7S0FDNUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNYXAsIFJlY29yZFdpdGhJZCB9IGZyb20gJy4uL2Fic3RyYWN0LW1hcCc7XG5pbXBvcnQgeyBHZW9NYXBJdGVtLCBHZW9NYXBJdGVtS2luZCwgR2VvTWFwVmlld3BvcnQgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgQ29vcmQsIE1hcEl0ZW1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc21hcnQtbWFwLnR5cGVzJztcbmltcG9ydCB7IEkgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5kZWNsYXJlIHZhciBMOiBhbnk7XG5kZWNsYXJlIGNvbnN0IGxlYWZsZXRJbWFnZTogYW55O1xuXG5pbnRlcmZhY2UgTGVhZmxldE1hcE9wdGlvbnMge1xuICBjZW50cmU6IEFycmF5PG51bWJlcj47XG4gIHpvb206IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGVhZmxldE1hcEl0ZW0oaXRlbTogR2VvTWFwSXRlbSwgY29uZmlnOiBNYXBJdGVtQ29uZmlndXJhdGlvbik6IGFueSB7XG4gIGxldCBjb2xvciA9IGl0ZW0uY29sb3IgPz8gY29uZmlnLmNvbG9yO1xuICBzd2l0Y2ggKGl0ZW0ua2luZCkge1xuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTUFSS0VSOlxuICAgICAgbGV0IG1hcmtlciA9IEwubWFya2VyKEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpLCB7XG4gICAgICAgIGRyYWdnYWJsZTogY29uZmlnLmRyYWdnYWJsZSxcbiAgICAgIH0pLmJpbmRUb29sdGlwKGl0ZW0ubGFiZWwsIHtcbiAgICAgICAgcGVybWFuZW50OiBpdGVtLnBlcm1hbmVudExhYmVsID8/IGZhbHNlLFxuICAgICAgICBkaXJlY3Rpb246ICdhdXRvJyxcbiAgICAgIH0pO1xuICAgICAgbWFya2VyLm9yaWdpbmFsTGF0TG5nID0gTC5sYXRMbmcoaXRlbS5wb3NpdGlvbiEubGF0aXR1ZGUsIGl0ZW0ucG9zaXRpb24hLmxvbmdpdHVkZSk7IC8vXG4gICAgICByZXR1cm4gbWFya2VyO1xuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuUE9MWUdPTjpcbiAgICAgIGNvbnN0IHBvbHlnb25Sb3V0ZVBvaW50cyA9IGl0ZW0ucm91dGUhLnBvaW50cztcbiAgICAgIHJldHVybiBMLmxheWVyR3JvdXAoW1xuICAgICAgICBMLnBvbHlnb24oXG4gICAgICAgICAgcG9seWdvblJvdXRlUG9pbnRzLm1hcCgocCkgPT4gW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSksXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbG9yIH1cbiAgICAgICAgKSxcbiAgICAgICAgLi4ucG9seWdvblJvdXRlUG9pbnRzLm1hcCgocCkgPT5cbiAgICAgICAgICBMLm1hcmtlcihbcC5sYXRpdHVkZSwgcC5sb25naXR1ZGVdLCB7XG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgIG1hcmtlckNvbG9yOiBjb2xvcixcbiAgICAgICAgICAgIGRyYWdnYWJsZTogY29uZmlnLmRyYWdnYWJsZSxcbiAgICAgICAgICAgIGljb246IGdldEljb24oY29sb3IpLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKTtcbiAgICBjYXNlIEdlb01hcEl0ZW1LaW5kLkxJTkU6XG4gICAgICBjb25zdCBsaW5lUm91dGVQb2ludHMgPSBpdGVtLnJvdXRlIS5wb2ludHM7XG5cbiAgICAgIHJldHVybiBMLmxheWVyR3JvdXAoW1xuICAgICAgICBMLnBvbHlsaW5lKFxuICAgICAgICAgIGxpbmVSb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxuICAgICAgICAgIHsgdGl0bGU6IGl0ZW0ubGFiZWwsIGNvbG9yOiBjb2xvciB9XG4gICAgICAgICksXG4gICAgICAgIC4uLmxpbmVSb3V0ZVBvaW50cy5tYXAoKHApID0+XG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xuICAgICAgICAgICAgdGl0bGU6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgICBjb2xvcjogY29sb3IsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IGNvbmZpZy5kcmFnZ2FibGUsXG4gICAgICAgICAgICBpY29uOiBnZXRJY29uKGNvbG9yKSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGVhZmxldC1tYXAnLFxuICB0ZW1wbGF0ZTogYCA8ZGl2IGlkPVwibGVhZmxldFwiPjwvZGl2PmAsXG4gIHN0eWxlczogYFxuICAgICAgI2xlYWZsZXQge1xuICAgICAgICAgIGhlaWdodDogNzIwcHg7XG4gICAgICB9XG4gICAgIDo6bmctZGVlcCAubWFya2VyLWNvdW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0O1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoMCwwLDAsMC40KTtcbiAgICB9XG4gICAgIDo6bmctZGVlcCAuY3VzdG9tLWNsdXN0ZXItaWNvbiB7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9YCxcbn0pXG5leHBvcnQgY2xhc3MgTGVhZmxldE1hcCBleHRlbmRzIEFic3RyYWN0TWFwIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIG9yaWdpbmFsTGF0TG5nOiBhbnk7XG4gIG9mZnNldERpc3RhbmNlID0gMC4wMDAwNDtcbiAgbWFya2VyczogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHpvbmU6IE5nWm9uZSkge1xuICAgIHN1cGVyKGVsLCBjZCwgem9uZSwgY3JlYXRlTGVhZmxldE1hcEl0ZW0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tYXAgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFBhcmVudCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNyZWF0ZUxlYWZsZXRNYXBPcHRpb25zKCk7XG4gICAgdGhpcy5tYXAgPSBMLm1hcCgnbGVhZmxldCcsIHsgcHJlZmVyQ2FudmFzOiB0cnVlIH0pLnNldFZpZXcob3B0aW9ucy5jZW50cmUsIG9wdGlvbnMuem9vbSk7XG4gICAgTC50aWxlTGF5ZXIoJ2h0dHBzOi8vdGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLCB7XG4gICAgICBtYXhab29tOiAxOSxcbiAgICAgIGF0dHJpYnV0aW9uOiAnJmNvcHk7IDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+JyxcbiAgICB9KS5hZGRUbyh0aGlzLm1hcCk7XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXMoKTtcbiAgICBjb25zdCB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPiA9IGl0ZW1zLm1hcCgoaXQpID0+ICh7XG4gICAgICBpZDogaXQuaWQhLFxuICAgICAgcmVjb3JkOiBjcmVhdGVMZWFmbGV0TWFwSXRlbShpdCwgeyBjb2xvcjogJyMzMzg4ZmYnLCBkcmFnZ2FibGU6IGZhbHNlIH0pLFxuICAgIH0pKTtcbiAgICB0aGlzLmhhbmRsZUl0ZW1DaGFuZ2VzKFtdLCB0b0FkZCk7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsKCk7XG4gICAgaWYgKG1vZGVsLnZpZXdTdGF0ZT8uZml0VG9Jbml0aWFsSXRlbXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXRCb3VuZHMgPSB0aGlzLmZpbmREYXRhc2V0Qm91bmRzKCk7XG4gICAgICBpZiAoZGF0YXNldEJvdW5kcykge1xuICAgICAgICBjb25zdCB7IGEsIGIgfSA9IGRhdGFzZXRCb3VuZHM7XG4gICAgICAgIGNvbnN0IHBudEEgPSBMLmxhdExuZyhhLngsIGEueSk7XG4gICAgICAgIGNvbnN0IHBudEIgPSBMLmxhdExuZyhiLngsIGIueSk7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IEwubGF0TG5nQm91bmRzKHBudEEsIHBudEIpO1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm1hcC5maXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWFwLm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gZXZlbnQubGF0bG5nO1xuICAgICAgICB0aGlzLm9uTWFwQ2xpY2suZW1pdCh7XG4gICAgICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgICAgIGxhdGl0dWRlOiBwb3MubGF0IGFzIG51bWJlcixcbiAgICAgICAgICAgIGxvbmdpdHVkZTogcG9zLmxuZyBhcyBudW1iZXIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMubWFwLm9uKCdtb3ZlZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld3BvcnQoKTtcbiAgICAgICAgdGhpcy5vbk1hcERyYWdFbmQuZW1pdCh7XG4gICAgICAgICAgdmlld3BvcnQsXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1hcC5vbignem9vbWVuZCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmdldFZpZXdwb3J0KCk7XG4gICAgICAgIHRoaXMub25NYXBEcmFnRW5kLmVtaXQoe1xuICAgICAgICAgIHZpZXdwb3J0LFxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Vmlld3BvcnQoKTogR2VvTWFwVmlld3BvcnQge1xuICAgIGlmICghdGhpcy5tYXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWFwIGlzIG5vdCB5ZXQgaW5pdGlhbGlzZWQhJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7XG4gICAgY29uc3Qgem9vbUxldmVsID0gdGhpcy5tYXAuZ2V0Wm9vbSgpIGFzIG51bWJlcjtcbiAgICBjb25zdCBsZWFmbGV0Qm91bmRzID0gdGhpcy5tYXAuZ2V0Qm91bmRzKCk7XG4gICAgY29uc3QgeyBsYXQ6IHN3TGF0LCBsbmc6IHN3TG5nIH0gPSBsZWFmbGV0Qm91bmRzLmdldFNvdXRoV2VzdCgpO1xuICAgIGNvbnN0IHsgbGF0OiBuZUxhdCwgbG5nOiBuZUxuZyB9ID0gbGVhZmxldEJvdW5kcy5nZXROb3J0aEVhc3QoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjZW50ZXI6IHtcbiAgICAgICAgbGF0aXR1ZGU6IGNlbnRlci5sYXQgYXMgbnVtYmVyLFxuICAgICAgICBsb25naXR1ZGU6IGNlbnRlci5sbmcgYXMgbnVtYmVyLFxuICAgICAgfSxcbiAgICAgIHpvb21MZXZlbCxcbiAgICAgIGJvdW5kczogW1xuICAgICAgICB7IGxhdGl0dWRlOiBzd0xhdCwgbG9uZ2l0dWRlOiBzd0xuZyB9LFxuICAgICAgICB7IGxhdGl0dWRlOiBuZUxhdCwgbG9uZ2l0dWRlOiBuZUxuZyB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMZWFmbGV0TWFwT3B0aW9ucygpOiBMZWFmbGV0TWFwT3B0aW9ucyB7XG4gICAgY29uc3Qgdmlld3BvcnQ6IEdlb01hcFZpZXdwb3J0ID0gdGhpcy5tb2RlbCgpLnZpZXdwb3J0ITtcbiAgICByZXR1cm4ge1xuICAgICAgY2VudHJlOiBbdmlld3BvcnQuY2VudGVyIS5sYXRpdHVkZSwgdmlld3BvcnQuY2VudGVyIS5sb25naXR1ZGVdLFxuICAgICAgem9vbTogdmlld3BvcnQuem9vbUxldmVsISxcbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgaGFuZGxlSXRlbUNoYW5nZXModG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sIHRvQWRkOiBBcnJheTxSZWNvcmRXaXRoSWQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcmtlcnMgPSBbXTtcbiAgICBjb25zdCBtYXJrZXJHcm91cHM6IE1hcDxzdHJpbmcsIGFueVtdPiA9IG5ldyBNYXAoKTtcblxuICAgIHRvQWRkLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnJlY29yZCBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgIGNvbnN0IGtleSA9XG4gICAgICAgICAgaXRlbS5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdGVtLnJlY29yZC5nZXRMYXRMbmcoKS5sbmcudG9GaXhlZCg2KTtcbiAgICAgICAgaWYgKCFtYXJrZXJHcm91cHMuZ2V0KGtleSkpIHtcbiAgICAgICAgICBtYXJrZXJHcm91cHMuc2V0KGtleSwgW10pO1xuICAgICAgICB9XG4gICAgICAgIG1hcmtlckdyb3Vwcy5nZXQoa2V5KSEucHVzaChpdGVtLnJlY29yZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0b1JlbW92ZS5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xuICAgICAgdGhpcy5vdmVybGF5cy5kZWxldGUoaXQuaWQpO1xuICAgIH0pO1xuXG4gICAgdG9BZGQuZm9yRWFjaCgoaXQsIGluZGV4KSA9PiB7XG4gICAgICBsZXQgcmVjb3JkID0gaXQucmVjb3JkO1xuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xuICAgICAgICBPYmplY3QudmFsdWVzKHJlY29yZC5fbGF5ZXJzKS5mb3JFYWNoKChhdDogYW55KSA9PiB7XG4gICAgICAgICAgYXQub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUNsaWNrLmVtaXQoe1xuICAgICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQsXG4gICAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXQucmVjb3JkLm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUNsaWNrLmVtaXQoe1xuICAgICAgICAgICAgICBpdGVtSWQ6IGl0LmlkLFxuICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiB7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgb3ZlcmxheTogaXQucmVjb3JkLFxuICAgICAgICAgICAgICAgIG1hcDogdGhpcy5tYXAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGdyb3VwID0gbWFya2VyR3JvdXBzLmdldChcbiAgICAgICAgICBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubG5nLnRvRml4ZWQoNilcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGdyb3VwICYmIGdyb3VwLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5jcmVhdGVOdW1iZXJlZEljb24oZ3JvdXAubGVuZ3RoKTtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuY3JlYXRlTGFiZWwoZ3JvdXApO1xuICAgICAgICAgIGNvbnN0IGV4dHJhTWFya2VyID0gTC5tYXJrZXIoZ3JvdXBbMF0ub3JpZ2luYWxMYXRMbmcsIHsgaWNvbiB9KTtcblxuICAgICAgICAgIGlmICghZXh0cmFNYXJrZXIuX3Rvb2x0aXApIHtcbiAgICAgICAgICAgIGV4dHJhTWFya2VyLmJpbmRUb29sdGlwKGxhYmVsLCB7XG4gICAgICAgICAgICAgIHBlcm1hbmVudDogZmFsc2UsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbjogJ2F1dG8nLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm1hcmtlcnMucHVzaChleHRyYU1hcmtlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGNsdXN0ZXJNYXJrZXIgPSBleHRyYU1hcmtlci5hZGRUbyh0aGlzLm1hcCk7XG4gICAgICAgICAgaXQucmVjb3JkLm9uKCdtb3VzZW92ZXInLCAoX2V2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRvQWRkLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZCBpbnN0YW5jZW9mIEwuTWFya2VyICYmXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubGF0ID09IGl0LnJlY29yZC5vcmlnaW5hbExhdExuZy5sYXQgJiZcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5vcmlnaW5hbExhdExuZy5sbmcgPT0gaXQucmVjb3JkLm9yaWdpbmFsTGF0TG5nLmxuZ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBpdC5yZWNvcmQuc2V0WkluZGV4T2Zmc2V0KDEwMDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFuZ2xlID0gKCgzNjAgLyB0b0FkZC5sZW5ndGgpICogaW5kZXggKiBNYXRoLlBJKSAvIDE4MDtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMYXQgPVxuICAgICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubGF0ICsgdGhpcy5vZmZzZXREaXN0YW5jZSAqIE1hdGguY29zKGFuZ2xlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMbmcgPVxuICAgICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubG5nICsgdGhpcy5vZmZzZXREaXN0YW5jZSAqIE1hdGguc2luKGFuZ2xlKTtcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5zZXRMYXRMbmcoW25ld0xhdCwgbmV3TG5nXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMubWFwLmhhc0xheWVyKGNsdXN0ZXJNYXJrZXIpKSB7XG4gICAgICAgICAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKGNsdXN0ZXJNYXJrZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGl0LnJlY29yZC5vbignbW91c2VvdXQnLCAoX2V2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRvQWRkLmZvckVhY2goKGl0ZW0sIF9pbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbS5yZWNvcmQgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICAgICAgICAgIGl0ZW0ucmVjb3JkLnNldExhdExuZyhpdGVtLnJlY29yZC5vcmlnaW5hbExhdExuZyk7XG4gICAgICAgICAgICAgICAgaXQucmVjb3JkLnNldFpJbmRleE9mZnNldCgwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWFwLmhhc0xheWVyKGNsdXN0ZXJNYXJrZXIpKSB7XG4gICAgICAgICAgICAgIGNsdXN0ZXJNYXJrZXIuYWRkVG8odGhpcy5tYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWFya2Vycy5wdXNoKGl0LnJlY29yZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGl0LnJlY29yZC5hZGRUbyh0aGlzLm1hcCk7XG4gICAgICB0aGlzLm92ZXJsYXlzLnNldChpdC5pZCwgaXQucmVjb3JkKTtcbiAgICB9KTtcbiAgfVxuICBvdmVycmlkZSBoYW5kbGVFZGl0aW5nSXRlbUNoYW5nZXMoXG4gICAgdG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sXG4gICAgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD5cbiAgKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRvUmVtb3ZlLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICBpdC5yZWNvcmQucmVtb3ZlKCk7XG4gICAgICB0aGlzLmVkaXRpbmdPdmVybGF5cy5kZWxldGUoaXQuaWQpO1xuICAgIH0pO1xuXG4gICAgdG9BZGQuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgIGxldCByZWNvcmQgPSBpdC5yZWNvcmQ7XG4gICAgICBpZiAocmVjb3JkIGluc3RhbmNlb2YgTC5MYXllckdyb3VwKSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcbiAgICAgICAgICBhdC5vbignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xuICAgICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXG4gICAgICAgICAgICAgICAgY29vcmQ6IHtcbiAgICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXG4gICAgICAgICAgICAgICAgICB5OiBldmVudC5sYXRsbmcubGF0LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXQub24oJ2RyYWdzdGFydCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsTGF0TG5nID0gZXZlbnQudGFyZ2V0LmdldExhdExuZygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGF0Lm9uKCdkcmFnZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9uRWRpdGluZ092ZXJsYXlEcmFnLmVtaXQoe1xuICAgICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXG4gICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgICAgeDogdGhpcy5vcmlnaW5hbExhdExuZy5sbmcsXG4gICAgICAgICAgICAgICAgICB5OiB0aGlzLm9yaWdpbmFsTGF0TG5nLmxhdCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRyYWdUbzoge1xuICAgICAgICAgICAgICAgICAgeDogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxuZyxcbiAgICAgICAgICAgICAgICAgIHk6IGV2ZW50LnRhcmdldC5nZXRMYXRMbmcoKS5sYXQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxMYXRMbmcgPSBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0LnJlY29yZC5vbignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkVkaXRpbmdPdmVybGF5Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXG4gICAgICAgICAgICAgIGNvb3JkOiB7XG4gICAgICAgICAgICAgICAgeDogZXZlbnQubGF0bG5nLmxuZyxcbiAgICAgICAgICAgICAgICB5OiBldmVudC5sYXRsbmcubGF0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpdC5yZWNvcmQuYWRkVG8odGhpcy5tYXApO1xuICAgICAgdGhpcy5lZGl0aW5nT3ZlcmxheXMuc2V0KGl0LmlkLCBpdC5yZWNvcmQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kRGF0YXNldEJvdW5kcygpOiB7IGE6IENvb3JkOyBiOiBDb29yZCB9IHwgbnVsbCB7XG4gICAgY29uc3QgaXRlbXM6IEFycmF5PENvb3JkPiA9IHRoaXMuaXRlbXMoKVxuICAgICAgLmZsYXRNYXAoKGl0KSA9PiAoaXQucG9zaXRpb24gPyBbaXQucG9zaXRpb25dIDogaXQucm91dGUgPyBpdC5yb3V0ZS5wb2ludHMgOiBbXSkpXG4gICAgICAubWFwKChpdCkgPT4ge1xuICAgICAgICByZXR1cm4geyB4OiBpdC5sYXRpdHVkZSwgeTogaXQubG9uZ2l0dWRlIH07XG4gICAgICB9KTtcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IHNvdXRod2VzdDogQ29vcmQgPSB7IHg6IGl0ZW1zWzBdLngsIHk6IGl0ZW1zWzBdLnkgfTtcbiAgICBsZXQgbm9ydGhlYXN0OiBDb29yZCA9IHsgeDogaXRlbXNbMF0ueCwgeTogaXRlbXNbMF0ueSB9O1xuXG4gICAgaXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgIGlmIChpdC54IDwgc291dGh3ZXN0LngpIHNvdXRod2VzdC54ID0gaXQueDtcbiAgICAgIGlmIChpdC55IDwgc291dGh3ZXN0LnkpIHNvdXRod2VzdC55ID0gaXQueTtcblxuICAgICAgaWYgKGl0LnggPiBub3J0aGVhc3QueCkgbm9ydGhlYXN0LnggPSBpdC54O1xuICAgICAgaWYgKGl0LnkgPiBub3J0aGVhc3QueSkgbm9ydGhlYXN0LnkgPSBpdC55O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgYTogc291dGh3ZXN0LCBiOiBub3J0aGVhc3QgfTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvQmFzZTY0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsZWFmbGV0SW1hZ2UodGhpcy5tYXAsIChlcnI6IGFueSwgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0xlYWZsZXQgaW1hZ2UgY2FwdHVyZSBlcnJvcicsIGVycik7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICBpZiAoIWN0eCkge1xuICAgICAgICAgICAgcmVqZWN0KCdObyBjb250ZXh0Jyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5tYXJrZXJzLmZvckVhY2goKG1hcmtlcjogeyBnZXRUb29sdGlwOiAoKSA9PiBhbnk7IGdldExhdExuZzogKCkgPT4gYW55IH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYXJrZXIuZ2V0VG9vbHRpcCgpO1xuICAgICAgICAgICAgaWYgKCF0b29sdGlwKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhdExuZyA9IG1hcmtlci5nZXRMYXRMbmcoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gdGhpcy5tYXAubGF0TG5nVG9Db250YWluZXJQb2ludChsYXRMbmcpO1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRvb2x0aXAuZ2V0Q29udGVudCgpO1xuXG4gICAgICAgICAgICAvLyBUb29sdGlwIHN6w7Z2ZWcgbWVnamVsZW7DrXTDqXNlXG4gICAgICAgICAgICBjdHguZm9udCA9ICdib2xkIDMwcHggc2Fucy1zZXJpZic7XG4gICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJ2JsYWNrJztcbiAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICAgICAgICBjdHgubGluZVdpZHRoID0gNDtcbiAgICAgICAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgICAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnYm90dG9tJztcbiAgICAgICAgICAgIGN0eC5zdHJva2VUZXh0KHRleHQsIHBvaW50LngsIHBvaW50LnkgKyAxMCk7IC8vIGZlaMOpciBrb250w7pyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgcG9pbnQueCwgcG9pbnQueSArIDEwKTsgLy8gZmVrZXRlIHN6w7Z2ZWdcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJlc29sdmUoY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJykpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVMYWJlbChncm91cDogYW55W10pIHtcbiAgICBsZXQgbGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIGdyb3VwLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGxhYmVsICs9IGl0ZW0uX3Rvb2x0aXAuX2NvbnRlbnQgKyAnLCAnO1xuICAgICAgaXRlbS5fdG9vbHRpcC5wZXJtYW5lbnQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbiAgY3JlYXRlTnVtYmVyZWRJY29uKG51bWJlcjogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2l6ZSA9IDM1O1xuICAgIGNvbnN0IHNjYWxlRmFjdG9yID0gMTU7XG4gICAgY29uc3Qgc2NhbGVkU2l6ZSA9IHNpemUgKiBzY2FsZUZhY3RvcjtcblxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNhbnZhcy53aWR0aCA9IHNjYWxlZFNpemU7XG4gICAgY2FudmFzLmhlaWdodCA9IHNjYWxlZFNpemU7XG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gY2FudmFzLnN0eWxlLmhlaWdodCA9ICczNXB4JztcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XG4gICAgY3R4LnNjYWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3Rvcik7XG5cbiAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgY3R4LmFyYyhzaXplIC8gMiwgc2l6ZSAvIDIsIHNpemUgLyAyIC0gMiwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcbiAgICBjdHguZmlsbFN0eWxlID0gJyMwMDc4ZDQnO1xuICAgIGN0eC5maWxsKCk7XG4gICAgY3R4LmxpbmVXaWR0aCA9IDI7XG4gICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnO1xuICAgIGN0eC5zdHJva2UoKTtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7XG4gICAgY3R4LmZvbnQgPSAnYm9sZCAxNnB4IHNhbnMtc2VyaWYnO1xuICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICBjdHgudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG4gICAgY3R4LmZpbGxUZXh0KG51bWJlci50b1N0cmluZygpLCBzaXplIC8gMiwgc2l6ZSAvIDIpO1xuXG4gICAgcmV0dXJuIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBjYW52YXMudG9EYXRhVVJMKCksXG4gICAgICBpY29uU2l6ZTogW3NpemUsIHNpemVdLFxuICAgICAgaWNvbkFuY2hvcjogW3NpemUgLyAyLCBzaXplIC8gMl0sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC1zaXplIC8gMl0sXG4gICAgfSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldEljb24oY29sb3I6IHN0cmluZykge1xuICBjb25zdCBzaXplID0gMTI7XG4gIGNvbnN0IHNjYWxlRmFjdG9yID0gMTI7XG4gIGNvbnN0IHNjYWxlZFNpemUgPSBzaXplICogc2NhbGVGYWN0b3I7XG5cbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gIGNhbnZhcy53aWR0aCA9IHNjYWxlZFNpemU7XG4gIGNhbnZhcy5oZWlnaHQgPSBzY2FsZWRTaXplO1xuICBjYW52YXMuc3R5bGUud2lkdGggPSBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gYCR7c2l6ZX1weGA7XG4gIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcbiAgY3R4LnNjYWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3Rvcik7XG5cbiAgY3R4LmJlZ2luUGF0aCgpO1xuICBjdHguYXJjKHNpemUgLyAyLCBzaXplIC8gMiwgc2l6ZSAvIDIsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XG4gIGN0eC5maWxsU3R5bGUgPSBjb2xvcjtcbiAgY3R4LmZpbGwoKTtcblxuICByZXR1cm4gTC5pY29uKHtcbiAgICBpY29uVXJsOiBjYW52YXMudG9EYXRhVVJMKCksXG4gICAgaWNvblNpemU6IFtzaXplLCBzaXplXSxcbiAgICBpY29uQW5jaG9yOiBbc2l6ZSAvIDIsIHNpemUgLyAyXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC1zaXplIC8gMl0sXG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './smart-map.component';
|
|
2
|
+
export * from './smart-map.module';
|
|
3
|
+
export * from './impl/google-map';
|
|
4
|
+
export * from './impl/leaflet-map';
|
|
5
|
+
export * from './api/model/models';
|
|
6
|
+
export * from './smart-map.types';
|
|
7
|
+
export * from './abstract-map';
|
|
8
|
+
export * from './api-default/api-default';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvcHJvamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zbWFydC1tYXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnQtbWFwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvZ29vZ2xlLW1hcCc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvbGVhZmxldC1tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvbW9kZWwvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnQtbWFwLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3QtbWFwJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpLWRlZmF1bHQvYXBpLWRlZmF1bHQnO1xuIl19
|