@smartbit4all/ng-client 6.0.32 → 7.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 (985) hide show
  1. package/MIGRATION-7.0.md +1641 -0
  2. package/README.md +199 -386
  3. package/WIDGETS.md +206 -0
  4. package/fesm2022/smartbit4all-ng-client.mjs +13661 -16214
  5. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  6. package/package.json +15 -18
  7. package/smartbit4all-ng-client-7.0.0.tgz +0 -0
  8. package/types/smartbit4all-ng-client.d.ts +10328 -0
  9. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +0 -17
  10. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +0 -35
  11. package/esm2022/lib/component-factory-service/projects.mjs +0 -6
  12. package/esm2022/lib/session/api/api/api.mjs +0 -4
  13. package/esm2022/lib/session/api/api/session.service.mjs +0 -306
  14. package/esm2022/lib/session/api/configuration.mjs +0 -91
  15. package/esm2022/lib/session/api/encoder.mjs +0 -19
  16. package/esm2022/lib/session/api/index.mjs +0 -3
  17. package/esm2022/lib/session/api/model/accountInfo.mjs +0 -13
  18. package/esm2022/lib/session/api/model/apiError.mjs +0 -13
  19. package/esm2022/lib/session/api/model/authenticationProviderData.mjs +0 -13
  20. package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +0 -2
  21. package/esm2022/lib/session/api/model/models.mjs +0 -9
  22. package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +0 -13
  23. package/esm2022/lib/session/api/model/session.mjs +0 -2
  24. package/esm2022/lib/session/api/model/sessionInfoData.mjs +0 -2
  25. package/esm2022/lib/session/api/model/userActivityLog.mjs +0 -13
  26. package/esm2022/lib/session/api/param.mjs +0 -2
  27. package/esm2022/lib/session/api/variables.mjs +0 -9
  28. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +0 -225
  29. package/esm2022/lib/session/projects.mjs +0 -12
  30. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +0 -2
  31. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +0 -217
  32. package/esm2022/lib/session/smart-default-error-ui.service.mjs +0 -134
  33. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +0 -109
  34. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +0 -44
  35. package/esm2022/lib/session/smart-session-handler.service.mjs +0 -7
  36. package/esm2022/lib/session/smart-session.module.mjs +0 -58
  37. package/esm2022/lib/session/smart-session.service.mjs +0 -309
  38. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +0 -59
  39. package/esm2022/lib/shared/projects.mjs +0 -4
  40. package/esm2022/lib/shared/shared.module.mjs +0 -19
  41. package/esm2022/lib/shared/smart-tooltip.directive.mjs +0 -58
  42. package/esm2022/lib/shared/smarttable.date-pipe.mjs +0 -43
  43. package/esm2022/lib/smart-client/projects.mjs +0 -4
  44. package/esm2022/lib/smart-client/smart-component-api-client.mjs +0 -935
  45. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +0 -79
  46. package/esm2022/lib/smart-client/smart.component.mjs +0 -88
  47. package/esm2022/lib/smart-client/smart.service.mjs +0 -71
  48. package/esm2022/lib/smart-component-layout/api/api/api.mjs +0 -4
  49. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +0 -133
  50. package/esm2022/lib/smart-component-layout/api/api.module.mjs +0 -40
  51. package/esm2022/lib/smart-component-layout/api/configuration.mjs +0 -91
  52. package/esm2022/lib/smart-component-layout/api/encoder.mjs +0 -19
  53. package/esm2022/lib/smart-component-layout/api/index.mjs +0 -7
  54. package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +0 -18
  55. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +0 -22
  56. package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +0 -2
  57. package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +0 -17
  58. package/esm2022/lib/smart-component-layout/api/model/models.mjs +0 -10
  59. package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +0 -2
  60. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +0 -2
  61. package/esm2022/lib/smart-component-layout/api/model/toolbarAlignment.mjs +0 -17
  62. package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +0 -17
  63. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +0 -2
  64. package/esm2022/lib/smart-component-layout/api/param.mjs +0 -2
  65. package/esm2022/lib/smart-component-layout/api/variables.mjs +0 -9
  66. package/esm2022/lib/smart-component-layout/projects.mjs +0 -8
  67. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +0 -169
  68. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +0 -438
  69. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +0 -57
  70. package/esm2022/lib/smart-diagram/api/api/api.mjs +0 -4
  71. package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +0 -141
  72. package/esm2022/lib/smart-diagram/api/api.module.mjs +0 -40
  73. package/esm2022/lib/smart-diagram/api/configuration.mjs +0 -91
  74. package/esm2022/lib/smart-diagram/api/encoder.mjs +0 -19
  75. package/esm2022/lib/smart-diagram/api/index.mjs +0 -7
  76. package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +0 -13
  77. package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +0 -2
  78. package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +0 -13
  79. package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +0 -2
  80. package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +0 -2
  81. package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +0 -2
  82. package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +0 -2
  83. package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +0 -18
  84. package/esm2022/lib/smart-diagram/api/model/labelText.mjs +0 -2
  85. package/esm2022/lib/smart-diagram/api/model/models.mjs +0 -10
  86. package/esm2022/lib/smart-diagram/api/param.mjs +0 -2
  87. package/esm2022/lib/smart-diagram/api/variables.mjs +0 -9
  88. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +0 -312
  89. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +0 -359
  90. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +0 -40
  91. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +0 -10
  92. package/esm2022/lib/smart-diagram/projects.mjs +0 -5
  93. package/esm2022/lib/smart-dialog/projects.mjs +0 -8
  94. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +0 -54
  95. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +0 -16
  96. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +0 -46
  97. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +0 -86
  98. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +0 -101
  99. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +0 -12
  100. package/esm2022/lib/smart-expandable-section/projects.mjs +0 -8
  101. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +0 -57
  102. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +0 -14
  103. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +0 -17
  104. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +0 -2
  105. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +0 -8
  106. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +0 -2
  107. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +0 -2
  108. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +0 -20
  109. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +0 -2
  110. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +0 -2
  111. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +0 -28
  112. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +0 -2
  113. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +0 -2
  114. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +0 -32
  115. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +0 -18
  116. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +0 -16
  117. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +0 -2
  118. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +0 -13
  119. package/esm2022/lib/smart-filter/api/value/model/value.mjs +0 -13
  120. package/esm2022/lib/smart-filter/projects.mjs +0 -9
  121. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +0 -14
  122. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +0 -166
  123. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +0 -45
  124. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +0 -36
  125. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +0 -31
  126. package/esm2022/lib/smart-filter/smart-filter.model.mjs +0 -13
  127. package/esm2022/lib/smart-filter/smart-filter.module.mjs +0 -33
  128. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +0 -198
  129. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +0 -91
  130. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +0 -19
  131. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +0 -17
  132. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +0 -13
  133. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +0 -2
  134. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +0 -8
  135. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +0 -2
  136. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +0 -7
  137. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +0 -2
  138. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +0 -20
  139. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +0 -2
  140. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +0 -2
  141. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +0 -2
  142. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +0 -28
  143. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +0 -2
  144. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +0 -2
  145. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +0 -32
  146. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +0 -19
  147. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +0 -17
  148. package/esm2022/lib/smart-filter-editor/api/param.mjs +0 -2
  149. package/esm2022/lib/smart-filter-editor/api/variables.mjs +0 -9
  150. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +0 -15
  151. package/esm2022/lib/smart-filter-editor/project.mjs +0 -8
  152. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +0 -73
  153. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +0 -40
  154. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +0 -294
  155. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +0 -2
  156. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +0 -69
  157. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +0 -63
  158. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +0 -24
  159. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +0 -57
  160. package/esm2022/lib/smart-form/api/api/api.mjs +0 -4
  161. package/esm2022/lib/smart-form/api/api/default.service.mjs +0 -133
  162. package/esm2022/lib/smart-form/api/api.module.mjs +0 -40
  163. package/esm2022/lib/smart-form/api/configuration.mjs +0 -91
  164. package/esm2022/lib/smart-form/api/encoder.mjs +0 -19
  165. package/esm2022/lib/smart-form/api/index.mjs +0 -7
  166. package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +0 -13
  167. package/esm2022/lib/smart-form/api/model/divProperties.mjs +0 -2
  168. package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +0 -2
  169. package/esm2022/lib/smart-form/api/model/imageProperties.mjs +0 -2
  170. package/esm2022/lib/smart-form/api/model/models.mjs +0 -20
  171. package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +0 -2
  172. package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +0 -13
  173. package/esm2022/lib/smart-form/api/model/recordingUploaderProperties.mjs +0 -7
  174. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +0 -14
  175. package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +0 -22
  176. package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +0 -17
  177. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +0 -49
  178. package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +0 -2
  179. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +0 -2
  180. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +0 -2
  181. package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +0 -18
  182. package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +0 -13
  183. package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +0 -13
  184. package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +0 -13
  185. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +0 -21
  186. package/esm2022/lib/smart-form/api/param.mjs +0 -2
  187. package/esm2022/lib/smart-form/api/variables.mjs +0 -9
  188. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +0 -20
  189. package/esm2022/lib/smart-form/projects.mjs +0 -18
  190. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +0 -754
  191. package/esm2022/lib/smart-form/services/smartform.service.mjs +0 -683
  192. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +0 -15
  193. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +0 -193
  194. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +0 -2
  195. package/esm2022/lib/smart-form/smartform.component.mjs +0 -190
  196. package/esm2022/lib/smart-form/smartform.form-model.mjs +0 -2
  197. package/esm2022/lib/smart-form/smartform.model.mjs +0 -38
  198. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +0 -179
  199. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +0 -83
  200. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +0 -170
  201. package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +0 -151
  202. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +0 -35
  203. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +0 -79
  204. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +0 -1050
  205. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +0 -78
  206. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +0 -31
  207. package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +0 -98
  208. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +0 -2
  209. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +0 -18
  210. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +0 -19
  211. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +0 -13
  212. package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +0 -2
  213. package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +0 -2
  214. package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +0 -13
  215. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +0 -2
  216. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +0 -2
  217. package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +0 -54
  218. package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +0 -40
  219. package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +0 -40
  220. package/esm2022/lib/smart-generic-pages/projects.mjs +0 -13
  221. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +0 -81
  222. package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +0 -116
  223. package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +0 -78
  224. package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +0 -93
  225. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +0 -4
  226. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +0 -514
  227. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +0 -40
  228. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +0 -91
  229. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +0 -19
  230. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +0 -7
  231. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +0 -17
  232. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +0 -2
  233. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +0 -20
  234. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +0 -2
  235. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +0 -2
  236. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +0 -2
  237. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +0 -2
  238. package/esm2022/lib/smart-grid/api/grid-api/model/gridRowLayoutDescriptor.mjs +0 -2
  239. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +0 -13
  240. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +0 -18
  241. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +0 -17
  242. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +0 -2
  243. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +0 -2
  244. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +0 -2
  245. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +0 -8
  246. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +0 -16
  247. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +0 -2
  248. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +0 -9
  249. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +0 -20
  250. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +0 -47
  251. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +0 -92
  252. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +0 -200
  253. package/esm2022/lib/smart-grid/models/model.mjs +0 -29
  254. package/esm2022/lib/smart-grid/projects.mjs +0 -9
  255. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +0 -76
  256. package/esm2022/lib/smart-grid/smart-grid.component.mjs +0 -1074
  257. package/esm2022/lib/smart-grid/smart-grid.module.mjs +0 -103
  258. package/esm2022/lib/smart-grid/smart-grid.service.mjs +0 -92
  259. package/esm2022/lib/smart-icon/projects.mjs +0 -9
  260. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +0 -95
  261. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +0 -33
  262. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +0 -37
  263. package/esm2022/lib/smart-icon/smart-icon.module.mjs +0 -26
  264. package/esm2022/lib/smart-icon/smart-icon.service.mjs +0 -93
  265. package/esm2022/lib/smart-map/abstract-map.mjs +0 -112
  266. package/esm2022/lib/smart-map/api/api/api.mjs +0 -4
  267. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +0 -312
  268. package/esm2022/lib/smart-map/api/api.module.mjs +0 -40
  269. package/esm2022/lib/smart-map/api/configuration.mjs +0 -91
  270. package/esm2022/lib/smart-map/api/encoder.mjs +0 -19
  271. package/esm2022/lib/smart-map/api/index.mjs +0 -7
  272. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +0 -13
  273. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +0 -2
  274. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +0 -2
  275. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +0 -17
  276. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +0 -2
  277. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +0 -19
  278. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +0 -2
  279. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +0 -2
  280. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +0 -2
  281. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +0 -18
  282. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +0 -2
  283. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +0 -2
  284. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +0 -2
  285. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +0 -2
  286. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +0 -17
  287. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +0 -18
  288. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +0 -2
  289. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +0 -17
  290. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +0 -2
  291. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +0 -2
  292. package/esm2022/lib/smart-map/api/model/models.mjs +0 -21
  293. package/esm2022/lib/smart-map/api/param.mjs +0 -2
  294. package/esm2022/lib/smart-map/api/variables.mjs +0 -9
  295. package/esm2022/lib/smart-map/api-default/api-default.mjs +0 -2
  296. package/esm2022/lib/smart-map/impl/google-map.mjs +0 -224
  297. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +0 -422
  298. package/esm2022/lib/smart-map/projects.mjs +0 -9
  299. package/esm2022/lib/smart-map/smart-map.component.mjs +0 -222
  300. package/esm2022/lib/smart-map/smart-map.module.mjs +0 -22
  301. package/esm2022/lib/smart-map/smart-map.types.mjs +0 -2
  302. package/esm2022/lib/smart-navbar/projects.mjs +0 -8
  303. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +0 -61
  304. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +0 -6
  305. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +0 -63
  306. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +0 -14
  307. package/esm2022/lib/smart-navigation/projects.mjs +0 -6
  308. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +0 -2
  309. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +0 -18
  310. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +0 -27
  311. package/esm2022/lib/smart-ng-client.module.mjs +0 -131
  312. package/esm2022/lib/smart-ng-client.service.mjs +0 -19
  313. package/esm2022/lib/smart-subject/projects.mjs +0 -5
  314. package/esm2022/lib/smart-subject/smart-subject.mjs +0 -21
  315. package/esm2022/lib/smart-tab-group/projects.mjs +0 -5
  316. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +0 -22
  317. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +0 -43
  318. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +0 -15
  319. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +0 -52
  320. package/esm2022/lib/smart-table/projects.mjs +0 -8
  321. package/esm2022/lib/smart-table/smarttable.component.mjs +0 -98
  322. package/esm2022/lib/smart-table/smarttable.model.mjs +0 -177
  323. package/esm2022/lib/smart-table/smarttable.module.mjs +0 -109
  324. package/esm2022/lib/smart-table/smarttable.service.mjs +0 -14
  325. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +0 -40
  326. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +0 -23
  327. package/esm2022/lib/smart-table/tables/table.mjs +0 -614
  328. package/esm2022/lib/smart-tree/projects.mjs +0 -9
  329. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +0 -292
  330. package/esm2022/lib/smart-tree/smarttree.component.mjs +0 -188
  331. package/esm2022/lib/smart-tree/smarttree.model.mjs +0 -7
  332. package/esm2022/lib/smart-tree/smarttree.module.mjs +0 -64
  333. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +0 -6
  334. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +0 -2
  335. package/esm2022/lib/smart-tree/smarttree.service.mjs +0 -47
  336. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +0 -1190
  337. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +0 -91
  338. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +0 -19
  339. package/esm2022/lib/smart-tree/tree-api/param.mjs +0 -2
  340. package/esm2022/lib/smart-tree/tree-api/variables.mjs +0 -9
  341. package/esm2022/lib/smart-validation/named-validator.service.mjs +0 -115
  342. package/esm2022/lib/smart-validation/projects.mjs +0 -4
  343. package/esm2022/lib/smart-validation/smart-validation.module.mjs +0 -24
  344. package/esm2022/lib/smart-validation/smart-validation.types.mjs +0 -4
  345. package/esm2022/lib/theme/theme.service.mjs +0 -48
  346. package/esm2022/lib/view-context/api/api/api.mjs +0 -4
  347. package/esm2022/lib/view-context/api/api/view.service.mjs +0 -1113
  348. package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +0 -2
  349. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +0 -2
  350. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +0 -2
  351. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +0 -2
  352. package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +0 -2
  353. package/esm2022/lib/view-context/api/api.module.mjs +0 -40
  354. package/esm2022/lib/view-context/api/configuration.mjs +0 -91
  355. package/esm2022/lib/view-context/api/encoder.mjs +0 -19
  356. package/esm2022/lib/view-context/api/index.mjs +0 -7
  357. package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +0 -2
  358. package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +0 -13
  359. package/esm2022/lib/view-context/api/model/clipboardData.mjs +0 -13
  360. package/esm2022/lib/view-context/api/model/closeResult.mjs +0 -18
  361. package/esm2022/lib/view-context/api/model/componentConstraint.mjs +0 -2
  362. package/esm2022/lib/view-context/api/model/componentModel.mjs +0 -2
  363. package/esm2022/lib/view-context/api/model/componentModelChange.mjs +0 -13
  364. package/esm2022/lib/view-context/api/model/dataChange.mjs +0 -2
  365. package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +0 -2
  366. package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +0 -21
  367. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +0 -13
  368. package/esm2022/lib/view-context/api/model/downloadedFile.mjs +0 -13
  369. package/esm2022/lib/view-context/api/model/iconPosition.mjs +0 -20
  370. package/esm2022/lib/view-context/api/model/imageResource.mjs +0 -8
  371. package/esm2022/lib/view-context/api/model/link.mjs +0 -20
  372. package/esm2022/lib/view-context/api/model/menuDescriptor.mjs +0 -2
  373. package/esm2022/lib/view-context/api/model/menuOpenDirection.mjs +0 -23
  374. package/esm2022/lib/view-context/api/model/menuTriggerType.mjs +0 -17
  375. package/esm2022/lib/view-context/api/model/messageData.mjs +0 -2
  376. package/esm2022/lib/view-context/api/model/messageOption.mjs +0 -2
  377. package/esm2022/lib/view-context/api/model/messageOptionType.mjs +0 -18
  378. package/esm2022/lib/view-context/api/model/messageResult.mjs +0 -2
  379. package/esm2022/lib/view-context/api/model/messageTextType.mjs +0 -17
  380. package/esm2022/lib/view-context/api/model/messageType.mjs +0 -19
  381. package/esm2022/lib/view-context/api/model/models.mjs +0 -71
  382. package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +0 -13
  383. package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +0 -2
  384. package/esm2022/lib/view-context/api/model/namedValidator.mjs +0 -19
  385. package/esm2022/lib/view-context/api/model/openPendingData.mjs +0 -2
  386. package/esm2022/lib/view-context/api/model/publishedViewData.mjs +0 -13
  387. package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +0 -2
  388. package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +0 -2
  389. package/esm2022/lib/view-context/api/model/serverRequestType.mjs +0 -24
  390. package/esm2022/lib/view-context/api/model/shellProperty.mjs +0 -13
  391. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +0 -2
  392. package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +0 -8
  393. package/esm2022/lib/view-context/api/model/statisticRecord.mjs +0 -13
  394. package/esm2022/lib/view-context/api/model/style.mjs +0 -13
  395. package/esm2022/lib/view-context/api/model/themeDefinition.mjs +0 -2
  396. package/esm2022/lib/view-context/api/model/themeDescriptor.mjs +0 -2
  397. package/esm2022/lib/view-context/api/model/themeShellDescriptor.mjs +0 -2
  398. package/esm2022/lib/view-context/api/model/uiAction.mjs +0 -2
  399. package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +0 -2
  400. package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +0 -27
  401. package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +0 -13
  402. package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +0 -2
  403. package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +0 -2
  404. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +0 -2
  405. package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +0 -2
  406. package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +0 -20
  407. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +0 -21
  408. package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +0 -13
  409. package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +0 -13
  410. package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +0 -22
  411. package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +0 -2
  412. package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +0 -18
  413. package/esm2022/lib/view-context/api/model/uploadedFile.mjs +0 -2
  414. package/esm2022/lib/view-context/api/model/valueSet.mjs +0 -2
  415. package/esm2022/lib/view-context/api/model/view.mjs +0 -2
  416. package/esm2022/lib/view-context/api/model/viewApiError.mjs +0 -13
  417. package/esm2022/lib/view-context/api/model/viewConstraint.mjs +0 -2
  418. package/esm2022/lib/view-context/api/model/viewContext.mjs +0 -2
  419. package/esm2022/lib/view-context/api/model/viewContextChange.mjs +0 -2
  420. package/esm2022/lib/view-context/api/model/viewContextData.mjs +0 -2
  421. package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +0 -2
  422. package/esm2022/lib/view-context/api/model/viewData.mjs +0 -2
  423. package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +0 -8
  424. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +0 -13
  425. package/esm2022/lib/view-context/api/model/viewState.mjs +0 -22
  426. package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +0 -2
  427. package/esm2022/lib/view-context/api/model/viewType.mjs +0 -18
  428. package/esm2022/lib/view-context/api/param.mjs +0 -2
  429. package/esm2022/lib/view-context/api/variables.mjs +0 -9
  430. package/esm2022/lib/view-context/default-view-components.token.mjs +0 -9
  431. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +0 -20
  432. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +0 -93
  433. package/esm2022/lib/view-context/projects.mjs +0 -30
  434. package/esm2022/lib/view-context/property-definition-data.mjs +0 -2
  435. package/esm2022/lib/view-context/reuse-router-slot.token.mjs +0 -4
  436. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +0 -57
  437. package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +0 -254
  438. package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +0 -256
  439. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +0 -62
  440. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +0 -29
  441. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +0 -30
  442. package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +0 -35
  443. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +0 -198
  444. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +0 -95
  445. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +0 -134
  446. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +0 -12
  447. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +0 -256
  448. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +0 -77
  449. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +0 -54
  450. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +0 -60
  451. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +0 -106
  452. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +0 -60
  453. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +0 -132
  454. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +0 -58
  455. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +0 -35
  456. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/button-icon-placeholder.mjs +0 -7
  457. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +0 -258
  458. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +0 -348
  459. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +0 -185
  460. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +0 -7
  461. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +0 -250
  462. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +0 -77
  463. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +0 -35
  464. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +0 -74
  465. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +0 -63
  466. package/esm2022/lib/view-context/smart-view-context.model.mjs +0 -2
  467. package/esm2022/lib/view-context/smart-view-context.module.mjs +0 -405
  468. package/esm2022/lib/view-context/smart-view-context.service.mjs +0 -1079
  469. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +0 -41
  470. package/esm2022/lib/view-context/utility/componentLibrary.mjs +0 -9
  471. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +0 -44
  472. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +0 -68
  473. package/esm2022/lib/view-context/value-api/api/api.mjs +0 -4
  474. package/esm2022/lib/view-context/value-api/api/value.service.mjs +0 -138
  475. package/esm2022/lib/view-context/value-api/api.module.mjs +0 -40
  476. package/esm2022/lib/view-context/value-api/configuration.mjs +0 -91
  477. package/esm2022/lib/view-context/value-api/encoder.mjs +0 -19
  478. package/esm2022/lib/view-context/value-api/index.mjs +0 -7
  479. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +0 -13
  480. package/esm2022/lib/view-context/value-api/model/models.mjs +0 -11
  481. package/esm2022/lib/view-context/value-api/model/value.mjs +0 -13
  482. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +0 -2
  483. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +0 -2
  484. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +0 -2
  485. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +0 -13
  486. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +0 -24
  487. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +0 -2
  488. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +0 -2
  489. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +0 -19
  490. package/esm2022/lib/view-context/value-api/param.mjs +0 -2
  491. package/esm2022/lib/view-context/value-api/variables.mjs +0 -9
  492. package/esm2022/lib/view-context/view-handler-resolution.mjs +0 -21
  493. package/esm2022/lib/view-context/view-op.mjs +0 -41
  494. package/esm2022/lib/view-context/view-slot-resolution.mjs +0 -28
  495. package/esm2022/projects.mjs +0 -31
  496. package/esm2022/smartbit4all-ng-client.mjs +0 -5
  497. package/index.d.ts +0 -5
  498. package/lib/component-factory-service/component-factory-service.module.d.ts +0 -6
  499. package/lib/component-factory-service/component-factory-service.service.d.ts +0 -13
  500. package/lib/component-factory-service/projects.d.ts +0 -2
  501. package/lib/session/api/api/api.d.ts +0 -3
  502. package/lib/session/api/api/session.service.d.ts +0 -107
  503. package/lib/session/api/configuration.d.ts +0 -104
  504. package/lib/session/api/encoder.d.ts +0 -11
  505. package/lib/session/api/index.d.ts +0 -2
  506. package/lib/session/api/model/accountInfo.d.ts +0 -24
  507. package/lib/session/api/model/apiError.d.ts +0 -15
  508. package/lib/session/api/model/authenticationProviderData.d.ts +0 -17
  509. package/lib/session/api/model/getAuthenticationProvidersResponse.d.ts +0 -15
  510. package/lib/session/api/model/models.d.ts +0 -8
  511. package/lib/session/api/model/refreshSessionRequest.d.ts +0 -14
  512. package/lib/session/api/model/session.d.ts +0 -32
  513. package/lib/session/api/model/sessionInfoData.d.ts +0 -26
  514. package/lib/session/api/model/userActivityLog.d.ts +0 -33
  515. package/lib/session/api/param.d.ts +0 -37
  516. package/lib/session/api/variables.d.ts +0 -8
  517. package/lib/session/cookie-service/smart-cookie.service.d.ts +0 -129
  518. package/lib/session/projects.d.ts +0 -8
  519. package/lib/session/smart-backend-bootstrap.config.d.ts +0 -73
  520. package/lib/session/smart-backend-bootstrap.service.d.ts +0 -57
  521. package/lib/session/smart-default-error-ui.service.d.ts +0 -90
  522. package/lib/session/smart-error-catching.interceptor.d.ts +0 -21
  523. package/lib/session/smart-header-maintainer.interceptor.d.ts +0 -11
  524. package/lib/session/smart-session-handler.service.d.ts +0 -22
  525. package/lib/session/smart-session.module.d.ts +0 -12
  526. package/lib/session/smart-session.service.d.ts +0 -88
  527. package/lib/session/smart-timer/smart-session-timer.component.d.ts +0 -19
  528. package/lib/shared/projects.d.ts +0 -3
  529. package/lib/shared/shared.module.d.ts +0 -9
  530. package/lib/shared/smart-tooltip.directive.d.ts +0 -16
  531. package/lib/shared/smarttable.date-pipe.d.ts +0 -18
  532. package/lib/smart-client/projects.d.ts +0 -3
  533. package/lib/smart-client/smart-component-api-client.d.ts +0 -143
  534. package/lib/smart-client/smart-file-uploader/smart-file-uploader.component.d.ts +0 -25
  535. package/lib/smart-client/smart.component.d.ts +0 -35
  536. package/lib/smart-client/smart.service.d.ts +0 -29
  537. package/lib/smart-component-layout/api/api/api.d.ts +0 -3
  538. package/lib/smart-component-layout/api/api/default.service.d.ts +0 -33
  539. package/lib/smart-component-layout/api/api.module.d.ts +0 -11
  540. package/lib/smart-component-layout/api/configuration.d.ts +0 -104
  541. package/lib/smart-component-layout/api/encoder.d.ts +0 -11
  542. package/lib/smart-component-layout/api/index.d.ts +0 -6
  543. package/lib/smart-component-layout/api/model/componentType.d.ts +0 -16
  544. package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +0 -20
  545. package/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.d.ts +0 -19
  546. package/lib/smart-component-layout/api/model/layoutDirection.d.ts +0 -15
  547. package/lib/smart-component-layout/api/model/models.d.ts +0 -9
  548. package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +0 -32
  549. package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +0 -26
  550. package/lib/smart-component-layout/api/model/toolbarAlignment.d.ts +0 -15
  551. package/lib/smart-component-layout/api/model/toolbarDirection.d.ts +0 -15
  552. package/lib/smart-component-layout/api/model/toolbarProperties.d.ts +0 -18
  553. package/lib/smart-component-layout/api/param.d.ts +0 -37
  554. package/lib/smart-component-layout/api/variables.d.ts +0 -8
  555. package/lib/smart-component-layout/projects.d.ts +0 -4
  556. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +0 -25
  557. package/lib/smart-component-layout/smart-component-layout.component.d.ts +0 -93
  558. package/lib/smart-component-layout/smart-component-layout.module.d.ts +0 -17
  559. package/lib/smart-diagram/api/api/api.d.ts +0 -3
  560. package/lib/smart-diagram/api/api/diagramService.service.d.ts +0 -36
  561. package/lib/smart-diagram/api/api.module.d.ts +0 -11
  562. package/lib/smart-diagram/api/configuration.d.ts +0 -104
  563. package/lib/smart-diagram/api/encoder.d.ts +0 -11
  564. package/lib/smart-diagram/api/index.d.ts +0 -6
  565. package/lib/smart-diagram/api/model/diagramColor.d.ts +0 -17
  566. package/lib/smart-diagram/api/model/diagramDataContainer.d.ts +0 -19
  567. package/lib/smart-diagram/api/model/diagramDataItem.d.ts +0 -25
  568. package/lib/smart-diagram/api/model/diagramDataSet.d.ts +0 -22
  569. package/lib/smart-diagram/api/model/diagramDescriptor.d.ts +0 -57
  570. package/lib/smart-diagram/api/model/diagramModel.d.ts +0 -19
  571. package/lib/smart-diagram/api/model/diagramShape.d.ts +0 -30
  572. package/lib/smart-diagram/api/model/drawTime.d.ts +0 -18
  573. package/lib/smart-diagram/api/model/labelText.d.ts +0 -21
  574. package/lib/smart-diagram/api/model/models.d.ts +0 -9
  575. package/lib/smart-diagram/api/param.d.ts +0 -37
  576. package/lib/smart-diagram/api/variables.d.ts +0 -8
  577. package/lib/smart-diagram/component/default-smart-diagram-options.provider.d.ts +0 -33
  578. package/lib/smart-diagram/component/smart-diagram.component.d.ts +0 -43
  579. package/lib/smart-diagram/component/smart-diagram.module.d.ts +0 -11
  580. package/lib/smart-diagram/component/smart-diagram.util.d.ts +0 -1
  581. package/lib/smart-diagram/projects.d.ts +0 -4
  582. package/lib/smart-dialog/projects.d.ts +0 -4
  583. package/lib/smart-dialog/smartdialog.component.d.ts +0 -19
  584. package/lib/smart-dialog/smartdialog.model.d.ts +0 -68
  585. package/lib/smart-dialog/smartdialog.module.d.ts +0 -14
  586. package/lib/smart-dialog/smartdialog.service.d.ts +0 -28
  587. package/lib/smart-expandable-section/expandable-section.component.d.ts +0 -30
  588. package/lib/smart-expandable-section/expandable-section.model.d.ts +0 -43
  589. package/lib/smart-expandable-section/projects.d.ts +0 -4
  590. package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +0 -17
  591. package/lib/smart-expandable-section/smart-expandable-section.service.d.ts +0 -6
  592. package/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.d.ts +0 -15
  593. package/lib/smart-filter/api/filter/model/filterExpressionBuilderField.d.ts +0 -27
  594. package/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.d.ts +0 -36
  595. package/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.d.ts +0 -27
  596. package/lib/smart-filter/api/filter/model/filterExpressionData.d.ts +0 -27
  597. package/lib/smart-filter/api/filter/model/filterExpressionDataType.d.ts +0 -18
  598. package/lib/smart-filter/api/filter/model/filterExpressionField.d.ts +0 -44
  599. package/lib/smart-filter/api/filter/model/filterExpressionFieldList.d.ts +0 -21
  600. package/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.d.ts +0 -26
  601. package/lib/smart-filter/api/filter/model/filterExpressionList.d.ts +0 -18
  602. package/lib/smart-filter/api/filter/model/filterExpressionOperandData.d.ts +0 -25
  603. package/lib/smart-filter/api/filter/model/filterExpressionOperation.d.ts +0 -30
  604. package/lib/smart-filter/api/filter/model/filterExpressionOrderBy.d.ts +0 -25
  605. package/lib/smart-filter/api/filter/model/model.d.ts +0 -15
  606. package/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.d.ts +0 -19
  607. package/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.d.ts +0 -18
  608. package/lib/smart-filter/api/value/model/value.d.ts +0 -29
  609. package/lib/smart-filter/projects.d.ts +0 -5
  610. package/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.d.ts +0 -8
  611. package/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.d.ts +0 -31
  612. package/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.d.ts +0 -18
  613. package/lib/smart-filter/smart-filter/smart-filter.component.d.ts +0 -15
  614. package/lib/smart-filter/smart-filter/smart-filter.service.d.ts +0 -16
  615. package/lib/smart-filter/smart-filter.model.d.ts +0 -25
  616. package/lib/smart-filter/smart-filter.module.d.ts +0 -15
  617. package/lib/smart-filter-editor/api/api/filter.service.d.ts +0 -57
  618. package/lib/smart-filter-editor/api/configuration.d.ts +0 -104
  619. package/lib/smart-filter-editor/api/encoder.d.ts +0 -11
  620. package/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.d.ts +0 -15
  621. package/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.d.ts +0 -16
  622. package/lib/smart-filter-editor/api/model/filterExpressionBuilderField.d.ts +0 -27
  623. package/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.d.ts +0 -36
  624. package/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.d.ts +0 -27
  625. package/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.d.ts +0 -38
  626. package/lib/smart-filter-editor/api/model/filterExpressionData.d.ts +0 -27
  627. package/lib/smart-filter-editor/api/model/filterExpressionDataType.d.ts +0 -18
  628. package/lib/smart-filter-editor/api/model/filterExpressionField.d.ts +0 -44
  629. package/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.d.ts +0 -17
  630. package/lib/smart-filter-editor/api/model/filterExpressionFieldList.d.ts +0 -21
  631. package/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.d.ts +0 -26
  632. package/lib/smart-filter-editor/api/model/filterExpressionList.d.ts +0 -18
  633. package/lib/smart-filter-editor/api/model/filterExpressionOperandData.d.ts +0 -25
  634. package/lib/smart-filter-editor/api/model/filterExpressionOperation.d.ts +0 -30
  635. package/lib/smart-filter-editor/api/model/filterExpressionOrderBy.d.ts +0 -28
  636. package/lib/smart-filter-editor/api/model/smartFilterType.d.ts +0 -15
  637. package/lib/smart-filter-editor/api/param.d.ts +0 -37
  638. package/lib/smart-filter-editor/api/variables.d.ts +0 -8
  639. package/lib/smart-filter-editor/filterExpressionBuilderApiActions.d.ts +0 -13
  640. package/lib/smart-filter-editor/project.d.ts +0 -7
  641. package/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.d.ts +0 -19
  642. package/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.d.ts +0 -17
  643. package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +0 -44
  644. package/lib/smart-filter-editor/smart-filter-editor.model.d.ts +0 -4
  645. package/lib/smart-filter-editor/smart-filter-editor.module.d.ts +0 -18
  646. package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +0 -45
  647. package/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.d.ts +0 -9
  648. package/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.d.ts +0 -21
  649. package/lib/smart-form/api/api/api.d.ts +0 -3
  650. package/lib/smart-form/api/api/default.service.d.ts +0 -33
  651. package/lib/smart-form/api/api.module.d.ts +0 -11
  652. package/lib/smart-form/api/configuration.d.ts +0 -104
  653. package/lib/smart-form/api/encoder.d.ts +0 -11
  654. package/lib/smart-form/api/index.d.ts +0 -6
  655. package/lib/smart-form/api/model/dateFieldProperties.d.ts +0 -15
  656. package/lib/smart-form/api/model/divProperties.d.ts +0 -15
  657. package/lib/smart-form/api/model/fileUploaderProperties.d.ts +0 -20
  658. package/lib/smart-form/api/model/imageProperties.d.ts +0 -15
  659. package/lib/smart-form/api/model/models.d.ts +0 -19
  660. package/lib/smart-form/api/model/multiFileUploaderProperties.d.ts +0 -19
  661. package/lib/smart-form/api/model/propertyMapping.d.ts +0 -24
  662. package/lib/smart-form/api/model/recordingUploaderProperties.d.ts +0 -20
  663. package/lib/smart-form/api/model/selectionDefinition.d.ts +0 -58
  664. package/lib/smart-form/api/model/smartFormInputMode.d.ts +0 -20
  665. package/lib/smart-form/api/model/smartFormWidgetDirection.d.ts +0 -15
  666. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +0 -47
  667. package/lib/smart-form/api/model/smartLayoutDefinition.d.ts +0 -15
  668. package/lib/smart-form/api/model/smartMatrixModel.d.ts +0 -29
  669. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +0 -125
  670. package/lib/smart-form/api/model/smartWidgetHint.d.ts +0 -19
  671. package/lib/smart-form/api/model/sortDefinition.d.ts +0 -15
  672. package/lib/smart-form/api/model/textBoxProperties.d.ts +0 -15
  673. package/lib/smart-form/api/model/textFieldProperties.d.ts +0 -14
  674. package/lib/smart-form/api/model/valueChangeMode.d.ts +0 -19
  675. package/lib/smart-form/api/param.d.ts +0 -37
  676. package/lib/smart-form/api/variables.d.ts +0 -8
  677. package/lib/smart-form/highlightMacthingString-pipe.d.ts +0 -7
  678. package/lib/smart-form/projects.d.ts +0 -14
  679. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +0 -50
  680. package/lib/smart-form/services/smartform.service.d.ts +0 -52
  681. package/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.d.ts +0 -8
  682. package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +0 -38
  683. package/lib/smart-form/smartfileuploader/smartfileuploader.model.d.ts +0 -7
  684. package/lib/smart-form/smartform.component.d.ts +0 -43
  685. package/lib/smart-form/smartform.form-model.d.ts +0 -864
  686. package/lib/smart-form/smartform.model.d.ts +0 -126
  687. package/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.d.ts +0 -54
  688. package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts +0 -29
  689. package/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.d.ts +0 -57
  690. package/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.d.ts +0 -50
  691. package/lib/smart-form/widgets/directives/comparable-dropdown.directive.d.ts +0 -10
  692. package/lib/smart-form/widgets/directives/comparable-multiselect.directive.d.ts +0 -10
  693. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +0 -173
  694. package/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.d.ts +0 -24
  695. package/lib/smart-form/widgets/smartformwidget/trackCaps.directive.d.ts +0 -9
  696. package/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.d.ts +0 -21
  697. package/lib/smart-generic-pages/api/platform/acl/model/aCL.d.ts +0 -18
  698. package/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.d.ts +0 -54
  699. package/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.d.ts +0 -19
  700. package/lib/smart-generic-pages/api/platform/acl/model/subject.d.ts +0 -24
  701. package/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.d.ts +0 -2
  702. package/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.d.ts +0 -27
  703. package/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.d.ts +0 -14
  704. package/lib/smart-generic-pages/api/platform/validation/model/validationItem.d.ts +0 -17
  705. package/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.d.ts +0 -18
  706. package/lib/smart-generic-pages/generic-page/generic-page.component.d.ts +0 -12
  707. package/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.d.ts +0 -11
  708. package/lib/smart-generic-pages/no-permission-page/no-permission-page.component.d.ts +0 -11
  709. package/lib/smart-generic-pages/projects.d.ts +0 -9
  710. package/lib/smart-generic-pages/search-page/search-page.component.d.ts +0 -25
  711. package/lib/smart-generic-pages/smart-generic-pages.module.d.ts +0 -19
  712. package/lib/smart-generic-pages/subject-selector/subject-selector.component.d.ts +0 -17
  713. package/lib/smart-generic-pages/validation-result-page/validation-result-page.component.d.ts +0 -25
  714. package/lib/smart-grid/api/grid-api/api/api.d.ts +0 -3
  715. package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +0 -182
  716. package/lib/smart-grid/api/grid-api/api.module.d.ts +0 -11
  717. package/lib/smart-grid/api/grid-api/configuration.d.ts +0 -104
  718. package/lib/smart-grid/api/grid-api/encoder.d.ts +0 -11
  719. package/lib/smart-grid/api/grid-api/index.d.ts +0 -6
  720. package/lib/smart-grid/api/grid-api/model/gridColumnContentType.d.ts +0 -15
  721. package/lib/smart-grid/api/grid-api/model/gridColumnMeta.d.ts +0 -34
  722. package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +0 -44
  723. package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +0 -19
  724. package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +0 -36
  725. package/lib/smart-grid/api/grid-api/model/gridPage.d.ts +0 -26
  726. package/lib/smart-grid/api/grid-api/model/gridRow.d.ts +0 -47
  727. package/lib/smart-grid/api/grid-api/model/gridRowLayoutDescriptor.d.ts +0 -20
  728. package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +0 -24
  729. package/lib/smart-grid/api/grid-api/model/gridSelectionMode.d.ts +0 -16
  730. package/lib/smart-grid/api/grid-api/model/gridSelectionType.d.ts +0 -15
  731. package/lib/smart-grid/api/grid-api/model/gridServerModel.d.ts +0 -22
  732. package/lib/smart-grid/api/grid-api/model/gridUpdateData.d.ts +0 -20
  733. package/lib/smart-grid/api/grid-api/model/gridView.d.ts +0 -21
  734. package/lib/smart-grid/api/grid-api/model/gridViewDescriptor.d.ts +0 -39
  735. package/lib/smart-grid/api/grid-api/model/models.d.ts +0 -15
  736. package/lib/smart-grid/api/grid-api/param.d.ts +0 -37
  737. package/lib/smart-grid/api/grid-api/variables.d.ts +0 -8
  738. package/lib/smart-grid/components/expandable-grid/expandable-grid.component.d.ts +0 -10
  739. package/lib/smart-grid/components/generic-component/expanded-row-renderer.component.d.ts +0 -21
  740. package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +0 -26
  741. package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +0 -47
  742. package/lib/smart-grid/models/model.d.ts +0 -73
  743. package/lib/smart-grid/projects.d.ts +0 -5
  744. package/lib/smart-grid/smart-grid-toolbar-util.d.ts +0 -12
  745. package/lib/smart-grid/smart-grid.component.d.ts +0 -157
  746. package/lib/smart-grid/smart-grid.module.d.ts +0 -29
  747. package/lib/smart-grid/smart-grid.service.d.ts +0 -26
  748. package/lib/smart-icon/projects.d.ts +0 -5
  749. package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +0 -34
  750. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.d.ts +0 -10
  751. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.d.ts +0 -14
  752. package/lib/smart-icon/smart-icon.module.d.ts +0 -14
  753. package/lib/smart-icon/smart-icon.service.d.ts +0 -29
  754. package/lib/smart-map/abstract-map.d.ts +0 -37
  755. package/lib/smart-map/api/api/api.d.ts +0 -3
  756. package/lib/smart-map/api/api/geoMap.service.d.ts +0 -101
  757. package/lib/smart-map/api/api.module.d.ts +0 -11
  758. package/lib/smart-map/api/configuration.d.ts +0 -104
  759. package/lib/smart-map/api/encoder.d.ts +0 -11
  760. package/lib/smart-map/api/index.d.ts +0 -6
  761. package/lib/smart-map/api/model/gPSPosition.d.ts +0 -32
  762. package/lib/smart-map/api/model/gPSRoute.d.ts +0 -21
  763. package/lib/smart-map/api/model/geoMapChange.d.ts +0 -21
  764. package/lib/smart-map/api/model/geoMapDataLoadingMode.d.ts +0 -15
  765. package/lib/smart-map/api/model/geoMapDataSourceDescriptor.d.ts +0 -52
  766. package/lib/smart-map/api/model/geoMapDataSourceType.d.ts +0 -17
  767. package/lib/smart-map/api/model/geoMapEditingSession.d.ts +0 -17
  768. package/lib/smart-map/api/model/geoMapInteraction.d.ts +0 -24
  769. package/lib/smart-map/api/model/geoMapItem.d.ts +0 -41
  770. package/lib/smart-map/api/model/geoMapItemKind.d.ts +0 -16
  771. package/lib/smart-map/api/model/geoMapLayer.d.ts +0 -19
  772. package/lib/smart-map/api/model/geoMapLayerChange.d.ts +0 -20
  773. package/lib/smart-map/api/model/geoMapLayerDescriptor.d.ts +0 -28
  774. package/lib/smart-map/api/model/geoMapModel.d.ts +0 -26
  775. package/lib/smart-map/api/model/geoMapOperationMode.d.ts +0 -15
  776. package/lib/smart-map/api/model/geoMapSelectionMode.d.ts +0 -16
  777. package/lib/smart-map/api/model/geoMapServerModel.d.ts +0 -25
  778. package/lib/smart-map/api/model/geoMapTextType.d.ts +0 -15
  779. package/lib/smart-map/api/model/geoMapViewState.d.ts +0 -27
  780. package/lib/smart-map/api/model/geoMapViewport.d.ts +0 -20
  781. package/lib/smart-map/api/model/models.d.ts +0 -20
  782. package/lib/smart-map/api/param.d.ts +0 -37
  783. package/lib/smart-map/api/variables.d.ts +0 -8
  784. package/lib/smart-map/api-default/api-default.d.ts +0 -2
  785. package/lib/smart-map/impl/google-map.d.ts +0 -23
  786. package/lib/smart-map/impl/leaflet-map.d.ts +0 -22
  787. package/lib/smart-map/projects.d.ts +0 -8
  788. package/lib/smart-map/smart-map.component.d.ts +0 -39
  789. package/lib/smart-map/smart-map.module.d.ts +0 -11
  790. package/lib/smart-map/smart-map.types.d.ts +0 -34
  791. package/lib/smart-navbar/projects.d.ts +0 -4
  792. package/lib/smart-navbar/smart-navbar.component.d.ts +0 -20
  793. package/lib/smart-navbar/smart-navbar.model.d.ts +0 -48
  794. package/lib/smart-navbar/smart-navbar.module.d.ts +0 -18
  795. package/lib/smart-navbar/smart-navbar.service.d.ts +0 -6
  796. package/lib/smart-navigation/projects.d.ts +0 -2
  797. package/lib/smart-navigation/smart-navigation.interface.d.ts +0 -5
  798. package/lib/smart-navigation/smart-navigation.module.d.ts +0 -6
  799. package/lib/smart-navigation/smart-navigation.service.d.ts +0 -12
  800. package/lib/smart-ng-client.module.d.ts +0 -25
  801. package/lib/smart-ng-client.service.d.ts +0 -10
  802. package/lib/smart-subject/projects.d.ts +0 -1
  803. package/lib/smart-subject/smart-subject.d.ts +0 -6
  804. package/lib/smart-tab-group/projects.d.ts +0 -1
  805. package/lib/smart-tab-group/smart-tab-group.module.d.ts +0 -10
  806. package/lib/smart-table/components/default-actions-popup/default-actions-popup.component.d.ts +0 -19
  807. package/lib/smart-table/components/loading/loading.component.d.ts +0 -8
  808. package/lib/smart-table/directives/mat-context-menu-trigger-for.directive.d.ts +0 -10
  809. package/lib/smart-table/projects.d.ts +0 -4
  810. package/lib/smart-table/smarttable.component.d.ts +0 -34
  811. package/lib/smart-table/smarttable.model.d.ts +0 -202
  812. package/lib/smart-table/smarttable.module.d.ts +0 -29
  813. package/lib/smart-table/smarttable.service.d.ts +0 -6
  814. package/lib/smart-table/tables/material-table/material-table.component.d.ts +0 -8
  815. package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +0 -8
  816. package/lib/smart-table/tables/table.d.ts +0 -98
  817. package/lib/smart-tree/projects.d.ts +0 -5
  818. package/lib/smart-tree/smarttree-generic.service.d.ts +0 -48
  819. package/lib/smart-tree/smarttree.component.d.ts +0 -43
  820. package/lib/smart-tree/smarttree.model.d.ts +0 -42
  821. package/lib/smart-tree/smarttree.module.d.ts +0 -16
  822. package/lib/smart-tree/smarttree.node.model.d.ts +0 -13
  823. package/lib/smart-tree/smarttree.service.d.ts +0 -25
  824. package/lib/smart-tree/smarttree.service.interface.d.ts +0 -43
  825. package/lib/smart-tree/tree-api/api/tree.service.d.ts +0 -336
  826. package/lib/smart-tree/tree-api/configuration.d.ts +0 -104
  827. package/lib/smart-tree/tree-api/encoder.d.ts +0 -11
  828. package/lib/smart-tree/tree-api/param.d.ts +0 -37
  829. package/lib/smart-tree/tree-api/variables.d.ts +0 -8
  830. package/lib/smart-validation/named-validator.service.d.ts +0 -17
  831. package/lib/smart-validation/projects.d.ts +0 -3
  832. package/lib/smart-validation/smart-validation.module.d.ts +0 -8
  833. package/lib/smart-validation/smart-validation.types.d.ts +0 -12
  834. package/lib/theme/theme.service.d.ts +0 -17
  835. package/lib/view-context/api/api/api.d.ts +0 -3
  836. package/lib/view-context/api/api/view.service.d.ts +0 -426
  837. package/lib/view-context/api/api-default/binaryContentData.d.ts +0 -2
  838. package/lib/view-context/api/api-default/binaryData.d.ts +0 -2
  839. package/lib/view-context/api/api-default/invocationError.d.ts +0 -2
  840. package/lib/view-context/api/api-default/invocationRequest.d.ts +0 -2
  841. package/lib/view-context/api/api-default/invocationRun.d.ts +0 -2
  842. package/lib/view-context/api/api.module.d.ts +0 -11
  843. package/lib/view-context/api/configuration.d.ts +0 -104
  844. package/lib/view-context/api/encoder.d.ts +0 -11
  845. package/lib/view-context/api/index.d.ts +0 -6
  846. package/lib/view-context/api/model/backgroundProcessInfo.d.ts +0 -25
  847. package/lib/view-context/api/model/badgeDescriptor.d.ts +0 -15
  848. package/lib/view-context/api/model/clipboardData.d.ts +0 -20
  849. package/lib/view-context/api/model/closeResult.d.ts +0 -16
  850. package/lib/view-context/api/model/componentConstraint.d.ts +0 -31
  851. package/lib/view-context/api/model/componentModel.d.ts +0 -47
  852. package/lib/view-context/api/model/componentModelChange.d.ts +0 -29
  853. package/lib/view-context/api/model/dataChange.d.ts +0 -25
  854. package/lib/view-context/api/model/dataChangeEvent.d.ts +0 -31
  855. package/lib/view-context/api/model/dataChangeKind.d.ts +0 -19
  856. package/lib/view-context/api/model/deviceInfo.d.ts +0 -43
  857. package/lib/view-context/api/model/downloadedFile.d.ts +0 -19
  858. package/lib/view-context/api/model/iconPosition.d.ts +0 -18
  859. package/lib/view-context/api/model/imageResource.d.ts +0 -28
  860. package/lib/view-context/api/model/link.d.ts +0 -35
  861. package/lib/view-context/api/model/menuDescriptor.d.ts +0 -17
  862. package/lib/view-context/api/model/menuOpenDirection.d.ts +0 -21
  863. package/lib/view-context/api/model/menuTriggerType.d.ts +0 -15
  864. package/lib/view-context/api/model/messageData.d.ts +0 -29
  865. package/lib/view-context/api/model/messageOption.d.ts +0 -20
  866. package/lib/view-context/api/model/messageOptionType.d.ts +0 -16
  867. package/lib/view-context/api/model/messageResult.d.ts +0 -16
  868. package/lib/view-context/api/model/messageTextType.d.ts +0 -15
  869. package/lib/view-context/api/model/messageType.d.ts +0 -17
  870. package/lib/view-context/api/model/models.d.ts +0 -70
  871. package/lib/view-context/api/model/multiComboBoxElement.d.ts +0 -16
  872. package/lib/view-context/api/model/multiComboBoxModel.d.ts +0 -16
  873. package/lib/view-context/api/model/namedValidator.d.ts +0 -27
  874. package/lib/view-context/api/model/openPendingData.d.ts +0 -29
  875. package/lib/view-context/api/model/publishedViewData.d.ts +0 -14
  876. package/lib/view-context/api/model/serverRequestExecutionStat.d.ts +0 -40
  877. package/lib/view-context/api/model/serverRequestTrack.d.ts +0 -60
  878. package/lib/view-context/api/model/serverRequestType.d.ts +0 -22
  879. package/lib/view-context/api/model/shellProperty.d.ts +0 -15
  880. package/lib/view-context/api/model/smartLinkData.d.ts +0 -29
  881. package/lib/view-context/api/model/smartLinkMigrationStatus.d.ts +0 -39
  882. package/lib/view-context/api/model/statisticRecord.d.ts +0 -36
  883. package/lib/view-context/api/model/style.d.ts +0 -21
  884. package/lib/view-context/api/model/themeDefinition.d.ts +0 -22
  885. package/lib/view-context/api/model/themeDescriptor.d.ts +0 -16
  886. package/lib/view-context/api/model/themeShellDescriptor.d.ts +0 -17
  887. package/lib/view-context/api/model/uiAction.d.ts +0 -68
  888. package/lib/view-context/api/model/uiActionButtonDescriptor.d.ts +0 -25
  889. package/lib/view-context/api/model/uiActionButtonType.d.ts +0 -25
  890. package/lib/view-context/api/model/uiActionConstraint.d.ts +0 -22
  891. package/lib/view-context/api/model/uiActionDefinition.d.ts +0 -19
  892. package/lib/view-context/api/model/uiActionDefinitionEntry.d.ts +0 -18
  893. package/lib/view-context/api/model/uiActionDescriptor.d.ts +0 -44
  894. package/lib/view-context/api/model/uiActionDialogDescriptor.d.ts +0 -23
  895. package/lib/view-context/api/model/uiActionFeedbackType.d.ts +0 -18
  896. package/lib/view-context/api/model/uiActionInputType.d.ts +0 -19
  897. package/lib/view-context/api/model/uiActionRequest.d.ts +0 -31
  898. package/lib/view-context/api/model/uiActionSchedule.d.ts +0 -14
  899. package/lib/view-context/api/model/uiActionTooltip.d.ts +0 -25
  900. package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +0 -27
  901. package/lib/view-context/api/model/uploadWidgetType.d.ts +0 -16
  902. package/lib/view-context/api/model/uploadedFile.d.ts +0 -20
  903. package/lib/view-context/api/model/valueSet.d.ts +0 -20
  904. package/lib/view-context/api/model/view.d.ts +0 -88
  905. package/lib/view-context/api/model/viewApiError.d.ts +0 -18
  906. package/lib/view-context/api/model/viewConstraint.d.ts +0 -18
  907. package/lib/view-context/api/model/viewContext.d.ts +0 -33
  908. package/lib/view-context/api/model/viewContextChange.d.ts +0 -24
  909. package/lib/view-context/api/model/viewContextData.d.ts +0 -25
  910. package/lib/view-context/api/model/viewContextUpdate.d.ts +0 -24
  911. package/lib/view-context/api/model/viewData.d.ts +0 -28
  912. package/lib/view-context/api/model/viewEventHandler.d.ts +0 -36
  913. package/lib/view-context/api/model/viewPlaceholder.d.ts +0 -22
  914. package/lib/view-context/api/model/viewState.d.ts +0 -20
  915. package/lib/view-context/api/model/viewStateUpdate.d.ts +0 -22
  916. package/lib/view-context/api/model/viewType.d.ts +0 -16
  917. package/lib/view-context/api/param.d.ts +0 -37
  918. package/lib/view-context/api/variables.d.ts +0 -8
  919. package/lib/view-context/default-view-components.token.d.ts +0 -18
  920. package/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.d.ts +0 -9
  921. package/lib/view-context/message-dialog/message-dialog.component.d.ts +0 -27
  922. package/lib/view-context/projects.d.ts +0 -26
  923. package/lib/view-context/property-definition-data.d.ts +0 -5
  924. package/lib/view-context/reuse-router-slot.token.d.ts +0 -3
  925. package/lib/view-context/smart-embedded-slot.directive.d.ts +0 -20
  926. package/lib/view-context/smart-ui-action/components/menu/click/menu.component.d.ts +0 -49
  927. package/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.d.ts +0 -50
  928. package/lib/view-context/smart-ui-action/components/menu/menu.constants.d.ts +0 -7
  929. package/lib/view-context/smart-ui-action/components/menu/menu.service.d.ts +0 -11
  930. package/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.d.ts +0 -13
  931. package/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.d.ts +0 -16
  932. package/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.d.ts +0 -30
  933. package/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.d.ts +0 -32
  934. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.d.ts +0 -40
  935. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.d.ts +0 -3
  936. package/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.d.ts +0 -43
  937. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +0 -29
  938. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +0 -21
  939. package/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.d.ts +0 -15
  940. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +0 -36
  941. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +0 -26
  942. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +0 -31
  943. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +0 -28
  944. package/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.d.ts +0 -13
  945. package/lib/view-context/smart-ui-action/ui-action-button/button-icon-placeholder.d.ts +0 -5
  946. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +0 -55
  947. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +0 -73
  948. package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +0 -23
  949. package/lib/view-context/smart-ui-action/ui-action.model.d.ts +0 -43
  950. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +0 -42
  951. package/lib/view-context/smart-view-context-dialog.service.d.ts +0 -21
  952. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +0 -15
  953. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +0 -21
  954. package/lib/view-context/smart-view-context.interceptor.d.ts +0 -17
  955. package/lib/view-context/smart-view-context.model.d.ts +0 -37
  956. package/lib/view-context/smart-view-context.module.d.ts +0 -86
  957. package/lib/view-context/smart-view-context.service.d.ts +0 -172
  958. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +0 -16
  959. package/lib/view-context/utility/componentLibrary.d.ts +0 -6
  960. package/lib/view-context/utility/smart-object-utility.d.ts +0 -5
  961. package/lib/view-context/utility/smart-style-utility.d.ts +0 -12
  962. package/lib/view-context/value-api/api/api.d.ts +0 -3
  963. package/lib/view-context/value-api/api/value.service.d.ts +0 -35
  964. package/lib/view-context/value-api/api.module.d.ts +0 -11
  965. package/lib/view-context/value-api/configuration.d.ts +0 -104
  966. package/lib/view-context/value-api/encoder.d.ts +0 -11
  967. package/lib/view-context/value-api/index.d.ts +0 -6
  968. package/lib/view-context/value-api/model/genericValue.d.ts +0 -33
  969. package/lib/view-context/value-api/model/models.d.ts +0 -10
  970. package/lib/view-context/value-api/model/value.d.ts +0 -29
  971. package/lib/view-context/value-api/model/valueSetData.d.ts +0 -41
  972. package/lib/view-context/value-api/model/valueSetDefinition.d.ts +0 -16
  973. package/lib/view-context/value-api/model/valueSetDefinitionData.d.ts +0 -53
  974. package/lib/view-context/value-api/model/valueSetDefinitionIdentifier.d.ts +0 -21
  975. package/lib/view-context/value-api/model/valueSetDefinitionKind.d.ts +0 -22
  976. package/lib/view-context/value-api/model/valueSetExpression.d.ts +0 -18
  977. package/lib/view-context/value-api/model/valueSetOperand.d.ts +0 -25
  978. package/lib/view-context/value-api/model/valueSetOperation.d.ts +0 -17
  979. package/lib/view-context/value-api/param.d.ts +0 -37
  980. package/lib/view-context/value-api/variables.d.ts +0 -8
  981. package/lib/view-context/view-handler-resolution.d.ts +0 -11
  982. package/lib/view-context/view-op.d.ts +0 -18
  983. package/lib/view-context/view-slot-resolution.d.ts +0 -27
  984. package/projects.d.ts +0 -27
  985. package/smartbit4all-ng-client-6.0.32.tgz +0 -0
