@smartbit4all/ng-client 5.0.20 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (690) hide show
  1. package/README.md +386 -386
  2. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +17 -0
  3. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +35 -0
  4. package/esm2022/lib/component-factory-service/projects.mjs +6 -0
  5. package/esm2022/lib/session/api/api/api.mjs +4 -0
  6. package/esm2022/lib/session/api/api/session.service.mjs +306 -0
  7. package/esm2022/lib/session/api/configuration.mjs +91 -0
  8. package/esm2022/lib/session/api/encoder.mjs +19 -0
  9. package/esm2022/lib/session/api/index.mjs +3 -0
  10. package/esm2022/lib/session/api/model/accountInfo.mjs +13 -0
  11. package/esm2022/lib/session/api/model/apiError.mjs +13 -0
  12. package/esm2022/lib/session/api/model/authenticationProviderData.mjs +13 -0
  13. package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
  14. package/esm2022/lib/session/api/model/models.mjs +9 -0
  15. package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +13 -0
  16. package/esm2022/lib/session/api/model/session.mjs +2 -0
  17. package/esm2022/lib/session/api/model/sessionInfoData.mjs +2 -0
  18. package/esm2022/lib/session/api/model/userActivityLog.mjs +13 -0
  19. package/esm2022/lib/session/api/param.mjs +2 -0
  20. package/esm2022/lib/session/api/variables.mjs +9 -0
  21. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
  22. package/esm2022/lib/session/projects.mjs +13 -0
  23. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +2 -0
  24. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +214 -0
  25. package/esm2022/lib/session/smart-default-error-ui.service.mjs +134 -0
  26. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +109 -0
  27. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +44 -0
  28. package/esm2022/lib/session/smart-session-handler.service.mjs +7 -0
  29. package/esm2022/lib/session/smart-session.module.mjs +58 -0
  30. package/esm2022/lib/session/smart-session.service.mjs +284 -0
  31. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +39 -0
  32. package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +63 -0
  33. package/esm2022/lib/shared/projects.mjs +4 -0
  34. package/esm2022/lib/shared/shared.module.mjs +19 -0
  35. package/esm2022/lib/shared/smart-tooltip.directive.mjs +58 -0
  36. package/esm2022/lib/shared/smarttable.date-pipe.mjs +43 -0
  37. package/esm2022/lib/smart-client/projects.mjs +4 -0
  38. package/esm2022/lib/smart-client/smart-component-api-client.mjs +928 -0
  39. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +79 -0
  40. package/esm2022/lib/smart-client/smart.component.mjs +88 -0
  41. package/esm2022/lib/smart-client/smart.service.mjs +71 -0
  42. package/esm2022/lib/smart-component-layout/api/api/api.mjs +4 -0
  43. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +133 -0
  44. package/esm2022/lib/smart-component-layout/api/api.module.mjs +40 -0
  45. package/esm2022/lib/smart-component-layout/api/configuration.mjs +91 -0
  46. package/esm2022/lib/smart-component-layout/api/encoder.mjs +19 -0
  47. package/esm2022/lib/smart-component-layout/api/index.mjs +7 -0
  48. package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +18 -0
  49. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +22 -0
  50. package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +2 -0
  51. package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +17 -0
  52. package/esm2022/lib/smart-component-layout/api/model/models.mjs +9 -0
  53. package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
  54. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
  55. package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +17 -0
  56. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +2 -0
  57. package/esm2022/lib/smart-component-layout/api/param.mjs +2 -0
  58. package/esm2022/lib/smart-component-layout/api/variables.mjs +9 -0
  59. package/esm2022/lib/smart-component-layout/projects.mjs +8 -0
  60. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +169 -0
  61. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +433 -0
  62. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +57 -0
  63. package/esm2022/lib/smart-diagram/api/api/api.mjs +4 -0
  64. package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +141 -0
  65. package/esm2022/lib/smart-diagram/api/api.module.mjs +40 -0
  66. package/esm2022/lib/smart-diagram/api/configuration.mjs +91 -0
  67. package/esm2022/lib/smart-diagram/api/encoder.mjs +19 -0
  68. package/esm2022/lib/smart-diagram/api/index.mjs +7 -0
  69. package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +13 -0
  70. package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +2 -0
  71. package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +13 -0
  72. package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +2 -0
  73. package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +2 -0
  74. package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +2 -0
  75. package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +2 -0
  76. package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +18 -0
  77. package/esm2022/lib/smart-diagram/api/model/labelText.mjs +2 -0
  78. package/esm2022/lib/smart-diagram/api/model/models.mjs +10 -0
  79. package/esm2022/lib/smart-diagram/api/param.mjs +2 -0
  80. package/esm2022/lib/smart-diagram/api/variables.mjs +9 -0
  81. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +312 -0
  82. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +359 -0
  83. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +40 -0
  84. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +10 -0
  85. package/esm2022/lib/smart-diagram/projects.mjs +5 -0
  86. package/esm2022/lib/smart-dialog/projects.mjs +8 -0
  87. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +54 -0
  88. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +16 -0
  89. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +46 -0
  90. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +86 -0
  91. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +101 -0
  92. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +12 -0
  93. package/esm2022/lib/smart-expandable-section/projects.mjs +8 -0
  94. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +57 -0
  95. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -0
  96. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +17 -0
  97. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
  98. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +8 -0
  99. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
  100. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
  101. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +20 -0
  102. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +2 -0
  103. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
  104. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +28 -0
  105. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
  106. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
  107. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +32 -0
  108. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +18 -0
  109. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +16 -0
  110. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +2 -0
  111. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +13 -0
  112. package/esm2022/lib/smart-filter/api/value/model/value.mjs +13 -0
  113. package/esm2022/lib/smart-filter/projects.mjs +9 -0
  114. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -0
  115. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +166 -0
  116. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -0
  117. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
  118. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -0
  119. package/esm2022/lib/smart-filter/smart-filter.model.mjs +13 -0
  120. package/esm2022/lib/smart-filter/smart-filter.module.mjs +33 -0
  121. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +198 -0
  122. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +91 -0
  123. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +19 -0
  124. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +17 -0
  125. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +13 -0
  126. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +2 -0
  127. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +8 -0
  128. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +2 -0
  129. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +7 -0
  130. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +2 -0
  131. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +20 -0
  132. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +2 -0
  133. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +2 -0
  134. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +2 -0
  135. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +28 -0
  136. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +2 -0
  137. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +2 -0
  138. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +32 -0
  139. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +19 -0
  140. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +17 -0
  141. package/esm2022/lib/smart-filter-editor/api/param.mjs +2 -0
  142. package/esm2022/lib/smart-filter-editor/api/variables.mjs +9 -0
  143. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +15 -0
  144. package/esm2022/lib/smart-filter-editor/project.mjs +8 -0
  145. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +73 -0
  146. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +40 -0
  147. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +294 -0
  148. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +2 -0
  149. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +69 -0
  150. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +63 -0
  151. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +24 -0
  152. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +57 -0
  153. package/esm2022/lib/smart-form/api/api/api.mjs +4 -0
  154. package/esm2022/lib/smart-form/api/api/default.service.mjs +133 -0
  155. package/esm2022/lib/smart-form/api/api.module.mjs +40 -0
  156. package/esm2022/lib/smart-form/api/configuration.mjs +91 -0
  157. package/esm2022/lib/smart-form/api/encoder.mjs +19 -0
  158. package/esm2022/lib/smart-form/api/index.mjs +7 -0
  159. package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +13 -0
  160. package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +2 -0
  161. package/esm2022/lib/smart-form/api/model/imageProperties.mjs +2 -0
  162. package/esm2022/lib/smart-form/api/model/models.mjs +19 -0
  163. package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +2 -0
  164. package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +13 -0
  165. package/esm2022/lib/smart-form/api/model/recordingUploaderProperties.mjs +7 -0
  166. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +14 -0
  167. package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +22 -0
  168. package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +17 -0
  169. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +49 -0
  170. package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +2 -0
  171. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
  172. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +2 -0
  173. package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +18 -0
  174. package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +13 -0
  175. package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +13 -0
  176. package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +13 -0
  177. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +21 -0
  178. package/esm2022/lib/smart-form/api/param.mjs +2 -0
  179. package/esm2022/lib/smart-form/api/variables.mjs +9 -0
  180. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +20 -0
  181. package/esm2022/lib/smart-form/projects.mjs +18 -0
  182. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +753 -0
  183. package/esm2022/lib/smart-form/services/smartform.service.mjs +683 -0
  184. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +15 -0
  185. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +193 -0
  186. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +2 -0
  187. package/esm2022/lib/smart-form/smartform.component.mjs +190 -0
  188. package/esm2022/lib/smart-form/smartform.form-model.mjs +2 -0
  189. package/esm2022/lib/smart-form/smartform.model.mjs +38 -0
  190. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +179 -0
  191. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +83 -0
  192. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +170 -0
  193. package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +151 -0
  194. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +35 -0
  195. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +79 -0
  196. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +1038 -0
  197. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +78 -0
  198. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -0
  199. package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +98 -0
  200. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +2 -0
  201. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +18 -0
  202. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +19 -0
  203. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +13 -0
  204. package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +2 -0
  205. package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +2 -0
  206. package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +13 -0
  207. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +2 -0
  208. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +2 -0
  209. package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +54 -0
  210. package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +40 -0
  211. package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +40 -0
  212. package/esm2022/lib/smart-generic-pages/projects.mjs +13 -0
  213. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +80 -0
  214. package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +116 -0
  215. package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +77 -0
  216. package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +93 -0
  217. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +4 -0
  218. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +514 -0
  219. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
  220. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +91 -0
  221. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +19 -0
  222. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +7 -0
  223. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +17 -0
  224. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +2 -0
  225. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +20 -0
  226. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +2 -0
  227. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +2 -0
  228. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +2 -0
  229. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +2 -0
  230. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +13 -0
  231. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +18 -0
  232. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +17 -0
  233. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +2 -0
  234. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +2 -0
  235. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +2 -0
  236. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +8 -0
  237. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +15 -0
  238. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +2 -0
  239. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +9 -0
  240. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -0
  241. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +47 -0
  242. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +72 -0
  243. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +200 -0
  244. package/esm2022/lib/smart-grid/models/model.mjs +29 -0
  245. package/esm2022/lib/smart-grid/projects.mjs +9 -0
  246. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +65 -0
  247. package/esm2022/lib/smart-grid/smart-grid.component.mjs +1035 -0
  248. package/esm2022/lib/smart-grid/smart-grid.module.mjs +103 -0
  249. package/esm2022/lib/smart-grid/smart-grid.service.mjs +92 -0
  250. package/esm2022/lib/smart-icon/projects.mjs +9 -0
  251. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +95 -0
  252. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +40 -0
  253. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +37 -0
  254. package/esm2022/lib/smart-icon/smart-icon.module.mjs +26 -0
  255. package/esm2022/lib/smart-icon/smart-icon.service.mjs +93 -0
  256. package/esm2022/lib/smart-map/abstract-map.mjs +112 -0
  257. package/esm2022/lib/smart-map/api/api/api.mjs +4 -0
  258. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +312 -0
  259. package/esm2022/lib/smart-map/api/api.module.mjs +40 -0
  260. package/esm2022/lib/smart-map/api/configuration.mjs +91 -0
  261. package/esm2022/lib/smart-map/api/encoder.mjs +19 -0
  262. package/esm2022/lib/smart-map/api/index.mjs +7 -0
  263. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +13 -0
  264. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +2 -0
  265. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +2 -0
  266. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +17 -0
  267. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +2 -0
  268. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +19 -0
  269. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +2 -0
  270. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +2 -0
  271. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +2 -0
  272. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +18 -0
  273. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +2 -0
  274. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +2 -0
  275. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +2 -0
  276. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +2 -0
  277. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +17 -0
  278. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +18 -0
  279. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +2 -0
  280. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +17 -0
  281. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +2 -0
  282. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +2 -0
  283. package/esm2022/lib/smart-map/api/model/models.mjs +21 -0
  284. package/esm2022/lib/smart-map/api/param.mjs +2 -0
  285. package/esm2022/lib/smart-map/api/variables.mjs +9 -0
  286. package/esm2022/lib/smart-map/api-default/api-default.mjs +2 -0
  287. package/esm2022/lib/smart-map/impl/google-map.mjs +224 -0
  288. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +422 -0
  289. package/esm2022/lib/smart-map/projects.mjs +9 -0
  290. package/esm2022/lib/smart-map/smart-map.component.mjs +222 -0
  291. package/esm2022/lib/smart-map/smart-map.module.mjs +22 -0
  292. package/esm2022/lib/smart-map/smart-map.types.mjs +2 -0
  293. package/esm2022/lib/smart-navbar/projects.mjs +8 -0
  294. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +61 -0
  295. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +6 -0
  296. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +63 -0
  297. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +14 -0
  298. package/esm2022/lib/smart-navigation/projects.mjs +6 -0
  299. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +2 -0
  300. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +18 -0
  301. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +27 -0
  302. package/esm2022/lib/smart-ng-client.module.mjs +130 -0
  303. package/esm2022/lib/smart-ng-client.service.mjs +19 -0
  304. package/esm2022/lib/smart-subject/projects.mjs +5 -0
  305. package/esm2022/lib/smart-subject/smart-subject.mjs +21 -0
  306. package/esm2022/lib/smart-tab-group/projects.mjs +5 -0
  307. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +22 -0
  308. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +43 -0
  309. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +15 -0
  310. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +52 -0
  311. package/esm2022/lib/smart-table/projects.mjs +8 -0
  312. package/esm2022/lib/smart-table/smarttable.component.mjs +98 -0
  313. package/esm2022/lib/smart-table/smarttable.model.mjs +177 -0
  314. package/esm2022/lib/smart-table/smarttable.module.mjs +109 -0
  315. package/esm2022/lib/smart-table/smarttable.service.mjs +14 -0
  316. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +42 -0
  317. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +23 -0
  318. package/esm2022/lib/smart-table/tables/table.mjs +573 -0
  319. package/esm2022/lib/smart-tree/projects.mjs +9 -0
  320. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +289 -0
  321. package/esm2022/lib/smart-tree/smarttree.component.mjs +187 -0
  322. package/esm2022/lib/smart-tree/smarttree.model.mjs +7 -0
  323. package/esm2022/lib/smart-tree/smarttree.module.mjs +60 -0
  324. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +6 -0
  325. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +2 -0
  326. package/esm2022/lib/smart-tree/smarttree.service.mjs +47 -0
  327. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1190 -0
  328. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +91 -0
  329. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +19 -0
  330. package/esm2022/lib/smart-tree/tree-api/param.mjs +2 -0
  331. package/esm2022/lib/smart-tree/tree-api/variables.mjs +9 -0
  332. package/esm2022/lib/smart-validation/named-validator.service.mjs +115 -0
  333. package/esm2022/lib/smart-validation/projects.mjs +4 -0
  334. package/esm2022/lib/smart-validation/smart-validation.module.mjs +24 -0
  335. package/esm2022/lib/smart-validation/smart-validation.types.mjs +4 -0
  336. package/esm2022/lib/view-context/api/api/api.mjs +4 -0
  337. package/esm2022/lib/view-context/api/api/view.service.mjs +903 -0
  338. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +2 -0
  339. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +2 -0
  340. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +2 -0
  341. package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +2 -0
  342. package/esm2022/lib/view-context/api/api.module.mjs +40 -0
  343. package/esm2022/lib/view-context/api/configuration.mjs +91 -0
  344. package/esm2022/lib/view-context/api/encoder.mjs +19 -0
  345. package/esm2022/lib/view-context/api/index.mjs +7 -0
  346. package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +2 -0
  347. package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +13 -0
  348. package/esm2022/lib/view-context/api/model/clipboardData.mjs +13 -0
  349. package/esm2022/lib/view-context/api/model/closeResult.mjs +18 -0
  350. package/esm2022/lib/view-context/api/model/componentConstraint.mjs +2 -0
  351. package/esm2022/lib/view-context/api/model/componentModel.mjs +2 -0
  352. package/esm2022/lib/view-context/api/model/componentModelChange.mjs +13 -0
  353. package/esm2022/lib/view-context/api/model/dataChange.mjs +2 -0
  354. package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +2 -0
  355. package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +21 -0
  356. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +13 -0
  357. package/esm2022/lib/view-context/api/model/downloadedFile.mjs +13 -0
  358. package/esm2022/lib/view-context/api/model/iconPosition.mjs +21 -0
  359. package/esm2022/lib/view-context/api/model/imageResource.mjs +8 -0
  360. package/esm2022/lib/view-context/api/model/link.mjs +20 -0
  361. package/esm2022/lib/view-context/api/model/messageData.mjs +2 -0
  362. package/esm2022/lib/view-context/api/model/messageOption.mjs +2 -0
  363. package/esm2022/lib/view-context/api/model/messageOptionType.mjs +18 -0
  364. package/esm2022/lib/view-context/api/model/messageResult.mjs +2 -0
  365. package/esm2022/lib/view-context/api/model/messageTextType.mjs +17 -0
  366. package/esm2022/lib/view-context/api/model/messageType.mjs +19 -0
  367. package/esm2022/lib/view-context/api/model/models.mjs +63 -0
  368. package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +13 -0
  369. package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +2 -0
  370. package/esm2022/lib/view-context/api/model/namedValidator.mjs +19 -0
  371. package/esm2022/lib/view-context/api/model/openPendingData.mjs +2 -0
  372. package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +2 -0
  373. package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +2 -0
  374. package/esm2022/lib/view-context/api/model/serverRequestType.mjs +24 -0
  375. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +2 -0
  376. package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +8 -0
  377. package/esm2022/lib/view-context/api/model/statisticRecord.mjs +13 -0
  378. package/esm2022/lib/view-context/api/model/style.mjs +13 -0
  379. package/esm2022/lib/view-context/api/model/uiAction.mjs +2 -0
  380. package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +2 -0
  381. package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +27 -0
  382. package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +13 -0
  383. package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +2 -0
  384. package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +2 -0
  385. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
  386. package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
  387. package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +20 -0
  388. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +21 -0
  389. package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +13 -0
  390. package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +13 -0
  391. package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +22 -0
  392. package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +2 -0
  393. package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +18 -0
  394. package/esm2022/lib/view-context/api/model/uploadedFile.mjs +2 -0
  395. package/esm2022/lib/view-context/api/model/valueSet.mjs +2 -0
  396. package/esm2022/lib/view-context/api/model/view.mjs +2 -0
  397. package/esm2022/lib/view-context/api/model/viewApiError.mjs +13 -0
  398. package/esm2022/lib/view-context/api/model/viewConstraint.mjs +2 -0
  399. package/esm2022/lib/view-context/api/model/viewContext.mjs +2 -0
  400. package/esm2022/lib/view-context/api/model/viewContextChange.mjs +2 -0
  401. package/esm2022/lib/view-context/api/model/viewContextData.mjs +2 -0
  402. package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
  403. package/esm2022/lib/view-context/api/model/viewData.mjs +2 -0
  404. package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +8 -0
  405. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +13 -0
  406. package/esm2022/lib/view-context/api/model/viewState.mjs +22 -0
  407. package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
  408. package/esm2022/lib/view-context/api/model/viewType.mjs +18 -0
  409. package/esm2022/lib/view-context/api/param.mjs +2 -0
  410. package/esm2022/lib/view-context/api/variables.mjs +9 -0
  411. package/esm2022/lib/view-context/default-view-components.token.mjs +9 -0
  412. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +20 -0
  413. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +93 -0
  414. package/esm2022/lib/view-context/projects.mjs +29 -0
  415. package/esm2022/lib/view-context/property-definition-data.mjs +2 -0
  416. package/esm2022/lib/view-context/reuse-router-slot.token.mjs +4 -0
  417. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +55 -0
  418. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +199 -0
  419. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +72 -0
  420. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +21 -0
  421. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
  422. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +198 -0
  423. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +95 -0
  424. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +134 -0
  425. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +12 -0
  426. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +256 -0
  427. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +77 -0
  428. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +54 -0
  429. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +60 -0
  430. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +106 -0
  431. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +60 -0
  432. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +132 -0
  433. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +58 -0
  434. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +33 -0
  435. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +215 -0
  436. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +319 -0
  437. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +185 -0
  438. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
  439. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +235 -0
  440. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +77 -0
  441. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +35 -0
  442. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +74 -0
  443. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +63 -0
  444. package/esm2022/lib/view-context/smart-view-context.model.mjs +2 -0
  445. package/esm2022/lib/view-context/smart-view-context.module.mjs +397 -0
  446. package/esm2022/lib/view-context/smart-view-context.service.mjs +1043 -0
  447. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +41 -0
  448. package/esm2022/lib/view-context/utility/componentLibrary.mjs +9 -0
  449. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +44 -0
  450. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +68 -0
  451. package/esm2022/lib/view-context/value-api/api/api.mjs +4 -0
  452. package/esm2022/lib/view-context/value-api/api/value.service.mjs +138 -0
  453. package/esm2022/lib/view-context/value-api/api.module.mjs +40 -0
  454. package/esm2022/lib/view-context/value-api/configuration.mjs +91 -0
  455. package/esm2022/lib/view-context/value-api/encoder.mjs +19 -0
  456. package/esm2022/lib/view-context/value-api/index.mjs +7 -0
  457. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +13 -0
  458. package/esm2022/lib/view-context/value-api/model/models.mjs +11 -0
  459. package/esm2022/lib/view-context/value-api/model/value.mjs +13 -0
  460. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +2 -0
  461. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +2 -0
  462. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +2 -0
  463. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +13 -0
  464. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +24 -0
  465. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +2 -0
  466. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +2 -0
  467. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +19 -0
  468. package/esm2022/lib/view-context/value-api/param.mjs +2 -0
  469. package/esm2022/lib/view-context/value-api/variables.mjs +9 -0
  470. package/esm2022/lib/view-context/view-handler-resolution.mjs +21 -0
  471. package/esm2022/lib/view-context/view-op.mjs +41 -0
  472. package/esm2022/lib/view-context/view-slot-resolution.mjs +28 -0
  473. package/esm2022/projects.mjs +30 -0
  474. package/esm2022/smartbit4all-ng-client.mjs +5 -0
  475. package/fesm2022/smartbit4all-ng-client.mjs +10266 -4870
  476. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  477. package/lib/session/api/model/accountInfo.d.ts +2 -0
  478. package/lib/session/projects.d.ts +3 -0
  479. package/lib/session/smart-backend-bootstrap.config.d.ts +65 -0
  480. package/lib/session/smart-backend-bootstrap.service.d.ts +55 -0
  481. package/lib/session/smart-default-error-ui.service.d.ts +90 -0
  482. package/lib/session/smart-error-catching.interceptor.d.ts +4 -1
  483. package/lib/session/smart-session-handler.service.d.ts +2 -1
  484. package/lib/session/smart-session.service.d.ts +16 -1
  485. package/lib/session/smart-timer/smart-session-timer.component.d.ts +3 -1
  486. package/lib/smart-client/projects.d.ts +0 -1
  487. package/lib/smart-client/smart-component-api-client.d.ts +45 -19
  488. package/lib/smart-client/smart.component.d.ts +7 -5
  489. package/lib/smart-client/smart.service.d.ts +4 -5
  490. package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +3 -1
  491. package/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.d.ts +19 -0
  492. package/lib/smart-component-layout/api/model/models.d.ts +3 -0
  493. package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +2 -0
  494. package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +6 -0
  495. package/{src/lib/smart-chart/smart-chart/api/model/chartData.d.ts → lib/smart-component-layout/api/model/toolbarDirection.d.ts} +5 -6
  496. package/{src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.d.ts → lib/smart-component-layout/api/model/toolbarProperties.d.ts} +7 -7
  497. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +9 -1
  498. package/lib/smart-component-layout/smart-component-layout.component.d.ts +31 -5
  499. package/lib/smart-component-layout/smart-component-layout.module.d.ts +4 -1
  500. package/lib/smart-diagram/api/api/api.d.ts +3 -0
  501. package/lib/smart-diagram/api/api/diagramService.service.d.ts +36 -0
  502. package/lib/smart-diagram/api/encoder.d.ts +11 -0
  503. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramColor.d.ts +2 -2
  504. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataContainer.d.ts +2 -3
  505. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataItem.d.ts +3 -3
  506. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataSet.d.ts +4 -4
  507. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDescriptor.d.ts +13 -9
  508. package/{src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.d.ts → lib/smart-diagram/api/model/diagramModel.d.ts} +5 -4
  509. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramShape.d.ts +2 -2
  510. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/drawTime.d.ts +2 -2
  511. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/labelText.d.ts +2 -2
  512. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/models.d.ts +1 -2
  513. package/lib/smart-diagram/component/default-smart-diagram-options.provider.d.ts +33 -0
  514. package/lib/smart-diagram/component/smart-diagram.component.d.ts +43 -0
  515. package/lib/smart-diagram/component/smart-diagram.module.d.ts +11 -0
  516. package/lib/smart-diagram/component/smart-diagram.util.d.ts +1 -0
  517. package/lib/smart-diagram/projects.d.ts +4 -0
  518. package/lib/smart-dialog/smartdialog.model.d.ts +2 -1
  519. package/lib/smart-dialog/smartdialog.module.d.ts +1 -2
  520. package/lib/smart-dialog/smartdialog.service.d.ts +2 -4
  521. package/lib/smart-expandable-section/expandable-section.component.d.ts +3 -1
  522. package/lib/smart-expandable-section/expandable-section.model.d.ts +1 -0
  523. package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +2 -1
  524. package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +4 -2
  525. package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +11 -1
  526. package/{src/lib/smart-chart/smart-chart/api/model/chartOrientation.d.ts → lib/smart-form/api/model/dateFieldProperties.d.ts} +6 -7
  527. package/lib/smart-form/api/model/fileUploaderProperties.d.ts +20 -0
  528. package/lib/smart-form/api/model/imageProperties.d.ts +15 -0
  529. package/lib/smart-form/api/model/models.d.ts +7 -0
  530. package/lib/smart-form/api/model/multiFileUploaderProperties.d.ts +19 -0
  531. package/lib/smart-form/api/model/recordingUploaderProperties.d.ts +20 -0
  532. package/lib/smart-form/api/model/selectionDefinition.d.ts +17 -0
  533. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +4 -1
  534. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +5 -0
  535. package/lib/smart-form/api/model/textBoxProperties.d.ts +15 -0
  536. package/{src/lib/smart-chart/smart-chart/api/model/chartValue.d.ts → lib/smart-form/api/model/textFieldProperties.d.ts} +4 -6
  537. package/lib/smart-form/api/model/valueChangeMode.d.ts +3 -2
  538. package/lib/smart-form/projects.d.ts +3 -0
  539. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +6 -2
  540. package/lib/smart-form/services/smartform.service.d.ts +7 -6
  541. package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +19 -3
  542. package/lib/smart-form/smartform.component.d.ts +3 -2
  543. package/lib/smart-form/smartform.form-model.d.ts +160 -11
  544. package/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.d.ts +54 -0
  545. package/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.d.ts +57 -0
  546. package/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.d.ts +50 -0
  547. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +49 -18
  548. package/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.d.ts +21 -0
  549. package/lib/smart-generic-pages/api/platform/acl/model/aCL.d.ts +18 -0
  550. package/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.d.ts +54 -0
  551. package/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.d.ts +19 -0
  552. package/lib/smart-generic-pages/api/platform/acl/model/subject.d.ts +24 -0
  553. package/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.d.ts +2 -0
  554. package/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.d.ts +27 -0
  555. package/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.d.ts +14 -0
  556. package/lib/smart-generic-pages/api/platform/validation/model/validationItem.d.ts +17 -0
  557. package/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.d.ts +18 -0
  558. package/lib/smart-generic-pages/generic-page/generic-page.component.d.ts +12 -0
  559. package/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.d.ts +11 -0
  560. package/lib/smart-generic-pages/no-permission-page/no-permission-page.component.d.ts +11 -0
  561. package/lib/smart-generic-pages/projects.d.ts +9 -0
  562. package/lib/smart-generic-pages/search-page/search-page.component.d.ts +25 -0
  563. package/lib/smart-generic-pages/smart-generic-pages.module.d.ts +19 -0
  564. package/lib/smart-generic-pages/subject-selector/subject-selector.component.d.ts +17 -0
  565. package/lib/smart-generic-pages/validation-result-page/validation-result-page.component.d.ts +25 -0
  566. package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +27 -6
  567. package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +4 -0
  568. package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +2 -2
  569. package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +2 -0
  570. package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +6 -0
  571. package/lib/smart-grid/components/generic-component/expanded-row-renderer.component.d.ts +21 -0
  572. package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +1 -0
  573. package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +1 -0
  574. package/lib/smart-grid/smart-grid-toolbar-util.d.ts +1 -0
  575. package/lib/smart-grid/smart-grid.component.d.ts +21 -6
  576. package/lib/smart-grid/smart-grid.module.d.ts +20 -21
  577. package/lib/smart-grid/smart-grid.service.d.ts +2 -0
  578. package/lib/smart-icon/projects.d.ts +2 -0
  579. package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +15 -5
  580. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.d.ts +12 -0
  581. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.d.ts +14 -0
  582. package/lib/smart-icon/smart-icon.module.d.ts +8 -4
  583. package/lib/smart-icon/smart-icon.service.d.ts +1 -0
  584. package/lib/smart-map/abstract-map.d.ts +1 -1
  585. package/lib/smart-map/api/model/geoMapItem.d.ts +2 -0
  586. package/lib/smart-navigation/smart-navigation.interface.d.ts +1 -7
  587. package/lib/smart-navigation/smart-navigation.service.d.ts +2 -8
  588. package/lib/smart-ng-client.module.d.ts +3 -4
  589. package/lib/smart-tab-group/projects.d.ts +0 -4
  590. package/lib/smart-tab-group/smart-tab-group.module.d.ts +5 -8
  591. package/lib/smart-table/tables/material-table/material-table.component.d.ts +2 -3
  592. package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +1 -2
  593. package/lib/smart-table/tables/table.d.ts +5 -5
  594. package/lib/smart-tree/smarttree-generic.service.d.ts +0 -1
  595. package/lib/smart-tree/smarttree.component.d.ts +1 -0
  596. package/lib/smart-tree/smarttree.model.d.ts +1 -0
  597. package/lib/smart-tree/smarttree.service.d.ts +1 -0
  598. package/lib/view-context/api/api/view.service.d.ts +14 -13
  599. package/lib/view-context/api/api-default/binaryData.d.ts +2 -0
  600. package/lib/view-context/api/api-default/invocationError.d.ts +2 -0
  601. package/lib/view-context/api/api-default/invocationRequest.d.ts +2 -0
  602. package/lib/view-context/api/api-default/invocationRun.d.ts +2 -0
  603. package/lib/view-context/api/model/backgroundProcessInfo.d.ts +25 -0
  604. package/lib/view-context/api/model/badgeDescriptor.d.ts +15 -0
  605. package/lib/view-context/api/model/componentModel.d.ts +5 -0
  606. package/lib/view-context/api/model/deviceInfo.d.ts +4 -0
  607. package/lib/view-context/api/model/iconPosition.d.ts +2 -1
  608. package/lib/view-context/api/model/imageResource.d.ts +2 -0
  609. package/lib/view-context/api/model/messageOption.d.ts +2 -0
  610. package/lib/view-context/api/model/models.d.ts +9 -0
  611. package/lib/view-context/api/model/multiComboBoxElement.d.ts +16 -0
  612. package/lib/view-context/api/model/multiComboBoxModel.d.ts +16 -0
  613. package/lib/view-context/api/model/namedValidator.d.ts +1 -0
  614. package/lib/view-context/api/model/smartLinkData.d.ts +8 -0
  615. package/lib/view-context/api/model/smartLinkMigrationStatus.d.ts +39 -0
  616. package/lib/view-context/api/model/uiAction.d.ts +8 -0
  617. package/lib/view-context/api/model/uiActionDefinition.d.ts +19 -0
  618. package/lib/view-context/api/model/uiActionDefinitionEntry.d.ts +18 -0
  619. package/lib/view-context/api/model/uiActionDescriptor.d.ts +6 -0
  620. package/lib/view-context/api/model/uiActionRequest.d.ts +3 -0
  621. package/lib/view-context/api/model/uiActionSchedule.d.ts +14 -0
  622. package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +4 -0
  623. package/lib/view-context/api/model/uploadWidgetType.d.ts +16 -0
  624. package/lib/view-context/api/model/uploadedFile.d.ts +2 -1
  625. package/lib/view-context/api/model/view.d.ts +8 -0
  626. package/lib/view-context/api/model/viewContext.d.ts +1 -0
  627. package/lib/view-context/api/model/viewData.d.ts +3 -0
  628. package/lib/view-context/api/model/viewEventHandler.d.ts +7 -1
  629. package/lib/view-context/api/model/viewPlaceholder.d.ts +1 -0
  630. package/lib/view-context/default-view-components.token.d.ts +18 -0
  631. package/lib/view-context/message-dialog/message-dialog.component.d.ts +8 -2
  632. package/lib/view-context/projects.d.ts +10 -0
  633. package/lib/view-context/reuse-router-slot.token.d.ts +3 -0
  634. package/lib/view-context/smart-embedded-slot.directive.d.ts +20 -0
  635. package/lib/view-context/smart-ui-action/components/menu/menu.component.d.ts +42 -0
  636. package/lib/view-context/smart-ui-action/components/menu/menu.constants.d.ts +3 -0
  637. package/lib/view-context/smart-ui-action/components/menu/menu.service.d.ts +8 -0
  638. package/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.d.ts +30 -0
  639. package/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.d.ts +32 -0
  640. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.d.ts +40 -0
  641. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.d.ts +3 -0
  642. package/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.d.ts +43 -0
  643. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +6 -4
  644. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +1 -2
  645. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +10 -11
  646. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +3 -3
  647. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +1 -2
  648. package/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.d.ts +13 -0
  649. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +49 -0
  650. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +28 -3
  651. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +4 -3
  652. package/lib/view-context/smart-view-context-dialog.service.d.ts +1 -3
  653. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +2 -0
  654. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +1 -2
  655. package/lib/view-context/smart-view-context.interceptor.d.ts +5 -1
  656. package/lib/view-context/smart-view-context.model.d.ts +7 -2
  657. package/lib/view-context/smart-view-context.module.d.ts +74 -58
  658. package/lib/view-context/smart-view-context.service.d.ts +59 -9
  659. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +3 -1
  660. package/lib/view-context/view-handler-resolution.d.ts +11 -0
  661. package/lib/view-context/view-op.d.ts +18 -0
  662. package/lib/view-context/view-slot-resolution.d.ts +15 -0
  663. package/package.json +18 -19
  664. package/projects.d.ts +2 -0
  665. package/smartbit4all-ng-client-6.0.0.tgz +0 -0
  666. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs +0 -686
  667. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +0 -1
  668. package/lib/smart-client/smart-authentication.service.d.ts +0 -15
  669. package/lib/smart-tab-group/smart-tab-group.component.d.ts +0 -21
  670. package/lib/smart-tab-group/smart-tab-group.service.d.ts +0 -6
  671. package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +0 -14
  672. package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +0 -29
  673. package/lib/smart-tab-group/tabTile.model.d.ts +0 -8
  674. package/smartbit4all-ng-client-5.0.20.tgz +0 -0
  675. package/src/lib/smart-chart/index.d.ts +0 -5
  676. package/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.d.ts +0 -37
  677. package/src/lib/smart-chart/smart-chart/api/model/chartType.d.ts +0 -21
  678. package/src/lib/smart-chart/smart-chart/api/model/models.d.ts +0 -6
  679. package/src/lib/smart-chart/smart-chart/default-chart-options.provider.d.ts +0 -31
  680. package/src/lib/smart-chart/smart-chart/smart-chart.component.d.ts +0 -33
  681. package/src/lib/smart-chart/smart-chart/smart-chart.module.d.ts +0 -11
  682. package/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.d.ts +0 -1
  683. package/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.d.ts +0 -21
  684. package/src/lib/smart-chart/smart-chart-projects.d.ts +0 -5
  685. package/src/lib/smart-chart/view-context/utility/componentLibrary.d.ts +0 -6
  686. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/api.module.d.ts +0 -0
  687. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/configuration.d.ts +0 -0
  688. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/index.d.ts +0 -0
  689. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/param.d.ts +0 -0
  690. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/variables.d.ts +0 -0