@@ -0,0 +1,1641 @@
1
+ # @smartbit4all/ng-client 6.x → 7.0 migration guide
2
+
3
+ > 7.0.0 targets **Angular 22.0.8 / TypeScript 6.0.3 / Material 22.0.6**, with PrimeNG fully
4
+ > removed (Material/CDK only), every library component `OnPush`, and **no zone.js** — the
5
+ > configuration 7.0 is tested in. Angular's `moment` date adapter is replaced by `date-fns`.
6
+ > It is a major because a host has to act; nothing here is a silent behaviour change that
7
+ > you could ignore.
8
+
9
+ ## Where to start
10
+
11
+ 1. **Run the codemod** — [Migrating a host: the codemod](#migrating-a-host-the-codemod). It
12
+ does the mechanical part (the module imports, the provider configuration, the dead legacy
13
+ calls) and prints `file:line` for everything that needs a decision.
14
+ 2. Read [Full standalone + `provideSmartNgClient()`](#full-standalone--providesmartngclient-phase-32--the-big-one).
15
+ That section rewrites your `app.module.ts`; everything else is small next to it.
16
+ 3. Read [Dates](#dates-moment--date-fns-and-the-timezone-contract-phase-38). It is the one
17
+ change that needs action **at install time**, and the one that breaks at *runtime* on the
18
+ first screen with a date field rather than at build time.
19
+ 4. Then the rest in order. The **PrimeNG removal** sections (1.1–1.10) are API changes; the
20
+ **hop sections** carry the framework defaults you inherit (OnPush, fetch vs XHR, `?.`).
21
+ 5. If you write your own widget, `WIDGETS.md` next to this file is the protocol.
22
+
23
+ Measured across the 12 hosts in scope on 2026-07-28, so you know what to expect: 12–17
24
+ `Smart*Module` imports per host, 1–20 string-keyed providers, `.cssClass =` on an action
25
+ entry at 72 sites in 7 hosts, `this.uiActionModels =` in 5 hosts, `UseUiAction` in 6.
26
+
27
+ ## Migrating a host: the codemod
28
+
29
+ It lives in the `platform-angular2` repository — `tools/ng-client-7-codemod/` — and you run
30
+ it with plain Node, from a checkout, against your own source directory. Nothing to install.
31
+
32
+ ```bash
33
+ node tools/ng-client-7-codemod/migrate.mjs ../my-host/ui-angular/src --dry-run # look first
34
+ node tools/ng-client-7-codemod/migrate.mjs ../my-host/ui-angular/src # then write
35
+ ```
36
+
37
+ It **refuses to run on a dirty git tree** (its diff is how you review it, and `git checkout .`
38
+ is how you undo it), it is **idempotent**, and it prints a verdict for every rule it knows —
39
+ including `no sites found`, because a codemod that silently matched nothing looks exactly
40
+ like one that had nothing to do.
41
+
42
+ **What it rewrites:** the `Smart*Module` imports (into the standalone declarables of the
43
+ mapping table below), the string-keyed providers and both `forRoot()` payloads (into one
44
+ `provideSmartNgClient(config, ...features)` call), the redundant core services in the root
45
+ providers array, `this.useQueryLists = true` / `handleDataChangeSubscriptions()`,
46
+ `[parentSmartComponent]` and the dead `[parent]` inputs,
47
+ `execute(x.uiAction, x)` → `execute(x)`, the `async` / `await` around
48
+ `getActionDescriptor`, the `SmartdialogService` `super(…)` call and its constructor
49
+ parameters, and PrimeNG module imports **no template in your repository renders**.
50
+
51
+ **What it refuses to guess at**, printing `file:line` and the section here that explains it:
52
+ `UseUiAction` → `UiActionExecutor`, `this.uiActionModels =`, `entry.cssClass =`, `addForm()`,
53
+ the 4th argument of `addGrid()`, `getActionDescriptor(…).then(…)`, the moment adapter,
54
+ component-level providers, every remaining `primeng/*` import, and `::ng-deep` selectors that
55
+ reach into the form widget.
56
+
57
+ **What it deliberately does not do:** convert *your* components to standalone. That is
58
+ Angular's own schematic (`ng generate @angular/core:standalone`) and it is not required — an
59
+ NgModule's `imports:` array takes standalone components, which is exactly what the codemod
60
+ puts there. Do the library migration first, get the app running, then decide about standalone
61
+ separately.
62
+
63
+ Afterwards: run your formatter, swap the date packages ([Dates §1](#1-swap-the-peer-dependency)),
64
+ build (expect one `NG8001` per template element whose component is not imported yet — that
65
+ loop terminates), and **smoke the app**, because the DI changes are invisible to the compiler.
66
+
67
+ ## Breaking changes
68
+
69
+ ### Dialog stack: PrimeNG dynamicdialog → MatDialog (Phase 1.1)
70
+
71
+ - `SmartdialogService` and `SmartViewContextDialogService` constructors no longer
72
+ take a PrimeNG `DialogService` parameter. If your host extends or instantiates
73
+ these services, drop the argument (MatDialog is injected internally).
74
+
75
+ Both arguments PrimeNG contributed are gone, so the base constructor lost two of
76
+ its four parameters:
77
+
78
+ ```ts
79
+ // 6.x
80
+ constructor(dialog: MatDialog, dialogService: DialogService, inject: Injector,
81
+ @Inject(COMPONENT_LIBRARY) compLib: ComponentLibrary) {
82
+ super(dialog, dialogService, inject, compLib);
83
+ }
84
+ // 7.0
85
+ constructor(dialog: MatDialog, inject: Injector) {
86
+ super(dialog, inject);
87
+ }
88
+ ```
89
+
90
+ **The codemod does this** (rule `smartdialog-super`), including the constructor
91
+ parameters and the now-unused `primeng/dynamicdialog` import — except where a
92
+ dropped parameter carries an accessibility modifier (`protected dialogService: …`),
93
+ which declares a class *property* the body may still read. Those are reported.
94
+ - The `ComponentLibrary` switch no longer has a PrimeNG branch in the dialog
95
+ layer — all dialogs open via `MatDialog` regardless of `COMPONENT_LIBRARY`.
96
+
97
+ ### smart-form widgets: PrimeNG removed (Phase 1.2)
98
+
99
+ - `ComparableDropdownDirective` and `ComparableMultiselectDirective` are removed
100
+ (they decorated the PrimeNG `p-dropdown` / `p-multiSelect` elements, which no
101
+ longer exist). Use `SmartformwidgetComponent.compareItems` semantics via
102
+ `mat-select [compareWith]`, which the widget template already wires up.
103
+ - `SmartformwidgetComponent` constructor no longer takes the injected
104
+ `COMPONENT_LIBRARY` token; the widget renders Material-only.
105
+ - `SmartformwidgetComponent` removed PrimeNG-only public members:
106
+ `errorMessages`, `getControlMessages()`, `onPrimeRichTextEditorContentChanged()`,
107
+ `safeDropDownBlur()`/`onDropDownShow()`/`onDropDownInput()`,
108
+ `safeCalendarBlur()`/`onCalendarShow()`/`onCalendarInput()`, `defaultDate`.
109
+ - `SmartFormService.setValuesFromModel()` / `toFormGroup()` /
110
+ `createFormControls()` no longer take a `ComponentLibrary` parameter.
111
+ - `SmartViewContextModule` no longer imports the PrimeNG form modules
112
+ (Dropdown, MultiSelect, Calendar, Chips, InputSwitch, Checkbox, InputNumber,
113
+ InputText, InputTextarea, InputMask, FloatLabel, Messages) and no longer
114
+ provides `Dropdown` / `MultiSelect`.
115
+
116
+ ### fileupload: PrimeNG removed (Phase 1.4)
117
+
118
+ - `SmartFileUploaderComponent` (selector `smart-file-uploader4sc`) is removed
119
+ from the public API. It was a PrimeNG `p-fileUpload` wrapper declared in
120
+ `SmartNgClientModule` but referenced nowhere; the Material-style
121
+ `SmartfileuploaderComponent` (selector `smartfileuploader`) is the uploader.
122
+ - The internal `PrimeFileUploaderComponent` (selector `prime-file-uploader`)
123
+ is removed; `smart-upload-widget` always renders `smartfileuploader`.
124
+ - `UploadWidgetComponent` constructor no longer takes the injected
125
+ `COMPONENT_LIBRARY` token, and its PrimeNG-only members are gone
126
+ (`fileUploadPrime`, `uploadFiles()`).
127
+ - `SmartNgClientModule` and `SmartViewContextModule` no longer import the
128
+ PrimeNG `FileUploadModule`; `SmartViewContextModule` also dropped the dead
129
+ `OverlayPanelModule` import (Phase 1.3).
130
+
131
+ ### editor: Quill 1.3 → 2, quill-emoji removed (Phase 1.5)
132
+
133
+ - Peer dependencies changed: `quill` `^1.3.7` → `^2.0.3`, `ngx-quill`
134
+ `16.2.1 - 24.0.5` → `^25.3.3`. Hosts must bump both together (ngx-quill 25.x
135
+ is the Quill 2 line for Angular 17; later Angular hops will raise it further).
136
+ - `quill-emoji` peer dependency is **removed** (dead, Quill 1-only, unmaintained).
137
+ If a host needs emoji support, pick a Quill 2-compatible module on its own.
138
+ - `@types/quill` must be removed from host devDependencies — Quill 2 ships its
139
+ own TypeScript types, and the stale `@types/quill` 1.x conflicts with them.
140
+ - The bundled `quill.snow.css` (imported by the smart-form widget) is now the
141
+ Quill 2.0.3 stylesheet; hosts that import `quill/dist/quill.snow.css`
142
+ themselves must serve the Quill 2 version.
143
+ - `SmartViewContextModule` no longer imports the PrimeNG `EditorModule`
144
+ (`<p-editor>` died with Phase 1.2; RICH_TEXT renders via ngx-quill).
145
+
146
+ ### smart-diagram: p-chart replaced by direct chart.js (Phase 1.6)
147
+
148
+ - `SmartDiagramComponent` renders its own `<canvas>` and instantiates chart.js
149
+ directly; the PrimeNG `<p-chart>` wrapper (and the `ChartModule` import in
150
+ `SmartDiagramModule`) is gone. Chart.js controllers are now registered by the
151
+ component itself (`Chart.register(...registerables)`), so no `chart.js/auto`
152
+ import is needed anywhere.
153
+ - The public `chart` property (and `getChart()`) is now the chart.js `Chart`
154
+ instance instead of the PrimeNG `UIChart` component. `getBase64Image()` and
155
+ `refresh()` keep their signatures (delegating to `toBase64Image()` /
156
+ `update()`).
157
+ - `SmartDiagramComponent` constructor no longer takes the injected
158
+ `COMPONENT_LIBRARY` token; the component has a single render path.
159
+ - DOM/CSS hooks changed: the internal structure is
160
+ `div.chart-host > div.chart-container > canvas`; host styles targeting
161
+ `::ng-deep p-chart` no longer match. The aspect-ratio classes
162
+ (`default-aspect-ratio` / `pie-aspect-ratio`) are now applied on
163
+ `.chart-host` and size `.chart-container`.
164
+
165
+ ### smart-grid: PrimeNG branch removed (Phase 1.7)
166
+
167
+ - `SmartGridComponent` renders Material-only. The `@if (compLib === PRIMENG)`
168
+ template branch (the inline `p-table` / `p-paginator` / `p-menu` /
169
+ `p-multiSelect` grid) is gone; the grid always renders through the PrimeNG-free
170
+ `smart-table` (the `#table` slot), `mat-tree`, `app-smart-grid-card`, and
171
+ `mat-paginator`.
172
+ - `SmartGridComponent` constructor no longer takes the injected
173
+ `COMPONENT_LIBRARY` token, nor the `SmartDatePipe` / `SmartDateTimePipe` /
174
+ `SmartTimePipe` (they only fed the removed inline `p-table` cell renderer);
175
+ those pipes are dropped from the component `providers` too.
176
+ - Removed PrimeNG-only public members: `columns`, `menuButtons`, `menu`,
177
+ `onOptionsClick()`, `previousmultiSortMeta`, `gridSort()`, `lazyLoad()`,
178
+ `headerChange()`, `onColOrder()`, `getOrderColumNames()`, `getColValue()`,
179
+ `onPrimeChangePage()`, `onRowSelect()`, `onRowUnselect()`, `onSelectAllRow()`,
180
+ `getImageResourceIcons()`, `getImageResourceStyle()`, `getRowColumnAction()`,
181
+ `showCellToolbar()`, `shouldShowOptionsButton()`, `calculateMenuActions()`,
182
+ `createCellToActionMap()`, `getRowMenuActionModelArray()`, `rowTrackByFn()`,
183
+ `cellToActionMap`, `columnMetaByName`, and the `_headerToolbar`
184
+ (`#headerToolbar`) view child. The `headerToolbar` getter now returns the
185
+ smart-table's header toolbar unconditionally (its only remaining consumer,
186
+ `SmartComponentApiClient`, is unaffected).
187
+ - `SmartGridModule` no longer imports the PrimeNG `TableModule`, `ButtonModule`,
188
+ `MenuModule`, `PaginatorModule`, `MultiSelectModule`; `MatTooltipModule` is
189
+ added (the grid refresh button is now a Material `mat-icon-button` +
190
+ `matTooltip` instead of `pButton` + `pTooltip`).
191
+ - Note: this is the PrimeNG-branch deletion only. The `smart-grid` internals
192
+ rewrite to `mat-table` + `MatPaginator` and the `smart-grid`/`smart-table`
193
+ merge remain a Phase 3 (post-Angular-22) change.
194
+
195
+ ### misc widgets: PrimeNG branches removed (Phase 1.8)
196
+
197
+ The remaining components that still carried a dead PrimeNG branch alongside an
198
+ already-active Material one are now Material-only. In every case the Material
199
+ branch was the rendered path under `COMPONENT_LIBRARY = MATERIAL` (the value all
200
+ 7.0 hosts use), so this is render-neutral; the `COMPONENT_LIBRARY` token, where
201
+ these components still injected it, is now ignored by them.
202
+
203
+ - `ExpandableSectionComponent` renders Material-only (the `p-accordion` branch is
204
+ gone; always `mat-expansion-panel`). Its constructor no longer takes the
205
+ injected `COMPONENT_LIBRARY` token. `SmartExpandableSectionModule` no longer
206
+ imports the PrimeNG `AccordionModule`.
207
+ - `UiActionButtonComponent` renders Material-only (the `pButton`/`pRipple` branch
208
+ is gone; always `mat-button`). Its constructor no longer takes the optional
209
+ `COMPONENT_LIBRARY` token (it previously defaulted to `PRIMENG` when unset).
210
+ `getType()` no longer has a PrimeNG class-map branch — it returns the
211
+ `mat-mdc-*` class strings unconditionally. (The dynamic `getbtnClass()`'s
212
+ `p-button-<color>` class token was later dropped in Phase 1.9.)
213
+ - `UiActionToolbarComponent` constructor no longer takes the injected
214
+ `COMPONENT_LIBRARY` token. The dead `getType()` / `getbtnClass()` methods
215
+ (never referenced by the template) were removed, and the scroll-affordance
216
+ buttons use the Material icons `arrow_back` / `arrow_forward` unconditionally
217
+ (the PrimeNG `chevron-left` / `chevron-right` fallback is gone).
218
+ - `UiActionConfirmDialogComponent` and `UiActionInputDialogComponent` render
219
+ their close button as a Material `mat-icon-button` unconditionally (the `@else`
220
+ `p-button` branch is gone); both constructors no longer take the injected
221
+ `COMPONENT_LIBRARY` token.
222
+ - `SmartIconModule` no longer imports the PrimeNG `BadgeModule` (badges render
223
+ via the custom `ui-badge` component, unaffected).
224
+ - `SmartViewContextModule` no longer imports the PrimeNG `ButtonModule`,
225
+ `TooltipModule`, `ToastModule`, `ImageModule`, or `OrderListModule` (all
226
+ unused after the branch deletions). The `primeng/api` `SharedModule`
227
+ (`PrimeSharedModule`) import was later dropped in Phase 1.9's final sweep.
228
+
229
+ ### PrimeNG package dependency removed (Phase 1.9)
230
+
231
+ The `primeng` npm package is gone. Most importantly it is dropped from
232
+ `@smartbit4all/ng-client`'s own **`peerDependencies`** (in
233
+ `projects/smart-ng-client/package.json`, which flows into the published
234
+ `npms/smart-ng-client/package.json`) — that entry is what previously forced every
235
+ consuming host to install PrimeNG. It is also removed from the dev workspace
236
+ (`package.json`, `package-lock.json`, `node_modules`), and both PrimeNG theme
237
+ stylesheets (`primeng/resources/themes/saga-blue/theme.css`,
238
+ `primeng/resources/primeng.min.css`) are removed from the app-playground `styles`
239
+ in `angular.json`. Hosts that still list `primeng` as a dependency or load its
240
+ theme CSS should remove both; 7.0 renders entirely on Material/CDK.
241
+
242
+ #### Your own PrimeNG usage
243
+
244
+ Removing the peer dependency does not remove PrimeNG from *your* code, and the measured
245
+ hosts carry more of it than their authors expect — mostly as **dead module imports**. Across
246
+ the 12 hosts, `DialogService` is imported 56 times, but 8 of those in p014 turned out to be
247
+ nothing but the base-constructor argument above, and four PrimeNG modules in its
248
+ `app.module.ts` rendered nothing at all.
249
+
250
+ So the codemod separates the two cases, and the separation is decidable rather than
251
+ guessed:
252
+
253
+ - **`primeng-modules`** — a PrimeNG NgModule in an `imports:` array is **deleted** when none
254
+ of its selectors appears in any template in the repository. The scan runs over `.html`
255
+ *and* `.ts` (for inline templates) before anything is rewritten, and it distinguishes an
256
+ element (`<p-tree>`) from an attribute directive (`pTooltip`) so that a leftover
257
+ `class="p-button"` is not read as a component still in use. What the scan found is printed
258
+ in the header, because it is what licenses the deletions.
259
+ - **`primeng-imports`** — everything else from `primeng/*` is reported with its replacement.
260
+ These are the real ports.
261
+
262
+ The replacements, for what the hosts actually import:
263
+
264
+ | PrimeNG | Material / CDK |
265
+ |---|---|
266
+ | `p-button` / `pButton` | `MatButtonModule` — `mat-button`, `mat-icon-button` |
267
+ | `p-tree` | the library's `<smart-tree>`, or `MatTreeModule` |
268
+ | `p-progressSpinner` | `MatProgressSpinnerModule` — `<mat-spinner>` |
269
+ | `pTooltip` | `MatTooltipModule` (`matTooltip`), or `SmartTooltipDirective` |
270
+ | `p-sidebar` | `MatSidenavModule` |
271
+ | `pInputText` | `MatInputModule` — `matInput` inside `<mat-form-field>` |
272
+ | `p-fieldset` | `MatCardModule`, or `<fieldset>` + `<mat-divider>` |
273
+ | `p-divider` | `MatDividerModule` |
274
+ | `p-accordion` | `MatExpansionModule`, or `<smart-expandable-section>` |
275
+ | `p-table` | the library's `<smart-grid>`, or `MatTableModule` |
276
+ | `p-editor` | ngx-quill's `<quill-editor>` (already a library dependency) |
277
+ | `p-badge` / `pBadge` | `MatBadgeModule`, or `UiBadgeComponent` / `UiBadgeDirective` |
278
+ | `p-menu`, `p-overlayPanel` | `MatMenuModule`, or the CDK Overlay |
279
+ | `p-inputSwitch` | `MatSlideToggleModule` |
280
+ | `p-dialog` | `MatDialog` — open a component instead of toggling `[visible]` |
281
+ | `DialogService` | `MatDialog`. There is **no `header` option**: put `<h2 mat-dialog-title>` in the component |
282
+ | `DynamicDialogRef` | `MatDialogRef` — `afterClosed()` replaces `onClose` |
283
+ | `DynamicDialogConfig` | `MAT_DIALOG_DATA` for the data, `MatDialogRef` for the rest |
284
+ | `PrimeNGConfig` | **delete it.** `setTranslation()` of day and month names is already covered by `MAT_DATE_LOCALE` + `SmartDateFnsAdapter` — the date-fns `hu` locale carries both the names and the Monday week start (see [Dates](#dates-moment--date-fns-and-the-timezone-contract-phase-38)) |
285
+ | `MessageService` | `MatSnackBar` |
286
+ | `ConfirmationService` | the library's `UiActionConfirmDialogService` |
287
+ | `MenuItem` | the library's `UiActionModel`, or a plain `<mat-menu>` item |
288
+ | `SharedModule` (`primeng/api`) / `PrimeTemplate` | a plain `<ng-template>` — PrimeNG needed `pTemplate`, Material does not |
289
+
290
+ `primeicons` is a separate package. Nothing in 7.0 needs it, but nothing breaks if you keep
291
+ it either — `pi pi-*` class names are just a font.
292
+
293
+ ### `QuillModule.forRoot()` in your root module
294
+
295
+ `provideSmartNgClient()` calls `importProvidersFrom(QuillModule.forRoot())` itself — ngx-quill
296
+ has no provider function, so the module is the only way to reach its root configuration. A
297
+ root module that also calls it is configuring quill twice, so the codemod removes the call
298
+ and its import. In a *feature* module the same call is that module's own configuration and is
299
+ left alone.
300
+
301
+ **Keep `ngx-quill` and `quill` in your `package.json`.** They are peer dependencies of the
302
+ library — the host provides them. npm installs peers automatically, which is why hosts have
303
+ got away with not declaring them, but any install that runs with `--legacy-peer-deps` drops
304
+ them silently and the next build fails on an import that has always worked. Two of the twelve
305
+ measured hosts were in exactly that state.
306
+
307
+ **7.0 adds four peer dependencies 6.x did not have**, and they bite in a way the TypeScript
308
+ errors do not prepare you for:
309
+
310
+ ```bash
311
+ npm install ngx-mask@^22.0.0 fast-equals@^5.0.1 wavesurfer.js@^7.9.5 @angular/youtube-player@^22.0.0
312
+ ```
313
+
314
+ If you install the library the normal way, npm brings these in for you. If you *swap a local
315
+ build into `node_modules` by hand* — which is how you would try the library before it is
316
+ published — npm never runs, so nothing installs them. The symptom arrives **after** the last
317
+ TypeScript error is fixed, as five `Module not found` errors reported against the library's
318
+ own `fesm2022` bundle rather than against any file of yours:
319
+
320
+ ```
321
+ ./node_modules/@smartbit4all/ng-client/fesm2022/smartbit4all-ng-client.mjs:7:0-60 -
322
+ Error: Module not found: Error: Can't resolve 'ngx-mask'
323
+ ```
324
+
325
+ Four packages, five errors: `wavesurfer.js` is missing twice, once for its `record` plugin.
326
+
327
+ - `UiActionButtonComponent.getbtnClass()` no longer emits the dead
328
+ `p-button-<color>` class token — it returns only `sb4-<color>` (nothing styled
329
+ `.p-button-*`; the platform button theme keys off `sb4-<color>` in
330
+ `custom-theme.scss`). Hosts with their own `.p-button-<color>` overrides for
331
+ sb4 action buttons should migrate them to `.sb4-<color>`.
332
+ - `SmartViewContextModule` no longer imports the `primeng/api` `SharedModule`
333
+ (`PrimeSharedModule`); no template in the module used `pTemplate`.
334
+ - `SmartComponentLayoutModule` no longer imports `InputGroupModule` /
335
+ `InputGroupAddonModule` (they were dead — no `p-inputGroup` template existed).
336
+
337
+ The `ComponentLibrary` enum still exists with only its `MATERIAL` member in
338
+ active use; its `PRIMENG` member and the remaining dead `ComponentLibrary.PRIMENG`
339
+ code branches (icon/menu/widget components, dead `.p-*`/`.pi` CSS) are removed in
340
+ a follow-up internal-cleanup step (1.10) — they are not a package dependency and
341
+ do not affect hosts. `deviceInfo.componentLibrary` continues to report
342
+ `material` to the backend.
343
+
344
+ ### ComponentLibrary / COMPONENT_LIBRARY removed entirely (Phase 1.10)
345
+
346
+ 7.0 is Material-only, so the `ComponentLibrary` abstraction (which had no second
347
+ implementation once PrimeNG was gone) is deleted outright.
348
+
349
+ - **Host action required:** `ComponentLibrary` (enum) and `COMPONENT_LIBRARY`
350
+ (injection token) are no longer exported from `@smartbit4all/ng-client`. Hosts
351
+ that provide `{ provide: COMPONENT_LIBRARY, useValue: ComponentLibrary.MATERIAL }`
352
+ in their root providers must **remove that provider and its import** — it now
353
+ fails to compile (no exported member). No replacement is needed; every component
354
+ renders Material-only.
355
+ - Every `@Inject(COMPONENT_LIBRARY)` constructor argument is gone from the library
356
+ (smart-icon, click/hover tiered menu, photo-capture / voice-record widgets,
357
+ smart-voice-recorder, smart-file-editor, smart-multi-file-editor, sortable
358
+ widget, smart-filter-editor-content, validation-result-page, message-dialog, the
359
+ dialog services `SmartdialogService` / `SmartViewContextDialogService` /
360
+ `SmartViewContextErrorDialogService` / the ui-action confirm/input/file-upload
361
+ dialog services, and `PdfViewerDialogService` in `@smartbit4all/document-explorer`).
362
+ The `SmartdialogService` base constructor is now `(dialog, injector)` — subclasses
363
+ that called `super(dialog, dialogService, injector, compLib)` keep the first and
364
+ third arguments only. See [Phase 1.1](#dialog-stack-primeng-dynamicdialog--matdialog-phase-11);
365
+ the codemod rewrites it.
366
+ - `SmartViewContextService` no longer exposes the public `componentLibrary` field
367
+ and no longer injects the token; it now writes the literal `'material'` into
368
+ `deviceInfo.componentLibrary` on every view-context update (the backend keys its
369
+ icon set on this string — `images-playground.properties` has `.material=` vs
370
+ `.primeng=` variants — so the value keeps flowing; the DTO field is unchanged).
371
+ - All dead `ComponentLibrary.PRIMENG` branches and their PrimeNG icon names
372
+ (`chevron-right`, `pi pi-*`, `power-off`, `trash`, `file`, `exclamation-circle`,
373
+ `play-circle`/`stop-circle`, etc.) are removed; the Material icon path is now
374
+ unconditional. Dead `.p-*` / `.pi` CSS rules were purged from the library
375
+ (smart-icon, smartform, smartformwidget, the file editors/uploader,
376
+ ui-action-file-upload-dialog) and from the app-playground `custom-theme.scss`;
377
+ the app-playground `index.html` no longer loads the `primeicons` CDN stylesheet.
378
+ - After 1.10, `grep -rin primeng projects` reports a single residual: the
379
+ auto-generated `deviceInfo.ts` DTO doc comment (`(Material, PrimeNg)`), which
380
+ mirrors the backend OpenAPI field description and is regenerated from it — left
381
+ untouched by design (the field itself is intentionally kept).
382
+
383
+ ### Angular 18 hop (Phase 2, 17 → 18)
384
+
385
+ The library line now builds against Angular 18. Host-relevant changes:
386
+
387
+ - **Peer dependency bumps** (hosts must upgrade together with the lib):
388
+ `@angular/*` `^18.0.0`, `@angular/youtube-player` `^18.2.14` (was lagging on
389
+ `^16` — its `^16 || ^17` peer range breaks a strict `npm install` on Angular
390
+ 18, so it can no longer lag), `ngx-quill` `^26.0.0` (the Angular 18 line;
391
+ quill stays `^2.0.3`), `ngx-mask` `^18.0.0`, and — for
392
+ `@smartbit4all/document-explorer` — `ngx-extended-pdf-viewer` `^21.0.0`
393
+ (the 19.x/20.x lines cap their Angular peer below 18).
394
+ - **`parchment` hoisting quirk (ngx-quill 26):** the ngx-quill 26 typings
395
+ reference `import("parchment")`, but npm may leave `parchment` nested under
396
+ `node_modules/quill/` (even after `npm dedupe`), which fails the host build
397
+ with `TS2307: Cannot find module 'parchment'`. Fix: add
398
+ `"parchment": "^3.0.0"` to the host devDependencies so it is hoisted to the
399
+ top level (quill 2 depends on parchment 3, so versions cannot conflict).
400
+ - **Material theming (M2 compat APIs):** the `ng update @angular/material@18`
401
+ schematic rewrites M2 theme SCSS to the prefixed compat API
402
+ (`mat.define-palette` → `mat.m2-define-palette`,
403
+ `mat.$indigo-palette` → `mat.$m2-indigo-palette`,
404
+ `mat.define-light-theme` → `mat.m2-define-light-theme`, …). The theme stays
405
+ visually **M2** — no M3 switch happens at this hop; hosts running the
406
+ schematic get this rewrite automatically.
407
+ - **`HttpClientModule` deprecation:** the `ng update @angular/core@18`
408
+ migration replaces `HttpClientModule` imports with
409
+ `provideHttpClient(withInterceptorsFromDi())`. Not a library breaking
410
+ change (the lib's generated API services were migrated internally), but
411
+ hosts will get the same automatic migration in their own modules.
412
+ - TypeScript requirement raised to `>=5.4` (the repo builds on 5.5).
413
+
414
+ ### Angular 19 hop (Phase 2, 18 → 19)
415
+
416
+ The library line now builds against Angular 19. Host-relevant changes:
417
+
418
+ - **Peer dependency bumps** (hosts must upgrade together with the lib):
419
+ `@angular/*` `^19.0.0`, `@angular/youtube-player` `^19.0.0`,
420
+ `ngx-quill` `^27.0.0` (the Angular 19 line; quill stays `^2.0.3`),
421
+ `ngx-mask` `^19.0.0`, and — for `@smartbit4all/document-explorer` —
422
+ `ngx-extended-pdf-viewer` `^22.0.0` (the 21.x line caps its Angular peer
423
+ below 19).
424
+ - **ngx-extended-pdf-viewer 22 input rename:** the `[showScrollingButton]`
425
+ input no longer exists — it is `[showScrollingButtons]` (plural,
426
+ `ResponsiveVisibility`). Hosts that use `<ngx-extended-pdf-viewer>` directly
427
+ must rename the binding, otherwise the template fails with NG8002.
428
+ - **Standalone-by-default:** in Angular 19 components/directives/pipes are
429
+ standalone unless declared otherwise. The `ng update @angular/core@19`
430
+ migration automatically adds `standalone: false` to every NgModule-declared
431
+ declarable in the host codebase — run it and review the (large, mechanical)
432
+ diff. Declarables not referenced by any NgModule are skipped by the
433
+ schematic.
434
+ - **Material theming:** the `ng update @angular/material@19` schematic splits
435
+ `@include mat.core()` into `@include mat.elevation-classes()` +
436
+ `@include mat.app-background()`. No visual change; hosts running the
437
+ schematic get this rewrite automatically.
438
+ - **New NG8111 extended diagnostic** (warning): "Function in event binding
439
+ should be invoked". Uninvoked event bindings like
440
+ `(click)="(someCallback)"` — previously silently dead — are now flagged at
441
+ build time. Warning only, the build stays green.
442
+ - TypeScript requirement stays satisfied by 5.5 (Angular 19 supports
443
+ TS 5.5–5.8).
444
+
445
+ ### Angular 20 hop (Phase 2, 19 → 20)
446
+
447
+ The library line now builds against Angular 20. Host-relevant changes:
448
+
449
+ - **Peer dependency bumps** (hosts must upgrade together with the lib):
450
+ `@angular/*` `^20.0.0`, `@angular/youtube-player` `^20.0.0`,
451
+ `ngx-quill` `^28.0.0` (the Angular 20 line; quill stays `^2.0.3`),
452
+ `ngx-mask` `^20.0.0`, and — for `@smartbit4all/document-explorer` —
453
+ `ngx-extended-pdf-viewer` `^23.0.0` (the 22.x line caps its Angular peer
454
+ below 20). No pdf-viewer API rename at this bump (unlike 22.x).
455
+ - **TypeScript 5.9 required** (Angular 20 supports 5.8–5.9); `ng update`
456
+ bumps it automatically. TS 5.9 adds **TS2872 "This kind of expression is
457
+ always truthy"**, which turns previously-silent dead `||` alternatives into
458
+ build errors — expect one or two in any older codebase.
459
+ - **Material 20 button labels no longer set `white-space: nowrap`.** Material
460
+ 20 dropped the MDC stylesheet (`@material/button`), which used to carry it.
461
+ Multi-word button labels now wrap, and any rule that lets the button size to
462
+ its content (the lib's `.mdc-button { height: fit-content }`) makes the
463
+ button grow taller. The lib restores the pre-20 look inside
464
+ `ui-action-button` (`.mdc-button__label { white-space: nowrap }`); **hosts
465
+ that render Material buttons of their own must add the same rule** if they
466
+ relied on single-line labels (typical symptom: a navigation bar that
467
+ suddenly wraps and overflows into scroll arrows).
468
+ - **Material 20 renamed the MDC-era CSS custom properties**: e.g.
469
+ `--mdc-text-button-container-height` → `--mat-button-text-container-height`.
470
+ The `ng update @angular/material@20` schematic rewrites the ones it finds in
471
+ `.css`/`.scss` files; token names embedded in TS strings or host templates
472
+ must be renamed by hand.
473
+ - **`DOCUMENT` moved from `@angular/common` to `@angular/core`.** Automatic
474
+ migration; `@angular/common`'s re-export is deprecated.
475
+ - **`moduleResolution: "node"` → `"bundler"`** in `tsconfig.json` (and any
476
+ `tsconfig.lib.json` that sets it explicitly). Automatic migration; it changes
477
+ how sub-path exports resolve, so a host with hand-written `paths` entries
478
+ should re-verify its build.
479
+ - **Workspace generation defaults**: the CLI adds a `schematics` block to
480
+ `angular.json` pinning the pre-20 file-naming style (`type: "component"`,
481
+ `typeSeparator: "."`). Cosmetic — it only affects newly generated files.
482
+ - Optional migrations **not** run here (deferred to the modernization phase):
483
+ `use-application-builder` (esbuild), `control-flow-migration`,
484
+ `router-current-navigation`.
485
+ - The `InjectFlags`, `TestBed.get` → `TestBed.inject` and
486
+ `provideServerRendering` migrations were no-ops for this codebase.
487
+ - The NG8111 warnings introduced at the 19 hop are no longer emitted by the
488
+ Angular 20 compiler (the dead bindings themselves are unchanged).
489
+
490
+ ### Angular 21 hop (Phase 2, 20 → 21)
491
+
492
+ The library line now builds against Angular 21. Host-relevant changes:
493
+
494
+ - **Peer dependency bumps** (hosts must upgrade together with the lib):
495
+ `@angular/*` `^21.0.0`, `@angular/youtube-player` `^21.0.0`,
496
+ `ngx-quill` `^29.0.0` (the Angular 21 line; quill stays `^2.0.3`),
497
+ `ngx-mask` `^21.0.0`, and — for `@smartbit4all/document-explorer` —
498
+ `ngx-extended-pdf-viewer` `^25.0.0` (the 24.x line still caps its Angular
499
+ peer below 21). No pdf-viewer API rename at this bump.
500
+ - **`ngx-quill` 30.x is intentionally *not* used.** 30.x is the "zoneless"
501
+ line and drops the `zone.js` peer dependency; the 7.0 lib is still
502
+ zone-based. Hosts that have already gone zoneless may use 30.x, but the
503
+ lib is only validated against 29.x.
504
+ - **TypeScript stays 5.9** and **zone.js stays 0.15** (Angular 21 accepts
505
+ `~0.15.0 || ~0.16.0`). **Node** must satisfy
506
+ `^20.19.0 || ^22.12.0 || >=24.0.0`.
507
+ - **`MatCommonModule` is removed from `@angular/material/core` (breaking).**
508
+ It was already deprecated in Material 20 (`@breaking-change 21.0.0`). Any
509
+ host NgModule that imports it will fail to compile with
510
+ `Unknown reference` — and because a broken NgModule cascades, the real
511
+ error usually shows up as a flood of `NG8001: '<some-component>' is not a
512
+ known element` / `NG6002: … does not appear to be an NgModule class`
513
+ further down the build log. **Fix: just delete the import and the array
514
+ entry.** `MatCommonModule` had no template surface; it only
515
+ (a) applied the `cdk-high-contrast-*` body classes — `A11yModule` still
516
+ does this, and Material components that need it import `A11yModule`
517
+ themselves — and (b) re-exported `BidiModule`. If your host actually uses
518
+ the `Dir` directive or injects `Directionality`, import
519
+ `BidiModule` from `@angular/cdk/bidi` explicitly.
520
+ The lib dropped it from all 10 of its own modules.
521
+ - **`provideZoneChangeDetection()` is now added at bootstrap** by the
522
+ `ng update` migration, e.g.
523
+ `bootstrapModule(AppModule, { applicationProviders: [provideZoneChangeDetection()] })`.
524
+ This keeps zone-based change detection explicit; behaviour is unchanged.
525
+ - **The control-flow migration (`*ngIf` → `@if`) now runs as a *mandatory*
526
+ `ng update` migration**, not an optional one. It rewrites every structural
527
+ directive in the workspace. The lib **reverted** it to keep the version hop
528
+ reviewable — `NgIf`/`NgForOf`/`NgSwitch` still ship in Angular 21, so
529
+ `*ngIf`/`*ngFor` keep working. Hosts may keep or revert it as they prefer;
530
+ if you want it as a separate change, run
531
+ `npx ng generate @angular/core:control-flow` on its own commit.
532
+ - **New `NG8107` extended diagnostic** (warning): an optional chain `?.`
533
+ whose left side can no longer be `null`/`undefined` under Angular 21's
534
+ sharpened template inference. Warning only — expect a batch of them in any
535
+ older template set.
536
+ - **`tsconfig.json` loses its explicit `lib` array** (the CLI derives it from
537
+ `target`). Automatic migration.
538
+ - The Material and CDK v21 migration schematics made no source changes, and
539
+ the `Router.lastSuccessfulNavigation` migration was a no-op. The optional
540
+ `router-current-navigation` migration was not run.
541
+ - The `.mdc-button__label { white-space: nowrap }` workaround introduced at
542
+ the Angular 20 hop is **still required on Material 21** — the class still
543
+ exists in the button template and Material still ships no `white-space`
544
+ rule for it.
545
+
546
+ ### Angular 22 hop (Phase 2, 21 → 22) — final hop
547
+
548
+ The library line now builds against **Angular 22**. This is the biggest
549
+ host-facing hop of the series: it changes the **change-detection default**, the
550
+ **HTTP backend default** and the **meaning of `?.` in templates**. All three are
551
+ handled by `ng update` migrations, but you must let them run.
552
+
553
+ - **Peer dependency bumps** (hosts must upgrade together with the lib):
554
+ `@angular/*` `^22.0.0`, `@angular/youtube-player` `^22.0.0`,
555
+ `ngx-quill` `^31.0.0` (the Angular 22 line; quill stays `^2.0.3`),
556
+ `ngx-mask` `^22.0.0`, and — for `@smartbit4all/document-explorer` —
557
+ `ngx-extended-pdf-viewer` `^28.0.0` (25/26/27 all cap their Angular peer
558
+ below 22). **No pdf-viewer API rename at this bump.**
559
+ `@ngx-translate/core` `^14` still works (its peer is `>=13`).
560
+ - **TypeScript must be 6.0** (`@angular/compiler-cli` peers `>=6.0 <6.1`);
561
+ **zone.js stays 0.15** (`~0.15.0 || ~0.16.0`) and **rxjs is unchanged**.
562
+ **Node** must satisfy `^22.22.3 || ^24.15.0 || >=26.0.0` — note the
563
+ **22.22.3** floor, which is stricter than Angular 21's `^22.12.0`.
564
+
565
+ #### 1. `ChangeDetectionStrategy.OnPush` is the new default
566
+
567
+ In Angular 22 the enum is redefined: `OnPush = 0` (default), `Eager = 1`, and
568
+ `Default = 1` is kept as a **deprecated alias of `Eager`**. Any component
569
+ without an explicit `changeDetection` therefore switches from CheckAlways to
570
+ OnPush — a real behaviour change for components that mutate their own state
571
+ without signals or `markForCheck()`.
572
+
573
+ An `ng update` schematic **automatically adds
574
+ `changeDetection: ChangeDetectionStrategy.Eager` to every component that had
575
+ none**, which keeps behaviour bit-identical. The lib took exactly this route
576
+ (114 components) and did **not** opt into OnPush at this hop. Recommended host
577
+ approach: let the schematic run, verify your app, and move components to OnPush
578
+ deliberately afterwards.
579
+
580
+ Watch out for components the schematic can skip — it only touches components it
581
+ can resolve. After updating, grep for `@Component` files with no
582
+ `changeDetection` and decide about each one; a component that is dynamically
583
+ instantiated but never statically declared can slip through.
584
+
585
+ #### 2. `provideHttpClient` now defaults to the fetch backend
586
+
587
+ Angular 22 switches `HttpClient` from `XMLHttpRequest` to `fetch`. An
588
+ `ng update` migration inserts **`withXhr()`** into your `provideHttpClient(...)`
589
+ calls to preserve the old backend:
590
+
591
+ ```ts
592
+ provideHttpClient(withXhr(), withInterceptorsFromDi())
593
+ ```
594
+
595
+ The lib does this in `SmartViewContextModule`. **Hosts that call
596
+ `provideHttpClient` themselves must do the same** (or consciously move to
597
+ fetch). This matters most for **upload progress**: `reportProgress` events
598
+ behave differently on the fetch backend, so if your host reports upload
599
+ progress, keep `withXhr()` until you have retested it.
600
+
601
+ #### 3. `?.` in templates now yields `undefined`, not `null`
602
+
603
+ Angular 22's safe-navigation operator returns `undefined` where it used to
604
+ return `null`. Where that difference is observable, an `ng update` migration
605
+ wraps the expression in the **`$safeNavigationMigration()` compiler builtin**:
606
+
607
+ ```html
608
+ [ngStyle]="calcStyle($safeNavigationMigration(diagramModel?.descriptor?.style))"
609
+ ```
610
+
611
+ This is an official builtin (handled like `$any()` — the compiler unwraps it and
612
+ the type-checker sees straight through it), not a temporary marker, so wrapped
613
+ templates are safe to keep. The same `ng update` run also sets the
614
+ `nullishCoalescingNotNullable` and `optionalChainNotNullable` extended
615
+ diagnostics to `suppress` in your tsconfigs, which silences the `NG8107`
616
+ warnings the Angular 21 hop introduced.
617
+
618
+ #### 4. `ComponentFactoryResolver` is removed (breaking)
619
+
620
+ `ComponentFactoryResolver` is gone and `ComponentFactory` is no longer public
621
+ (it only survives as `ɵRender3ComponentFactory`). Code like this stops
622
+ compiling with `TS2305` / `NG2003`:
623
+
624
+ ```ts
625
+ constructor(private resolver: ComponentFactoryResolver) {}
626
+ ngAfterViewInit() {
627
+ const factory = this.resolver.resolveComponentFactory(MyComponent);
628
+ this.vcRef.createComponent(factory);
629
+ }
630
+ ```
631
+
632
+ Replace it with the type-based overload — behaviour is identical (v22 builds the
633
+ same factory internally and resolves the injector from the parent):
634
+
635
+ ```ts
636
+ ngAfterViewInit() {
637
+ this.vcRef.createComponent(MyComponent);
638
+ }
639
+ ```
640
+
641
+ **Public-API change in the lib:** `ComponentFactoryService` no longer exposes
642
+ its `factory` field. `createComponent()` / `destroyComponent()` keep their
643
+ signatures, so hosts that only call those need no change.
644
+
645
+ #### 5. TypeScript 6.0 deprecates `baseUrl` and `downlevelIteration`
646
+
647
+ TS 6.0 raises **`TS5101`** for both options ("deprecated and will stop
648
+ functioning in TypeScript 7.0"). Two ways out:
649
+
650
+ - Remove them. `downlevelIteration` is a no-op at `target: ES2022`. `baseUrl`
651
+ can only go once every non-relative first-party import (`from 'projects/…'`,
652
+ `from 'src/…'`) is relative or covered by a `paths` entry.
653
+ - Or silence them for now with `"ignoreDeprecations": "6.0"` in
654
+ `compilerOptions`. This is what the lib workspace does, because `baseUrl` is
655
+ still load-bearing there. It only buys time until TS 7.
656
+
657
+ #### 6. Other notes
658
+
659
+ - **Material 22 removed no further modules or tokens** — the CDK and Material
660
+ v22 migration schematics made no source changes. CDK 22 moves to a
661
+ package `exports` map (the per-entry-point sub-directories are gone from
662
+ `node_modules/@angular/cdk`), but every `@angular/cdk/*` import still
663
+ resolves; this only matters if you referenced those paths on disk.
664
+ - The `.mdc-button__label { white-space: nowrap }` workaround introduced at the
665
+ Angular 20 hop is **still required on Material 22** — the class still appears
666
+ in Material's button template and Material still ships no `white-space` rule
667
+ for it.
668
+ - **The control-flow migration did not re-run at this hop** (it was mandatory at
669
+ 21). The lib still ships `*ngIf`/`*ngFor` templates; `NgIf`/`NgForOf`/
670
+ `NgSwitch` continue to work in Angular 22.
671
+ - **The webpack-based builders are deprecated.** `@angular-devkit/build-angular`
672
+ now prints a notice recommending `@angular/build`. Nothing breaks yet, but
673
+ plan the switch.
674
+ - `strictTemplates` is on by default in v22; the lib workspace was already
675
+ strict, so nothing changed. If your host was not strict, the `ng update`
676
+ migration adds `"strictTemplates": false` to keep it that way.
677
+
678
+ ### Housekeeping (Phase 3.0)
679
+
680
+ #### The dialog's built-in Ok/Cancel buttons are gone
681
+
682
+ `smartdialog.component.html` no longer renders an `Ok` and a `Cancel` button.
683
+ They were dead: their `(click)` handlers were the no-op expressions
684
+ `(click)="(data.okCallback)"` / `(click)="(data.cancelCallback)"` — a bare
685
+ property read, not a call — so pressing them did nothing, and the whole block
686
+ was behind `*ngIf="!data.customComponent"`, which is never true for a host
687
+ dialog (`SmartDialog.ngAfterViewInit` unconditionally instantiates
688
+ `data.customComponent`).
689
+
690
+ **The `okCallback` / `cancelCallback` model fields stay.** Hosts set and invoke
691
+ them from their own `customComponent` dialogs, and that keeps working
692
+ unchanged. Only the library-rendered buttons are gone. The `actionCallback` /
693
+ `actionLabel` button — the one with a real handler (`onActionClick()`) — is
694
+ untouched.
695
+
696
+ Action needed: none, unless you relied on the library rendering those two
697
+ buttons — in which case they never worked, and you should render them in your
698
+ own dialog component.
699
+
700
+ ### Full standalone + `provideSmartNgClient()` (Phase 3.2) — **the big one**
701
+
702
+ This is the change that rewrites your `app.module.ts`. Everything else in this
703
+ guide is small next to it.
704
+
705
+ #### Every NgModule is gone
706
+
707
+ The library no longer ships a single `@NgModule`. All 58 are deleted —
708
+ `SmartNgClientModule`, `SmartViewContextModule`, `SmartSessionModule`,
709
+ `SmartGridModule`, `SmarttableModule`, `SmarttreeModule`, `SmartdialogModule`,
710
+ `SmartIconModule`, `SmartNavbarModule`, `SmartFilterModule`,
711
+ `SmartFilterEditorModule`, `SmartComponentLayoutModule`,
712
+ `SmartExpandableSectionModule`, `SmartMapModule`, `SmartDiagramModule`,
713
+ `SmartNavigationModule`, `SmartValidationModule`, `SmartGenericPagesModule`,
714
+ `ComponentFactoryServiceModule`, `SharedModule`, `SmartTabGroupModule`,
715
+ `SmartDocuStoreExplorerModule` and the generated OpenAPI `ApiModule`s.
716
+
717
+ Every component, directive and pipe is now **standalone**. Import the ones your
718
+ templates use directly, in the component that uses them:
719
+
720
+ ```ts
721
+ @Component({
722
+ selector: 'app-my-page',
723
+ templateUrl: './my-page.component.html',
724
+ imports: [SmartGridComponent, UiActionToolbarComponent, SmartEmbeddedSlotDirective],
725
+ })
726
+ export class MyPageComponent extends SmartComponent<MyModel> { … }
727
+ ```
728
+
729
+ **The compiler tells you what is missing** — one `NG8001: '<smart-grid>' is not
730
+ a known element` per unresolved element, per template. Work through them; there
731
+ is no guessing involved. In practice ~16 module imports become ~40 component
732
+ imports spread across the components that actually use them.
733
+
734
+ **The compiler does NOT tell you about the DI changes below.** Nothing fails at
735
+ build time if you get those wrong; you find out on the first page load. Smoke
736
+ your app.
737
+
738
+ #### `provideSmartNgClient(config, ...features)` replaces the module imports
739
+
740
+ ```ts
741
+ bootstrapApplication(AppComponent, {
742
+ providers: [
743
+ provideAnimations(),
744
+ provideRouter(ROUTES),
745
+ provideSmartNgClient(
746
+ {
747
+ gridMenuIcon: 'more_horiz',
748
+ treeMenuIcon: 'more_horiz',
749
+ aclEditingViewName: Pages.ACL_MATRIX_PAGE,
750
+ invalidSmartlinkPageName: Pages.INVALID_SMARTLINK_PAGE_NAME,
751
+ namedValidators: [MY_VALIDATOR_FACTORY],
752
+ },
753
+ withSmartMap({ engine: MapEngine.LEAFLET }),
754
+ withSmartDiagram({ customOptions: [MY_CHART] })
755
+ ),
756
+ { provide: HTTP_INTERCEPTORS, useClass: MyLoadingInterceptor, multi: true },
757
+ ],
758
+ });
759
+ ```
760
+
761
+ The core is always wired and cannot be forgotten: session, view context, the
762
+ three BFF interceptors, layout, form, grid, table, tree, dialog, icon, navbar,
763
+ filter, filter editor, validation, expandable section, navigation, shared and
764
+ the generic pages. That is the point — the session and header interceptors used
765
+ to be easy to leave out, and leaving them out fails *silently* (no
766
+ `Authorization` header).
767
+
768
+ Only two features are opt-in, because they pull heavy third-party code that not
769
+ every host renders: `withSmartMap()` (leaflet / Google Maps) and
770
+ `withSmartDiagram()` (chart.js). There is **no `withSmartTabGroup()`** —
771
+ `smart-tab-group` had no component left, only an empty module, and is deleted.
772
+
773
+ `provideSmartNgClient()` calls `provideHttpClient()` itself, with
774
+ `withInterceptorsFromDi()` and its own three functional interceptors, and leaves the backend
775
+ on the framework default (fetch). Your own class-based `HTTP_INTERCEPTORS` keep working and
776
+ still run after the library's three. Pass extra `HttpClient` features in
777
+ `config.httpFeatures` rather than making a second `provideHttpClient()` call — see
778
+ [HTTP](#http-the-library-no-longer-forces-the-xhr-backend-phase-38), which is also where the
779
+ 6.x "do not call it twice" trap went.
780
+
781
+ #### String-keyed providers become typed config fields
782
+
783
+ Delete these from your providers array and pass them to `provideSmartNgClient`:
784
+
785
+ | 6.x provider | 7.0 config field |
786
+ |---|---|
787
+ | `{ provide: 'gridMenuIcon', useValue: … }` | `gridMenuIcon` |
788
+ | `{ provide: 'treeMenuIcon', useValue: … }` | `treeMenuIcon` |
789
+ | `{ provide: 'searchPageName' / 'searchComponentName', … }` | `searchPageName` / `searchComponentName` |
790
+ | `{ provide: 'genericPageName' / 'genericComponentName', … }` | `genericPageName` / `genericComponentName` |
791
+ | `{ provide: 'subjectSelectorPageName' / 'subjectSelectorComponentName', … }` | `subjectSelectorPageName` / `subjectSelectorComponentName` |
792
+ | `{ provide: 'validationResultPageName' / 'validationResultComponentName', … }` | `validationResultPageName` / `validationResultComponentName` |
793
+ | `{ provide: 'noPermissionPageName' / 'noPermissionComponentName', … }` | `noPermissionPageName` / `noPermissionComponentName` |
794
+ | `{ provide: 'invalidSmartlinkPageName' / 'invalidSmartlinkComponentName', … }` | `invalidSmartlinkPageName` / `invalidSmartlinkComponentName` |
795
+ | `{ provide: 'aclEditingViewName', useValue: … }` | `aclEditingViewName` |
796
+ | `{ provide: DIALOG_DISABLE_CLOSE, useValue: … }` | `dialogDisableClose` |
797
+ | `{ provide: MAT_DATE_LOCALE, useValue: 'hu-HU' }` | `dateLocale` — **or keep the provider as it is**, which is what the codemod does; see [Dates §2](#2-leave-your-mat_date_locale-provider-alone) |
798
+ | `SmartWidgetSettings.useUtc = true` (a static, not a provider) | **delete it** — the flag is gone with the moment adapter; see [Dates §4](#4-smartngclientconfiguseutcdates-is-removed) |
799
+ | `{ provide: NAMED_VALIDATOR, useValue: F, multi: true }` | `namedValidators: [F]` |
800
+ | `{ provide: SMART_DEFAULT_VIEW_COMPONENTS, useValue: E, multi: true }` | `defaultViewComponents: [E]` |
801
+ | `SmartValidationModule.forRoot([...])` | `namedValidators` — **the element type changes**, see below |
802
+ | `SmartDiagramModule.forRoot([...])` | `withSmartDiagram({ customOptions })` |
803
+ | `{ provide: MAP_ENGINE, useValue: … }` | `withSmartMap({ engine })` |
804
+
805
+ `'pageName'`, `'componentName'` and `'treeId'` stay as string tokens on purpose:
806
+ they identify one component instance rather than configuring the library, and
807
+ hosts also provide them at component level.
808
+
809
+ You can also delete these from your **root** providers array — the core provides them:
810
+ `SmartSessionService`, `SmartViewContextService`, `SmartNavigationService`,
811
+ `SmartIconService`, `SmartFilterEditorService`, `SmartFormService`,
812
+ `SmartCookieService`, `NamedValidatorService`, `ComponentFactoryService`, and the date
813
+ adapter wiring (`MAT_DATE_FORMATS`, `DateAdapter`).
814
+
815
+ ⚠️ **`namedValidators` takes factories, not providers.** `SmartValidationModule.forRoot()`
816
+ took `Provider[]`, so hosts wrote the wrapper by hand:
817
+
818
+ ```ts
819
+ // 6.x — validator.factories.ts
820
+ export const VALIDATOR_PROVIDER_EMPTY_INPUT: Provider = {
821
+ provide: NAMED_VALIDATOR, useValue: VALIDATOR_FACTORY_EMPTY_INPUT, multi: true,
822
+ };
823
+ // app.module.ts
824
+ imports: [SmartValidationModule.forRoot([VALIDATOR_PROVIDER_EMPTY_INPUT])]
825
+ ```
826
+
827
+ `provideSmartNgClient()` adds that wrapper itself, so the config takes the bare
828
+ `ValidatorFactory[]`. Export the factories and pass those:
829
+
830
+ ```ts
831
+ // 7.0
832
+ export const VALIDATOR_FACTORY_EMPTY_INPUT: ValidatorFactory = { … };
833
+ provideSmartNgClient({ namedValidators: [VALIDATOR_FACTORY_EMPTY_INPUT] })
834
+ ```
835
+
836
+ The codemod moves the argument into the config and **reports it**, because the entries are
837
+ normally named constants declared in another file and only you know what each one wraps. If
838
+ you miss the note, `TS2322: Type 'Provider' is not assignable to type 'ValidatorFactory'`
839
+ lands on every element.
840
+
841
+ ⚠️ **The same line on a `@Component` is not the same thing.**
842
+ `providers: [SmartFilterEditorService]` on a page component asks for one instance *per page*,
843
+ which is usually deliberate — p014 does it in five components. Leave those alone; the codemod
844
+ does.
845
+
846
+ #### The module → standalone mapping
847
+
848
+ What each `Smart*Module` used to export, reduced to what 7.0 still exports publicly. An
849
+ NgModule's `imports:` array accepts standalone components, so this substitution is all a host
850
+ that is still NgModule-based needs to keep compiling — the codemod performs it.
851
+
852
+ | 6.x module | 7.0 imports |
853
+ |---|---|
854
+ | `SmartNgClientModule` | the union of the fourteen it re-exported (everything below except the generic pages, the filter editor, the map and the diagram) — trim it to what your templates use |
855
+ | `SmartComponentLayoutModule` | `SmartComponentLayoutComponent` |
856
+ | `SmartViewContextModule` | `UiActionToolbarComponent`, `UiActionButtonComponent`, `UiActionDialogButtonComponent`, `SmartformComponent`, `SmartfileuploaderComponent`, `SmartFileEditorComponent`, `SmartMultiFileEditorComponent`, `SmartVoiceRecorderComponent`, `SmartEmbeddedSlotDirective`, `HighlightPipe` |
857
+ | `SmartGridModule` | `SmartGridComponent` |
858
+ | `SmarttreeModule` | `SmartTreeComponent` |
859
+ | `SmartdialogModule` | `SmartDialog` |
860
+ | `SmartIconModule` | `SmartIconComponent`, `UiBadgeComponent`, `UiBadgeDirective` |
861
+ | `SmartNavbarModule` | `SmartNavbarComponent` |
862
+ | `SmartFilterModule` | `SmartFilterComponent` |
863
+ | `SmartFilterEditorModule` | `SmartFilterEditorContentComponent` |
864
+ | `SmartExpandableSectionModule` | `ExpandableSectionComponent` |
865
+ | `SmartSessionModule` | `SmartSessionTimerComponent` |
866
+ | `SmartGenericPagesModule` | `SearchPageComponent`, `GenericPageComponent`, `SubjectSelectorComponent`, `InvalidSmartlinkComponent` |
867
+ | `SmartMapModule` | `SmartMapComponent` + `withSmartMap({ engine })` |
868
+ | `SmartDiagramModule` | `SmartDiagramComponent` + `withSmartDiagram({ customOptions })` |
869
+ | `SharedModule` | `SmartTooltipDirective`, `SmartDatePipe`, `SmartDateTimePipe`, `SmartTimePipe` |
870
+ | `SmartValidationModule` | nothing — `forRoot()`'s validators become `namedValidators` |
871
+ | `SmarttableModule` | nothing — `SmarttableComponent` is no longer public; render a `<smart-grid>` |
872
+ | `SmartNavigationModule`, `ComponentFactoryServiceModule` | nothing — they only carried services, which the core provides |
873
+ | `SmartTabGroupModule` | nothing — deleted; it had no component left |
874
+ | `SmartDocuStoreExplorerModule` (`@smartbit4all/document-explorer`) | `SmartDocuStoreExplorerComponent`, `FolderContentComponent`, `PdfViewerDialogPageComponent` |
875
+
876
+ Two things this table will not tell you, and the compiler will not either: an import you no
877
+ longer need is invisible (unused entries in an NgModule `imports:` array are not reported),
878
+ and a name you already bind from elsewhere — a `SmartDatePipe` of your own — must not be
879
+ imported twice. The codemod reports both cases rather than guessing.
880
+
881
+ #### Your `SmartComponent` subclasses silently become OnPush
882
+
883
+ This is an **Angular 22 fact rather than something 7.0.0 introduces**, but it
884
+ lands on you at the same moment, so it is worth stating plainly: `SmartComponent`
885
+ is an abstract `@Component`, and each of your subclasses carries its own
886
+ `@Component` decorator. On Angular 22 a component without an explicit
887
+ `changeDetection` gets the new `OnPush` default. p014 has 75 such subclasses,
888
+ p043 has 70.
889
+
890
+ Let the `ng update` schematic add `changeDetection: ChangeDetectionStrategy.Eager`
891
+ to all of them (that is what the library did), verify your app, and move to
892
+ OnPush deliberately afterwards. A subclass that mutates its own state outside a
893
+ signal and without `markForCheck()` will stop repainting under OnPush.
894
+
895
+ #### Removed from the public API
896
+
897
+ A major is the only chance to narrow the surface, so these are no longer
898
+ exported. All of them are library internals; none is used by p014, p043,
899
+ app-formmate or `@smartbit4all/document-explorer`:
900
+
901
+ - `SmarttableComponent`, `SmarttableService` — use `<smart-grid>`, which renders
902
+ the table internally. **All `SmartTable*` model types stay** (`SmartTableType`,
903
+ `SmartTableInterfaceTypeEnum`, `SmartTableHeader`, …). p043 imports
904
+ `SmarttableComponent` in `ad-groups.component.ts` but never uses it — delete
905
+ that one import line.
906
+ - `GoogleMap`, `LeafletMap`, `AbstractMap` — select an engine with
907
+ `withSmartMap({ engine })`.
908
+ - `SmartFilterParamComponent`, `SmartFilterParamsComponent`,
909
+ `SmartFilterExpressionItemComponent`, `SmartFilterExpressionItemsComponent` —
910
+ internals of `SmartFilterEditorContentComponent`, which stays public.
911
+ - `HoverMenuComponent`, `ClickMenuComponent` — rendered by the ui-action toolbar.
912
+ - `UiActionConfirmDialogComponent`, `UiActionInputDialogComponent` — opened by
913
+ their services, which stay public.
914
+ - `UploadWidgetComponent`, `PhotoCaptureWidgetComponent`,
915
+ `VoiceRecordWidgetComponent` — contents of the ui-action upload dialog.
916
+ - `SmartNgClientService` — deleted; it was an empty stub with no members.
917
+ - The generated `ApiModule`s — they had no usages and their `forRoot()` told you
918
+ to import `HttpClientModule`, which no longer applies.
919
+
920
+ Two internal string tokens are gone as well, replaced by real `InjectionToken`s
921
+ (`'confirmDialogService'`, `'textFieldDialogService'`, `'fileUploadDialogService'`).
922
+ No host provided them, so no action is needed.
923
+
924
+ #### Behaviour notes
925
+
926
+ - `<mat-slide-toggle>` in the form widget no longer carries a `value` binding,
927
+ `<mat-nested-tree-node>` no longer carries an interpolated `matTreeNodeToggle`,
928
+ and the ui-action menus no longer carry `[subActions]`. All four were dead
929
+ bindings that the NgModules' `CUSTOM_ELEMENTS_SCHEMA` had been hiding — they
930
+ wrote a DOM property nobody read. Rendering is unchanged.
931
+ - The dead `ExpandableGridComponent` is deleted (it was declared in
932
+ `SmartGridModule` but its selector was used nowhere).
933
+
934
+ ### Widget ↔ SmartComponent: the model routing is inverted (Phase 3.4)
935
+
936
+ A widget no longer waits to be collected by the screen component it lives in: it finds its
937
+ `SmartComponentApiClient` through DI and registers itself. `SmartComponent` carries the
938
+ channel as an inherited host directive, so **no host component has to be changed for the
939
+ routing itself** — everything below is the *legacy surface* that went with the old
940
+ collection path. The protocol is written up in `WIDGETS.md` next to this file; the decision
941
+ record behind it is ADR-0005 in the `platform-angular2` working copy.
942
+
943
+ #### What a host must delete (all of it mechanical, all reported by the compiler)
944
+
945
+ | Delete | Why |
946
+ |---|---|
947
+ | `this.useQueryLists = true;` | The property is gone. Its setter rejected anything but `true`, so every branch behind it was unreachable — this was a no-op that logged a warning. |
948
+ | `[parentSmartComponent]="this"` on `<smart-component-layout>` | The input is gone; the layout injects the client. `strictTemplates` reports leftovers as **NG8002**. |
949
+ | `this.addForm(id, smartForm, formComponent)` | Gone. A `<smartform>` that displays the client's model registers itself. Two call styles existed; where the return value was used, it was the `smartForm` argument — use that. |
950
+ | `this.widgets.delete(…)` / `this.widgets.set(…)` / `this.formWidgets…` | The maps are gone (they were only written by the legacy path and read by nothing). |
951
+ | the 4th argument of `addGrid(smartGrid, options, useAsDefaultGrid, componentReference)` | `addGrid()` keeps the options and the default-grid role; the services it used to copy into the grid model (`uiActionService`, `uiActionDescriptorService`, `serviceToUse`, `viewContextService`) are the grid's own DI job now. |
952
+ | `override getSmartXxxQL()` (e.g. the two `throw new Error` overrides in a `FilterPageService`) | The eight abstract getters are gone from `SmartComponentApiClient`. |
953
+ | `this.getSmartGridsQL()` and friends | If a component really wants its own widgets, it declares the view query itself: `@ViewChildren(SmartGridComponent) grids!: QueryList<SmartGridComponent>` — same reach as the removed getter had. |
954
+ | `handleDataChangeSubscriptions()` | Gone. A form publishes its own value-change keys when it constructs. |
955
+
956
+ Removed from the public API in the same step, in case a host imported them directly:
957
+ `SmartComponentLayoutUtility` and its `EmbeddedSlotInfo` interface (the whole file — its
958
+ collectors walked the layout tree for widgets, which nothing does now), and the `[parent]`
959
+ inputs of `<smart-map>` / `<smart-diagram>` (they were bound to `parentSmartComponent` and read
960
+ by nothing; both widgets resolve the client themselves). `initActions()` also runs less often:
961
+ only when the model or its action list changes, no longer after every layout render, grid view
962
+ init and filter model change — a host override that relied on one of those extra calls has to
963
+ key off `dataChanged` instead.
964
+
965
+ The [codemod](#migrating-a-host-the-codemod) deletes the first two rows and the last one, and
966
+ lists the rest — `addForm()`, the 4th `addGrid()` argument, the getter overrides — with their
967
+ line numbers, because each of those is a small decision rather than a substitution.
968
+
969
+ #### What stays
970
+
971
+ - `SmartService` — a view-less client. Its `@ViewChildren` never populated anyway; they are
972
+ simply gone now.
973
+ - `initActions()` — still the hook a host overrides to build its own action list. The base
974
+ implementation only asks for a render; toolbars pull their actions themselves.
975
+ - `setUpDefaultTree()` / `createTreeService()`, `addGrid()`, `submitForms()`,
976
+ `getInvalidFields()`, `uiActionModels` (now a getter over the model's actions).
977
+
978
+ #### `uiActionModels` is read-only now — assigning to it no longer compiles
979
+
980
+ It became a getter over the `actionModels` computed, so a host that *replaced* the list in
981
+ place gets `TS2540: Cannot assign to 'uiActionModels' because it is a read-only property`.
982
+ Measured in **p014 and p043**, `document-storage-editor.component.ts`:
983
+
984
+ ```ts
985
+ // before — no longer compiles
986
+ this.uiActionModels = this.uiActionModels.filter((a) => a.uiAction.code !== 'CANCEL');
987
+
988
+ // after — filter into a field of your own and bind it
989
+ protected readonly visibleActions = signal<UiActionModel[]>([]);
990
+ // …
991
+ this.visibleActions.set(this.uiActionModels.filter((a) => a.uiAction.code !== 'CANCEL'));
992
+ ```
993
+
994
+ ```html
995
+ <smart-ui-action-toolbar [uiActionModels]="visibleActions()"></smart-ui-action-toolbar>
996
+ ```
997
+
998
+ A plain field works just as well; what matters is that the **array reference changes**, which
999
+ is what tells the toolbar to re-render. See also the entry-freeze note in the Phase 3.7
1000
+ section.
1001
+
1002
+ #### Behavioural deltas, accepted
1003
+
1004
+ - **Wider reach.** A widget in a host's *own* sub-component now participates, where a view
1005
+ query could not see it (measured on p014/p043: 5 toolbars and 3–4 forms per host). A form
1006
+ takes part only if it displays the client's component model, which is what the forms the
1007
+ queries used to find have in common; a form that renders something else of its own (a
1008
+ search box, a field editor) does not.
1009
+ - Two widgets sharing one identifier both reload; the old map kept only the last.
1010
+ - `getInvalidFields()` collects in subscription order rather than view order — visible only
1011
+ in the order of the names in the validation dialog.
1012
+ - A toolbar entry is tracked by a synthesized key (action code + ordinal among entries with
1013
+ the same code), so a button's DOM node — with its focus and ripple — follows its action
1014
+ across reordering. Rendering is otherwise identical.
1015
+
1016
+ #### `[smartComponentDetached]`
1017
+
1018
+ The one brake on the automatic registration. Put it on an element whose subtree deliberately
1019
+ renders something other than the client's model; widgets below it resolve an empty slot and
1020
+ neither reload nor take part in submit/validation.
1021
+
1022
+ ```html
1023
+ <div smartComponentDetached>
1024
+ <smart-grid [smartGrid]="ownGrid" [uuid]="ownUuid"></smart-grid>
1025
+ </div>
1026
+ ```
1027
+
1028
+ #### `SmartSubject` is deleted
1029
+
1030
+ It was a no-op wrapper over `Subject`: `subscription.add(this.unsubscribe$.subscribe())`
1031
+ registers the teardown in the wrong direction, so after `destroy$.next()`, `.complete()` or
1032
+ `.unsubscribe()` subscribers still received values. Replace `new SmartSubject(destroy$)`
1033
+ with `new Subject()`; where a subscription really must die with a component, use
1034
+ `takeUntil(this._destroy$)` (which is what actually stopped delivery all along) or
1035
+ `takeUntilDestroyed()`. No host used it.
1036
+
1037
+ ### Toolbars resolve their own actions and own the execution context (Phase 3.5)
1038
+
1039
+ One rule decides which actions a toolbar shows, and the toolbar — not each list entry —
1040
+ says who performs them. `WIDGETS.md`, *Toolbars*, is the short version; the decision record
1041
+ behind it is ADR-0006 in the `platform-angular2` working copy.
1042
+
1043
+ > A toolbar renders the actions **addressed to its `id`** (`uiAction.toolbar == id`). The
1044
+ > list comes from an explicit `[uiActionModels]` binding if there is one, otherwise from the
1045
+ > screen component above it in the DOM. **Without an `id` it never pulls** — "unaddressed" is
1046
+ > not an address, so a toolbar with neither an id nor a binding shows nothing.
1047
+
1048
+ `[uiActionModels]="uiActionModels"` therefore keeps meaning "put my page's unaddressed
1049
+ actions here" and needs no change.
1050
+
1051
+ #### `UseUiAction` is deleted; `UseUiAction2` is now `UiActionExecutor`
1052
+
1053
+ There is one executor interface. If a host class implements `UseUiAction` — a `submit` /
1054
+ `reSubscribeToChange` subject handshake — replace the two subjects with the two methods:
1055
+
1056
+ ```ts
1057
+ // before
1058
+ export class DelegateInboxDialogService implements UseUiAction {
1059
+ submit: Subject<void> = new Subject();
1060
+ reSubscribeToChange: Subject<void> = new Subject();
1061
+
1062
+ }
1063
+
1064
+ // after
1065
+ export class DelegateInboxDialogService implements UiActionExecutor {
1066
+ submitForm(validate: boolean): void {
1067
+ this.submit.next(); // keep the subject if a component subscribes to it
1068
+ }
1069
+ getInvalidFields(): SmartFormInvalidFields {
1070
+ return { invalidFieldKeys: [], invalidFieldNames: [] };
1071
+ }
1072
+
1073
+ }
1074
+ ```
1075
+
1076
+ `Subject.next()` is synchronous, so a component that subscribed to `submit` has already run
1077
+ by the time `submitForm()` returns — which is exactly what the old handshake tried to
1078
+ express. Keep `reSubscribeToChange` only if something subscribes to it; the library no longer
1079
+ fires it.
1080
+
1081
+ This also **fixes a silent hang**: the old branch `await`ed `submit.toPromise()`, which only
1082
+ settles when somebody `complete()`s the subject. Three of the five implementors never did, so
1083
+ a `submit`/`model` action on those services waited forever.
1084
+
1085
+ #### `UiActionService.execute()` lost its first argument
1086
+
1087
+ It was always `uiActionModel.uiAction`:
1088
+
1089
+ ```ts
1090
+ - this.uiActionService.execute(uiActionModel.uiAction, uiActionModel);
1091
+ + this.uiActionService.execute(uiActionModel);
1092
+ ```
1093
+
1094
+ #### The execution context moved from the entry to the toolbar
1095
+
1096
+ | what | bind on the toolbar | entry field (still honoured) |
1097
+ |---|---|---|
1098
+ | who performs the action | `[executor]` | `serviceToUse` — **deprecated** |
1099
+ | which widget it runs against | `[widgetId]` | `widgetId` — **deprecated**, wins if set |
1100
+ | which row inside it | `[nodeId]` | `nodeId` — **deprecated**, wins if set |
1101
+ | extra params for every action | `[actionParams]` | (clone the `UiAction` — no longer necessary) |
1102
+
1103
+ `[executor]` defaults to the screen component the toolbar sits under, which is what almost
1104
+ every entry named. Bind it only when the actions belong to another API — a tree service, a
1105
+ filter editor, a dialog service of your own:
1106
+
1107
+ ```html
1108
+ <smart-ui-action-toolbar [uiActionModels]="actions" [executor]="myService"></smart-ui-action-toolbar>
1109
+ ```
1110
+
1111
+ `[actionParams]` replaces cloning a `UiAction` per row just to inject a model:
1112
+
1113
+ ```html
1114
+ <smart-ui-action-toolbar
1115
+ [uiActionModels]="rowActions"
1116
+ [widgetId]="gridId"
1117
+ [nodeId]="row.id"
1118
+ [actionParams]="{ model: row }"
1119
+ ></smart-ui-action-toolbar>
1120
+ ```
1121
+
1122
+ #### Removed from the public API
1123
+
1124
+ | Removed | Replacement |
1125
+ |---|---|
1126
+ | `UseUiAction` | `UiActionExecutor` (see above) |
1127
+ | the third `SmartTable` constructor parameter and `getServiceToUse()` | nothing — the executor no longer travels through the table (0 host call sites) |
1128
+ | `SmartformComponent.getToolbars()` | nothing collects toolbars any more; each one resolves its own actions |
1129
+ | `ISmartFilterEditorService.get/setComplexToolbars()` and the `submit` / `reSubscribeToChange` members | as above |
1130
+ | `FileEditorToolbarComponent` | a plain `<smart-ui-action-toolbar>` with `[actionParams]` |
1131
+ | `SmartGridComponent.setupToolbar()` / `.toolbar` / `.headerToolbar` | the id is a binding; there is nothing to reach into |
1132
+
1133
+ #### Behavioural deltas, accepted
1134
+
1135
+ - A widget renders a toolbar exactly when its model carries a `toolbarId`, with no type list.
1136
+ A `toolbarId` on a type whose template has no place for a toolbar (`RECORDING_UPLOADER`)
1137
+ now logs a warning instead of being silently dropped.
1138
+ - Only the actions a toolbar actually shows are scheduled. Since 3.4 a toolbar armed every
1139
+ scheduled action of the view, so one action could fire from several toolbars at once.
1140
+ - A grid row's actions are no longer cloned per row; the row model travels as
1141
+ `[actionParams]`. The multi-file editor's per-file toolbars appear when their own list
1142
+ resolves rather than when a hidden sibling's did, and the tree's `doAction` clones instead
1143
+ of mutating the caller's `UiAction`.
1144
+
1145
+ ### The form widget's rendering decisions (Phase 3.6)
1146
+
1147
+ Nothing here needs a code change in a host — there is no API to adapt to. What
1148
+ changes is what the widget puts on the page, so read this before you compare
1149
+ screenshots.
1150
+
1151
+ #### Every widget carried a spare empty wrapper; it is gone
1152
+
1153
+ The `COMPONENT` branch's wrapper had no type guard, so
1154
+ `<div class="widgetContainer"><div class="widgetContent"><ng-template
1155
+ #customComponent>` rendered after **every** widget of every type. Measured on the
1156
+ playground: 14 widgets, 28 `.widgetContainer` — one spare, empty, per widget.
1157
+
1158
+ The library's own CSS puts no box properties on `.widgetContainer`, so most pages
1159
+ will look identical. **Yours may not**, if you style that class with anything that
1160
+ occupies space. Both in-house hosts do, on one page:
1161
+
1162
+ ```css
1163
+ /* p014 + p043, dossier-publication.component.css */
1164
+ :host ::ng-deep .widgetContainer { margin-bottom: 0.5rem !important; }
1165
+ ```
1166
+
1167
+ There, every widget loses half a rem of trailing space. Grep your stylesheets for
1168
+ `.widgetContainer` and check the pages the matching selectors reach. Rules that
1169
+ need content still match what they always matched — an empty wrapper never
1170
+ satisfied `.label.widgetContainer` or `.widgetContainer:has(…)`.
1171
+
1172
+ #### `MATRIX` and `YOUTUBE_PLAYER` now obey `isVisible` and get their `cssClass`
1173
+
1174
+ Those two branches sat outside the `@if (isVisible)` guard and outside the
1175
+ `<div [ngClass]="cssClass" class="container">` every other type lives in, so
1176
+ `isVisible: false` did not hide them and `cssClass` never reached them. Both are
1177
+ inside now. If a backend view relies on a matrix rendering while marked invisible,
1178
+ it will stop rendering.
1179
+
1180
+ #### A container keeps its invisible children
1181
+
1182
+ A `CONTAINER` widget's `ngOnInit` used to overwrite `widgetInstance.valueList`
1183
+ with the visible subset, destroying the invisible children in the model the
1184
+ backend sent. The visible subset is derived per check now, so the model stays
1185
+ whole and a later `applyConstraints()` that flips a child's `isVisible` brings it
1186
+ back — which it could not before. The DOM is unchanged: the same children render.
1187
+
1188
+ Side effect worth knowing: the model walks that recurse into a container's
1189
+ `valueList` (`applyComponentConstraints`, `copyValueFromFormToWidgetBeans`,
1190
+ `translateWidgets`) now see the invisible children too. Their form controls always
1191
+ existed — `createFormControls` runs over the whole model before any widget renders
1192
+ — so this only makes the widget beans agree with the controls.
1193
+
1194
+ #### A YouTube shorts link resolves
1195
+
1196
+ `parseYoutubeUrl` threw away its own `replace('/shorts/', '/watch?v=')`, so a
1197
+ shorts link produced no player. It plays now.
1198
+
1199
+ #### Removed from the public API
1200
+
1201
+ | Removed | Replacement |
1202
+ |---|---|
1203
+ | `SmartformwidgetComponent` | nothing — no host imported the class; `<smartform>` still renders it. 7.1 splits it into per-type components |
1204
+ | `SmartWidgetSettings` (its only member was `static useUtc`) | nothing — **delete the assignment** |
1205
+
1206
+ 3.6 moved the `useUtc` static into `SmartNgClientConfig.useUtcDates`; **3.8 then removed the
1207
+ field altogether**, together with the moment adapter it fed. If you set
1208
+ `SmartWidgetSettings.useUtc = true` before bootstrap, delete that line and read
1209
+ [Dates §4](#4-smartngclientconfiguseutcdates-is-removed) — the timezone contract is fixed now,
1210
+ and the flag defaulted to `false` everywhere anyway.
1211
+
1212
+ #### What deliberately did not change
1213
+
1214
+ A required field is marked in both label positions, by two different mechanisms:
1215
+ a shown label (`showLabel: true`) is the widget's own `<h4>` and carries a literal
1216
+ ` *`; a `mat-label` sits inside a `mat-form-field`, which renders
1217
+ `.mat-mdc-form-field-required-marker` from the control's own validators. That is
1218
+ why `getWidgetLabel` ties its asterisk to `showLabel` — dropping the condition
1219
+ would mark the floating label twice.
1220
+
1221
+ ### Change detection: frozen action entries, no zone.js (Phase 3.7)
1222
+
1223
+ 7.0 runs without zone.js. Every component of the library is `OnPush` — nothing is checked
1224
+ just because something, somewhere, ticked — and the library says when its own state changed.
1225
+ Two consequences reach a host.
1226
+
1227
+ #### A `UiActionModel` is frozen: build an entry, never edit one
1228
+
1229
+ Every field is `readonly`, and `[uiActionModels]` takes `readonly UiActionModel[]`.
1230
+
1231
+ ```ts
1232
+ // before — compiles on 6.x, and on 7.0 changes nothing on screen
1233
+ entry.cssClass = 'active-nav-action';
1234
+
1235
+ // after
1236
+ this.actions = this.actions.map((a) =>
1237
+ a.uiAction.code === code ? { ...a, cssClass: 'active-nav-action' } : a
1238
+ );
1239
+ ```
1240
+
1241
+ Measured across the 12 hosts in scope (2026-07-28): **72 sites in 7 hosts**, all of them
1242
+ `cssClass` — p009-angular alone has 38, p014 and p043 12 each. The codemod prints every one
1243
+ of them with its line number; it cannot rewrite them, because only you know which array the
1244
+ entry belongs to.
1245
+
1246
+ The compile error and the fix are the same thing. Writing into an entry that a toolbar is
1247
+ already rendering never reached the screen under zone.js either — it worked only because
1248
+ some other event happened to tick the application. Rebuilding the array is what actually
1249
+ re-renders.
1250
+
1251
+ **The gap this does not close.** `this.actions[0] = { ...this.actions[0], cssClass: 'x' }`
1252
+ compiles: `actions` is your field, and the freeze only covers the entries. It keeps the same
1253
+ array reference, so the toolbar does not re-render. Reassign the array — or, if you hold it
1254
+ in a `signal`, `update()` it.
1255
+
1256
+ The descriptor a toolbar resolves is no longer written back into the entry either. Nothing
1257
+ outside the toolbar read it; if you did, resolve it yourself through
1258
+ `UiActionDescriptorService.getActionDescriptor(uiAction)` — which is
1259
+ [synchronous in 7.0](#getactiondescriptor-is-synchronous-phase-39).
1260
+
1261
+ #### Client-side translation is gone
1262
+
1263
+ `SmartTranslateService`, `viewContext.translateService` and the `translateServiceChanged`
1264
+ subject are removed, together with `originalLabel` / `originalPlaceholder` on the widget
1265
+ interfaces. No measured host assigned any of them — the three references in p014/p043 were
1266
+ unused imports — and the backend localizes server-side.
1267
+
1268
+ What the frontend authors itself is now configuration:
1269
+
1270
+ ```ts
1271
+ provideSmartNgClient({
1272
+ errorDialog: { title: 'Hiba', message: 'Váratlan hiba történt.', buttonLabel: 'Rendben' },
1273
+ });
1274
+ ```
1275
+
1276
+ `SmartViewContextService.getSmartViewContextApiErrorByCode()` is no longer `async`.
1277
+
1278
+ #### If your host still bootstraps with zone.js
1279
+
1280
+ Nothing forces you to drop it — the library works either way, because it no longer depends
1281
+ on an application-wide tick. The playground runs `provideZonelessChangeDetection()` with no
1282
+ `zone.js` polyfill, and that is the configuration 7.0 is tested in.
1283
+
1284
+ If you do go zoneless, the same rule applies to your own components: state written from a
1285
+ subscription, a promise or a timer needs a signal or a `markForCheck()`; state written from a
1286
+ template event or an input does not.
1287
+
1288
+ ### Dates: moment → date-fns, and the timezone contract (Phase 3.8)
1289
+
1290
+ **This section needs action at install time.** The reasoning is ADR-0008 in the
1291
+ `platform-angular2` working copy; the contract itself is stated in §4 below.
1292
+
1293
+ #### 1. Swap the peer dependency
1294
+
1295
+ `@angular/material-moment-adapter` is out of the library's `peerDependencies`;
1296
+ `@angular/material-date-fns-adapter` and `date-fns` are in. `date-fns` is listed explicitly
1297
+ rather than left transitive, because the library imports `date-fns/locale` itself.
1298
+
1299
+ ```bash
1300
+ npm uninstall @angular/material-moment-adapter moment
1301
+ npm install @angular/material-date-fns-adapter@^22.0.0 date-fns@^4
1302
+ ```
1303
+
1304
+ If your own code imports moment for something unrelated, keep it — nothing here forces its
1305
+ removal, only the adapter's.
1306
+
1307
+ #### 2. Leave your `MAT_DATE_LOCALE` provider alone
1308
+
1309
+ If you have this line — p014 and p043 both do — **keep it as it is**:
1310
+
1311
+ ```ts
1312
+ { provide: MAT_DATE_LOCALE, useValue: 'hu-HU' },
1313
+ ```
1314
+
1315
+ The strict reading of the date-fns adapter would require a `Locale` **object** here, and a bare
1316
+ string would throw inside date-fns the first time a user opened a date field. The library's
1317
+ `SmartDateFnsAdapter` accepts both: it resolves `'hu'` / `'hu-HU'` / `'en'` / `'en-US'`
1318
+ (case-insensitively) to a date-fns locale, passes a real `Locale` object through untouched, and
1319
+ falls back to Hungarian with a `console.warn` for anything else.
1320
+
1321
+ So: **hosts on Hungarian or English need no change.** For any other language, provide a real
1322
+ date-fns locale:
1323
+
1324
+ ```ts
1325
+ import { de } from 'date-fns/locale';
1326
+
1327
+ { provide: MAT_DATE_LOCALE, useValue: de },
1328
+ ```
1329
+
1330
+ `SmartNgClientConfig.dateLocale` is unchanged — still a `string`, still defaulting to `'hu-HU'`.
1331
+
1332
+ #### 3. If you override `MAT_DATE_FORMATS`, your format strings will throw — and you probably want to delete the override
1333
+
1334
+ Measured across 12 hosts on 2026-07-28: three of them (**p014**, **p043**, **p009-angular**)
1335
+ provide their own formats next to the locale, and two more (`app-vlab`, `app-tournament`) have the
1336
+ same line commented out:
1337
+
1338
+ ```ts
1339
+ { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
1340
+ ```
1341
+
1342
+ with
1343
+
1344
+ ```ts
1345
+ export const MY_FORMATS = {
1346
+ parse: { dateInput: 'YYYY.MM.DD' },
1347
+ display: { dateInput: 'YYYY.MM.DD', monthYearLabel: 'YYYY',
1348
+ dateA11yLabel: 'LL', monthYearA11yLabel: 'YYYY' },
1349
+ };
1350
+ ```
1351
+
1352
+ Those are **moment tokens**. date-fns treats `YYYY`, `DD`, `YY` and `D` as *protected* and throws a
1353
+ `RangeError` on them, and its `LL` means something else entirely (stand-alone month, not a
1354
+ localized long date). So this override **crashes at runtime, on the first screen with a date
1355
+ field** — the same failure shape as the string locale above, and just as invisible to the compiler.
1356
+
1357
+ **The fix is almost certainly deletion.** That `MY_FORMATS` exists to render `YYYY.MM.DD`, which is
1358
+ exactly what the library's own `SMART_DATE_FORMATS` now produces (`2026.07.28.`). Drop the
1359
+ provider and the constant and you get the format you wanted, plus the more forgiving parsing.
1360
+
1361
+ If you genuinely need a different format, translate the tokens rather than copying them:
1362
+
1363
+ | moment | date-fns |
1364
+ |---|---|
1365
+ | `YYYY` | `yyyy` |
1366
+ | `DD` | `dd` |
1367
+ | `LL` | `PP` (or spell it out: `yyyy. MMMM d.`) |
1368
+ | `MMM YYYY` | `yyyy. LLL` |
1369
+
1370
+ Note that the library's `parse.dateInput` is an **array** — `DateFnsAdapter._parse` tries each entry
1371
+ in turn (and ISO-8601 first), so you can list several accepted spellings instead of one.
1372
+
1373
+ #### 4. `SmartNgClientConfig.useUtcDates` is removed
1374
+
1375
+ Delete it if you set it. No known host does. It existed for a client-configurable timezone that
1376
+ was abandoned as a requirement; the contract is now fixed and explicit:
1377
+
1378
+ > **The browser's zone on screen. Zulu (`…Z`) on the wire. The server converts.**
1379
+
1380
+ This is unchanged behaviour in practice — `useUtcDates` defaulted to `false`, and the moment
1381
+ adapter with `useUtc: false` behaves exactly like a plain `Date`.
1382
+
1383
+ #### 5. What a date widget's value now *is*
1384
+
1385
+ Form control values from the date pickers are plain **`Date`** objects, where they were
1386
+ `Moment` objects. The values reach your backend through a `UiActionRequest` param, so the wire
1387
+ format is `JSON.stringify` of that value — and `Date.toJSON()` emits the same ISO-8601 UTC string
1388
+ `Moment.toJSON()` did. **Nothing changes on the wire.** Only host code that read a value out of a
1389
+ form control and called a moment method on it (`.format()`, `.add()`, `.startOf()`) needs
1390
+ rewriting; the platform APIs never exposed a `Moment` in a signature.
1391
+
1392
+ #### 6. The one visible difference
1393
+
1394
+ Date inputs render **`2026.07.28.`** where 6.x rendered `2026.7.28.` — the documented `YYYY.MM.DD`
1395
+ convention. The old rendering was not a decision: `MAT_MOMENT_DATE_FORMATS` used moment's `'l'`,
1396
+ which strips the zero padding off the Hungarian `L`. Typed input is **more** forgiving than 6.x,
1397
+ not less: `2026.07.28.`, `2026.07.28`, `2026.7.28.`, `2026.7.28` and ISO-8601 are all accepted.
1398
+
1399
+ The month picker is unchanged (`07/2026`), and grid/table date columns were never affected —
1400
+ `SmartDatePipe` and friends extend Angular's own `DatePipe` and never used moment.
1401
+
1402
+ ### HTTP: the library no longer forces the XHR backend (Phase 3.8)
1403
+
1404
+ `provideSmartNgClient()` used to pass `withXhr()` to its internal `provideHttpClient()` call,
1405
+ overriding the Angular 22 default on your behalf. It no longer does — the application runs on the
1406
+ framework default **fetch** backend.
1407
+
1408
+ For almost every host this is invisible. The one behavioural difference that matters: **the fetch
1409
+ backend does not support upload progress.** A request with `reportProgress: true` and a body
1410
+ throws `NG2824` instead of emitting `HttpUploadProgress` events.
1411
+
1412
+ Measured 2026-07-28 across 12 hosts: **`reportProgress: true` and `observe: 'events'` appear
1413
+ nowhere** outside the generated API services' unused parameters. So this is a theoretical risk for
1414
+ the current host set, not a live one. If *your* code does ask for upload progress, pass the
1415
+ feature back in:
1416
+
1417
+ ```ts
1418
+ import { withXhr } from '@angular/common/http';
1419
+
1420
+ provideSmartNgClient({ httpFeatures: [withXhr()] })
1421
+ ```
1422
+
1423
+ The upside is that the "**do not call `provideHttpClient()` twice**" trap this guide warned about
1424
+ is gone rather than merely documented: a second call now re-provides the same backend the library
1425
+ already uses. The library's interceptors were never at risk from it — they are `multi` providers.
1426
+
1427
+ ### `getActionDescriptor()` is synchronous (Phase 3.9)
1428
+
1429
+ `UiActionDescriptorService.getActionDescriptor(uiAction)` returns a `UiActionDescriptor`.
1430
+ It used to return a `Promise<UiActionDescriptor>`, and it was `async` for exactly one
1431
+ reason: the client-side translation layer that [Phase 3.7](#client-side-translation-is-gone)
1432
+ retired. Nothing it reads has been asynchronous since, so every caller was awaiting a value
1433
+ that was already there.
1434
+
1435
+ **If you only `await` the call, you are already fine.** `await` on a non-promise is legal
1436
+ TypeScript, so this compiles and behaves identically before and after. The codemod drops the
1437
+ `await` anyway, so the code stops claiming an asynchrony that is not there:
1438
+
1439
+ ```ts
1440
+ const descriptor = await this.uiActionDescriptor.getActionDescriptor(uiAction); // 6.x
1441
+ const descriptor = this.uiActionDescriptor.getActionDescriptor(uiAction); // 7.0
1442
+ ```
1443
+
1444
+ Two shapes genuinely break. Measured 2026-07-28 across the 12 hosts in scope: **5 hosts,
1445
+ 7 sites** — and none of them in a host's own `getActionDescriptor**s**()` map helper, which
1446
+ is an unrelated API and is left alone.
1447
+
1448
+ **1. A subclass that overrides it** — `TS2416`, because `Promise<UiActionDescriptor>` is not
1449
+ assignable to `UiActionDescriptor`. Found in three hosts, as a byte-identical
1450
+ `MdmUiActionDescriptorService`. **The codemod rewrites this one.**
1451
+
1452
+ ```ts
1453
+ // 6.x
1454
+ override async getActionDescriptor(uiAction: UiAction): Promise<UiActionDescriptor> {
1455
+ let d: UiActionDescriptor = await super.getActionDescriptor(basicUiAction);
1456
+
1457
+ }
1458
+
1459
+ // 7.0
1460
+ override getActionDescriptor(uiAction: UiAction): UiActionDescriptor {
1461
+ let d: UiActionDescriptor = super.getActionDescriptor(basicUiAction);
1462
+
1463
+ }
1464
+ ```
1465
+
1466
+ This is also the service you hand to a toolbar through `[uiActionDescriptorService]`, so a
1467
+ host with a custom one hits this at compile time rather than on screen.
1468
+
1469
+ **2. `.then(…)` on the result** — `TS2339`, because a descriptor has no `.then`. Found in
1470
+ two hosts, four sites. **The codemod reports this one and does not rewrite it**: turning a
1471
+ callback into straight-line code means moving its body, which is a judgment call. The fix is
1472
+ mechanical anyway — assign, then inline:
1473
+
1474
+ ```ts
1475
+ // 6.x
1476
+ constructForm() {
1477
+ this.actionDescriptorService.getActionDescriptor(this.uiAction).then((d) => {
1478
+ this.buttonTitle = d.title;
1479
+ this.buttonColor = d.color;
1480
+ });
1481
+
1482
+ }
1483
+
1484
+ // 7.0
1485
+ constructForm() {
1486
+ const d = this.actionDescriptorService.getActionDescriptor(this.uiAction);
1487
+ this.buttonTitle = d.title;
1488
+ this.buttonColor = d.color;
1489
+
1490
+ }
1491
+ ```
1492
+
1493
+ If the callback was the reason a field lived in a `signal` — because the value arrived after
1494
+ the first render — it no longer needs to. The library made that same simplification in its
1495
+ own three action dialogs and its snack bar.
1496
+
1497
+ **What went synchronous with it, inside the library:** the toolbar's descriptor resolution,
1498
+ `SmartGridComponent`'s header construction, and `SmartTreeGenericService.cacheActionDesciptors()`
1499
+ and **`syncTree()`**. `syncTree()` now returns `void`, which is what
1500
+ `SmartTreeServiceInterface` always declared; a host that calls it and discards the result —
1501
+ the only shape measured — needs no change, and a host that `await`s it still compiles.
1502
+
1503
+ #### The same cleanup, elsewhere: `SmartdialogService.closeDialog()` returns `void`
1504
+
1505
+ A sweep for the same shape found eight more library functions declared `async` with nothing
1506
+ asynchronous in them. Only one of them is on a surface a host touches:
1507
+ **`SmartdialogService.closeDialog(stopPropagate?)` returns `void`** instead of
1508
+ `Promise<void>`.
1509
+
1510
+ **Nothing to do.** Both measured hosts that extend `SmartdialogService` override this method
1511
+ as `override async closeDialog(): Promise<void>`, and that **still compiles**: TypeScript
1512
+ accepts any return type where the base declares `void`. `await this.closeDialog()` keeps
1513
+ compiling too. This is the difference from `getActionDescriptor` above — that one returns a
1514
+ *value*, which is why the same override shape fails there with `TS2416` and not here.
1515
+
1516
+ You may of course drop the `async` from your own override; nothing requires it.
1517
+
1518
+ ### Upload actions now wait for the server, and report their failures (Phase 3.9)
1519
+
1520
+ **This one changes behaviour, on purpose.** `SmartViewContextService.performUploadAction()`
1521
+ and `performUploadMultipleAction()` used to start the upload and resolve immediately,
1522
+ without waiting for it and without passing on its failure. Every other action in the family
1523
+ (`performAction`, `performWidgetAction`, `performWidgetMainAction`, `dataChanged`) always
1524
+ waited; the two upload ones were an omission.
1525
+
1526
+ Two things follow, and both are visible in a running app:
1527
+
1528
+ 1. **An upload action now blocks until the server has answered.** Before, the action was
1529
+ "done" the moment the request went out — so `UiActionService` showed its success snackbar
1530
+ over an upload that was still in flight, and anything the action was sequenced before ran
1531
+ against a view the server had not updated yet. Now the snackbar appears when the upload
1532
+ really has succeeded. On a large file that is a longer wait than 6.x showed you.
1533
+
1534
+ 2. **A failed upload now reaches your error handling.** The rejection used to be dropped —
1535
+ it became an unhandled promise rejection, `UiActionService`'s `catch` never ran, and the
1536
+ user was told the upload had worked. It now propagates, which means
1537
+ `setActionErrorHandler()` (or the default error dialog) will fire on upload failures it
1538
+ never fired on before. **If your host reports "new" upload errors after upgrading, they
1539
+ are not new** — they were happening silently.
1540
+
1541
+ Multi-file uploads also go out **one batch at a time** now. The batches were already being
1542
+ computed from the descriptor's `maxSize` and `maxBatchSize`, but they were then all sent at
1543
+ once, which put the whole set on the server simultaneously and defeated the split. If your
1544
+ backend measured upload concurrency, this is why it drops.
1545
+
1546
+ Nothing to change in host code.
1547
+
1548
+ ### New in 7.0: a grid row can render a backend layout (#29717)
1549
+
1550
+ A card-mode grid row that carries `layoutDescriptor.componentLayouts['GRID_ROW_LAYOUT']`
1551
+ renders that layout instead of the card component the host registered under
1552
+ `'<GRID_ID>Card'`. Both branches stay: a row without the descriptor behaves exactly as
1553
+ before, and this needs no host change.
1554
+
1555
+ Two consequences worth knowing if you style or extend it:
1556
+
1557
+ - The rendered layout's root element gets the `gridCardLayout` class, applied by the card to
1558
+ its own child rather than pushed into the `style.classesToAdd` of the object the backend
1559
+ sent. Nothing mutates the server model.
1560
+ - **The row's actions reach the layout's toolbars by a pull, not a walk.** The card provides
1561
+ a `SmartActionHost` for its row subtree and writes the row's action list into it; a toolbar
1562
+ inside the layout resolves that host before falling back to the page client. If you build
1563
+ a component that owns such a subtree, do the same — `WIDGETS.md`, *Toolbars*.
1564
+
1565
+ This shipped in 7.0.0 rather than as a 6.0.3x patch because it is built on the inverted
1566
+ widget contract that 7.0 introduces.
1567
+
1568
+ ### Writing your own widget
1569
+
1570
+ `WIDGETS.md`, next to this file, is the protocol: how a widget finds its screen component
1571
+ through DI and registers itself, when to opt out with `[smartComponentDetached]`, what has to
1572
+ be a signal now that there is no zone, how a toolbar resolves its actions, and the three
1573
+ traps that have actually bitten (imperatively-fed inputs cannot be signal inputs; `@for`
1574
+ tracking over backend objects; clear-then-apply styling).
1575
+
1576
+ In 6.x this was not possible at all — `SmartComponentApiClient` collected its children with
1577
+ eight `@ViewChildren` over eight concrete widget classes.
1578
+
1579
+ ### Imperatively created components are given their inputs properly
1580
+
1581
+ `ComponentFactoryService` creates the components the library instantiates by hand — grid
1582
+ cards, expanded rows, table cell components, the expandable section's content, the form's
1583
+ `COMPONENT` widget, the filter editor's field editors — and most of those classes come from a
1584
+ host. It used to write their inputs by assigning the field. Two things follow, and both are
1585
+ fixed:
1586
+
1587
+ - **A declared input is now written with `ref.setInput()`**, i.e. the same way a template
1588
+ binding writes it. So a **signal input** works (assignment used to overwrite the input
1589
+ function with the value, and the component's next `this.x()` threw `x is not a function`),
1590
+ an **aliased** input is addressable under either name, and **`ngOnChanges` runs**.
1591
+ - **Falsy values arrive.** The old guard was `if (value)`, so `false`, `0` and `''` never
1592
+ reached the component. Only `undefined` is skipped now, which keeps meaning "not passed".
1593
+
1594
+ If your component takes something from the library this way and the key is **not** a declared
1595
+ input, the field is still assigned — nothing breaks — but you get one `console.warn` per
1596
+ component type and key. Declaring it with `@Input()` (or as a signal input) is the fix.
1597
+
1598
+ **Check your falsy defaults.** If a host component relied on the old guard — expecting to
1599
+ keep its own default when the library passed `false` or `''` — it now receives the value.
1600
+ This is the only part of 7.0 where a bugfix can change what you see on screen without any
1601
+ code of yours changing.
1602
+
1603
+ ### Bugfixes shipped with 7.0
1604
+
1605
+ - `SmartformwidgetComponent.ngAfterViewInit` no longer crashes with
1606
+ `Cannot read properties of undefined (reading 'valueChanges')` when the form
1607
+ contains a `MONTH_PICKER` widget (it wrongly subscribed to the non-existent
1608
+ `<key>-time` control; only `DATE_TIME_PICKER` has one).
1609
+ - A widget nested in a CONTAINER receives `blurSophisticatedValueChange`; the recursion never
1610
+ passed it down, so a BLUR-mode child would have thrown on blur.
1611
+ - `SmartformComponent` reaches widgets nested in a CONTAINER when it changes them in place
1612
+ (values, constraints, the touched state after a failed submit). The view query it used
1613
+ could not see them.
1614
+ - `UiActionDescriptorService` no longer shares one dialog object between actions. Any action
1615
+ whose descriptor had no `dialog` of its own was given the service's single placeholder — the
1616
+ same object every time — and had its title and button caption written into it, so resolving
1617
+ one action renamed the dialog every other one was holding. The service is
1618
+ `providedIn: 'root'`, so this outlasted the view.
1619
+
1620
+ What you saw on screen, measured on both versions:
1621
+
1622
+ | The action | 6.x, when the dialog opened | 7.0 |
1623
+ |---|---|---|
1624
+ | described by the backend, no dialog of its own | **another action's code** | its own code |
1625
+ | described by nothing at all | **another action's code**, or empty | empty |
1626
+ | registered client-side, no dialog of its own | its own code | unchanged |
1627
+
1628
+ The middle column is not a typo. An action the backend describes is resolved twice in the
1629
+ normal flow — once when the toolbar renders it, again when the dialog it opens resolves it
1630
+ for itself — and the first resolution wrote a dialog onto the action's own descriptor, so the
1631
+ second one skipped the step that fills in the title. What the dialog then showed was whatever
1632
+ code had last passed through the shared object. An **already open** dialog could change too,
1633
+ since its title is re-read on every change-detection pass.
1634
+
1635
+ An action nothing describes still gets an untitled placeholder dialog: its *button* carries
1636
+ the code, the dialog does not. That is unchanged and deliberate — such an action is a gap in
1637
+ the host's descriptor map, and this is the honest rendering of it.
1638
+
1639
+ A resolved descriptor is now the caller's own object throughout, which also means
1640
+ `getActionDescriptor()` no longer writes a placeholder dialog and a `SNACKBAR` feedbackType
1641
+ into the `descriptor` the backend put on the action itself.