@@ -0,0 +1,38 @@
1
+ export var SmartFormWidgetWidth;
2
+ (function (SmartFormWidgetWidth) {
3
+ SmartFormWidgetWidth[SmartFormWidgetWidth["SMALL"] = 150] = "SMALL";
4
+ SmartFormWidgetWidth[SmartFormWidgetWidth["MEDIUM"] = 250] = "MEDIUM";
5
+ SmartFormWidgetWidth[SmartFormWidgetWidth["LARGE"] = 350] = "LARGE";
6
+ SmartFormWidgetWidth[SmartFormWidgetWidth["EXTRA_LARGE"] = 450] = "EXTRA_LARGE";
7
+ })(SmartFormWidgetWidth || (SmartFormWidgetWidth = {}));
8
+ export var SmartFormTextFieldButtonIconPosition;
9
+ (function (SmartFormTextFieldButtonIconPosition) {
10
+ SmartFormTextFieldButtonIconPosition[SmartFormTextFieldButtonIconPosition["PRE"] = 0] = "PRE";
11
+ SmartFormTextFieldButtonIconPosition[SmartFormTextFieldButtonIconPosition["POST"] = 1] = "POST";
12
+ })(SmartFormTextFieldButtonIconPosition || (SmartFormTextFieldButtonIconPosition = {}));
13
+ export var ToggleLabelPosition;
14
+ (function (ToggleLabelPosition) {
15
+ ToggleLabelPosition["BEFORE"] = "before";
16
+ ToggleLabelPosition["AFTER"] = "after";
17
+ })(ToggleLabelPosition || (ToggleLabelPosition = {}));
18
+ export var SmartValidatorName;
19
+ (function (SmartValidatorName) {
20
+ // Angular validators
21
+ SmartValidatorName["required"] = "required";
22
+ SmartValidatorName["requiredTrue"] = "required";
23
+ SmartValidatorName["email"] = "email";
24
+ SmartValidatorName["max"] = "max";
25
+ SmartValidatorName["maxLength"] = "maxlength";
26
+ SmartValidatorName["min"] = "min";
27
+ SmartValidatorName["minLength"] = "minlength";
28
+ SmartValidatorName["pattern"] = "pattern";
29
+ SmartValidatorName["passwordValidator"] = "passwordValidator";
30
+ // Custom validators
31
+ SmartValidatorName["fieldMatchingValidator"] = "fieldsMatch";
32
+ })(SmartValidatorName || (SmartValidatorName = {}));
33
+ export var SmartWidgetHintPosition;
34
+ (function (SmartWidgetHintPosition) {
35
+ SmartWidgetHintPosition[SmartWidgetHintPosition["UNDER_LABEL"] = 0] = "UNDER_LABEL";
36
+ SmartWidgetHintPosition[SmartWidgetHintPosition["UNDER_INPUT"] = 1] = "UNDER_INPUT";
37
+ })(SmartWidgetHintPosition || (SmartWidgetHintPosition = {}));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9zbWFydGZvcm0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkJBLE1BQU0sQ0FBTixJQUFZLG9CQUtYO0FBTEQsV0FBWSxvQkFBb0I7SUFDOUIsbUVBQVcsQ0FBQTtJQUNYLHFFQUFZLENBQUE7SUFDWixtRUFBVyxDQUFBO0lBQ1gsK0VBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFLL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxvQ0FHWDtBQUhELFdBQVksb0NBQW9DO0lBQzlDLDZGQUFHLENBQUE7SUFDSCwrRkFBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLG9DQUFvQyxLQUFwQyxvQ0FBb0MsUUFHL0M7QUFXRCxNQUFNLENBQU4sSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLHdDQUFpQixDQUFBO0lBQ2pCLHNDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHOUI7QUEwQkQsTUFBTSxDQUFOLElBQVksa0JBYVg7QUFiRCxXQUFZLGtCQUFrQjtJQUM1QixxQkFBcUI7SUFDckIsMkNBQXFCLENBQUE7SUFDckIsK0NBQXlCLENBQUE7SUFDekIscUNBQWUsQ0FBQTtJQUNmLGlDQUFXLENBQUE7SUFDWCw2Q0FBdUIsQ0FBQTtJQUN2QixpQ0FBVyxDQUFBO0lBQ1gsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7SUFDbkIsNkRBQXVDLENBQUE7SUFDdkMsb0JBQW9CO0lBQ3BCLDREQUFzQyxDQUFBO0FBQ3hDLENBQUMsRUFiVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBYTdCO0FBNENELE1BQU0sQ0FBTixJQUFZLHVCQUdYO0FBSEQsV0FBWSx1QkFBdUI7SUFDakMsbUZBQVcsQ0FBQTtJQUNYLG1GQUFXLENBQUE7QUFDYixDQUFDLEVBSFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUdsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXQgfSBmcm9tIFwiLi9zbWFydGZvcm0uZm9ybS1tb2RlbFwiO1xuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uIH0gZnJvbSBcIi4vYXBpXCI7XG5pbXBvcnQgeyBTbWFydFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC5tb2RlbFwiO1xuaW1wb3J0IHsgTmFtZWRWYWxpZGF0b3IgfSBmcm9tIFwiLi4vdmlldy1jb250ZXh0L2FwaVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBraW5kOiBcImJhc2ljXCIgfCBcInNlbGVjdGlvblwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Rm9ybUNvbXBvbmVudENvbnN0cmFpbnQge1xuICAvKipcbiAgICogVGhlIGRhdGEgbmFtZSB0byBpZGVudGlmeSB0aGUgcmVsYXRlZCBjb21wb25lbnQgb3IgY29tcG9uZW5ldHMuIElmIGl0IGlzIGEgcGF0aCB0aGUgZm9ybWF0IGlzIHRoZSBmb2xsb3dpbmcgLSBkYXRhU2hlZXQuZmllbGQuXG4gICAqL1xuICBkYXRhTmFtZT86IHN0cmluZztcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIG1hbmRhdG9yeT86IGJvb2xlYW47XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBtYXg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG5hbWVkVmFsaWRhdG9ycz86IEFycmF5PE5hbWVkVmFsaWRhdG9yPjtcbn1cblxuZXhwb3J0IGVudW0gU21hcnRGb3JtV2lkZ2V0V2lkdGgge1xuICBTTUFMTCA9IDE1MCxcbiAgTUVESVVNID0gMjUwLFxuICBMQVJHRSA9IDM1MCxcbiAgRVhUUkFfTEFSR0UgPSA0NTAsXG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbkljb25Qb3NpdGlvbiB7XG4gIFBSRSxcbiAgUE9TVCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydEZvcm1UZXh0RmllbGRCdXR0b24ge1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uUG9zaXRpb24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b25JY29uUG9zaXRpb247XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjYWxsYmFjazogKHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4pID0+IGFueTtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGljb25Db2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVG9nZ2xlTGFiZWxQb3NpdGlvbiB7XG4gIEJFRk9SRSA9IFwiYmVmb3JlXCIsXG4gIEFGVEVSID0gXCJhZnRlclwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMge1xuICBpbnZhbGlkRmllbGROYW1lczogc3RyaW5nW107XG4gIGludmFsaWRGaWVsZEtleXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SW5kaWNhdG9yIHtcbiAgaW5kaWNhdGVQcm9wZXJ0eTogc3RyaW5nO1xuICBpbmRpY2F0b3JMZW5ndGg6IG51bWJlcjtcbiAgaW5kaWNhdG9yU3RhdHVzTGFiZWxzOiBzdHJpbmdbXTtcbiAgb3JpZ2luYWxJbmRpY2F0b3JTdGF0dXNMYWJlbHM/OiBzdHJpbmdbXTtcbiAgaW5kaWNhdG9yVmFsdWU6IG51bWJlcjtcbiAgY2hhbmdlSW5kaWNhdG9yU3RhdHVzOiAodmFsdWVUb0NoZWNrOiBzdHJpbmcpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydFZhbGlkYXRvciB7XG4gIHZhbGlkYXRvcjogVmFsaWRhdG9yRm47XG4gIGlzQ3VzdG9tPzogYm9vbGVhbjtcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBvcmlnaW5hbEVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgbmFtZTogU21hcnRWYWxpZGF0b3JOYW1lIHwgc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uQ29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0VmFsaWRhdG9yTmFtZSB7XG4gIC8vIEFuZ3VsYXIgdmFsaWRhdG9yc1xuICByZXF1aXJlZCA9IFwicmVxdWlyZWRcIixcbiAgcmVxdWlyZWRUcnVlID0gXCJyZXF1aXJlZFwiLFxuICBlbWFpbCA9IFwiZW1haWxcIixcbiAgbWF4ID0gXCJtYXhcIixcbiAgbWF4TGVuZ3RoID0gXCJtYXhsZW5ndGhcIixcbiAgbWluID0gXCJtaW5cIixcbiAgbWluTGVuZ3RoID0gXCJtaW5sZW5ndGhcIixcbiAgcGF0dGVybiA9IFwicGF0dGVyblwiLFxuICBwYXNzd29yZFZhbGlkYXRvciA9IFwicGFzc3dvcmRWYWxpZGF0b3JcIixcbiAgLy8gQ3VzdG9tIHZhbGlkYXRvcnNcbiAgZmllbGRNYXRjaGluZ1ZhbGlkYXRvciA9IFwiZmllbGRzTWF0Y2hcIixcbn1cblxuLyoqXG4gKiBEeW5hbWljIGZvcm1zIGNhbiBiZSBlYXNpbHkgZGVmaW5lZCB3aXRoIHRoaXMgaW50ZXJmYWNlLlxuICpcbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBmb3JtXG4gKiBAcGFyYW0gd2lkZ2V0cyBUaGUgd2lkZ2V0cyBwcmVzZW50ZWQgaW4gdGhlIGZvcm1cbiAqXG4gKiBAYXV0aG9yIFJvbGFuZCBGw6lueWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtIHtcbiAgbmFtZT86IHN0cmluZztcbiAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XG4gIHdpZGdldHM6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W107XG4gIGNvbXBvbmVudE1vZGVsPzogYW55O1xuICB1c2VPbkJsdXJFdmVudD86IGJvb2xlYW47XG4gIHVzZU9uVmFsdWVDaGFuZ2VFdmVudD86IGJvb2xlYW47XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIHN1Ym1pdE9uRW50ZXI/OiAoKSA9PiB2b2lkO1xuICBsYWJlbFRoZW1lPzogc3RyaW5nO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgdHJhbnNsYXRlU2VydmljZT86IFNtYXJ0VHJhbnNsYXRlU2VydmljZTtcbiAgaW52YWxpZEZpZWxkcz86IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWUge1xuICAvKipcbiAgICogVGhlIHVyaSB0aGUgb2JqZWN0IG9mIHRoZSB2YWx1ZSBjYW4gYmUgYWNjZXNzZWQuXG4gICAqL1xuICBvYmplY3RVcmk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsIGNvZGUgb2YgdGhlIHNlbGVjdGFibGUgdmFsdWUuXG4gICAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0cmluZyB2YWx1ZSB0aGF0IGNhbiBiZSBzaG93biBvbiB1aS4gSXQgbWlnaHQgYmUgYSBsYWJlbCBjb2RlIG9yIHRoZSBleGFjdCBsYWJlbC5cbiAgICovXG4gIGRpc3BsYXlWYWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvZGUgb2YgaWNvbiB0aGF0IGNhbiBiZSBhc3NvY2lhdGllZCB3aXRoIHRoZSB2YWx1ZS4gSXQgbWF5IGJlIGEgdXJpLlxuICAgKi9cbiAgaWNvbkNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0V2lkZ2V0SGludFBvc2l0aW9uIHtcbiAgVU5ERVJfTEFCRUwsXG4gIFVOREVSX0lOUFVULFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0V2lkZ2V0SGludENvbmZpZyB7XG4gIHBvc2l0aW9uOiBTbWFydFdpZGdldEhpbnRQb3NpdGlvbjtcbn1cbiJdfQ==
@@ -0,0 +1,179 @@
1
+ import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
2
+ import { SmartStyleUtility } from '../../../../view-context/utility/smart-style-utility';
3
+ import { IconPosition, UiActionButtonType, } from '../../../../view-context/api/model/models';
4
+ import { COMPONENT_LIBRARY, ComponentLibrary, } from '../../../../view-context/utility/componentLibrary';
5
+ import { UploadWidgetUtils } from '../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.utils';
6
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "../../../../smart-icon/smart-icon/smart-icon.component";
10
+ import * as i3 from "../../../../view-context/smart-ui-action/ui-action-toolbar.component";
11
+ import * as i4 from "../../../../view-context/smart-ui-action/ui-action-button/ui-action-button.component";
12
+ import * as i5 from "../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.component";
13
+ import * as i6 from "../../../../view-context/utility/componentLibrary";
14
+ export class SmartFileEditorComponent {
15
+ get widgetInstance() {
16
+ return this._widgetInstance;
17
+ }
18
+ set widgetInstance(value) {
19
+ if (value) {
20
+ this.clone(value);
21
+ }
22
+ }
23
+ constructor(cdr, compLib) {
24
+ this.cdr = cdr;
25
+ this.compLib = compLib;
26
+ this.uploadFilesEvent = new EventEmitter();
27
+ // ---- ControlValueAccessor implementation ----
28
+ this.onChange = (value) => { };
29
+ this.onTouched = () => { };
30
+ this.isDisabled = false;
31
+ }
32
+ clone(value) {
33
+ this._widgetInstance =
34
+ typeof structuredClone === 'function'
35
+ ? structuredClone(value)
36
+ : JSON.parse(JSON.stringify(value));
37
+ if (!this._widgetInstance.fileUploaderProperties?.undoIcon) {
38
+ this._widgetInstance.fileUploaderProperties = {
39
+ ...(this._widgetInstance.fileUploaderProperties ?? {}),
40
+ undoIcon: { identifier: 'undo' },
41
+ };
42
+ }
43
+ this.cdr.markForCheck();
44
+ }
45
+ upload(event) {
46
+ if (!event.files || event.files.length == 0) {
47
+ return;
48
+ }
49
+ const props = this._widgetInstance.fileUploaderProperties;
50
+ const uiAction = this.fileToChange
51
+ ? props.changeAction ?? props.uploadAction
52
+ : props.uploadAction;
53
+ this.uploadFilesEvent.emit({
54
+ files: event.files,
55
+ uiAction: uiAction,
56
+ uploadDescriptor: event.uploadDescriptor,
57
+ });
58
+ this.onChange(this._widgetInstance.value);
59
+ this.fileToChange = undefined;
60
+ }
61
+ change(file) {
62
+ this.fileToChange = file;
63
+ }
64
+ cancelChange() {
65
+ this.fileToChange = undefined;
66
+ }
67
+ isTypeSupported(value) {
68
+ return !!(value && !Array.isArray(value) && 'dataUri' in value);
69
+ }
70
+ formatSize(bytes) {
71
+ return UploadWidgetUtils.formatSize(bytes);
72
+ }
73
+ // ---- Smart form widget functions ----
74
+ getLabelNgClass() {
75
+ return this._widgetInstance?.labelStyle
76
+ ? SmartStyleUtility.getNgClasses(this._widgetInstance.labelStyle)
77
+ : {};
78
+ }
79
+ getLabelStyle() {
80
+ return this._widgetInstance?.labelStyle
81
+ ? SmartStyleUtility.getNgStyles(this._widgetInstance.labelStyle)
82
+ : {};
83
+ }
84
+ getNgClass() {
85
+ return SmartStyleUtility.getNgClasses(this._widgetInstance?.style);
86
+ }
87
+ getStyle() {
88
+ if (!this._widgetInstance.style) {
89
+ this._widgetInstance.style = {
90
+ classesToAdd: [],
91
+ classesToRemove: [],
92
+ style: {},
93
+ };
94
+ }
95
+ if (!('width' in this._widgetInstance.style.style) && 'minWidth' in this._widgetInstance) {
96
+ this._widgetInstance.style.style['width'] = `${this._widgetInstance.minWidth}px`;
97
+ }
98
+ return SmartStyleUtility.getNgStyles(this._widgetInstance.style);
99
+ }
100
+ writeValue(value) {
101
+ if (value !== undefined && this._widgetInstance) {
102
+ this._widgetInstance.value = value;
103
+ this.cdr.markForCheck();
104
+ }
105
+ }
106
+ registerOnChange(fn) {
107
+ this.onChange = fn;
108
+ }
109
+ registerOnTouched(fn) {
110
+ this.onTouched = fn;
111
+ }
112
+ setDisabledState(isDisabled) {
113
+ this.isDisabled = isDisabled;
114
+ }
115
+ // ---- UI getters ----
116
+ get fileIcon() {
117
+ return this.compLib == ComponentLibrary.PRIMENG ? 'file' : 'insert_drive_file';
118
+ }
119
+ get changeButton() {
120
+ var props = this._widgetInstance.fileUploaderProperties;
121
+ var baseAction = props.changeAction ?? props.uploadAction;
122
+ var changeDescriptor = {
123
+ ...(baseAction.descriptor ?? {}),
124
+ title: '',
125
+ color: 'primary',
126
+ type: UiActionButtonType.ICON,
127
+ icon: this.compLib === ComponentLibrary.PRIMENG ? 'sync' : 'sync_alt',
128
+ iconPosition: IconPosition.PRE,
129
+ };
130
+ return changeDescriptor;
131
+ }
132
+ get removeButton() {
133
+ var changeButton = this.changeButton;
134
+ return {
135
+ title: '',
136
+ color: changeButton.color,
137
+ type: changeButton.type,
138
+ iconResource: this._widgetInstance.fileUploaderProperties.undoIcon,
139
+ iconPosition: IconPosition.PRE,
140
+ };
141
+ }
142
+ get errorIcon() {
143
+ return this.compLib == ComponentLibrary.PRIMENG ? 'exclamation-circle' : 'error';
144
+ }
145
+ get toolbarComponent() {
146
+ return this.toolbar;
147
+ }
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFileEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartFileEditorComponent, selector: "smart-file-editor", inputs: { widgetInstance: "widgetInstance" }, outputs: { uploadFilesEvent: "uploadFilesEvent" }, providers: [
150
+ {
151
+ provide: NG_VALUE_ACCESSOR,
152
+ useExisting: forwardRef(() => SmartFileEditorComponent),
153
+ multi: true,
154
+ },
155
+ ], viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], ngImport: i0, template: "@if (widgetInstance && widgetInstance.fileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else if (!widgetInstance.value || fileToChange) {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.fileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"false\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"uploadedFile\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ widgetInstance.value?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(widgetInstance.value?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n ></smart-ui-action-toolbar>\n\n @if (!fileToChange) {\n <ui-action-button\n class=\"changeButton\"\n (actionClick)=\"change(widgetInstance.value)\"\n [disabled]=\"widgetInstance.isDisabled\"\n [descriptor]=\"changeButton\"\n >\n </ui-action-button>\n } @else {\n <ui-action-button\n class=\"removeIcon\"\n (actionClick)=\"cancelChange()\"\n [descriptor]=\"removeButton\"\n ></ui-action-button>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.fileEditorComponent:has(::ng-deep prime-file-uploader) ::ng-deep .uploadedFile,.fileEditorComponent:has(::ng-deep smartfileuploader) ::ng-deep .uploadedFile{border-top:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .fileData *{opacity:.7}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f1f1f1 12px 24px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i3.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i4.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i5.UploadWidgetComponent, selector: "smart-upload-widget", inputs: ["uploadDescriptor", "isMultiple", "isDisabled"], outputs: ["uploadFilesEvent"] }] }); }
156
+ }
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFileEditorComponent, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'smart-file-editor', providers: [
160
+ {
161
+ provide: NG_VALUE_ACCESSOR,
162
+ useExisting: forwardRef(() => SmartFileEditorComponent),
163
+ multi: true,
164
+ },
165
+ ], template: "@if (widgetInstance && widgetInstance.fileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else if (!widgetInstance.value || fileToChange) {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.fileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"false\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"uploadedFile\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ widgetInstance.value?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(widgetInstance.value?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n ></smart-ui-action-toolbar>\n\n @if (!fileToChange) {\n <ui-action-button\n class=\"changeButton\"\n (actionClick)=\"change(widgetInstance.value)\"\n [disabled]=\"widgetInstance.isDisabled\"\n [descriptor]=\"changeButton\"\n >\n </ui-action-button>\n } @else {\n <ui-action-button\n class=\"removeIcon\"\n (actionClick)=\"cancelChange()\"\n [descriptor]=\"removeButton\"\n ></ui-action-button>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.fileEditorComponent:has(::ng-deep prime-file-uploader) ::ng-deep .uploadedFile,.fileEditorComponent:has(::ng-deep smartfileuploader) ::ng-deep .uploadedFile{border-top:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .fileData *{opacity:.7}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f1f1f1 12px 24px)}\n"] }]
166
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i6.ComponentLibrary, decorators: [{
167
+ type: Inject,
168
+ args: [COMPONENT_LIBRARY]
169
+ }, {
170
+ type: Optional
171
+ }] }], propDecorators: { toolbar: [{
172
+ type: ViewChild,
173
+ args: ['toolbar']
174
+ }], widgetInstance: [{
175
+ type: Input
176
+ }], uploadFilesEvent: [{
177
+ type: Output
178
+ }] } });
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtZmlsZS1lZGl0b3Ivc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtZmlsZS1lZGl0b3Ivc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDekYsT0FBTyxFQUNMLFlBQVksRUFFWixrQkFBa0IsR0FHbkIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUNqQixNQUFNLG1EQUFtRCxDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQzFILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFjekUsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUF3QjtRQUN6QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtB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SztZQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDdkIsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXVCLENBQUMsUUFBUTtZQUNuRSxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ25GLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzsrR0FsTFUsd0JBQXdCLG1EQXlCekIsaUJBQWlCO21HQXpCaEIsd0JBQXdCLDZJQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiw4SEN0Q0gsMCtFQXVFQTs7NEZEL0JhLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkEyQkUsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7eUNBeEJoQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBS2hCLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVUksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXIgfSBmcm9tICcuLi8uLi8uLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xuaW1wb3J0IHtcbiAgSWNvblBvc2l0aW9uLFxuICBVaUFjdGlvbixcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxuICBVaUFjdGlvbkRlc2NyaXB0b3IsXG4gIFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvcixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vdmlldy1jb250ZXh0L2FwaS9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQ09NUE9ORU5UX0xJQlJBUlksXG4gIENvbXBvbmVudExpYnJhcnksXG59IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L2NvbXBvbmVudExpYnJhcnknO1xuaW1wb3J0IHsgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkV2lkZ2V0VXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2NvbXBvbmVudHMvdXBsb2FkLXdpZGdldC91cGxvYWQtd2lkZ2V0LnV0aWxzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtZmlsZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc21hcnQtZmlsZS1lZGl0b3IuY29tcG9uZW50LmNzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRGaWxlRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0RmlsZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQFZpZXdDaGlsZCgndG9vbGJhcicpIHRvb2xiYXIhOiBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0SW5zdGFuY2UhOiBTbWFydEZpbGVVcGxvYWRlcjtcblxuICBASW5wdXQoKVxuICBnZXQgd2lkZ2V0SW5zdGFuY2UoKTogU21hcnRGaWxlVXBsb2FkZXIge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZTtcbiAgfVxuICBzZXQgd2lkZ2V0SW5zdGFuY2UodmFsdWU6IFNtYXJ0RmlsZVVwbG9hZGVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNsb25lKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgdXBsb2FkRmlsZXNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGZpbGVzOiBhbnlbXTtcbiAgICB1aUFjdGlvbjogVWlBY3Rpb247XG4gICAgdXBsb2FkRGVzY3JpcHRvcj86IFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvcjtcbiAgfT4oKTtcblxuICBmaWxlVG9DaGFuZ2U/OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIEBPcHRpb25hbCgpIHB1YmxpYyBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxuICApIHt9XG5cbiAgcHJpdmF0ZSBjbG9uZSh2YWx1ZTogU21hcnRGaWxlVXBsb2FkZXIpIHtcbiAgICB0aGlzLl93aWRnZXRJbnN0YW5jZSA9XG4gICAgICB0eXBlb2Ygc3RydWN0dXJlZENsb25lID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gc3RydWN0dXJlZENsb25lKHZhbHVlKVxuICAgICAgICA6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcblxuICAgIGlmICghdGhpcy5fd2lkZ2V0SW5zdGFuY2UuZmlsZVVwbG9hZGVyUHJvcGVydGllcz8udW5kb0ljb24pIHtcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLmZpbGVVcGxvYWRlclByb3BlcnRpZXMgPSB7XG4gICAgICAgIC4uLih0aGlzLl93aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgICAgdW5kb0ljb246IHsgaWRlbnRpZmllcjogJ3VuZG8nIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50LmZpbGVzIHx8IGV2ZW50LmZpbGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLl93aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzITtcbiAgICBjb25zdCB1aUFjdGlvbiA9IHRoaXMuZmlsZVRvQ2hhbmdlXG4gICAgICA/IHByb3BzLmNoYW5nZUFjdGlvbiA/PyBwcm9wcy51cGxvYWRBY3Rpb25cbiAgICAgIDogcHJvcHMudXBsb2FkQWN0aW9uO1xuXG4gICAgdGhpcy51cGxvYWRGaWxlc0V2ZW50LmVtaXQoe1xuICAgICAgZmlsZXM6IGV2ZW50LmZpbGVzLFxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uISxcbiAgICAgIHVwbG9hZERlc2NyaXB0b3I6IGV2ZW50LnVwbG9hZERlc2NyaXB0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3dpZGdldEluc3RhbmNlLnZhbHVlKTtcbiAgICB0aGlzLmZpbGVUb0NoYW5nZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNoYW5nZShmaWxlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVUb0NoYW5nZSA9IGZpbGU7XG4gIH1cblxuICBjYW5jZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5maWxlVG9DaGFuZ2UgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1R5cGVTdXBwb3J0ZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh2YWx1ZSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgJ2RhdGFVcmknIGluIHZhbHVlKTtcbiAgfVxuXG4gIGZvcm1hdFNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIFVwbG9hZFdpZGdldFV0aWxzLmZvcm1hdFNpemUoYnl0ZXMpO1xuICB9XG5cbiAgLy8gLS0tLSBTbWFydCBmb3JtIHdpZGdldCBmdW5jdGlvbnMgLS0tLVxuICBnZXRMYWJlbE5nQ2xhc3MoKTogeyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZT8ubGFiZWxTdHlsZVxuICAgICAgPyBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ0NsYXNzZXModGhpcy5fd2lkZ2V0SW5zdGFuY2UubGFiZWxTdHlsZSlcbiAgICAgIDoge307XG4gIH1cblxuICBnZXRMYWJlbFN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZT8ubGFiZWxTdHlsZVxuICAgICAgPyBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ1N0eWxlcyh0aGlzLl93aWRnZXRJbnN0YW5jZS5sYWJlbFN0eWxlKVxuICAgICAgOiB7fTtcbiAgfVxuXG4gIGdldE5nQ2xhc3MoKTogeyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ0NsYXNzZXModGhpcy5fd2lkZ2V0SW5zdGFuY2U/LnN0eWxlKTtcbiAgfVxuXG4gIGdldFN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xuICAgIGlmICghdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUpIHtcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLnN0eWxlID0ge1xuICAgICAgICBjbGFzc2VzVG9BZGQ6IFtdLFxuICAgICAgICBjbGFzc2VzVG9SZW1vdmU6IFtdLFxuICAgICAgICBzdHlsZToge30sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghKCd3aWR0aCcgaW4gdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUuc3R5bGUpICYmICdtaW5XaWR0aCcgaW4gdGhpcy5fd2lkZ2V0SW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLnN0eWxlLnN0eWxlWyd3aWR0aCddID0gYCR7dGhpcy5fd2lkZ2V0SW5zdGFuY2UubWluV2lkdGh9cHhgO1xuICAgIH1cblxuICAgIHJldHVybiBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ1N0eWxlcyh0aGlzLl93aWRnZXRJbnN0YW5jZS5zdHlsZSk7XG4gIH1cblxuICAvLyAtLS0tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uIC0tLS1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl93aWRnZXRJbnN0YW5jZSkge1xuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2UudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvLyAtLS0tIFVJIGdldHRlcnMgLS0tLVxuXG4gIGdldCBmaWxlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBMaWIgPT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2ZpbGUnIDogJ2luc2VydF9kcml2ZV9maWxlJztcbiAgfVxuXG4gIGdldCBjaGFuZ2VCdXR0b24oKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLl93aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzITtcbiAgICB2YXIgYmFzZUFjdGlvbiA9IHByb3BzLmNoYW5nZUFjdGlvbiA/PyBwcm9wcy51cGxvYWRBY3Rpb24hO1xuXG4gICAgdmFyIGNoYW5nZURlc2NyaXB0b3IgPSB7XG4gICAgICAuLi4oYmFzZUFjdGlvbi5kZXNjcmlwdG9yID8/IHt9KSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTixcbiAgICAgIGljb246IHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ3N5bmMnIDogJ3N5bmNfYWx0JyxcbiAgICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNoYW5nZURlc2NyaXB0b3I7XG4gIH1cblxuICBnZXQgcmVtb3ZlQnV0dG9uKCk6IFVpQWN0aW9uRGVzY3JpcHRvciB7XG4gICAgdmFyIGNoYW5nZUJ1dHRvbiA9IHRoaXMuY2hhbmdlQnV0dG9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNvbG9yOiBjaGFuZ2VCdXR0b24uY29sb3IsXG4gICAgICB0eXBlOiBjaGFuZ2VCdXR0b24udHlwZSxcbiAgICAgIGljb25SZXNvdXJjZTogdGhpcy5fd2lkZ2V0SW5zdGFuY2UuZmlsZVVwbG9hZGVyUHJvcGVydGllcyEudW5kb0ljb24sXG4gICAgICBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbi5QUkUsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBlcnJvckljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wTGliID09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdleGNsYW1hdGlvbi1jaXJjbGUnIDogJ2Vycm9yJztcbiAgfVxuXG4gIGdldCB0b29sYmFyQ29tcG9uZW50KCk6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhcjtcbiAgfVxufVxuIiwiQGlmICh3aWRnZXRJbnN0YW5jZSAmJiB3aWRnZXRJbnN0YW5jZS5maWxlVXBsb2FkZXJQcm9wZXJ0aWVzKSB7XG4gIDxoNFxuICAgICpuZ0lmPVwid2lkZ2V0SW5zdGFuY2Uuc2hvd0xhYmVsXCJcbiAgICBjbGFzcz1cImxhYmVsQ29udGFpbmVyIHt7IHdpZGdldEluc3RhbmNlLmNzc0xhYmVsQ2xhc3MgPz8gJycgfX1cIlxuICAgIFtuZ0NsYXNzXT1cImdldExhYmVsTmdDbGFzcygpXCJcbiAgICBbbmdTdHlsZV09XCJnZXRMYWJlbFN0eWxlKClcIlxuICA+XG4gICAge3sgd2lkZ2V0SW5zdGFuY2UubGFiZWwgfX1cbiAgPC9oND5cblxuICA8ZGl2IGNsYXNzPVwiZmlsZUVkaXRvckNvbXBvbmVudFwiPlxuICAgIEBpZiAod2lkZ2V0SW5zdGFuY2UudmFsdWUgJiYgIWlzVHlwZVN1cHBvcnRlZCh3aWRnZXRJbnN0YW5jZS52YWx1ZSkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNtYXJ0LWljb24gW2ljb25dPVwiZXJyb3JJY29uXCIgW2NvbG9yXT1cIid2YXIoLS13YXJuaW5pZy1jb2xvciknXCI+PC9zbWFydC1pY29uPlxuICAgICAgICA8c3Bhbj4gVW5zdXBwb3J0ZWQgd2lkZ2V0SW5zdGFuY2UudmFsdWUgdHlwZSBmb3IgdGhpcyB3aWRnZXQuPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoIXdpZGdldEluc3RhbmNlLnZhbHVlIHx8IGZpbGVUb0NoYW5nZSkge1xuICAgICAgPHNtYXJ0LXVwbG9hZC13aWRnZXRcbiAgICAgICAgY2xhc3M9XCJ3aWRnZXRDb250ZW50IHt7IHdpZGdldEluc3RhbmNlLmNzc0NsYXNzID8/ICcnIH19XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcygpXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0U3R5bGUoKVwiXG4gICAgICAgIFt1cGxvYWREZXNjcmlwdG9yXT1cIndpZGdldEluc3RhbmNlLmZpbGVVcGxvYWRlclByb3BlcnRpZXMudXBsb2FkRGVzY3JpcHRvciFcIlxuICAgICAgICBbaXNNdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cIndpZGdldEluc3RhbmNlLmlzRGlzYWJsZWRcIlxuICAgICAgICAodXBsb2FkRmlsZXNFdmVudCk9XCJ1cGxvYWQoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWRXaWRnZXQ6IHdpZGdldEluc3RhbmNlLmlzRGlzYWJsZWQgfVwiXG4gICAgICBjbGFzcz1cInVwbG9hZGVkRmlsZUNvbnRhaW5lclwiXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCJcbiAgICAgICAgd2lkZ2V0SW5zdGFuY2UudmFsdWUgJiYgaXNUeXBlU3VwcG9ydGVkKHdpZGdldEluc3RhbmNlLnZhbHVlKSA/ICdibG9jaycgOiAnbm9uZSdcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZGVkRmlsZVwiPlxuICAgICAgICA8c21hcnQtaWNvbiBjbGFzcz1cInVwbG9hZGVkRmlsZUljb25cIiBbaWNvbl09XCJmaWxlSWNvblwiPjwvc21hcnQtaWNvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFDb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZU5hbWVcIj57eyB3aWRnZXRJbnN0YW5jZS52YWx1ZT8uZmlsZU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGVTaXplXCI+e3sgZm9ybWF0U2l6ZSh3aWRnZXRJbnN0YW5jZS52YWx1ZT8uc2l6ZSkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlQWN0aW9uc1wiPlxuICAgICAgICAgIDxzbWFydC11aS1hY3Rpb24tdG9vbGJhclxuICAgICAgICAgICAgW2lkXT1cIndpZGdldEluc3RhbmNlLnRvb2xiYXJJZFwiXG4gICAgICAgICAgICAjdG9vbGJhclxuICAgICAgICAgID48L3NtYXJ0LXVpLWFjdGlvbi10b29sYmFyPlxuXG4gICAgICAgICAgQGlmICghZmlsZVRvQ2hhbmdlKSB7XG4gICAgICAgICAgICA8dWktYWN0aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNoYW5nZUJ1dHRvblwiXG4gICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJjaGFuZ2Uod2lkZ2V0SW5zdGFuY2UudmFsdWUpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIndpZGdldEluc3RhbmNlLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJjaGFuZ2VCdXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHVpLWFjdGlvbi1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmVJY29uXCJcbiAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cImNhbmNlbENoYW5nZSgpXCJcbiAgICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwicmVtb3ZlQnV0dG9uXCJcbiAgICAgICAgICAgID48L3VpLWFjdGlvbi1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { UntypedFormControl } from '@angular/forms';
3
+ import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter, } from '@angular/material-moment-adapter';
4
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
5
+ import moment from 'moment';
6
+ import { SmartWidgetHintPositionEnum } from '../../../api';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@angular/material/form-field";
10
+ import * as i3 from "@angular/material/input";
11
+ import * as i4 from "@angular/material/datepicker";
12
+ export const YEARH_MONTH_FORMAT = {
13
+ parse: {
14
+ dateInput: 'MM/YYYY',
15
+ },
16
+ display: {
17
+ dateInput: 'MM/YYYY' || 'YYYY/MM',
18
+ monthYearLabel: 'MMM YYYY',
19
+ dateA11yLabel: 'LL',
20
+ monthYearA11yLabel: 'MMMM YYYY',
21
+ },
22
+ };
23
+ export class SmartMonthPickerComponent {
24
+ constructor() {
25
+ this.valueChange = new EventEmitter();
26
+ this.SmartWidgetHintPosition = SmartWidgetHintPositionEnum;
27
+ }
28
+ ngOnInit() {
29
+ // if (this.widgetInstance.value && this.widgetInstance.value.length) {
30
+ // let date = new Date(this.widgetInstance.value);
31
+ // let valueInMoment = moment(date);
32
+ // this.date = new FormControl(valueInMoment);
33
+ // } else {
34
+ // this.date = new FormControl(moment());
35
+ // this.valueChange.next(this.date.value);
36
+ // }
37
+ moment(this.widgetInstance.value || '');
38
+ if (this.widgetInstance.value) {
39
+ let momemtValue = moment(this.widgetInstance.value);
40
+ this.date = new UntypedFormControl(momemtValue);
41
+ }
42
+ else {
43
+ // let momemtValue = moment();
44
+ this.date = new UntypedFormControl('');
45
+ }
46
+ }
47
+ chosenMonthHandler(moment, datepicker) {
48
+ // const ctrlValue = this.date.value;
49
+ // ctrlValue.month(moment.month());
50
+ // ctrlValue.year(moment.year());
51
+ this.date.setValue(moment);
52
+ this.valueChange.next(moment);
53
+ datepicker.close();
54
+ }
55
+ handleChange(event) {
56
+ this.valueChange.next(this.date.value);
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMonthPickerComponent, selector: "lib-smart-month-picker", inputs: { widgetInstance: "widgetInstance" }, outputs: { valueChange: "valueChange" }, providers: [
60
+ {
61
+ provide: DateAdapter,
62
+ useClass: MomentDateAdapter,
63
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
64
+ },
65
+ { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
66
+ ], ngImport: i0, template: "<div class=\"smart-month-picker-container\">\n <mat-form-field appearance=\"outline\">\n <input matInput [matDatepicker]=\"dp\" [formControl]=\"date\" (input)=\"handleChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\n <mat-datepicker\n #dp\n startView=\"multi-year\"\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\n panelClass=\"example-month-picker\"\n >\n </mat-datepicker>\n </mat-form-field>\n @if (widgetInstance.hint?.position === SmartWidgetHintPosition.INPUT) {\n <div class=\"smart-month-picker-hint\">\n <mat-hint>{{ widgetInstance.hint?.text }}</mat-hint>\n </div>\n }\n</div>\n", styles: [".smart-month-picker-container{display:flex}.smart-month-picker-container mat-form-field{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMonthPickerComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'lib-smart-month-picker', providers: [
71
+ {
72
+ provide: DateAdapter,
73
+ useClass: MomentDateAdapter,
74
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
75
+ },
76
+ { provide: MAT_DATE_FORMATS, useValue: YEARH_MONTH_FORMAT },
77
+ ], template: "<div class=\"smart-month-picker-container\">\n <mat-form-field appearance=\"outline\">\n <input matInput [matDatepicker]=\"dp\" [formControl]=\"date\" (input)=\"handleChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\n <mat-datepicker\n #dp\n startView=\"multi-year\"\n (monthSelected)=\"chosenMonthHandler($event, dp)\"\n panelClass=\"example-month-picker\"\n >\n </mat-datepicker>\n </mat-form-field>\n @if (widgetInstance.hint?.position === SmartWidgetHintPosition.INPUT) {\n <div class=\"smart-month-picker-hint\">\n <mat-hint>{{ widgetInstance.hint?.text }}</mat-hint>\n </div>\n }\n</div>\n", styles: [".smart-month-picker-container{display:flex}.smart-month-picker-container mat-form-field{flex:1}\n"] }]
78
+ }], propDecorators: { widgetInstance: [{
79
+ type: Input
80
+ }], valueChange: [{
81
+ type: Output
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vd2lkZ2V0cy9jb21wb25lbnRzL3NtYXJ0LW1vbnRoLXBpY2tlci9zbWFydC1tb250aC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbW9udGgtcGlja2VyL3NtYXJ0LW1vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsaUJBQWlCLEdBQ2xCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl4RixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFtQiwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBRTVFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxTQUFTO0tBQ3JCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLFNBQVMsSUFBSSxTQUFTO1FBQ2pDLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO0FBZUYsTUFBTSxPQUFPLHlCQUF5QjtJQWJ0QztRQWVZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyw0QkFBdUIsR0FBRywyQkFBMkIsQ0FBQztLQXFDdkQ7SUFuQ0MsUUFBUTtRQUNOLHVFQUF1RTtRQUN2RSxvREFBb0Q7UUFDcEQsc0NBQXNDO1FBQ3RDLGdEQUFnRDtRQUNoRCxXQUFXO1FBQ1gsMkNBQTJDO1FBQzNDLDRDQUE0QztRQUM1QyxJQUFJO1FBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDTiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFVBQWlDO1FBQ2xFLHFDQUFxQztRQUNyQyxtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQXhDVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix3SUFUekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO2FBQ3pEO1lBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1NBQzVELDBCQ3RDSCxtckJBa0JBOzs0RkRzQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjs0QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3lCQUN6RDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7cUJBQzVEOzhCQUdRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUyxcbiAgTW9tZW50RGF0ZUFkYXB0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBTbWFydE1vbnRoUGlja2VyIH0gZnJvbSAnLi4vLi4vLi4vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBTbWFydFZhbGlkYXRvciwgU21hcnRXaWRnZXRIaW50UG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zbWFydGZvcm0ubW9kZWwnO1xuaW1wb3J0IHsgU21hcnRXaWRnZXRIaW50LCBTbWFydFdpZGdldEhpbnRQb3NpdGlvbkVudW0gfSBmcm9tICcuLi8uLi8uLi9hcGknO1xuXG5leHBvcnQgY29uc3QgWUVBUkhfTU9OVEhfRk9STUFUID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ01NL1lZWVknLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnTU0vWVlZWScgfHwgJ1lZWVkvTU0nLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zbWFydC1tb250aC1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtbW9udGgtcGlja2VyLmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IFlFQVJIX01PTlRIX0ZPUk1BVCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydE1vbnRoUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgd2lkZ2V0SW5zdGFuY2UhOiBTbWFydE1vbnRoUGlja2VyO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGRhdGUhOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIFNtYXJ0V2lkZ2V0SGludFBvc2l0aW9uID0gU21hcnRXaWRnZXRIaW50UG9zaXRpb25FbnVtO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLndpZGdldEluc3RhbmNlLnZhbHVlICYmIHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUubGVuZ3RoKSB7XG4gICAgLy8gICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xuICAgIC8vICAgbGV0IHZhbHVlSW5Nb21lbnQgPSBtb21lbnQoZGF0ZSk7XG4gICAgLy8gICB0aGlzLmRhdGUgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWVJbk1vbWVudCk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHRoaXMuZGF0ZSA9IG5ldyBGb3JtQ29udHJvbChtb21lbnQoKSk7XG4gICAgLy8gICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5kYXRlLnZhbHVlKTtcbiAgICAvLyB9XG5cbiAgICBtb21lbnQodGhpcy53aWRnZXRJbnN0YW5jZS52YWx1ZSB8fCAnJyk7XG5cbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS52YWx1ZSkge1xuICAgICAgbGV0IG1vbWVtdFZhbHVlID0gbW9tZW50KHRoaXMud2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xuICAgICAgdGhpcy5kYXRlID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChtb21lbXRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGxldCBtb21lbXRWYWx1ZSA9IG1vbWVudCgpO1xuICAgICAgdGhpcy5kYXRlID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XG4gICAgfVxuICB9XG5cbiAgY2hvc2VuTW9udGhIYW5kbGVyKG1vbWVudDogTW9tZW50LCBkYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPE1vbWVudD4pIHtcbiAgICAvLyBjb25zdCBjdHJsVmFsdWUgPSB0aGlzLmRhdGUudmFsdWU7XG4gICAgLy8gY3RybFZhbHVlLm1vbnRoKG1vbWVudC5tb250aCgpKTtcbiAgICAvLyBjdHJsVmFsdWUueWVhcihtb21lbnQueWVhcigpKTtcblxuICAgIHRoaXMuZGF0ZS5zZXRWYWx1ZShtb21lbnQpO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KG1vbWVudCk7XG4gICAgZGF0ZXBpY2tlci5jbG9zZSgpO1xuICB9XG5cbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5kYXRlLnZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LW1vbnRoLXBpY2tlci1jb250YWluZXJcIj5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImRwXCIgW2Zvcm1Db250cm9sXT1cImRhdGVcIiAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZHBcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICNkcFxuICAgICAgc3RhcnRWaWV3PVwibXVsdGkteWVhclwiXG4gICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5Nb250aEhhbmRsZXIoJGV2ZW50LCBkcClcIlxuICAgICAgcGFuZWxDbGFzcz1cImV4YW1wbGUtbW9udGgtcGlja2VyXCJcbiAgICA+XG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgQGlmICh3aWRnZXRJbnN0YW5jZS5oaW50Py5wb3NpdGlvbiA9PT0gU21hcnRXaWRnZXRIaW50UG9zaXRpb24uSU5QVVQpIHtcbiAgICA8ZGl2IGNsYXNzPVwic21hcnQtbW9udGgtcGlja2VyLWhpbnRcIj5cbiAgICAgIDxtYXQtaGludD57eyB3aWRnZXRJbnN0YW5jZS5oaW50Py50ZXh0IH19PC9tYXQtaGludD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,170 @@
1
+ import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
2
+ import { SmartStyleUtility } from '../../../../view-context/utility/smart-style-utility';
3
+ import { COMPONENT_LIBRARY, ComponentLibrary, } from '../../../../view-context/utility/componentLibrary';
4
+ import { UploadWidgetUtils } from '../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.utils';
5
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../../../../smart-icon/smart-icon/smart-icon.component";
9
+ import * as i3 from "../../../../view-context/smart-ui-action/ui-action-toolbar.component";
10
+ import * as i4 from "../../../../view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component";
11
+ import * as i5 from "../../../../view-context/smart-ui-action/components/upload-widget/upload-widget.component";
12
+ import * as i6 from "../../../../view-context/utility/componentLibrary";
13
+ export class SmartMultiFileEditorComponent {
14
+ get widgetInstance() {
15
+ return this._widgetInstance;
16
+ }
17
+ set widgetInstance(value) {
18
+ if (value) {
19
+ this.clone(value);
20
+ }
21
+ }
22
+ constructor(cdr, compLib) {
23
+ this.cdr = cdr;
24
+ this.compLib = compLib;
25
+ this.uploadFilesEvent = new EventEmitter();
26
+ this.fileEvent = new EventEmitter();
27
+ // ---- ControlValueAccessor implementation ----
28
+ this.onChange = (value) => { };
29
+ this.onTouched = () => { };
30
+ this.isDisabled = false;
31
+ }
32
+ clone(value) {
33
+ this._widgetInstance =
34
+ typeof structuredClone === 'function'
35
+ ? structuredClone(value)
36
+ : JSON.parse(JSON.stringify(value));
37
+ this.cdr.markForCheck();
38
+ }
39
+ upload(event) {
40
+ if (!event.files || event.files.length == 0) {
41
+ return;
42
+ }
43
+ let props = this._widgetInstance.multiFileUploaderProperties;
44
+ let uiAction = props.uploadAction;
45
+ let params = {
46
+ ...uiAction.params,
47
+ isMultiple: true,
48
+ };
49
+ uiAction.params = params;
50
+ this.uploadFilesEvent.emit({
51
+ files: event.files,
52
+ uiAction: uiAction,
53
+ uploadDescriptor: event.uploadDescriptor,
54
+ });
55
+ this.onChange(this._widgetInstance.value);
56
+ }
57
+ emitFileAction(actionCode, dataUri) {
58
+ const uiAction = {
59
+ code: actionCode,
60
+ model: true,
61
+ path: this._widgetInstance.key,
62
+ params: { _dataUri: dataUri },
63
+ };
64
+ this.fileEvent.emit({
65
+ uiAction,
66
+ uploadDescriptor: this._widgetInstance.multiFileUploaderProperties?.uploadDescriptor,
67
+ });
68
+ this.onChange(this._widgetInstance.value);
69
+ }
70
+ deleteFile(dataUri) {
71
+ this.emitFileAction(this._widgetInstance.multiFileUploaderProperties?.removeActionCode ?? 'defaultRemove', dataUri);
72
+ }
73
+ downloadFile(dataUri) {
74
+ this.emitFileAction(this._widgetInstance.multiFileUploaderProperties?.downloadActionCode ?? 'defaultDownload', dataUri);
75
+ }
76
+ isTypeSupported(value) {
77
+ return (value == null || (Array.isArray(value) && value.every((item) => item && 'dataUri' in item)));
78
+ }
79
+ formatSize(bytes) {
80
+ return UploadWidgetUtils.formatSize(bytes);
81
+ }
82
+ // ---- Smart form widget functions ----
83
+ getLabelNgClass() {
84
+ return this._widgetInstance?.labelStyle
85
+ ? SmartStyleUtility.getNgClasses(this._widgetInstance.labelStyle)
86
+ : {};
87
+ }
88
+ getLabelStyle() {
89
+ return this._widgetInstance?.labelStyle
90
+ ? SmartStyleUtility.getNgStyles(this._widgetInstance.labelStyle)
91
+ : {};
92
+ }
93
+ getNgClass() {
94
+ return SmartStyleUtility.getNgClasses(this._widgetInstance?.style);
95
+ }
96
+ getStyle() {
97
+ if (!this._widgetInstance.style) {
98
+ this._widgetInstance.style = {
99
+ classesToAdd: [],
100
+ classesToRemove: [],
101
+ style: {},
102
+ };
103
+ }
104
+ if (!('width' in this._widgetInstance.style.style) && 'minWidth' in this._widgetInstance) {
105
+ this._widgetInstance.style.style['width'] = `${this._widgetInstance.minWidth}px`;
106
+ }
107
+ return SmartStyleUtility.getNgStyles(this._widgetInstance.style);
108
+ }
109
+ writeValue(value) {
110
+ if (value !== undefined && this._widgetInstance) {
111
+ this._widgetInstance.value = value;
112
+ this.cdr.markForCheck();
113
+ }
114
+ }
115
+ registerOnChange(fn) {
116
+ this.onChange = fn;
117
+ }
118
+ registerOnTouched(fn) {
119
+ this.onTouched = fn;
120
+ }
121
+ setDisabledState(isDisabled) {
122
+ this.isDisabled = isDisabled;
123
+ }
124
+ // ---- UI getters ----
125
+ get removeIcon() {
126
+ return this.compLib == ComponentLibrary.PRIMENG ? 'trash' : 'delete';
127
+ }
128
+ get fileIcon() {
129
+ return this.compLib == ComponentLibrary.PRIMENG ? 'file' : 'insert_drive_file';
130
+ }
131
+ get errorIcon() {
132
+ return this.compLib == ComponentLibrary.PRIMENG ? 'exclamation-circle' : 'error';
133
+ }
134
+ get toolbarComponent() {
135
+ return this.toolbar;
136
+ }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMultiFileEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMultiFileEditorComponent, selector: "smart-multi-file-editor", inputs: { widgetInstance: "widgetInstance" }, outputs: { uploadFilesEvent: "uploadFilesEvent", fileEvent: "fileEvent" }, providers: [
139
+ {
140
+ provide: NG_VALUE_ACCESSOR,
141
+ useExisting: forwardRef(() => SmartMultiFileEditorComponent),
142
+ multi: true,
143
+ },
144
+ ], viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], ngImport: i0, template: "@if (widgetInstance && widgetInstance.multiFileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n [style]=\"{ display: 'none' }\"\n ></smart-ui-action-toolbar>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.multiFileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"true\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"scrollable\">\n <div class=\"uploadedFile\" *ngFor=\"let file of widgetInstance.value; let i = index\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ file?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(file?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n @if (toolbarComponent && toolbarComponent.uiActionModels) {\n <file-editor-toolbar\n [id]=\"widgetInstance.toolbarId\"\n [dataUri]=\"file.dataUri\"\n [uiActionModels]=\"toolbarComponent.uiActionModels\"\n ></file-editor-toolbar>\n }\n <smart-icon\n class=\"downloadIcon\"\n icon=\"download\"\n (click)=\"downloadFile(file.dataUri)\"\n ></smart-icon>\n @if (!file.readOnly) {\n <smart-icon\n class=\"removeIcon\"\n [icon]=\"removeIcon\"\n (click)=\"!isDisabled && file.readOnly === false && deleteFile(file.dataUri)\"\n ></smart-icon>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius);overflow:hidden}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column;border-top:1px solid #e0e0e0}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.scrollable{max-height:30vh;overflow-y:auto}.scrollable>div:not(:last-child){border-bottom:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon *{opacity:.4!important;pointer-events:none!important}:host ::ng-deep .disabledWidget ::ng-deep .changeButton:hover,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon:hover{cursor:not-allowed}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 6px,#f1f1f1 6px 12px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i3.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i4.FileEditorToolbarComponent, selector: "file-editor-toolbar", inputs: ["dataUri"], outputs: ["actionEvent"] }, { kind: "component", type: i5.UploadWidgetComponent, selector: "smart-upload-widget", inputs: ["uploadDescriptor", "isMultiple", "isDisabled"], outputs: ["uploadFilesEvent"] }] }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMultiFileEditorComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ selector: 'smart-multi-file-editor', providers: [
149
+ {
150
+ provide: NG_VALUE_ACCESSOR,
151
+ useExisting: forwardRef(() => SmartMultiFileEditorComponent),
152
+ multi: true,
153
+ },
154
+ ], template: "@if (widgetInstance && widgetInstance.multiFileUploaderProperties) {\n <h4\n *ngIf=\"widgetInstance.showLabel\"\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\n [ngClass]=\"getLabelNgClass()\"\n [ngStyle]=\"getLabelStyle()\"\n >\n {{ widgetInstance.label }}\n </h4>\n <smart-ui-action-toolbar\n [id]=\"widgetInstance.toolbarId\"\n #toolbar\n [style]=\"{ display: 'none' }\"\n ></smart-ui-action-toolbar>\n\n <div class=\"fileEditorComponent\">\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\n <div class=\"errorMessage\">\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\n <span> Unsupported widgetInstance.value type for this widget.</span>\n </div>\n } @else {\n <smart-upload-widget\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\n [ngClass]=\"getNgClass()\"\n [ngStyle]=\"getStyle()\"\n [uploadDescriptor]=\"widgetInstance.multiFileUploaderProperties.uploadDescriptor!\"\n [isMultiple]=\"true\"\n [isDisabled]=\"widgetInstance.isDisabled\"\n (uploadFilesEvent)=\"upload($event)\"\n />\n }\n\n <div\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\n class=\"uploadedFileContainer\"\n [style.display]=\"\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\n \"\n >\n <div class=\"scrollable\">\n <div class=\"uploadedFile\" *ngFor=\"let file of widgetInstance.value; let i = index\">\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ file?.fileName }}</span>\n <span class=\"fileSize\">{{ formatSize(file?.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n @if (toolbarComponent && toolbarComponent.uiActionModels) {\n <file-editor-toolbar\n [id]=\"widgetInstance.toolbarId\"\n [dataUri]=\"file.dataUri\"\n [uiActionModels]=\"toolbarComponent.uiActionModels\"\n ></file-editor-toolbar>\n }\n <smart-icon\n class=\"downloadIcon\"\n icon=\"download\"\n (click)=\"downloadFile(file.dataUri)\"\n ></smart-icon>\n @if (!file.readOnly) {\n <smart-icon\n class=\"removeIcon\"\n [icon]=\"removeIcon\"\n (click)=\"!isDisabled && file.readOnly === false && deleteFile(file.dataUri)\"\n ></smart-icon>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n}\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius);overflow:hidden}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column;border-top:1px solid #e0e0e0}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.scrollable{max-height:30vh;overflow-y:auto}.scrollable>div:not(:last-child){border-bottom:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon *{opacity:.4!important;pointer-events:none!important}:host ::ng-deep .disabledWidget ::ng-deep .changeButton:hover,:host ::ng-deep .disabledWidget ::ng-deep .removeIcon:hover{cursor:not-allowed}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 6px,#f1f1f1 6px 12px)}\n"] }]
155
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i6.ComponentLibrary, decorators: [{
156
+ type: Inject,
157
+ args: [COMPONENT_LIBRARY]
158
+ }, {
159
+ type: Optional
160
+ }] }], propDecorators: { toolbar: [{
161
+ type: ViewChild,
162
+ args: ['toolbar']
163
+ }], widgetInstance: [{
164
+ type: Input
165
+ }], uploadFilesEvent: [{
166
+ type: Output
167
+ }], fileEvent: [{
168
+ type: Output
169
+ }] } });
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbXVsdGktZmlsZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbXVsdGktZmlsZS1lZGl0b3Ivc21hcnQtbXVsdGktZmlsZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS93aWRnZXRzL2NvbXBvbmVudHMvc21hcnQtbXVsdGktZmlsZS1lZGl0b3Ivc21hcnQtbXVsdGktZmlsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFekYsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSxtREFBbUQsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUMxSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyw2QkFBNkI7SUFLeEMsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBNkI7UUFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFD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QUFvQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOytHQWpMVSw2QkFBNkIsbURBNEI5QixpQkFBaUI7bUdBNUJoQiw2QkFBNkIsMktBUjdCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDNUQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDhIQ2hDSCxreUZBNkVBOzs0RkQzQ2EsNkJBQTZCO2tCQVp6QyxTQUFTOytCQUNFLHlCQUF5QixhQUd4Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzs0QkFDNUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQThCRSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQUcsUUFBUTt5Q0EzQmhCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFLaEIsY0FBYztzQkFEakIsS0FBSztnQkFVSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBTUcsU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXIgfSBmcm9tICcuLi8uLi8uLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xuaW1wb3J0IHsgVWlBY3Rpb24sIFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC9hcGkvbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7XG4gIENPTVBPTkVOVF9MSUJSQVJZLFxuICBDb21wb25lbnRMaWJyYXJ5LFxufSBmcm9tICcuLi8uLi8uLi8uLi92aWV3LWNvbnRleHQvdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcbmltcG9ydCB7IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZFdpZGdldFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9jb21wb25lbnRzL3VwbG9hZC13aWRnZXQvdXBsb2FkLXdpZGdldC51dGlscyc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LW11bHRpLWZpbGUtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LW11bHRpLWZpbGUtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NtYXJ0LW11bHRpLWZpbGUtZWRpdG9yLmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNtYXJ0TXVsdGlGaWxlRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0TXVsdGlGaWxlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBAVmlld0NoaWxkKCd0b29sYmFyJykgdG9vbGJhciE6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudDtcblxuICBwcml2YXRlIF93aWRnZXRJbnN0YW5jZSE6IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IHdpZGdldEluc3RhbmNlKCk6IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXIge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRJbnN0YW5jZTtcbiAgfVxuICBzZXQgd2lkZ2V0SW5zdGFuY2UodmFsdWU6IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY2xvbmUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSB1cGxvYWRGaWxlc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgZmlsZXM6IGFueVtdO1xuICAgIHVpQWN0aW9uOiBVaUFjdGlvbjtcbiAgICB1cGxvYWREZXNjcmlwdG9yPzogVWlBY3Rpb25VcGxvYWREZXNjcmlwdG9yO1xuICB9PigpO1xuXG4gIEBPdXRwdXQoKSBmaWxlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICB1aUFjdGlvbjogVWlBY3Rpb247XG4gICAgdXBsb2FkRGVzY3JpcHRvcj86IFVpQWN0aW9uVXBsb2FkRGVzY3JpcHRvcjtcbiAgfT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgQE9wdGlvbmFsKCkgcHVibGljIGNvbXBMaWI/OiBDb21wb25lbnRMaWJyYXJ5XG4gICkge31cblxuICBwcml2YXRlIGNsb25lKHZhbHVlOiBTbWFydE11bHRpRmlsZVVwbG9hZGVyKSB7XG4gICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2UgPVxuICAgICAgdHlwZW9mIHN0cnVjdHVyZWRDbG9uZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHN0cnVjdHVyZWRDbG9uZSh2YWx1ZSlcbiAgICAgICAgOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHVwbG9hZChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCFldmVudC5maWxlcyB8fCBldmVudC5maWxlcy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwcm9wcyA9IHRoaXMuX3dpZGdldEluc3RhbmNlLm11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcyE7XG4gICAgbGV0IHVpQWN0aW9uID0gcHJvcHMudXBsb2FkQWN0aW9uITtcblxuICAgIGxldCBwYXJhbXMgPSB7XG4gICAgICAuLi51aUFjdGlvbi5wYXJhbXMsXG4gICAgICBpc011bHRpcGxlOiB0cnVlLFxuICAgIH07XG4gICAgdWlBY3Rpb24ucGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy51cGxvYWRGaWxlc0V2ZW50LmVtaXQoe1xuICAgICAgZmlsZXM6IGV2ZW50LmZpbGVzLFxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uLFxuICAgICAgdXBsb2FkRGVzY3JpcHRvcjogZXZlbnQudXBsb2FkRGVzY3JpcHRvcixcbiAgICB9KTtcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5fd2lkZ2V0SW5zdGFuY2UudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmlsZUFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGRhdGFVcmk6IHN0cmluZykge1xuICAgIGNvbnN0IHVpQWN0aW9uID0ge1xuICAgICAgY29kZTogYWN0aW9uQ29kZSxcbiAgICAgIG1vZGVsOiB0cnVlLFxuICAgICAgcGF0aDogdGhpcy5fd2lkZ2V0SW5zdGFuY2Uua2V5LFxuICAgICAgcGFyYW1zOiB7IF9kYXRhVXJpOiBkYXRhVXJpIH0sXG4gICAgfTtcblxuICAgIHRoaXMuZmlsZUV2ZW50LmVtaXQoe1xuICAgICAgdWlBY3Rpb24sXG4gICAgICB1cGxvYWREZXNjcmlwdG9yOiB0aGlzLl93aWRnZXRJbnN0YW5jZS5tdWx0aUZpbGVVcGxvYWRlclByb3BlcnRpZXM/LnVwbG9hZERlc2NyaXB0b3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3dpZGdldEluc3RhbmNlLnZhbHVlKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoZGF0YVVyaTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbWl0RmlsZUFjdGlvbihcbiAgICAgIHRoaXMuX3dpZGdldEluc3RhbmNlLm11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcz8ucmVtb3ZlQWN0aW9uQ29kZSA/PyAnZGVmYXVsdFJlbW92ZScsXG4gICAgICBkYXRhVXJpXG4gICAgKTtcbiAgfVxuXG4gIGRvd25sb2FkRmlsZShkYXRhVXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXRGaWxlQWN0aW9uKFxuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2UubXVsdGlGaWxlVXBsb2FkZXJQcm9wZXJ0aWVzPy5kb3dubG9hZEFjdGlvbkNvZGUgPz8gJ2RlZmF1bHREb3dubG9hZCcsXG4gICAgICBkYXRhVXJpXG4gICAgKTtcbiAgfVxuXG4gIGlzVHlwZVN1cHBvcnRlZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHZhbHVlID09IG51bGwgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBpdGVtICYmICdkYXRhVXJpJyBpbiBpdGVtKSlcbiAgICApO1xuICB9XG5cbiAgZm9ybWF0U2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVXBsb2FkV2lkZ2V0VXRpbHMuZm9ybWF0U2l6ZShieXRlcyk7XG4gIH1cblxuICAvLyAtLS0tIFNtYXJ0IGZvcm0gd2lkZ2V0IGZ1bmN0aW9ucyAtLS0tXG4gIGdldExhYmVsTmdDbGFzcygpOiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldEluc3RhbmNlPy5sYWJlbFN0eWxlXG4gICAgICA/IFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nQ2xhc3Nlcyh0aGlzLl93aWRnZXRJbnN0YW5jZS5sYWJlbFN0eWxlKVxuICAgICAgOiB7fTtcbiAgfVxuXG4gIGdldExhYmVsU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldEluc3RhbmNlPy5sYWJlbFN0eWxlXG4gICAgICA/IFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHRoaXMuX3dpZGdldEluc3RhbmNlLmxhYmVsU3R5bGUpXG4gICAgICA6IHt9O1xuICB9XG5cbiAgZ2V0TmdDbGFzcygpOiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nQ2xhc3Nlcyh0aGlzLl93aWRnZXRJbnN0YW5jZT8uc3R5bGUpO1xuICB9XG5cbiAgZ2V0U3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XG4gICAgaWYgKCF0aGlzLl93aWRnZXRJbnN0YW5jZS5zdHlsZSkge1xuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUgPSB7XG4gICAgICAgIGNsYXNzZXNUb0FkZDogW10sXG4gICAgICAgIGNsYXNzZXNUb1JlbW92ZTogW10sXG4gICAgICAgIHN0eWxlOiB7fSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKCEoJ3dpZHRoJyBpbiB0aGlzLl93aWRnZXRJbnN0YW5jZS5zdHlsZS5zdHlsZSkgJiYgJ21pbldpZHRoJyBpbiB0aGlzLl93aWRnZXRJbnN0YW5jZSkge1xuICAgICAgdGhpcy5fd2lkZ2V0SW5zdGFuY2Uuc3R5bGUuc3R5bGVbJ3dpZHRoJ10gPSBgJHt0aGlzLl93aWRnZXRJbnN0YW5jZS5taW5XaWR0aH1weGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHRoaXMuX3dpZGdldEluc3RhbmNlLnN0eWxlKTtcbiAgfVxuXG4gIC8vIC0tLS0gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24gLS0tLVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3dpZGdldEluc3RhbmNlKSB7XG4gICAgICB0aGlzLl93aWRnZXRJbnN0YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIC0tLS0gVUkgZ2V0dGVycyAtLS0tXG5cbiAgZ2V0IHJlbW92ZUljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wTGliID09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICd0cmFzaCcgOiAnZGVsZXRlJztcbiAgfVxuXG4gIGdldCBmaWxlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBMaWIgPT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2ZpbGUnIDogJ2luc2VydF9kcml2ZV9maWxlJztcbiAgfVxuXG4gIGdldCBlcnJvckljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wTGliID09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdleGNsYW1hdGlvbi1jaXJjbGUnIDogJ2Vycm9yJztcbiAgfVxuXG4gIGdldCB0b29sYmFyQ29tcG9uZW50KCk6IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhcjtcbiAgfVxufVxuIiwiQGlmICh3aWRnZXRJbnN0YW5jZSAmJiB3aWRnZXRJbnN0YW5jZS5tdWx0aUZpbGVVcGxvYWRlclByb3BlcnRpZXMpIHtcbiAgPGg0XG4gICAgKm5nSWY9XCJ3aWRnZXRJbnN0YW5jZS5zaG93TGFiZWxcIlxuICAgIGNsYXNzPVwibGFiZWxDb250YWluZXIge3sgd2lkZ2V0SW5zdGFuY2UuY3NzTGFiZWxDbGFzcyA/PyAnJyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiZ2V0TGFiZWxOZ0NsYXNzKClcIlxuICAgIFtuZ1N0eWxlXT1cImdldExhYmVsU3R5bGUoKVwiXG4gID5cbiAgICB7eyB3aWRnZXRJbnN0YW5jZS5sYWJlbCB9fVxuICA8L2g0PlxuICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXJcbiAgICBbaWRdPVwid2lkZ2V0SW5zdGFuY2UudG9vbGJhcklkXCJcbiAgICAjdG9vbGJhclxuICAgIFtzdHlsZV09XCJ7IGRpc3BsYXk6ICdub25lJyB9XCJcbiAgPjwvc21hcnQtdWktYWN0aW9uLXRvb2xiYXI+XG5cbiAgPGRpdiBjbGFzcz1cImZpbGVFZGl0b3JDb21wb25lbnRcIj5cbiAgICBAaWYgKHdpZGdldEluc3RhbmNlLnZhbHVlICYmICFpc1R5cGVTdXBwb3J0ZWQod2lkZ2V0SW5zdGFuY2UudmFsdWUpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzbWFydC1pY29uIFtpY29uXT1cImVycm9ySWNvblwiIFtjb2xvcl09XCIndmFyKC0td2FybmluaWctY29sb3IpJ1wiPjwvc21hcnQtaWNvbj5cbiAgICAgICAgPHNwYW4+IFVuc3VwcG9ydGVkIHdpZGdldEluc3RhbmNlLnZhbHVlIHR5cGUgZm9yIHRoaXMgd2lkZ2V0Ljwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNtYXJ0LXVwbG9hZC13aWRnZXRcbiAgICAgICAgY2xhc3M9XCJ3aWRnZXRDb250ZW50IHt7IHdpZGdldEluc3RhbmNlLmNzc0NsYXNzID8/ICcnIH19XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcygpXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0U3R5bGUoKVwiXG4gICAgICAgIFt1cGxvYWREZXNjcmlwdG9yXT1cIndpZGdldEluc3RhbmNlLm11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcy51cGxvYWREZXNjcmlwdG9yIVwiXG4gICAgICAgIFtpc011bHRpcGxlXT1cInRydWVcIlxuICAgICAgICBbaXNEaXNhYmxlZF09XCJ3aWRnZXRJbnN0YW5jZS5pc0Rpc2FibGVkXCJcbiAgICAgICAgKHVwbG9hZEZpbGVzRXZlbnQpPVwidXBsb2FkKCRldmVudClcIlxuICAgICAgLz5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkV2lkZ2V0OiB3aWRnZXRJbnN0YW5jZS5pc0Rpc2FibGVkIH1cIlxuICAgICAgY2xhc3M9XCJ1cGxvYWRlZEZpbGVDb250YWluZXJcIlxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiXG4gICAgICAgIHdpZGdldEluc3RhbmNlLnZhbHVlICYmIGlzVHlwZVN1cHBvcnRlZCh3aWRnZXRJbnN0YW5jZS52YWx1ZSkgPyAnYmxvY2snIDogJ25vbmUnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRlZEZpbGVcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB3aWRnZXRJbnN0YW5jZS52YWx1ZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDxzbWFydC1pY29uIGNsYXNzPVwidXBsb2FkZWRGaWxlSWNvblwiIFtpY29uXT1cImZpbGVJY29uXCI+PC9zbWFydC1pY29uPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVEYXRhXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFDb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlTmFtZVwiPnt7IGZpbGU/LmZpbGVOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGVTaXplXCI+e3sgZm9ybWF0U2l6ZShmaWxlPy5zaXplKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVBY3Rpb25zXCI+XG4gICAgICAgICAgICBAaWYgKHRvb2xiYXJDb21wb25lbnQgJiYgdG9vbGJhckNvbXBvbmVudC51aUFjdGlvbk1vZGVscykge1xuICAgICAgICAgICAgICA8ZmlsZS1lZGl0b3ItdG9vbGJhclxuICAgICAgICAgICAgICAgIFtpZF09XCJ3aWRnZXRJbnN0YW5jZS50b29sYmFySWRcIlxuICAgICAgICAgICAgICAgIFtkYXRhVXJpXT1cImZpbGUuZGF0YVVyaVwiXG4gICAgICAgICAgICAgICAgW3VpQWN0aW9uTW9kZWxzXT1cInRvb2xiYXJDb21wb25lbnQudWlBY3Rpb25Nb2RlbHNcIlxuICAgICAgICAgICAgICA+PC9maWxlLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJkb3dubG9hZEljb25cIlxuICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRGaWxlKGZpbGUuZGF0YVVyaSlcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgIEBpZiAoIWZpbGUucmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlbW92ZUljb25cIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cInJlbW92ZUljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXNEaXNhYmxlZCAmJiBmaWxlLnJlYWRPbmx5ID09PSBmYWxzZSAmJiBkZWxldGVGaWxlKGZpbGUuZGF0YVVyaSlcIlxuICAgICAgICAgICAgICA+PC9zbWFydC1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==