@smartbit4all/ng-client 3.3.206 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (844) hide show
  1. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +17 -0
  2. package/{esm2020 → esm2022}/lib/component-factory-service/component-factory-service.service.mjs +35 -35
  3. package/{esm2020 → esm2022}/lib/component-factory-service/projects.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/session/api/api/api.mjs +3 -3
  5. package/esm2022/lib/session/api/api/session.service.mjs +306 -0
  6. package/esm2022/lib/session/api/configuration.mjs +91 -0
  7. package/{esm2020 → esm2022}/lib/session/api/encoder.mjs +18 -18
  8. package/{esm2020 → esm2022}/lib/session/api/index.mjs +2 -2
  9. package/{esm2020 → esm2022}/lib/session/api/model/accountInfo.mjs +12 -12
  10. package/{esm2020 → esm2022}/lib/session/api/model/apiError.mjs +12 -12
  11. package/{esm2020 → esm2022}/lib/session/api/model/authenticationProviderData.mjs +12 -12
  12. package/{esm2020 → esm2022}/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
  13. package/{esm2020 → esm2022}/lib/session/api/model/models.mjs +8 -8
  14. package/{esm2020 → esm2022}/lib/session/api/model/refreshSessionRequest.mjs +12 -12
  15. package/{esm2020 → esm2022}/lib/session/api/model/session.mjs +1 -1
  16. package/esm2022/lib/session/api/model/sessionInfoData.mjs +2 -0
  17. package/{esm2020 → esm2022}/lib/session/api/model/userActivityLog.mjs +12 -12
  18. package/{esm2020 → esm2022}/lib/session/api/param.mjs +1 -1
  19. package/{esm2020 → esm2022}/lib/session/api/variables.mjs +8 -8
  20. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
  21. package/{esm2020 → esm2022}/lib/session/projects.mjs +9 -9
  22. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +71 -0
  23. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +46 -0
  24. package/{esm2020 → esm2022}/lib/session/smart-session-handler.service.mjs +5 -5
  25. package/esm2022/lib/session/smart-session.module.mjs +58 -0
  26. package/esm2022/lib/session/smart-session.service.mjs +225 -0
  27. package/{esm2020 → esm2022}/lib/session/smart-timer/smart-session-timer.component.mjs +35 -35
  28. package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +58 -0
  29. package/{esm2020 → esm2022}/lib/shared/projects.mjs +3 -3
  30. package/esm2022/lib/shared/shared.module.mjs +19 -0
  31. package/esm2022/lib/shared/smart-tooltip.directive.mjs +58 -0
  32. package/{esm2020 → esm2022}/lib/shared/smarttable.date-pipe.mjs +43 -43
  33. package/{esm2020 → esm2022}/lib/smart-client/projects.mjs +4 -4
  34. package/{esm2020 → esm2022}/lib/smart-client/smart-authentication.service.mjs +21 -21
  35. package/esm2022/lib/smart-client/smart-component-api-client.mjs +717 -0
  36. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +53 -0
  37. package/{esm2020 → esm2022}/lib/smart-client/smart.component.mjs +77 -77
  38. package/{esm2020 → esm2022}/lib/smart-client/smart.service.mjs +75 -75
  39. package/{esm2020 → esm2022}/lib/smart-component-layout/api/api/api.mjs +4 -4
  40. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +133 -0
  41. package/esm2022/lib/smart-component-layout/api/api.module.mjs +40 -0
  42. package/esm2022/lib/smart-component-layout/api/configuration.mjs +91 -0
  43. package/{esm2020 → esm2022}/lib/smart-component-layout/api/encoder.mjs +19 -19
  44. package/{esm2020 → esm2022}/lib/smart-component-layout/api/index.mjs +7 -7
  45. package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/componentType.mjs +18 -18
  46. package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/componentWidgetType.mjs +19 -19
  47. package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/layoutDirection.mjs +17 -17
  48. package/{esm2020 → esm2022}/lib/smart-component-layout/api/model/models.mjs +6 -6
  49. package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
  50. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
  51. package/esm2022/lib/smart-component-layout/api/param.mjs +2 -0
  52. package/{esm2020 → esm2022}/lib/smart-component-layout/api/variables.mjs +9 -9
  53. package/{esm2020 → esm2022}/lib/smart-component-layout/projects.mjs +7 -7
  54. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +94 -0
  55. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +259 -0
  56. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +41 -0
  57. package/{esm2020 → esm2022}/lib/smart-dialog/projects.mjs +7 -7
  58. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +54 -0
  59. package/{esm2020 → esm2022}/lib/smart-dialog/smartdialog.model.mjs +15 -15
  60. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +46 -0
  61. package/{esm2020 → esm2022}/lib/smart-dialog/smartdialog.service.mjs +54 -54
  62. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +88 -0
  63. package/{esm2020 → esm2022}/lib/smart-expandable-section/expandable-section.model.mjs +11 -11
  64. package/{esm2020 → esm2022}/lib/smart-expandable-section/projects.mjs +7 -7
  65. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +49 -0
  66. package/{esm2020 → esm2022}/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -14
  67. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +17 -17
  68. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
  69. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +8 -0
  70. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
  71. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
  72. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +20 -20
  73. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
  74. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
  75. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +27 -27
  76. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
  77. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
  78. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +32 -32
  79. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +18 -18
  80. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/model.mjs +15 -15
  81. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
  82. package/{esm2020 → esm2022}/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +12 -12
  83. package/{esm2020 → esm2022}/lib/smart-filter/api/value/model/value.mjs +12 -12
  84. package/{esm2020 → esm2022}/lib/smart-filter/projects.mjs +8 -8
  85. package/{esm2020 → esm2022}/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -14
  86. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +165 -0
  87. package/{esm2020 → esm2022}/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -45
  88. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
  89. package/{esm2020 → esm2022}/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -31
  90. package/{esm2020 → esm2022}/lib/smart-filter/smart-filter.model.mjs +12 -12
  91. package/esm2022/lib/smart-filter/smart-filter.module.mjs +33 -0
  92. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +198 -0
  93. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +91 -0
  94. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/encoder.mjs +19 -19
  95. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +17 -17
  96. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +13 -0
  97. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +2 -0
  98. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +8 -0
  99. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +2 -0
  100. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +7 -0
  101. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +2 -0
  102. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +20 -20
  103. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
  104. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +2 -0
  105. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +2 -0
  106. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +27 -27
  107. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +2 -0
  108. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +2 -0
  109. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +32 -32
  110. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +18 -18
  111. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/model/smartFilterType.mjs +17 -17
  112. package/esm2022/lib/smart-filter-editor/api/param.mjs +2 -0
  113. package/{esm2020 → esm2022}/lib/smart-filter-editor/api/variables.mjs +9 -9
  114. package/{esm2020 → esm2022}/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +14 -14
  115. package/{esm2020 → esm2022}/lib/smart-filter-editor/project.mjs +7 -7
  116. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +73 -0
  117. package/{esm2020 → esm2022}/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +40 -40
  118. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +235 -0
  119. package/{esm2020 → esm2022}/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
  120. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +69 -0
  121. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +47 -0
  122. package/{esm2020 → esm2022}/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +24 -24
  123. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +57 -0
  124. package/{esm2020 → esm2022}/lib/smart-form/api/api/api.mjs +3 -3
  125. package/esm2022/lib/smart-form/api/api/default.service.mjs +133 -0
  126. package/esm2022/lib/smart-form/api/api.module.mjs +40 -0
  127. package/esm2022/lib/smart-form/api/configuration.mjs +91 -0
  128. package/{esm2020 → esm2022}/lib/smart-form/api/encoder.mjs +18 -18
  129. package/{esm2020 → esm2022}/lib/smart-form/api/index.mjs +6 -6
  130. package/{esm2020 → esm2022}/lib/smart-form/api/model/models.mjs +10 -10
  131. package/{esm2020 → esm2022}/lib/smart-form/api/model/propertyMapping.mjs +12 -12
  132. package/{esm2020 → esm2022}/lib/smart-form/api/model/selectionDefinition.mjs +6 -6
  133. package/{esm2020 → esm2022}/lib/smart-form/api/model/smartFormInputMode.mjs +21 -21
  134. package/{esm2020 → esm2022}/lib/smart-form/api/model/smartFormWidgetDirection.mjs +16 -16
  135. package/{esm2020 → esm2022}/lib/smart-form/api/model/smartFormWidgetType.mjs +44 -44
  136. package/{esm2020 → esm2022}/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
  137. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
  138. package/{esm2020 → esm2022}/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  139. package/{esm2020 → esm2022}/lib/smart-form/api/model/smartWidgetHint.mjs +17 -17
  140. package/{esm2020 → esm2022}/lib/smart-form/api/model/valueChangeMode.mjs +19 -19
  141. package/{esm2020 → esm2022}/lib/smart-form/api/param.mjs +1 -1
  142. package/{esm2020 → esm2022}/lib/smart-form/api/variables.mjs +8 -8
  143. package/{esm2020 → esm2022}/lib/smart-form/highlightMacthingString-pipe.mjs +20 -20
  144. package/{esm2020 → esm2022}/lib/smart-form/projects.mjs +12 -12
  145. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +542 -0
  146. package/esm2022/lib/smart-form/services/smartform.service.mjs +640 -0
  147. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +15 -0
  148. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +78 -0
  149. package/{esm2020 → esm2022}/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
  150. package/esm2022/lib/smart-form/smartform.component.mjs +178 -0
  151. package/{esm2020 → esm2022}/lib/smart-form/smartform.form-model.mjs +1 -1
  152. package/{esm2020 → esm2022}/lib/smart-form/smartform.model.mjs +37 -37
  153. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +84 -0
  154. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +735 -0
  155. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +59 -0
  156. package/{esm2020 → esm2022}/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -31
  157. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/api/api.mjs +3 -3
  158. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +451 -0
  159. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
  160. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +91 -0
  161. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/encoder.mjs +18 -18
  162. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/index.mjs +6 -6
  163. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +16 -16
  164. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
  165. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +19 -19
  166. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  167. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
  168. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
  169. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +12 -12
  170. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +17 -17
  171. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +16 -16
  172. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
  173. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  174. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
  175. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +7 -7
  176. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/model/models.mjs +13 -13
  177. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/param.mjs +1 -1
  178. package/{esm2020 → esm2022}/lib/smart-grid/api/grid-api/variables.mjs +8 -8
  179. package/{esm2020 → esm2022}/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -20
  180. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +61 -0
  181. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +182 -0
  182. package/{esm2020 → esm2022}/lib/smart-grid/models/model.mjs +28 -28
  183. package/{esm2020 → esm2022}/lib/smart-grid/projects.mjs +8 -8
  184. package/esm2022/lib/smart-grid/smart-grid.component.mjs +767 -0
  185. package/esm2022/lib/smart-grid/smart-grid.module.mjs +76 -0
  186. package/esm2022/lib/smart-grid/smart-grid.service.mjs +80 -0
  187. package/{esm2020 → esm2022}/lib/smart-icon/projects.mjs +6 -6
  188. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +40 -0
  189. package/esm2022/lib/smart-icon/smart-icon.module.mjs +22 -0
  190. package/esm2022/lib/smart-icon/smart-icon.service.mjs +74 -0
  191. package/{esm2020 → esm2022}/lib/smart-navbar/projects.mjs +7 -7
  192. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +61 -0
  193. package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar.model.mjs +5 -5
  194. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +63 -0
  195. package/{esm2020 → esm2022}/lib/smart-navbar/smart-navbar.service.mjs +14 -14
  196. package/{esm2020 → esm2022}/lib/smart-navigation/projects.mjs +5 -5
  197. package/{esm2020 → esm2022}/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
  198. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +18 -0
  199. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +56 -0
  200. package/esm2022/lib/smart-ng-client.module.mjs +126 -0
  201. package/{esm2020 → esm2022}/lib/smart-ng-client.service.mjs +19 -19
  202. package/{esm2020 → esm2022}/lib/smart-subject/projects.mjs +4 -4
  203. package/esm2022/lib/smart-subject/smart-subject.mjs +21 -0
  204. package/{esm2020 → esm2022}/lib/smart-tab-group/projects.mjs +8 -8
  205. package/esm2022/lib/smart-tab-group/smart-tab-group.component.mjs +43 -0
  206. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +25 -0
  207. package/{esm2020 → esm2022}/lib/smart-tab-group/smart-tab-group.service.mjs +14 -14
  208. package/esm2022/lib/smart-tab-group/tab-content/tab-content.component.mjs +31 -0
  209. package/esm2022/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +66 -0
  210. package/{esm2020 → esm2022}/lib/smart-tab-group/tabTile.model.mjs +1 -1
  211. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +43 -0
  212. package/{esm2020 → esm2022}/lib/smart-table/components/loading/loading.component.mjs +15 -15
  213. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +52 -0
  214. package/{esm2020 → esm2022}/lib/smart-table/projects.mjs +7 -7
  215. package/esm2022/lib/smart-table/smarttable.component.mjs +98 -0
  216. package/esm2022/lib/smart-table/smarttable.model.mjs +169 -0
  217. package/esm2022/lib/smart-table/smarttable.module.mjs +105 -0
  218. package/{esm2020 → esm2022}/lib/smart-table/smarttable.service.mjs +14 -14
  219. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +39 -0
  220. package/{esm2020 → esm2022}/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +23 -23
  221. package/esm2022/lib/smart-table/tables/table.mjs +520 -0
  222. package/{esm2020 → esm2022}/lib/smart-tree/projects.mjs +8 -8
  223. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +288 -0
  224. package/esm2022/lib/smart-tree/smarttree.component.mjs +181 -0
  225. package/{esm2020 → esm2022}/lib/smart-tree/smarttree.model.mjs +6 -6
  226. package/esm2022/lib/smart-tree/smarttree.module.mjs +60 -0
  227. package/{esm2020 → esm2022}/lib/smart-tree/smarttree.node.model.mjs +5 -5
  228. package/{esm2020 → esm2022}/lib/smart-tree/smarttree.service.interface.mjs +1 -1
  229. package/esm2022/lib/smart-tree/smarttree.service.mjs +47 -0
  230. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1190 -0
  231. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +91 -0
  232. package/{esm2020 → esm2022}/lib/smart-tree/tree-api/encoder.mjs +19 -19
  233. package/esm2022/lib/smart-tree/tree-api/param.mjs +2 -0
  234. package/{esm2020 → esm2022}/lib/smart-tree/tree-api/variables.mjs +9 -9
  235. package/{esm2020 → esm2022}/lib/view-context/api/api/api.mjs +3 -3
  236. package/esm2022/lib/view-context/api/api/view.service.mjs +903 -0
  237. package/esm2022/lib/view-context/api/api.module.mjs +40 -0
  238. package/esm2022/lib/view-context/api/configuration.mjs +91 -0
  239. package/{esm2020 → esm2022}/lib/view-context/api/encoder.mjs +18 -18
  240. package/{esm2020 → esm2022}/lib/view-context/api/index.mjs +6 -6
  241. package/esm2022/lib/view-context/api/model/clipboardData.mjs +13 -0
  242. package/{esm2020 → esm2022}/lib/view-context/api/model/closeResult.mjs +17 -17
  243. package/{esm2020 → esm2022}/lib/view-context/api/model/componentConstraint.mjs +1 -1
  244. package/{esm2020 → esm2022}/lib/view-context/api/model/componentModel.mjs +1 -1
  245. package/{esm2020 → esm2022}/lib/view-context/api/model/componentModelChange.mjs +12 -12
  246. package/{esm2020 → esm2022}/lib/view-context/api/model/dataChange.mjs +1 -1
  247. package/{esm2020 → esm2022}/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
  248. package/{esm2020 → esm2022}/lib/view-context/api/model/dataChangeKind.mjs +20 -20
  249. package/{esm2020 → esm2022}/lib/view-context/api/model/downloadedFile.mjs +12 -12
  250. package/{esm2020 → esm2022}/lib/view-context/api/model/iconPosition.mjs +19 -19
  251. package/{esm2020 → esm2022}/lib/view-context/api/model/imageResource.mjs +7 -7
  252. package/{esm2020 → esm2022}/lib/view-context/api/model/link.mjs +19 -19
  253. package/{esm2020 → esm2022}/lib/view-context/api/model/messageData.mjs +1 -1
  254. package/{esm2020 → esm2022}/lib/view-context/api/model/messageOption.mjs +1 -1
  255. package/{esm2020 → esm2022}/lib/view-context/api/model/messageOptionType.mjs +17 -17
  256. package/{esm2020 → esm2022}/lib/view-context/api/model/messageResult.mjs +1 -1
  257. package/{esm2020 → esm2022}/lib/view-context/api/model/messageTextType.mjs +16 -16
  258. package/{esm2020 → esm2022}/lib/view-context/api/model/messageType.mjs +18 -18
  259. package/{esm2020 → esm2022}/lib/view-context/api/model/models.mjs +52 -52
  260. package/{esm2020 → esm2022}/lib/view-context/api/model/openPendingData.mjs +1 -1
  261. package/{esm2020 → esm2022}/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
  262. package/{esm2020 → esm2022}/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
  263. package/{esm2020 → esm2022}/lib/view-context/api/model/serverRequestType.mjs +23 -23
  264. package/{esm2020 → esm2022}/lib/view-context/api/model/smartLinkData.mjs +1 -1
  265. package/{esm2020 → esm2022}/lib/view-context/api/model/statisticRecord.mjs +12 -12
  266. package/{esm2020 → esm2022}/lib/view-context/api/model/style.mjs +12 -12
  267. package/{esm2020 → esm2022}/lib/view-context/api/model/uiAction.mjs +1 -1
  268. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionButtonDescriptor.mjs +12 -12
  269. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionButtonType.mjs +26 -26
  270. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionConstraint.mjs +12 -12
  271. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
  272. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
  273. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionFeedbackType.mjs +19 -19
  274. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionInputType.mjs +20 -20
  275. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionRequest.mjs +12 -12
  276. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionTooltip.mjs +21 -21
  277. package/{esm2020 → esm2022}/lib/view-context/api/model/uiActionUploadDescriptor.mjs +12 -12
  278. package/{esm2020 → esm2022}/lib/view-context/api/model/uploadedFile.mjs +12 -12
  279. package/{esm2020 → esm2022}/lib/view-context/api/model/valueSet.mjs +1 -1
  280. package/esm2022/lib/view-context/api/model/view.mjs +2 -0
  281. package/{esm2020 → esm2022}/lib/view-context/api/model/viewApiError.mjs +12 -12
  282. package/{esm2020 → esm2022}/lib/view-context/api/model/viewConstraint.mjs +1 -1
  283. package/esm2022/lib/view-context/api/model/viewContext.mjs +2 -0
  284. package/{esm2020 → esm2022}/lib/view-context/api/model/viewContextChange.mjs +1 -1
  285. package/esm2022/lib/view-context/api/model/viewContextData.mjs +2 -0
  286. package/{esm2020 → esm2022}/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
  287. package/{esm2020 → esm2022}/lib/view-context/api/model/viewData.mjs +1 -1
  288. package/{esm2020 → esm2022}/lib/view-context/api/model/viewEventHandler.mjs +17 -17
  289. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +13 -0
  290. package/{esm2020 → esm2022}/lib/view-context/api/model/viewState.mjs +21 -21
  291. package/{esm2020 → esm2022}/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
  292. package/{esm2020 → esm2022}/lib/view-context/api/model/viewType.mjs +17 -17
  293. package/{esm2020 → esm2022}/lib/view-context/api/param.mjs +1 -1
  294. package/{esm2020 → esm2022}/lib/view-context/api/variables.mjs +8 -8
  295. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +20 -0
  296. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +66 -0
  297. package/{esm2020 → esm2022}/lib/view-context/projects.mjs +16 -16
  298. package/{esm2020 → esm2022}/lib/view-context/property-definition-data.mjs +1 -1
  299. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
  300. package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +56 -56
  301. package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +48 -48
  302. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +72 -0
  303. package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +53 -53
  304. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +126 -0
  305. package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +52 -52
  306. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +146 -0
  307. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +180 -0
  308. package/{esm2020 → esm2022}/lib/view-context/smart-ui-action/ui-action.model.mjs +6 -6
  309. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +211 -0
  310. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +54 -0
  311. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +29 -0
  312. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +69 -0
  313. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +39 -0
  314. package/{esm2020 → esm2022}/lib/view-context/smart-view-context.model.mjs +1 -1
  315. package/esm2022/lib/view-context/smart-view-context.module.mjs +221 -0
  316. package/esm2022/lib/view-context/smart-view-context.service.mjs +685 -0
  317. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +33 -0
  318. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +30 -0
  319. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +68 -0
  320. package/{esm2020 → esm2022}/lib/view-context/value-api/api/api.mjs +4 -4
  321. package/esm2022/lib/view-context/value-api/api/value.service.mjs +138 -0
  322. package/esm2022/lib/view-context/value-api/api.module.mjs +40 -0
  323. package/esm2022/lib/view-context/value-api/configuration.mjs +91 -0
  324. package/{esm2020 → esm2022}/lib/view-context/value-api/encoder.mjs +19 -19
  325. package/{esm2020 → esm2022}/lib/view-context/value-api/index.mjs +7 -7
  326. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +13 -0
  327. package/{esm2020 → esm2022}/lib/view-context/value-api/model/models.mjs +11 -11
  328. package/esm2022/lib/view-context/value-api/model/value.mjs +13 -0
  329. package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetData.mjs +1 -1
  330. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +2 -0
  331. package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
  332. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +13 -0
  333. package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +23 -23
  334. package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
  335. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +2 -0
  336. package/{esm2020 → esm2022}/lib/view-context/value-api/model/valueSetOperation.mjs +18 -18
  337. package/esm2022/lib/view-context/value-api/param.mjs +2 -0
  338. package/{esm2020 → esm2022}/lib/view-context/value-api/variables.mjs +9 -9
  339. package/{esm2020 → esm2022}/projects.mjs +25 -25
  340. package/{esm2020 → esm2022}/smartbit4all-ng-client.mjs +4 -4
  341. package/{fesm2020 → fesm2022}/smartbit4all-ng-client.mjs +15903 -15913
  342. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -0
  343. package/{smartbit4all-ng-client.d.ts → index.d.ts} +5 -5
  344. package/lib/component-factory-service/component-factory-service.module.d.ts +6 -6
  345. package/lib/component-factory-service/component-factory-service.service.d.ts +13 -13
  346. package/lib/component-factory-service/projects.d.ts +2 -2
  347. package/lib/session/api/api/api.d.ts +3 -3
  348. package/lib/session/api/api/session.service.d.ts +107 -107
  349. package/lib/session/api/configuration.d.ts +104 -104
  350. package/lib/session/api/encoder.d.ts +11 -11
  351. package/lib/session/api/index.d.ts +2 -2
  352. package/lib/session/api/model/accountInfo.d.ts +22 -22
  353. package/lib/session/api/model/apiError.d.ts +15 -15
  354. package/lib/session/api/model/authenticationProviderData.d.ts +17 -17
  355. package/lib/session/api/model/getAuthenticationProvidersResponse.d.ts +15 -15
  356. package/lib/session/api/model/models.d.ts +8 -8
  357. package/lib/session/api/model/refreshSessionRequest.d.ts +14 -14
  358. package/lib/session/api/model/session.d.ts +32 -32
  359. package/lib/session/api/model/sessionInfoData.d.ts +26 -26
  360. package/lib/session/api/model/userActivityLog.d.ts +33 -33
  361. package/lib/session/api/param.d.ts +37 -37
  362. package/lib/session/api/variables.d.ts +8 -8
  363. package/lib/session/cookie-service/smart-cookie.service.d.ts +129 -129
  364. package/lib/session/projects.d.ts +6 -6
  365. package/lib/session/smart-error-catching.interceptor.d.ts +13 -13
  366. package/lib/session/smart-header-maintainer.interceptor.d.ts +11 -11
  367. package/lib/session/smart-session-handler.service.d.ts +11 -11
  368. package/lib/session/smart-session.module.d.ts +12 -12
  369. package/lib/session/smart-session.service.d.ts +54 -54
  370. package/lib/session/smart-timer/smart-session-timer.component.d.ts +14 -14
  371. package/lib/session/smart-timer/smart-session-timer.service.d.ts +21 -21
  372. package/lib/shared/projects.d.ts +3 -3
  373. package/lib/shared/shared.module.d.ts +9 -9
  374. package/lib/shared/smart-tooltip.directive.d.ts +16 -16
  375. package/lib/shared/smarttable.date-pipe.d.ts +18 -18
  376. package/lib/smart-client/projects.d.ts +4 -4
  377. package/lib/smart-client/smart-authentication.service.d.ts +15 -15
  378. package/lib/smart-client/smart-component-api-client.d.ts +111 -111
  379. package/lib/smart-client/smart-file-uploader/smart-file-uploader.component.d.ts +18 -18
  380. package/lib/smart-client/smart.component.d.ts +30 -30
  381. package/lib/smart-client/smart.service.d.ts +30 -30
  382. package/lib/smart-component-layout/api/api/api.d.ts +3 -3
  383. package/lib/smart-component-layout/api/api/default.service.d.ts +33 -33
  384. package/lib/smart-component-layout/api/api.module.d.ts +11 -11
  385. package/lib/smart-component-layout/api/configuration.d.ts +104 -104
  386. package/lib/smart-component-layout/api/encoder.d.ts +11 -11
  387. package/lib/smart-component-layout/api/index.d.ts +6 -6
  388. package/lib/smart-component-layout/api/model/componentType.d.ts +16 -16
  389. package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +17 -17
  390. package/lib/smart-component-layout/api/model/layoutDirection.d.ts +15 -15
  391. package/lib/smart-component-layout/api/model/models.d.ts +5 -5
  392. package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +26 -26
  393. package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +20 -20
  394. package/lib/smart-component-layout/api/param.d.ts +37 -37
  395. package/lib/smart-component-layout/api/variables.d.ts +8 -8
  396. package/lib/smart-component-layout/projects.d.ts +4 -4
  397. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +14 -14
  398. package/lib/smart-component-layout/smart-component-layout.component.d.ts +58 -58
  399. package/lib/smart-component-layout/smart-component-layout.module.d.ts +13 -13
  400. package/lib/smart-dialog/projects.d.ts +4 -4
  401. package/lib/smart-dialog/smartdialog.component.d.ts +19 -19
  402. package/lib/smart-dialog/smartdialog.model.d.ts +67 -67
  403. package/lib/smart-dialog/smartdialog.module.d.ts +14 -14
  404. package/lib/smart-dialog/smartdialog.service.d.ts +23 -23
  405. package/lib/smart-expandable-section/expandable-section.component.d.ts +25 -25
  406. package/lib/smart-expandable-section/expandable-section.model.d.ts +42 -42
  407. package/lib/smart-expandable-section/projects.d.ts +4 -4
  408. package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +15 -15
  409. package/lib/smart-expandable-section/smart-expandable-section.service.d.ts +6 -6
  410. package/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.d.ts +15 -15
  411. package/lib/smart-filter/api/filter/model/filterExpressionBuilderField.d.ts +27 -27
  412. package/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.d.ts +36 -36
  413. package/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.d.ts +27 -27
  414. package/lib/smart-filter/api/filter/model/filterExpressionData.d.ts +27 -27
  415. package/lib/smart-filter/api/filter/model/filterExpressionDataType.d.ts +18 -18
  416. package/lib/smart-filter/api/filter/model/filterExpressionField.d.ts +40 -40
  417. package/lib/smart-filter/api/filter/model/filterExpressionFieldList.d.ts +21 -21
  418. package/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.d.ts +25 -25
  419. package/lib/smart-filter/api/filter/model/filterExpressionList.d.ts +18 -18
  420. package/lib/smart-filter/api/filter/model/filterExpressionOperandData.d.ts +24 -24
  421. package/lib/smart-filter/api/filter/model/filterExpressionOperation.d.ts +30 -30
  422. package/lib/smart-filter/api/filter/model/filterExpressionOrderBy.d.ts +25 -25
  423. package/lib/smart-filter/api/filter/model/model.d.ts +15 -15
  424. package/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.d.ts +19 -19
  425. package/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.d.ts +18 -18
  426. package/lib/smart-filter/api/value/model/value.d.ts +29 -29
  427. package/lib/smart-filter/projects.d.ts +5 -5
  428. package/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.d.ts +8 -8
  429. package/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.d.ts +31 -31
  430. package/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.d.ts +18 -18
  431. package/lib/smart-filter/smart-filter/smart-filter.component.d.ts +15 -15
  432. package/lib/smart-filter/smart-filter/smart-filter.service.d.ts +16 -16
  433. package/lib/smart-filter/smart-filter.model.d.ts +25 -25
  434. package/lib/smart-filter/smart-filter.module.d.ts +15 -15
  435. package/lib/smart-filter-editor/api/api/filter.service.d.ts +57 -57
  436. package/lib/smart-filter-editor/api/configuration.d.ts +104 -104
  437. package/lib/smart-filter-editor/api/encoder.d.ts +11 -11
  438. package/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.d.ts +15 -15
  439. package/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.d.ts +16 -16
  440. package/lib/smart-filter-editor/api/model/filterExpressionBuilderField.d.ts +27 -27
  441. package/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.d.ts +36 -36
  442. package/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.d.ts +27 -27
  443. package/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.d.ts +38 -38
  444. package/lib/smart-filter-editor/api/model/filterExpressionData.d.ts +27 -27
  445. package/lib/smart-filter-editor/api/model/filterExpressionDataType.d.ts +18 -18
  446. package/lib/smart-filter-editor/api/model/filterExpressionField.d.ts +40 -40
  447. package/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.d.ts +17 -17
  448. package/lib/smart-filter-editor/api/model/filterExpressionFieldList.d.ts +21 -21
  449. package/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.d.ts +25 -25
  450. package/lib/smart-filter-editor/api/model/filterExpressionList.d.ts +18 -18
  451. package/lib/smart-filter-editor/api/model/filterExpressionOperandData.d.ts +24 -24
  452. package/lib/smart-filter-editor/api/model/filterExpressionOperation.d.ts +30 -30
  453. package/lib/smart-filter-editor/api/model/filterExpressionOrderBy.d.ts +28 -28
  454. package/lib/smart-filter-editor/api/model/smartFilterType.d.ts +15 -15
  455. package/lib/smart-filter-editor/api/param.d.ts +37 -37
  456. package/lib/smart-filter-editor/api/variables.d.ts +8 -8
  457. package/lib/smart-filter-editor/filterExpressionBuilderApiActions.d.ts +13 -13
  458. package/lib/smart-filter-editor/project.d.ts +7 -7
  459. package/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.d.ts +19 -19
  460. package/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.d.ts +17 -17
  461. package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +40 -40
  462. package/lib/smart-filter-editor/smart-filter-editor.model.d.ts +4 -4
  463. package/lib/smart-filter-editor/smart-filter-editor.module.d.ts +18 -18
  464. package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +35 -35
  465. package/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.d.ts +9 -9
  466. package/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.d.ts +21 -21
  467. package/lib/smart-form/api/api/api.d.ts +3 -3
  468. package/lib/smart-form/api/api/default.service.d.ts +33 -33
  469. package/lib/smart-form/api/api.module.d.ts +11 -11
  470. package/lib/smart-form/api/configuration.d.ts +104 -104
  471. package/lib/smart-form/api/encoder.d.ts +11 -11
  472. package/lib/smart-form/api/index.d.ts +6 -6
  473. package/lib/smart-form/api/model/models.d.ts +10 -10
  474. package/lib/smart-form/api/model/propertyMapping.d.ts +24 -24
  475. package/lib/smart-form/api/model/selectionDefinition.d.ts +41 -41
  476. package/lib/smart-form/api/model/smartFormInputMode.d.ts +20 -20
  477. package/lib/smart-form/api/model/smartFormWidgetDirection.d.ts +15 -15
  478. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +43 -43
  479. package/lib/smart-form/api/model/smartLayoutDefinition.d.ts +15 -15
  480. package/lib/smart-form/api/model/smartMatrixModel.d.ts +29 -29
  481. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +106 -106
  482. package/lib/smart-form/api/model/smartWidgetHint.d.ts +19 -19
  483. package/lib/smart-form/api/model/valueChangeMode.d.ts +18 -18
  484. package/lib/smart-form/api/param.d.ts +37 -37
  485. package/lib/smart-form/api/variables.d.ts +8 -8
  486. package/lib/smart-form/highlightMacthingString-pipe.d.ts +7 -7
  487. package/lib/smart-form/projects.d.ts +9 -9
  488. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +45 -45
  489. package/lib/smart-form/services/smartform.service.d.ts +46 -46
  490. package/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.d.ts +8 -8
  491. package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +22 -22
  492. package/lib/smart-form/smartfileuploader/smartfileuploader.model.d.ts +7 -7
  493. package/lib/smart-form/smartform.component.d.ts +40 -40
  494. package/lib/smart-form/smartform.form-model.d.ts +631 -631
  495. package/lib/smart-form/smartform.model.d.ts +120 -120
  496. package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts +29 -29
  497. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +132 -132
  498. package/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.d.ts +20 -20
  499. package/lib/smart-form/widgets/smartformwidget/trackCaps.directive.d.ts +9 -9
  500. package/lib/smart-grid/api/grid-api/api/api.d.ts +3 -3
  501. package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +161 -161
  502. package/lib/smart-grid/api/grid-api/api.module.d.ts +11 -11
  503. package/lib/smart-grid/api/grid-api/configuration.d.ts +104 -104
  504. package/lib/smart-grid/api/grid-api/encoder.d.ts +11 -11
  505. package/lib/smart-grid/api/grid-api/index.d.ts +6 -6
  506. package/lib/smart-grid/api/grid-api/model/gridColumnContentType.d.ts +15 -15
  507. package/lib/smart-grid/api/grid-api/model/gridColumnMeta.d.ts +33 -33
  508. package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +40 -40
  509. package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +34 -34
  510. package/lib/smart-grid/api/grid-api/model/gridPage.d.ts +26 -26
  511. package/lib/smart-grid/api/grid-api/model/gridRow.d.ts +39 -39
  512. package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +18 -18
  513. package/lib/smart-grid/api/grid-api/model/gridSelectionMode.d.ts +16 -16
  514. package/lib/smart-grid/api/grid-api/model/gridSelectionType.d.ts +15 -15
  515. package/lib/smart-grid/api/grid-api/model/gridServerModel.d.ts +22 -22
  516. package/lib/smart-grid/api/grid-api/model/gridUpdateData.d.ts +20 -20
  517. package/lib/smart-grid/api/grid-api/model/gridView.d.ts +21 -21
  518. package/lib/smart-grid/api/grid-api/model/gridViewDescriptor.d.ts +37 -37
  519. package/lib/smart-grid/api/grid-api/model/models.d.ts +13 -13
  520. package/lib/smart-grid/api/grid-api/param.d.ts +37 -37
  521. package/lib/smart-grid/api/grid-api/variables.d.ts +8 -8
  522. package/lib/smart-grid/components/expandable-grid/expandable-grid.component.d.ts +10 -10
  523. package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +23 -23
  524. package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +46 -46
  525. package/lib/smart-grid/models/model.d.ts +71 -71
  526. package/lib/smart-grid/projects.d.ts +5 -5
  527. package/lib/smart-grid/smart-grid.component.d.ts +103 -103
  528. package/lib/smart-grid/smart-grid.module.d.ts +22 -22
  529. package/lib/smart-grid/smart-grid.service.d.ts +23 -23
  530. package/lib/smart-icon/projects.d.ts +3 -3
  531. package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +16 -16
  532. package/lib/smart-icon/smart-icon.module.d.ts +10 -10
  533. package/lib/smart-icon/smart-icon.service.d.ts +28 -28
  534. package/lib/smart-navbar/projects.d.ts +4 -4
  535. package/lib/smart-navbar/smart-navbar.component.d.ts +20 -20
  536. package/lib/smart-navbar/smart-navbar.model.d.ts +48 -48
  537. package/lib/smart-navbar/smart-navbar.module.d.ts +18 -18
  538. package/lib/smart-navbar/smart-navbar.service.d.ts +6 -6
  539. package/lib/smart-navigation/projects.d.ts +2 -2
  540. package/lib/smart-navigation/smart-navigation.interface.d.ts +11 -11
  541. package/lib/smart-navigation/smart-navigation.module.d.ts +6 -6
  542. package/lib/smart-navigation/smart-navigation.service.d.ts +18 -18
  543. package/lib/smart-ng-client.module.d.ts +24 -24
  544. package/lib/smart-ng-client.service.d.ts +10 -10
  545. package/lib/smart-subject/projects.d.ts +1 -1
  546. package/lib/smart-subject/smart-subject.d.ts +6 -6
  547. package/lib/smart-tab-group/projects.d.ts +5 -5
  548. package/lib/smart-tab-group/smart-tab-group.component.d.ts +21 -21
  549. package/lib/smart-tab-group/smart-tab-group.module.d.ts +13 -13
  550. package/lib/smart-tab-group/smart-tab-group.service.d.ts +6 -6
  551. package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +14 -14
  552. package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +29 -29
  553. package/lib/smart-tab-group/tabTile.model.d.ts +8 -8
  554. package/lib/smart-table/components/default-actions-popup/default-actions-popup.component.d.ts +19 -19
  555. package/lib/smart-table/components/loading/loading.component.d.ts +8 -8
  556. package/lib/smart-table/directives/mat-context-menu-trigger-for.directive.d.ts +10 -10
  557. package/lib/smart-table/projects.d.ts +4 -4
  558. package/lib/smart-table/smarttable.component.d.ts +34 -34
  559. package/lib/smart-table/smarttable.model.d.ts +198 -198
  560. package/lib/smart-table/smarttable.module.d.ts +28 -28
  561. package/lib/smart-table/smarttable.service.d.ts +6 -6
  562. package/lib/smart-table/tables/material-table/material-table.component.d.ts +8 -8
  563. package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +8 -8
  564. package/lib/smart-table/tables/table.d.ts +85 -85
  565. package/lib/smart-tree/projects.d.ts +5 -5
  566. package/lib/smart-tree/smarttree-generic.service.d.ts +49 -49
  567. package/lib/smart-tree/smarttree.component.d.ts +42 -42
  568. package/lib/smart-tree/smarttree.model.d.ts +41 -41
  569. package/lib/smart-tree/smarttree.module.d.ts +15 -15
  570. package/lib/smart-tree/smarttree.node.model.d.ts +13 -13
  571. package/lib/smart-tree/smarttree.service.d.ts +24 -24
  572. package/lib/smart-tree/smarttree.service.interface.d.ts +43 -43
  573. package/lib/smart-tree/tree-api/api/tree.service.d.ts +336 -336
  574. package/lib/smart-tree/tree-api/configuration.d.ts +104 -104
  575. package/lib/smart-tree/tree-api/encoder.d.ts +11 -11
  576. package/lib/smart-tree/tree-api/param.d.ts +37 -37
  577. package/lib/smart-tree/tree-api/variables.d.ts +8 -8
  578. package/lib/view-context/api/api/api.d.ts +3 -3
  579. package/lib/view-context/api/api/view.service.d.ts +331 -331
  580. package/lib/view-context/api/api.module.d.ts +11 -11
  581. package/lib/view-context/api/configuration.d.ts +104 -104
  582. package/lib/view-context/api/encoder.d.ts +11 -11
  583. package/lib/view-context/api/index.d.ts +6 -6
  584. package/lib/view-context/api/model/clipboardData.d.ts +20 -20
  585. package/lib/view-context/api/model/closeResult.d.ts +16 -16
  586. package/lib/view-context/api/model/componentConstraint.d.ts +25 -25
  587. package/lib/view-context/api/model/componentModel.d.ts +42 -42
  588. package/lib/view-context/api/model/componentModelChange.d.ts +29 -29
  589. package/lib/view-context/api/model/dataChange.d.ts +25 -25
  590. package/lib/view-context/api/model/dataChangeEvent.d.ts +31 -31
  591. package/lib/view-context/api/model/dataChangeKind.d.ts +19 -19
  592. package/lib/view-context/api/model/downloadedFile.d.ts +19 -19
  593. package/lib/view-context/api/model/iconPosition.d.ts +18 -18
  594. package/lib/view-context/api/model/imageResource.d.ts +26 -26
  595. package/lib/view-context/api/model/link.d.ts +35 -35
  596. package/lib/view-context/api/model/messageData.d.ts +29 -29
  597. package/lib/view-context/api/model/messageOption.d.ts +18 -18
  598. package/lib/view-context/api/model/messageOptionType.d.ts +16 -16
  599. package/lib/view-context/api/model/messageResult.d.ts +16 -16
  600. package/lib/view-context/api/model/messageTextType.d.ts +15 -15
  601. package/lib/view-context/api/model/messageType.d.ts +17 -17
  602. package/lib/view-context/api/model/models.d.ts +51 -51
  603. package/lib/view-context/api/model/openPendingData.d.ts +29 -29
  604. package/lib/view-context/api/model/serverRequestExecutionStat.d.ts +40 -40
  605. package/lib/view-context/api/model/serverRequestTrack.d.ts +60 -60
  606. package/lib/view-context/api/model/serverRequestType.d.ts +22 -22
  607. package/lib/view-context/api/model/smartLinkData.d.ts +21 -21
  608. package/lib/view-context/api/model/statisticRecord.d.ts +36 -36
  609. package/lib/view-context/api/model/style.d.ts +21 -21
  610. package/lib/view-context/api/model/uiAction.d.ts +48 -48
  611. package/lib/view-context/api/model/uiActionButtonDescriptor.d.ts +18 -18
  612. package/lib/view-context/api/model/uiActionButtonType.d.ts +25 -25
  613. package/lib/view-context/api/model/uiActionConstraint.d.ts +22 -22
  614. package/lib/view-context/api/model/uiActionDescriptor.d.ts +36 -36
  615. package/lib/view-context/api/model/uiActionDialogDescriptor.d.ts +23 -23
  616. package/lib/view-context/api/model/uiActionFeedbackType.d.ts +18 -18
  617. package/lib/view-context/api/model/uiActionInputType.d.ts +19 -19
  618. package/lib/view-context/api/model/uiActionRequest.d.ts +28 -28
  619. package/lib/view-context/api/model/uiActionTooltip.d.ts +25 -25
  620. package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +23 -23
  621. package/lib/view-context/api/model/uploadedFile.d.ts +19 -19
  622. package/lib/view-context/api/model/valueSet.d.ts +20 -20
  623. package/lib/view-context/api/model/view.d.ts +80 -80
  624. package/lib/view-context/api/model/viewApiError.d.ts +18 -18
  625. package/lib/view-context/api/model/viewConstraint.d.ts +18 -18
  626. package/lib/view-context/api/model/viewContext.d.ts +30 -30
  627. package/lib/view-context/api/model/viewContextChange.d.ts +24 -24
  628. package/lib/view-context/api/model/viewContextData.d.ts +25 -25
  629. package/lib/view-context/api/model/viewContextUpdate.d.ts +22 -22
  630. package/lib/view-context/api/model/viewData.d.ts +25 -25
  631. package/lib/view-context/api/model/viewEventHandler.d.ts +30 -30
  632. package/lib/view-context/api/model/viewPlaceholder.d.ts +21 -21
  633. package/lib/view-context/api/model/viewState.d.ts +20 -20
  634. package/lib/view-context/api/model/viewStateUpdate.d.ts +22 -22
  635. package/lib/view-context/api/model/viewType.d.ts +16 -16
  636. package/lib/view-context/api/param.d.ts +37 -37
  637. package/lib/view-context/api/variables.d.ts +8 -8
  638. package/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.d.ts +9 -9
  639. package/lib/view-context/message-dialog/message-dialog.component.d.ts +18 -18
  640. package/lib/view-context/projects.d.ts +13 -13
  641. package/lib/view-context/property-definition-data.d.ts +5 -5
  642. package/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.d.ts +13 -13
  643. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +25 -25
  644. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +18 -18
  645. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +30 -30
  646. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +22 -22
  647. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +29 -29
  648. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +25 -25
  649. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +36 -36
  650. package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +23 -23
  651. package/lib/view-context/smart-ui-action/ui-action.model.d.ts +43 -43
  652. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +39 -39
  653. package/lib/view-context/smart-view-context-dialog.service.d.ts +16 -16
  654. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +13 -13
  655. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +19 -19
  656. package/lib/view-context/smart-view-context.interceptor.d.ts +13 -13
  657. package/lib/view-context/smart-view-context.model.d.ts +31 -31
  658. package/lib/view-context/smart-view-context.module.d.ts +46 -47
  659. package/lib/view-context/smart-view-context.service.d.ts +119 -119
  660. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +14 -14
  661. package/lib/view-context/utility/smart-object-utility.d.ts +4 -4
  662. package/lib/view-context/utility/smart-style-utility.d.ts +12 -12
  663. package/lib/view-context/value-api/api/api.d.ts +3 -3
  664. package/lib/view-context/value-api/api/value.service.d.ts +35 -35
  665. package/lib/view-context/value-api/api.module.d.ts +11 -11
  666. package/lib/view-context/value-api/configuration.d.ts +104 -104
  667. package/lib/view-context/value-api/encoder.d.ts +11 -11
  668. package/lib/view-context/value-api/index.d.ts +6 -6
  669. package/lib/view-context/value-api/model/genericValue.d.ts +33 -33
  670. package/lib/view-context/value-api/model/models.d.ts +10 -10
  671. package/lib/view-context/value-api/model/value.d.ts +29 -29
  672. package/lib/view-context/value-api/model/valueSetData.d.ts +41 -41
  673. package/lib/view-context/value-api/model/valueSetDefinition.d.ts +16 -16
  674. package/lib/view-context/value-api/model/valueSetDefinitionData.d.ts +53 -53
  675. package/lib/view-context/value-api/model/valueSetDefinitionIdentifier.d.ts +21 -21
  676. package/lib/view-context/value-api/model/valueSetDefinitionKind.d.ts +22 -22
  677. package/lib/view-context/value-api/model/valueSetExpression.d.ts +18 -18
  678. package/lib/view-context/value-api/model/valueSetOperand.d.ts +25 -25
  679. package/lib/view-context/value-api/model/valueSetOperation.d.ts +17 -17
  680. package/lib/view-context/value-api/param.d.ts +37 -37
  681. package/lib/view-context/value-api/variables.d.ts +8 -8
  682. package/package.json +14 -20
  683. package/projects.d.ts +22 -22
  684. package/smartbit4all-ng-client-4.0.1.tgz +0 -0
  685. package/esm2020/lib/component-factory-service/component-factory-service.module.mjs +0 -17
  686. package/esm2020/lib/session/api/api/session.service.mjs +0 -306
  687. package/esm2020/lib/session/api/configuration.mjs +0 -91
  688. package/esm2020/lib/session/api/model/sessionInfoData.mjs +0 -2
  689. package/esm2020/lib/session/cookie-service/smart-cookie.service.mjs +0 -225
  690. package/esm2020/lib/session/smart-error-catching.interceptor.mjs +0 -71
  691. package/esm2020/lib/session/smart-header-maintainer.interceptor.mjs +0 -46
  692. package/esm2020/lib/session/smart-session.module.mjs +0 -58
  693. package/esm2020/lib/session/smart-session.service.mjs +0 -225
  694. package/esm2020/lib/session/smart-timer/smart-session-timer.service.mjs +0 -58
  695. package/esm2020/lib/shared/shared.module.mjs +0 -19
  696. package/esm2020/lib/shared/smart-tooltip.directive.mjs +0 -58
  697. package/esm2020/lib/smart-client/smart-component-api-client.mjs +0 -717
  698. package/esm2020/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +0 -53
  699. package/esm2020/lib/smart-component-layout/api/api/default.service.mjs +0 -133
  700. package/esm2020/lib/smart-component-layout/api/api.module.mjs +0 -40
  701. package/esm2020/lib/smart-component-layout/api/configuration.mjs +0 -91
  702. package/esm2020/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +0 -2
  703. package/esm2020/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +0 -2
  704. package/esm2020/lib/smart-component-layout/api/param.mjs +0 -2
  705. package/esm2020/lib/smart-component-layout/smart-component-layout-utility.mjs +0 -94
  706. package/esm2020/lib/smart-component-layout/smart-component-layout.component.mjs +0 -259
  707. package/esm2020/lib/smart-component-layout/smart-component-layout.module.mjs +0 -43
  708. package/esm2020/lib/smart-dialog/smartdialog.component.mjs +0 -54
  709. package/esm2020/lib/smart-dialog/smartdialog.module.mjs +0 -48
  710. package/esm2020/lib/smart-expandable-section/expandable-section.component.mjs +0 -88
  711. package/esm2020/lib/smart-expandable-section/smart-expandable-section.module.mjs +0 -51
  712. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +0 -2
  713. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +0 -8
  714. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +0 -2
  715. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionData.mjs +0 -2
  716. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +0 -2
  717. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionList.mjs +0 -2
  718. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +0 -2
  719. package/esm2020/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +0 -165
  720. package/esm2020/lib/smart-filter/smart-filter/smart-filter.component.mjs +0 -36
  721. package/esm2020/lib/smart-filter/smart-filter.module.mjs +0 -33
  722. package/esm2020/lib/smart-filter-editor/api/api/filter.service.mjs +0 -198
  723. package/esm2020/lib/smart-filter-editor/api/configuration.mjs +0 -91
  724. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +0 -13
  725. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +0 -2
  726. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +0 -8
  727. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +0 -2
  728. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +0 -7
  729. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionData.mjs +0 -2
  730. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +0 -2
  731. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +0 -2
  732. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionList.mjs +0 -2
  733. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +0 -2
  734. package/esm2020/lib/smart-filter-editor/api/param.mjs +0 -2
  735. package/esm2020/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +0 -73
  736. package/esm2020/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +0 -235
  737. package/esm2020/lib/smart-filter-editor/smart-filter-editor.module.mjs +0 -71
  738. package/esm2020/lib/smart-filter-editor/smart-filter-editor.service.mjs +0 -47
  739. package/esm2020/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +0 -57
  740. package/esm2020/lib/smart-form/api/api/default.service.mjs +0 -133
  741. package/esm2020/lib/smart-form/api/api.module.mjs +0 -40
  742. package/esm2020/lib/smart-form/api/configuration.mjs +0 -91
  743. package/esm2020/lib/smart-form/api/model/smartMatrixModel.mjs +0 -2
  744. package/esm2020/lib/smart-form/services/smartform.layout-definition.service.mjs +0 -542
  745. package/esm2020/lib/smart-form/services/smartform.service.mjs +0 -640
  746. package/esm2020/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +0 -14
  747. package/esm2020/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +0 -78
  748. package/esm2020/lib/smart-form/smartform.component.mjs +0 -178
  749. package/esm2020/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +0 -84
  750. package/esm2020/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +0 -736
  751. package/esm2020/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +0 -59
  752. package/esm2020/lib/smart-grid/api/grid-api/api/grid.service.mjs +0 -451
  753. package/esm2020/lib/smart-grid/api/grid-api/api.module.mjs +0 -40
  754. package/esm2020/lib/smart-grid/api/grid-api/configuration.mjs +0 -91
  755. package/esm2020/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +0 -61
  756. package/esm2020/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +0 -182
  757. package/esm2020/lib/smart-grid/smart-grid.component.mjs +0 -767
  758. package/esm2020/lib/smart-grid/smart-grid.module.mjs +0 -78
  759. package/esm2020/lib/smart-grid/smart-grid.service.mjs +0 -80
  760. package/esm2020/lib/smart-icon/smart-icon/smart-icon.component.mjs +0 -40
  761. package/esm2020/lib/smart-icon/smart-icon.module.mjs +0 -22
  762. package/esm2020/lib/smart-icon/smart-icon.service.mjs +0 -74
  763. package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +0 -61
  764. package/esm2020/lib/smart-navbar/smart-navbar.module.mjs +0 -65
  765. package/esm2020/lib/smart-navigation/smart-navigation.module.mjs +0 -18
  766. package/esm2020/lib/smart-navigation/smart-navigation.service.mjs +0 -56
  767. package/esm2020/lib/smart-ng-client.module.mjs +0 -128
  768. package/esm2020/lib/smart-subject/smart-subject.mjs +0 -21
  769. package/esm2020/lib/smart-tab-group/smart-tab-group.component.mjs +0 -43
  770. package/esm2020/lib/smart-tab-group/smart-tab-group.module.mjs +0 -25
  771. package/esm2020/lib/smart-tab-group/tab-content/tab-content.component.mjs +0 -31
  772. package/esm2020/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +0 -66
  773. package/esm2020/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +0 -43
  774. package/esm2020/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +0 -52
  775. package/esm2020/lib/smart-table/smarttable.component.mjs +0 -98
  776. package/esm2020/lib/smart-table/smarttable.model.mjs +0 -169
  777. package/esm2020/lib/smart-table/smarttable.module.mjs +0 -107
  778. package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +0 -39
  779. package/esm2020/lib/smart-table/tables/table.mjs +0 -520
  780. package/esm2020/lib/smart-tree/smarttree-generic.service.mjs +0 -288
  781. package/esm2020/lib/smart-tree/smarttree.component.mjs +0 -181
  782. package/esm2020/lib/smart-tree/smarttree.module.mjs +0 -62
  783. package/esm2020/lib/smart-tree/smarttree.service.mjs +0 -47
  784. package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +0 -1190
  785. package/esm2020/lib/smart-tree/tree-api/configuration.mjs +0 -91
  786. package/esm2020/lib/smart-tree/tree-api/param.mjs +0 -2
  787. package/esm2020/lib/view-context/api/api/view.service.mjs +0 -903
  788. package/esm2020/lib/view-context/api/api.module.mjs +0 -40
  789. package/esm2020/lib/view-context/api/configuration.mjs +0 -91
  790. package/esm2020/lib/view-context/api/model/clipboardData.mjs +0 -13
  791. package/esm2020/lib/view-context/api/model/view.mjs +0 -2
  792. package/esm2020/lib/view-context/api/model/viewContext.mjs +0 -2
  793. package/esm2020/lib/view-context/api/model/viewContextData.mjs +0 -2
  794. package/esm2020/lib/view-context/api/model/viewPlaceholder.mjs +0 -13
  795. package/esm2020/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +0 -19
  796. package/esm2020/lib/view-context/message-dialog/message-dialog.component.mjs +0 -66
  797. package/esm2020/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +0 -30
  798. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +0 -72
  799. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +0 -126
  800. package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +0 -146
  801. package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +0 -180
  802. package/esm2020/lib/view-context/smart-ui-action/ui-action.service.mjs +0 -211
  803. package/esm2020/lib/view-context/smart-view-context-dialog.service.mjs +0 -54
  804. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +0 -29
  805. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +0 -69
  806. package/esm2020/lib/view-context/smart-view-context.interceptor.mjs +0 -39
  807. package/esm2020/lib/view-context/smart-view-context.module.mjs +0 -222
  808. package/esm2020/lib/view-context/smart-view-context.service.mjs +0 -685
  809. package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +0 -33
  810. package/esm2020/lib/view-context/utility/smart-object-utility.mjs +0 -30
  811. package/esm2020/lib/view-context/utility/smart-style-utility.mjs +0 -68
  812. package/esm2020/lib/view-context/value-api/api/value.service.mjs +0 -138
  813. package/esm2020/lib/view-context/value-api/api.module.mjs +0 -40
  814. package/esm2020/lib/view-context/value-api/configuration.mjs +0 -91
  815. package/esm2020/lib/view-context/value-api/model/genericValue.mjs +0 -13
  816. package/esm2020/lib/view-context/value-api/model/value.mjs +0 -13
  817. package/esm2020/lib/view-context/value-api/model/valueSetDefinition.mjs +0 -2
  818. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +0 -13
  819. package/esm2020/lib/view-context/value-api/model/valueSetOperand.mjs +0 -2
  820. package/esm2020/lib/view-context/value-api/param.mjs +0 -2
  821. package/fesm2015/smartbit4all-ng-client.mjs +0 -16437
  822. package/fesm2015/smartbit4all-ng-client.mjs.map +0 -1
  823. package/fesm2020/smartbit4all-ng-client.mjs.map +0 -1
  824. package/smartbit4all-ng-client-3.3.206.tgz +0 -0
  825. package/src/lib/component-factory-service/README.md +0 -99
  826. package/src/lib/session/api/README.md +0 -226
  827. package/src/lib/smart-component-layout/README.md +0 -31
  828. package/src/lib/smart-component-layout/api/README.md +0 -226
  829. package/src/lib/smart-dialog/README.md +0 -197
  830. package/src/lib/smart-expandable-section/README.md +0 -249
  831. package/src/lib/smart-filter/README.md +0 -101
  832. package/src/lib/smart-filter-editor/api/README.md +0 -226
  833. package/src/lib/smart-form/README.md +0 -1178
  834. package/src/lib/smart-form/api/README.md +0 -226
  835. package/src/lib/smart-grid/README.md +0 -24
  836. package/src/lib/smart-grid/api/grid-api/README.md +0 -226
  837. package/src/lib/smart-icon/README.md +0 -116
  838. package/src/lib/smart-navbar/README.md +0 -119
  839. package/src/lib/smart-navigation/README.md +0 -141
  840. package/src/lib/smart-tab-group/README.md +0 -155
  841. package/src/lib/smart-table/README.md +0 -667
  842. package/src/lib/smart-tree/tree-api/README.md +0 -226
  843. package/src/lib/view-context/api/README.md +0 -226
  844. package/src/lib/view-context/value-api/README.md +0 -226
@@ -1,288 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { SmartViewContextService, UiActionDescriptorService, UiActionService, } from '../view-context/projects';
3
- import { TreeService } from './tree-api/api/tree.service';
4
- import { SmartTreeNodeButtonType } from './smarttree.model';
5
- import { SmarttreeService } from './smarttree.service';
6
- import { Subject } from 'rxjs';
7
- import { deepEqual } from 'fast-equals';
8
- import * as i0 from "@angular/core";
9
- export class SmarttreeGenericService extends SmarttreeService {
10
- constructor(inject, pageName, treeId, treeMenuIcon) {
11
- super();
12
- this.pageName = pageName;
13
- this.treeId = treeId;
14
- this.treeMenuIcon = treeMenuIcon;
15
- // UseUiAction properties
16
- this.submit = new Subject();
17
- this.reSubscribeToChange = new Subject();
18
- this.uiActionDescriptors = new Map();
19
- if (!this.treeMenuIcon) {
20
- this.treeMenuIcon = inject.get('treeMenuIcon');
21
- }
22
- this.configureTree({
23
- pageName: this.pageName,
24
- treeid: this.treeId,
25
- });
26
- this.viewContext = inject.get(SmartViewContextService);
27
- this.service = inject.get(TreeService);
28
- this.uiActionService = inject.get(UiActionService);
29
- this.uiActionDescriptorService = inject.get(UiActionDescriptorService);
30
- this.initialize();
31
- }
32
- constructUiActionModels(uiActions) {
33
- this.uiActionModels = uiActions.map((uiAction) => {
34
- return {
35
- serviceToUse: this,
36
- uiAction,
37
- };
38
- });
39
- }
40
- configureTree(configuration) {
41
- this.treeId = configuration.treeid;
42
- this.pageName = configuration.pageName;
43
- }
44
- async initialize() {
45
- if (this.viewContext.hasViewContextUuid()) {
46
- await this.downloadTree().then((rootNodes) => {
47
- if (!deepEqual(this.treeFromBackend, rootNodes)) {
48
- this.treeFromBackend = rootNodes;
49
- this.syncTree();
50
- }
51
- });
52
- }
53
- }
54
- async downloadTree() {
55
- let uuid = this.viewContext.getUuidOfPage(this.pageName);
56
- const rootNodes = await this.viewContext.handlePerformActionResponse(await this.service.getRootNodes2(uuid, this.treeId).toPromise());
57
- const uiActions = await this.viewContext.handlePerformActionResponse(await this.service.getMainActions2(uuid, this.treeId).toPromise());
58
- if (uiActions) {
59
- this.constructUiActionModels(uiActions);
60
- }
61
- if (!rootNodes) {
62
- throw new Error('RootNodes are undefined!');
63
- }
64
- return rootNodes;
65
- }
66
- async downloadChildren(parentNode) {
67
- let uuid = this.viewContext.getUuidOfPage(this.pageName);
68
- const children = await this.viewContext.handlePerformActionResponse(await this.service.getChildrenNodes2(uuid, this.treeId, parentNode.identifier).toPromise());
69
- if (!children) {
70
- throw new Error(`Node with identifier ${parentNode.identifier} does not have children.`);
71
- }
72
- return children;
73
- }
74
- async onTreeNodeOpen(treeNode) {
75
- let viewUuid = this.viewContext.getUuidOfPage(this.pageName);
76
- if (treeNode?.expanded) {
77
- let tempTreeNode = await this.viewContext.handlePerformActionResponse(await this.service.collapseNode2(viewUuid, this.treeId, treeNode.identifier).toPromise());
78
- treeNode = tempTreeNode;
79
- }
80
- else if (!treeNode?.expanded) {
81
- let tempTreeNode = await this.viewContext.handlePerformActionResponse(await this.service.expandNode2(viewUuid, this.treeId, treeNode?.identifier).toPromise());
82
- treeNode = tempTreeNode;
83
- }
84
- let node = this.deepSearchTreeNode(treeNode?.identifier, this.treeFromBackend);
85
- node.expanded = treeNode?.expanded;
86
- node.childrenNodes = treeNode?.childrenNodes;
87
- this.syncTree();
88
- }
89
- onTreeNodeClick(treeNode) {
90
- this.selectFolder(treeNode.identifier, treeNode);
91
- }
92
- async selectFolder(folderUri, treeNode) {
93
- let viewUuid = this.viewContext.getUuidOfPage(this.pageName);
94
- let updatedTreeNode = await this.viewContext.handlePerformActionResponse(await this.service.selectNode2(viewUuid, this.treeId, treeNode.identifier).toPromise());
95
- if (this.selectedNode) {
96
- this.selectedNode.selected = false;
97
- }
98
- this.selectedNode = updatedTreeNode;
99
- let node = this.deepSearchTreeNode(updatedTreeNode?.identifier, this.treeFromBackend);
100
- if (!node) {
101
- throw Error('Tree node does not exist');
102
- }
103
- node.expanded = updatedTreeNode?.expanded;
104
- node.childrenNodes = updatedTreeNode?.childrenNodes;
105
- node.selected = updatedTreeNode?.selected;
106
- treeNode = updatedTreeNode;
107
- this.syncTree();
108
- //this.viewContext.getAndSyncViewContext(this.viewContext.getViewContextUuid());
109
- }
110
- async updateTreeOnTheFly() {
111
- await this.initialize();
112
- }
113
- async syncTree() {
114
- if (this.treeFromBackend === null || this.treeFromBackend === undefined) {
115
- //throw new Error('There is no treeFromBackend available!');
116
- console.warn('There is no treeFromBackend available in syncTree!');
117
- return;
118
- }
119
- await this.cacheActionDesciptors(this.getAllNodes(this.treeFromBackend));
120
- if (!this.smartTreeModel) {
121
- this.smartTreeModel = {
122
- rootNodes: [],
123
- };
124
- }
125
- let smartTreeNodes = this.createButtonsForTreeNodes(this.treeFromBackend);
126
- this.smartTreeModel = undefined;
127
- this.smartTreeModel = {
128
- rootNodes: [],
129
- };
130
- this.smartTreeModelChanged.next(this.smartTreeModel);
131
- this.smartTreeModel.rootNodes = smartTreeNodes;
132
- this.findSelected(this.smartTreeModel.rootNodes);
133
- this.smartTreeModelChanged.next(this.smartTreeModel);
134
- }
135
- deepSearchTreeNode(identifier, nodes) {
136
- let treeNode;
137
- for (let index = 0; index < nodes.length; index++) {
138
- const node = nodes[index];
139
- if (node.identifier === identifier) {
140
- treeNode = node;
141
- break;
142
- }
143
- if (node.childrenNodes && node.childrenNodes.length) {
144
- treeNode = this.deepSearchTreeNode(identifier, node.childrenNodes);
145
- if (treeNode) {
146
- break;
147
- }
148
- }
149
- }
150
- return treeNode;
151
- }
152
- findSelected(nodes) {
153
- return nodes.forEach((node) => {
154
- if (node.selected) {
155
- this.selectedNode = node;
156
- return;
157
- }
158
- else if (node.childrenNodes && node.childrenNodes.length) {
159
- return this.findSelected(node.childrenNodes);
160
- }
161
- });
162
- }
163
- createButtonsForTreeNodes(nodes) {
164
- let icon = this.treeMenuIcon ?? 'more_vert';
165
- nodes.map((node) => {
166
- node.button = node.actions?.length
167
- ? {
168
- type: SmartTreeNodeButtonType.MENU,
169
- icon: icon,
170
- menuItemButtons: node.actions.map((action) => {
171
- return {
172
- type: SmartTreeNodeButtonType.NORMAL,
173
- label: this.getLabelByAction(action),
174
- callback: this.doAction.bind(this),
175
- args: [action, node.identifier],
176
- };
177
- }),
178
- }
179
- : undefined;
180
- node.icon = 'Folders';
181
- if (node.childrenNodes) {
182
- node.childrenNodes = this.createButtonsForTreeNodes(node.childrenNodes);
183
- }
184
- });
185
- return nodes;
186
- }
187
- async doAction(args) {
188
- let uiAction = args[0];
189
- let nodeUuid = args[1];
190
- if (uiAction.params) {
191
- uiAction.params['nodeUuid'] = nodeUuid;
192
- }
193
- else {
194
- uiAction.params = {
195
- nodeUuid: nodeUuid,
196
- };
197
- }
198
- let uiActionModel = {
199
- serviceToUse: this,
200
- uiAction,
201
- };
202
- this.uiActionService.uiActionModel = uiActionModel;
203
- this.uiActionService.execute(uiAction);
204
- }
205
- getAllNodes(nodes) {
206
- return nodes.flatMap((n) => [n, ...this.getAllNodes(n.childrenNodes)]);
207
- }
208
- async cacheActionDesciptors(nodes) {
209
- let newUiActions = new Set();
210
- nodes.forEach((node) => {
211
- node.actions
212
- ?.filter((uiAction) => !this.uiActionDescriptors.get(uiAction.code))
213
- .forEach((action) => newUiActions.add(action));
214
- });
215
- for (let action of newUiActions) {
216
- if (!this.uiActionDescriptors.get(action.code)) {
217
- let descriptor = await this.uiActionDescriptorService.getActionDescriptor(action);
218
- this.uiActionDescriptors.set(action.code, descriptor);
219
- }
220
- }
221
- }
222
- getLabelByAction(action) {
223
- let desc = this.uiActionDescriptors.get(action.code);
224
- return desc.title;
225
- }
226
- // #region UseUiAction
227
- getAdditionalParams(uiAction) {
228
- if (uiAction.params && uiAction.params['nodeUuid']) {
229
- let nodeUuid = uiAction.params['nodeUuid'];
230
- let nodeName;
231
- if (uiAction.code === 'RENAME') {
232
- nodeName = this.deepSearchTreeNode(nodeUuid, this.treeFromBackend)?.caption;
233
- }
234
- return {
235
- forTextArea: '',
236
- forTextField: nodeName ? nodeName : '',
237
- };
238
- }
239
- return {
240
- forTextArea: '',
241
- forTextField: '',
242
- };
243
- }
244
- getModel() {
245
- return {};
246
- }
247
- async performUiActionRequest(uiActionRequest) {
248
- if (uiActionRequest.params['nodeUuid']) {
249
- await this.performNodeUiActionRequest(uiActionRequest);
250
- }
251
- else {
252
- await this.performMainUiActionRequest(uiActionRequest);
253
- }
254
- //await this.viewContext.getAndSyncViewContext();
255
- this.syncTree();
256
- }
257
- async performNodeUiActionRequest(uiActionRequest) {
258
- let nodeId = uiActionRequest.params['nodeUuid'];
259
- delete uiActionRequest.params['nodeUuid'];
260
- let viewUuid = this.viewContext.getUuidOfPage(this.pageName);
261
- this.treeFromBackend = await this.viewContext.handlePerformActionResponse(await this.service.performAction2(viewUuid, this.treeId, nodeId, uiActionRequest).toPromise());
262
- }
263
- async performMainUiActionRequest(uiActionRequest) {
264
- let viewUuid = this.viewContext.getUuidOfPage(this.pageName);
265
- this.treeFromBackend = await this.viewContext.handlePerformActionResponse(await this.service.performMainAction2(viewUuid, this.treeId, uiActionRequest).toPromise());
266
- }
267
- handleSpecificDemandsAsynchronously(uiAction, uiActionRequest) {
268
- throw new Error('Method not implemented.');
269
- }
270
- }
271
- SmarttreeGenericService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, deps: [{ token: i0.Injector }, { token: 'pageName' }, { token: 'treeId' }, { token: 'treeMenuIcon' }], target: i0.ɵɵFactoryTarget.Injectable });
272
- SmarttreeGenericService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, providedIn: 'root' });
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmarttreeGenericService, decorators: [{
274
- type: Injectable,
275
- args: [{
276
- providedIn: 'root',
277
- }]
278
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{
279
- type: Inject,
280
- args: ['pageName']
281
- }] }, { type: undefined, decorators: [{
282
- type: Inject,
283
- args: ['treeId']
284
- }] }, { type: undefined, decorators: [{
285
- type: Inject,
286
- args: ['treeMenuIcon']
287
- }] }]; } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0cmVlLWdlbmVyaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLWdlbmVyaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBSXZCLHlCQUF5QixFQUd6QixlQUFlLEdBR2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBVXhDLE1BQU0sT0FBTyx1QkFDWCxTQUFRLGdCQUFpQztJQWlCekMsWUFDRSxNQUFnQixFQUNjLFFBQWdCLEVBQ2xCLE1BQWMsRUFDVixZQUFxQjtRQUVyRCxLQUFLLEVBQUUsQ0FBQztRQUpzQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQWxCdkQseUJBQXlCO1FBQ3pCLFdBQU0sR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVuRCx3QkFBbUIsR0FBb0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQWtCL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVks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QyxDQUFDOztvSEE3VVUsdUJBQXVCLDBDQW9CeEIsVUFBVSxhQUNWLFFBQVEsYUFDUixjQUFjO3dIQXRCYix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFxQkksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbiAgVWlBY3Rpb24sXHJcbiAgVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zLFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uTW9kZWwsXHJcbiAgVWlBY3Rpb25SZXF1ZXN0LFxyXG4gIFVpQWN0aW9uU2VydmljZSxcclxuICBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2UsXHJcbiAgVXNlVWlBY3Rpb24sXHJcbn0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tICcuL3RyZWUtYXBpL2FwaS90cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFRyZWVOb2RlLCBTbWFydFRyZWVOb2RlQnV0dG9uVHlwZSB9IGZyb20gJy4vc21hcnR0cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnR0cmVlU2VydmljZSB9IGZyb20gJy4vc21hcnR0cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJ2Zhc3QtZXF1YWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnR0cmVlQ29uZmlndXJhdGlvbiB7XHJcbiAgdHJlZWlkOiBzdHJpbmc7XHJcbiAgcGFnZU5hbWU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlXHJcbiAgZXh0ZW5kcyBTbWFydHRyZWVTZXJ2aWNlPFNtYXJ0VHJlZU5vZGVbXT5cclxuICBpbXBsZW1lbnRzIFVzZVVpQWN0aW9uXHJcbntcclxuICAvLyBVc2VVaUFjdGlvbiBwcm9wZXJ0aWVzXHJcbiAgc3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICByZVN1YnNjcmliZVRvQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgdWlBY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgc2VsZWN0ZWROb2RlPzogU21hcnRUcmVlTm9kZTtcclxuXHJcbiAgcHJvdGVjdGVkIHZpZXdDb250ZXh0ITogU21hcnRWaWV3Q29udGV4dFNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBzZXJ2aWNlITogVHJlZVNlcnZpY2U7XHJcblxyXG4gIHByaXZhdGUgdWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSE6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgcHJpdmF0ZSB1aUFjdGlvblNlcnZpY2UhOiBVaUFjdGlvblNlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgaW5qZWN0OiBJbmplY3RvcixcclxuICAgIEBJbmplY3QoJ3BhZ2VOYW1lJykgcHJvdGVjdGVkIHBhZ2VOYW1lOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KCd0cmVlSWQnKSBwcm90ZWN0ZWQgdHJlZUlkOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KCd0cmVlTWVudUljb24nKSBwcml2YXRlIHRyZWVNZW51SWNvbj86IHN0cmluZ1xyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMudHJlZU1lbnVJY29uKSB7XHJcbiAgICAgIHRoaXMudHJlZU1lbnVJY29uID0gaW5qZWN0LmdldCgndHJlZU1lbnVJY29uJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZ3VyZVRyZWUoe1xyXG4gICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgdHJlZWlkOiB0aGlzLnRyZWVJZCxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudmlld0NvbnRleHQgPSBpbmplY3QuZ2V0KFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKTtcclxuICAgIHRoaXMuc2VydmljZSA9IGluamVjdC5nZXQoVHJlZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdFVpQWN0aW9uTW9kZWxzKHVpQWN0aW9uczogVWlBY3Rpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy51aUFjdGlvbk1vZGVscyA9IHVpQWN0aW9ucy5tYXAoKHVpQWN0aW9uOiBVaUFjdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgICB1aUFjdGlvbixcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlVHJlZShjb25maWd1cmF0aW9uOiBTbWFydHRyZWVDb25maWd1cmF0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyZWVJZCA9IGNvbmZpZ3VyYXRpb24udHJlZWlkO1xyXG4gICAgdGhpcy5wYWdlTmFtZSA9IGNvbmZpZ3VyYXRpb24ucGFnZU5hbWU7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBhc3luYyBpbml0aWFsaXplKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQuaGFzVmlld0NvbnRleHRVdWlkKCkpIHtcclxuICAgICAgYXdhaXQgdGhpcy5kb3dubG9hZFRyZWUoKS50aGVuKChyb290Tm9kZXM6IFNtYXJ0VHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICAgIGlmICghZGVlcEVxdWFsKHRoaXMudHJlZUZyb21CYWNrZW5kLCByb290Tm9kZXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVGcm9tQmFja2VuZCA9IHJvb3ROb2RlcztcclxuICAgICAgICAgIHRoaXMuc3luY1RyZWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvdmVycmlkZSBhc3luYyBkb3dubG9hZFRyZWUoKTogUHJvbWlzZTxTbWFydFRyZWVOb2RlW10+IHtcclxuICAgIGxldCB1dWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUhKTtcclxuICAgIGNvbnN0IHJvb3ROb2RlcyA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Um9vdE5vZGVzMih1dWlkLCB0aGlzLnRyZWVJZCEpLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gICAgY29uc3QgdWlBY3Rpb25zID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5nZXRNYWluQWN0aW9uczIodXVpZCwgdGhpcy50cmVlSWQhKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAodWlBY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0VWlBY3Rpb25Nb2RlbHModWlBY3Rpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXJvb3ROb2Rlcykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3ROb2RlcyBhcmUgdW5kZWZpbmVkIScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJvb3ROb2RlcztcclxuICB9XHJcbiAgb3ZlcnJpZGUgYXN5bmMgZG93bmxvYWRDaGlsZHJlbihwYXJlbnROb2RlOiBTbWFydFRyZWVOb2RlKTogUHJvbWlzZTxTbWFydFRyZWVOb2RlW10+IHtcclxuICAgIGxldCB1dWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUhKTtcclxuICAgIGNvbnN0IGNoaWxkcmVuID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5nZXRDaGlsZHJlbk5vZGVzMih1dWlkLCB0aGlzLnRyZWVJZCEsIHBhcmVudE5vZGUuaWRlbnRpZmllciEpLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vZGUgd2l0aCBpZGVudGlmaWVyICR7cGFyZW50Tm9kZS5pZGVudGlmaWVyfSBkb2VzIG5vdCBoYXZlIGNoaWxkcmVuLmApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjaGlsZHJlbjtcclxuICB9XHJcbiAgb3ZlcnJpZGUgYXN5bmMgb25UcmVlTm9kZU9wZW4odHJlZU5vZGU6IFNtYXJ0VHJlZU5vZGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB2aWV3VXVpZCA9IHRoaXMudmlld0NvbnRleHQuZ2V0VXVpZE9mUGFnZSh0aGlzLnBhZ2VOYW1lISk7XHJcblxyXG4gICAgaWYgKHRyZWVOb2RlPy5leHBhbmRlZCkge1xyXG4gICAgICBsZXQgdGVtcFRyZWVOb2RlID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmNvbGxhcHNlTm9kZTIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdHJlZU5vZGUuaWRlbnRpZmllciEpLnRvUHJvbWlzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIHRyZWVOb2RlID0gdGVtcFRyZWVOb2RlITtcclxuICAgIH0gZWxzZSBpZiAoIXRyZWVOb2RlPy5leHBhbmRlZCkge1xyXG4gICAgICBsZXQgdGVtcFRyZWVOb2RlID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4cGFuZE5vZGUyKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIHRyZWVOb2RlPy5pZGVudGlmaWVyISkudG9Qcm9taXNlKClcclxuICAgICAgKTtcclxuICAgICAgdHJlZU5vZGUgPSB0ZW1wVHJlZU5vZGUhO1xyXG4gICAgfVxyXG4gICAgbGV0IG5vZGUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZSh0cmVlTm9kZT8uaWRlbnRpZmllciEsIHRoaXMudHJlZUZyb21CYWNrZW5kISk7XHJcblxyXG4gICAgbm9kZSEuZXhwYW5kZWQgPSB0cmVlTm9kZT8uZXhwYW5kZWQ7XHJcbiAgICBub2RlIS5jaGlsZHJlbk5vZGVzID0gdHJlZU5vZGU/LmNoaWxkcmVuTm9kZXM7XHJcbiAgICB0aGlzLnN5bmNUcmVlKCk7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG9uVHJlZU5vZGVDbGljayh0cmVlTm9kZTogU21hcnRUcmVlTm9kZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RGb2xkZXIodHJlZU5vZGUuaWRlbnRpZmllciEsIHRyZWVOb2RlKTtcclxuICB9XHJcbiAgYXN5bmMgc2VsZWN0Rm9sZGVyKGZvbGRlclVyaTogc3RyaW5nLCB0cmVlTm9kZT86IFNtYXJ0VHJlZU5vZGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB2aWV3VXVpZCA9IHRoaXMudmlld0NvbnRleHQuZ2V0VXVpZE9mUGFnZSh0aGlzLnBhZ2VOYW1lISk7XHJcblxyXG4gICAgbGV0IHVwZGF0ZWRUcmVlTm9kZSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2Uuc2VsZWN0Tm9kZTIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdHJlZU5vZGUhLmlkZW50aWZpZXIhKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB1cGRhdGVkVHJlZU5vZGU7XHJcbiAgICBsZXQgbm9kZSA9IHRoaXMuZGVlcFNlYXJjaFRyZWVOb2RlKHVwZGF0ZWRUcmVlTm9kZT8uaWRlbnRpZmllciEsIHRoaXMudHJlZUZyb21CYWNrZW5kISk7XHJcbiAgICBpZiAoIW5vZGUpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1RyZWUgbm9kZSBkb2VzIG5vdCBleGlzdCcpO1xyXG4gICAgfVxyXG4gICAgbm9kZS5leHBhbmRlZCA9IHVwZGF0ZWRUcmVlTm9kZT8uZXhwYW5kZWQhO1xyXG4gICAgbm9kZS5jaGlsZHJlbk5vZGVzID0gdXBkYXRlZFRyZWVOb2RlPy5jaGlsZHJlbk5vZGVzITtcclxuICAgIG5vZGUuc2VsZWN0ZWQgPSB1cGRhdGVkVHJlZU5vZGU/LnNlbGVjdGVkITtcclxuICAgIHRyZWVOb2RlID0gdXBkYXRlZFRyZWVOb2RlO1xyXG4gICAgdGhpcy5zeW5jVHJlZSgpO1xyXG4gICAgLy90aGlzLnZpZXdDb250ZXh0LmdldEFuZFN5bmNWaWV3Q29udGV4dCh0aGlzLnZpZXdDb250ZXh0LmdldFZpZXdDb250ZXh0VXVpZCgpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZVRyZWVPblRoZUZseSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgc3luY1RyZWUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy50cmVlRnJvbUJhY2tlbmQgPT09IG51bGwgfHwgdGhpcy50cmVlRnJvbUJhY2tlbmQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAvL3Rocm93IG5ldyBFcnJvcignVGhlcmUgaXMgbm8gdHJlZUZyb21CYWNrZW5kIGF2YWlsYWJsZSEnKTtcclxuICAgICAgY29uc29sZS53YXJuKCdUaGVyZSBpcyBubyB0cmVlRnJvbUJhY2tlbmQgYXZhaWxhYmxlIGluIHN5bmNUcmVlIScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNhY2hlQWN0aW9uRGVzY2lwdG9ycyh0aGlzLmdldEFsbE5vZGVzKHRoaXMudHJlZUZyb21CYWNrZW5kISkpO1xyXG5cclxuICAgIGlmICghdGhpcy5zbWFydFRyZWVNb2RlbCkge1xyXG4gICAgICB0aGlzLnNtYXJ0VHJlZU1vZGVsID0ge1xyXG4gICAgICAgIHJvb3ROb2RlczogW10sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNtYXJ0VHJlZU5vZGVzOiBTbWFydFRyZWVOb2RlW10gPSB0aGlzLmNyZWF0ZUJ1dHRvbnNGb3JUcmVlTm9kZXModGhpcy50cmVlRnJvbUJhY2tlbmQpO1xyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB0aGlzLnNtYXJ0VHJlZU1vZGVsID0ge1xyXG4gICAgICByb290Tm9kZXM6IFtdLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc21hcnRUcmVlTW9kZWxDaGFuZ2VkLm5leHQodGhpcy5zbWFydFRyZWVNb2RlbCk7XHJcblxyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbC5yb290Tm9kZXMgPSBzbWFydFRyZWVOb2RlcztcclxuXHJcbiAgICB0aGlzLmZpbmRTZWxlY3RlZCh0aGlzLnNtYXJ0VHJlZU1vZGVsLnJvb3ROb2Rlcyk7XHJcblxyXG4gICAgdGhpcy5zbWFydFRyZWVNb2RlbENoYW5nZWQubmV4dCh0aGlzLnNtYXJ0VHJlZU1vZGVsKTtcclxuICB9XHJcblxyXG4gIGRlZXBTZWFyY2hUcmVlTm9kZShpZGVudGlmaWVyOiBzdHJpbmcsIG5vZGVzOiBTbWFydFRyZWVOb2RlW10pOiBTbWFydFRyZWVOb2RlIHwgdW5kZWZpbmVkIHtcclxuICAgIGxldCB0cmVlTm9kZTogU21hcnRUcmVlTm9kZSB8IHVuZGVmaW5lZDtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBub2Rlcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2luZGV4XTtcclxuXHJcbiAgICAgIGlmIChub2RlLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcclxuICAgICAgICB0cmVlTm9kZSA9IG5vZGU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW5Ob2RlcyAmJiBub2RlLmNoaWxkcmVuTm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJlZU5vZGUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZShpZGVudGlmaWVyLCBub2RlLmNoaWxkcmVuTm9kZXMpO1xyXG4gICAgICAgIGlmICh0cmVlTm9kZSkge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJlZU5vZGU7XHJcbiAgfVxyXG5cclxuICBmaW5kU2VsZWN0ZWQobm9kZXM6IFNtYXJ0VHJlZU5vZGVbXSk6IHZvaWQge1xyXG4gICAgcmV0dXJuIG5vZGVzLmZvckVhY2goKG5vZGU6IFNtYXJ0VHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGUuc2VsZWN0ZWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGRyZW5Ob2RlcyAmJiBub2RlLmNoaWxkcmVuTm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFNlbGVjdGVkKG5vZGUuY2hpbGRyZW5Ob2Rlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQnV0dG9uc0ZvclRyZWVOb2Rlcyhub2RlczogU21hcnRUcmVlTm9kZVtdKTogU21hcnRUcmVlTm9kZVtdIHtcclxuICAgIGxldCBpY29uID0gdGhpcy50cmVlTWVudUljb24gPz8gJ21vcmVfdmVydCc7XHJcblxyXG4gICAgbm9kZXMubWFwKChub2RlOiBTbWFydFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgIG5vZGUuYnV0dG9uID0gbm9kZS5hY3Rpb25zPy5sZW5ndGhcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgdHlwZTogU21hcnRUcmVlTm9kZUJ1dHRvblR5cGUuTUVOVSxcclxuICAgICAgICAgICAgaWNvbjogaWNvbixcclxuICAgICAgICAgICAgbWVudUl0ZW1CdXR0b25zOiBub2RlLmFjdGlvbnMubWFwKChhY3Rpb246IFVpQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFNtYXJ0VHJlZU5vZGVCdXR0b25UeXBlLk5PUk1BTCxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsQnlBY3Rpb24oYWN0aW9uKSxcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLmRvQWN0aW9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBbYWN0aW9uLCBub2RlLmlkZW50aWZpZXJdLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICBub2RlLmljb24gPSAnRm9sZGVycyc7XHJcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuTm9kZXMpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuTm9kZXMgPSB0aGlzLmNyZWF0ZUJ1dHRvbnNGb3JUcmVlTm9kZXMobm9kZS5jaGlsZHJlbk5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkb0FjdGlvbihhcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHVpQWN0aW9uOiBVaUFjdGlvbiA9IGFyZ3NbMF07XHJcbiAgICBsZXQgbm9kZVV1aWQ6IHN0cmluZyA9IGFyZ3NbMV07XHJcblxyXG4gICAgaWYgKHVpQWN0aW9uLnBhcmFtcykge1xyXG4gICAgICB1aUFjdGlvbi5wYXJhbXNbJ25vZGVVdWlkJ10gPSBub2RlVXVpZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVpQWN0aW9uLnBhcmFtcyA9IHtcclxuICAgICAgICBub2RlVXVpZDogbm9kZVV1aWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwgPSB7XHJcbiAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgdWlBY3Rpb24sXHJcbiAgICB9O1xyXG4gICAgdGhpcy51aUFjdGlvblNlcnZpY2UudWlBY3Rpb25Nb2RlbCA9IHVpQWN0aW9uTW9kZWw7XHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZS5leGVjdXRlKHVpQWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBbGxOb2Rlcyhub2RlczogU21hcnRUcmVlTm9kZVtdKTogU21hcnRUcmVlTm9kZVtdIHtcclxuICAgIHJldHVybiBub2Rlcy5mbGF0TWFwKChuKSA9PiBbbiwgLi4udGhpcy5nZXRBbGxOb2RlcyhuLmNoaWxkcmVuTm9kZXMpXSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgY2FjaGVBY3Rpb25EZXNjaXB0b3JzKG5vZGVzOiBTbWFydFRyZWVOb2RlW10pIHtcclxuICAgIGxldCBuZXdVaUFjdGlvbnMgPSBuZXcgU2V0PFVpQWN0aW9uPigpO1xyXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBub2RlLmFjdGlvbnNcclxuICAgICAgICA/LmZpbHRlcigodWlBY3Rpb246IFVpQWN0aW9uKSA9PiAhdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JzLmdldCh1aUFjdGlvbi5jb2RlISkpXHJcbiAgICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4gbmV3VWlBY3Rpb25zLmFkZChhY3Rpb24pKTtcclxuICAgIH0pO1xyXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIG5ld1VpQWN0aW9ucykge1xyXG4gICAgICBpZiAoIXRoaXMudWlBY3Rpb25EZXNjcmlwdG9ycy5nZXQoYWN0aW9uLmNvZGUhKSkge1xyXG4gICAgICAgIGxldCBkZXNjcmlwdG9yID0gYXdhaXQgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLmdldEFjdGlvbkRlc2NyaXB0b3IoYWN0aW9uKTtcclxuICAgICAgICB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvcnMuc2V0KGFjdGlvbi5jb2RlISwgZGVzY3JpcHRvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0TGFiZWxCeUFjdGlvbihhY3Rpb246IFVpQWN0aW9uKTogc3RyaW5nIHtcclxuICAgIGxldCBkZXNjID0gdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JzLmdldChhY3Rpb24uY29kZSEpO1xyXG4gICAgcmV0dXJuIGRlc2MhLnRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBVc2VVaUFjdGlvblxyXG4gIGdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb246IFVpQWN0aW9uKTogVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zIHtcclxuICAgIGlmICh1aUFjdGlvbi5wYXJhbXMgJiYgdWlBY3Rpb24ucGFyYW1zWydub2RlVXVpZCddKSB7XHJcbiAgICAgIGxldCBub2RlVXVpZCA9IHVpQWN0aW9uLnBhcmFtcyFbJ25vZGVVdWlkJ107XHJcblxyXG4gICAgICBsZXQgbm9kZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICAgaWYgKHVpQWN0aW9uLmNvZGUgPT09ICdSRU5BTUUnKSB7XHJcbiAgICAgICAgbm9kZU5hbWUgPSB0aGlzLmRlZXBTZWFyY2hUcmVlTm9kZShub2RlVXVpZCwgdGhpcy50cmVlRnJvbUJhY2tlbmQhKT8uY2FwdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmb3JUZXh0QXJlYTogJycsXHJcbiAgICAgICAgZm9yVGV4dEZpZWxkOiBub2RlTmFtZSA/IG5vZGVOYW1lIDogJycsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZm9yVGV4dEFyZWE6ICcnLFxyXG4gICAgICBmb3JUZXh0RmllbGQ6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4ge307XHJcbiAgfVxyXG5cclxuICBhc3luYyBwZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh1aUFjdGlvblJlcXVlc3QucGFyYW1zWydub2RlVXVpZCddKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybU5vZGVVaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybU1haW5VaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICAvL2F3YWl0IHRoaXMudmlld0NvbnRleHQuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XHJcblxyXG4gICAgdGhpcy5zeW5jVHJlZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcGVyZm9ybU5vZGVVaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IG5vZGVJZCA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ25vZGVVdWlkJ107XHJcbiAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snbm9kZVV1aWQnXTtcclxuXHJcbiAgICBsZXQgdmlld1V1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSk7XHJcblxyXG4gICAgdGhpcy50cmVlRnJvbUJhY2tlbmQgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnBlcmZvcm1BY3Rpb24yKHZpZXdVdWlkLCB0aGlzLnRyZWVJZCEsIG5vZGVJZCwgdWlBY3Rpb25SZXF1ZXN0KS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgYXN5bmMgcGVyZm9ybU1haW5VaUFjdGlvblJlcXVlc3QodWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IHZpZXdVdWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUpO1xyXG5cclxuICAgIHRoaXMudHJlZUZyb21CYWNrZW5kID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5wZXJmb3JtTWFpbkFjdGlvbjIodmlld1V1aWQsIHRoaXMudHJlZUlkISwgdWlBY3Rpb25SZXF1ZXN0KS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxyXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcclxuICApOiBQcm9taXNlPFVpQWN0aW9uU3BlY2lmaWNEZW1hbmRSZXNwb25zZT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuIl19
@@ -1,181 +0,0 @@
1
- import { NestedTreeControl } from '@angular/cdk/tree';
2
- import { Component, Input, ViewChild, ViewChildren, } from '@angular/core';
3
- import { MatMenuTrigger } from '@angular/material/menu';
4
- import { MatTreeNestedDataSource } from '@angular/material/tree';
5
- import { SmartTreeNodeButtonType, } from './smarttree.model';
6
- import { Subject, takeUntil } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../view-context/smart-ui-action/ui-action-toolbar.component";
9
- import * as i2 from "@angular/material/tree";
10
- import * as i3 from "@angular/material/button";
11
- import * as i4 from "@angular/material/icon";
12
- import * as i5 from "../smart-icon/smart-icon/smart-icon.component";
13
- import * as i6 from "@angular/material/menu";
14
- import * as i7 from "@angular/common";
15
- export class SmartTreeComponent {
16
- constructor(cdr) {
17
- this.cdr = cdr;
18
- this._destroy$ = new Subject();
19
- this.treeControl = new NestedTreeControl((node) => node.childrenNodes);
20
- this.dataSource = new MatTreeNestedDataSource();
21
- this.smartTreeNodeButtonType = SmartTreeNodeButtonType;
22
- this.uiActionModels = [];
23
- this.hasChild = (_, node) => node.hasChildren;
24
- }
25
- ngOnInit() {
26
- if (!this.treeService) {
27
- throw new Error('TreeService has not been given!');
28
- }
29
- this.errorMessage = this.treeService.errorMessage;
30
- this.treeService.smartTreeModelChanged.subscribe((newSmartTree) => {
31
- this.treeData = newSmartTree;
32
- this.dataSource.data = this.treeData.rootNodes;
33
- this.expandTreeNodes();
34
- });
35
- this.treeService.uiActionModelsChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
36
- if (this.treeService.uiActionModels) {
37
- this.uiActionModels = this.treeService.uiActionModels;
38
- }
39
- });
40
- }
41
- ngOnDestroy() {
42
- this._destroy$.next();
43
- this._destroy$.complete();
44
- }
45
- getIfExpanded(node) {
46
- return this.treeControl.isExpanded(node);
47
- }
48
- expandTreeNodes() {
49
- this.expandTreeNodesDeeply(this.dataSource.data);
50
- }
51
- expandTreeNodesDeeply(nodes) {
52
- nodes.forEach((node) => {
53
- if (node.expanded) {
54
- this.treeControl.expand(node);
55
- this.cdr.markForCheck();
56
- if (node.childrenNodes && node.childrenNodes.length) {
57
- this.expandTreeNodesDeeply(node.childrenNodes);
58
- }
59
- }
60
- else {
61
- this.treeControl.collapse(node);
62
- }
63
- });
64
- }
65
- onNodeClick(event, node) {
66
- event.stopPropagation();
67
- if (this.tempActiveNode)
68
- this.tempActiveNode.selected = false;
69
- node.selected = true;
70
- this.tempActiveNode = node;
71
- this.treeService.onTreeNodeClick(node);
72
- }
73
- onOpenNode(event, node) {
74
- event.stopPropagation();
75
- this.treeService.onTreeNodeOpen(node);
76
- }
77
- getNodeStyle(node) {
78
- if (this.treeStyle) {
79
- var style = node.selected
80
- ? {
81
- background: this.treeStyle.activeStyle?.backgroundColor,
82
- color: this.treeStyle.activeStyle?.color,
83
- }
84
- : {
85
- background: this.treeStyle.levelBackgroundColor[node.level],
86
- color: this.treeStyle.color,
87
- };
88
- return style;
89
- }
90
- return {};
91
- }
92
- getNodePadding(node) {
93
- if (this.treeStyle) {
94
- var style = node.selected
95
- ? {
96
- 'padding-left': 15 * node.level + 'px',
97
- }
98
- : {
99
- 'padding-left': 15 * node.level + 'px',
100
- };
101
- return style;
102
- }
103
- return {};
104
- }
105
- customButtonClicked(event, button, close) {
106
- event.stopPropagation();
107
- if (button.type === SmartTreeNodeButtonType.MENU) {
108
- return;
109
- }
110
- if (!button.callback) {
111
- throw new Error(`Button with name ${button.label || button.icon} does not have a callback!`);
112
- }
113
- button.callback(button.args);
114
- if (close) {
115
- let openMenus = this.trigger.filter((matMenuTrigger) => matMenuTrigger.menuOpen);
116
- openMenus.forEach((matMenuTrigger) => {
117
- matMenuTrigger.closeMenu();
118
- });
119
- }
120
- }
121
- getClassesForTreeNode(node) {
122
- let classes = [];
123
- if (node.expanded) {
124
- classes.push(this.getCustomClass('expanded', node.level));
125
- }
126
- else {
127
- classes.push(this.getCustomClass('collapsed', node.level));
128
- }
129
- if (node.selected) {
130
- classes.push(this.getCustomClass('selected', node.level));
131
- }
132
- else {
133
- classes.push(this.getCustomClass('unselected', node.level));
134
- }
135
- if (node.level !== 0) {
136
- classes.push(this.getCustomClass('child', node.level));
137
- }
138
- return classes;
139
- }
140
- getInnerClassesForTreeNode(node) {
141
- let classes = [];
142
- if (node.expanded) {
143
- classes.push(this.getCustomClass('inner-expanded', node.level));
144
- }
145
- else {
146
- classes.push(this.getCustomClass('inner-collapsed', node.level));
147
- }
148
- if (node.selected) {
149
- classes.push(this.getCustomClass('inner-selected', node.level));
150
- }
151
- else {
152
- classes.push(this.getCustomClass('inner-unselected', node.level));
153
- }
154
- return classes;
155
- }
156
- getClassesForTreeNodeChildren(node) {
157
- let classes = [];
158
- classes.push(this.getCustomClass('group', node.level));
159
- return classes;
160
- }
161
- getCustomClass(cssClass, plusProperty) {
162
- return `${cssClass}-${plusProperty}`;
163
- }
164
- }
165
- SmartTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
166
- SmartTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartTreeComponent, selector: "smart-tree", inputs: { treeStyle: "treeStyle", treeService: "treeService" }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }, { propertyName: "trigger", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror\"\r\n matTreeNodeToggle\r\n (click)=\"onOpenNode($event, node)\"\r\n >\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\">\r\n <h3>\r\n {{ errorMessage }}\r\n </h3>\r\n </div>\r\n</div>\r\n", styles: [".smartTreeContainer{display:flex;flex-direction:column;gap:.5rem}.sm-tree-invisible{display:none}.sm-tree ul,.sm-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.sm-tree div[role=group]>.mat-tree-node{padding-left:40px}.sm-tee-node{padding-left:40px}.sm-tree-node-name{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tree-node-name-row{padding-left:15px;padding-top:15px;display:flex;flex-direction:row;justify-content:space-between}.sm-tree-node-name-col{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tee-node-id{font-weight:lighter}.mat-tree-node:hover{cursor:pointer}::ng-deep .mat-icon-rtl-mirror{display:flex;flex-direction:row}.sm-tree-row{display:flex;flex-direction:row;flex:1;align-items:center}.sm-shortDescription-spacer{flex:1}\n"], components: [{ type: i1.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id"] }, { type: i2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { type: i2.MatNestedTreeNode, selector: "mat-nested-tree-node", inputs: ["role", "disabled", "tabIndex", "matNestedTreeNode"], exportAs: ["matNestedTreeNode"] }, { type: i2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }] });
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartTreeComponent, decorators: [{
168
- type: Component,
169
- args: [{ selector: 'smart-tree', template: "<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror\"\r\n matTreeNodeToggle\r\n (click)=\"onOpenNode($event, node)\"\r\n >\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\">\r\n <h3>\r\n {{ errorMessage }}\r\n </h3>\r\n </div>\r\n</div>\r\n", styles: [".smartTreeContainer{display:flex;flex-direction:column;gap:.5rem}.sm-tree-invisible{display:none}.sm-tree ul,.sm-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.sm-tree div[role=group]>.mat-tree-node{padding-left:40px}.sm-tee-node{padding-left:40px}.sm-tree-node-name{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tree-node-name-row{padding-left:15px;padding-top:15px;display:flex;flex-direction:row;justify-content:space-between}.sm-tree-node-name-col{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tee-node-id{font-weight:lighter}.mat-tree-node:hover{cursor:pointer}::ng-deep .mat-icon-rtl-mirror{display:flex;flex-direction:row}.sm-tree-row{display:flex;flex-direction:row;flex:1;align-items:center}.sm-shortDescription-spacer{flex:1}\n"] }]
170
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { trigger: [{
171
- type: ViewChildren,
172
- args: [MatMenuTrigger]
173
- }], tree: [{
174
- type: ViewChild,
175
- args: ['tree']
176
- }], treeStyle: [{
177
- type: Input
178
- }], treeService: [{
179
- type: Input
180
- }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRyZWUvc21hcnR0cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxFQUlMLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCx1QkFBdUIsR0FDeEIsTUFBTSxtQkFBbUIsQ0FBQztBQUczQixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxrQkFBa0I7SUFtQjdCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEJsQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNakQsZ0JBQVcsR0FBRyxJQUFJLGlCQUFpQixDQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pGLGVBQVUsR0FBRyxJQUFJLHVCQUF1QixFQUFpQixDQUFDO1FBSzFELDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBSWxELG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQThEckMsYUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLElBQW1C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RkR0RWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFlBQVk7d0dBT1EsT0FBTztzQkFBcEMsWUFBWTt1QkFBQyxjQUFjO2dCQUVULElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFNUixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0VHJlZU5lc3RlZERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHtcclxuICBTbWFydFRyZWVNb2RlbCxcclxuICBTbWFydFRyZWVOb2RlLFxyXG4gIFNtYXJ0VHJlZU5vZGVCdXR0b24sXHJcbiAgU21hcnRUcmVlTm9kZUJ1dHRvblR5cGUsXHJcbn0gZnJvbSAnLi9zbWFydHRyZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlU3R5bGUgfSBmcm9tICcuL3NtYXJ0dHJlZS5ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnR0cmVlU2VydmljZSB9IGZyb20gJy4vc21hcnR0cmVlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0dHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnR0cmVlLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0VHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oTWF0TWVudVRyaWdnZXIpIHRyaWdnZXIhOiBRdWVyeUxpc3Q8TWF0TWVudVRyaWdnZXI+O1xyXG5cclxuICBAVmlld0NoaWxkKCd0cmVlJykgdHJlZTogYW55O1xyXG5cclxuICB0cmVlQ29udHJvbCA9IG5ldyBOZXN0ZWRUcmVlQ29udHJvbDxTbWFydFRyZWVOb2RlPigobm9kZSkgPT4gbm9kZS5jaGlsZHJlbk5vZGVzKTtcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVOZXN0ZWREYXRhU291cmNlPFNtYXJ0VHJlZU5vZGU+KCk7XHJcbiAgdGVtcEFjdGl2ZU5vZGU/OiBTbWFydFRyZWVOb2RlO1xyXG4gIHRyZWVEYXRhPzogU21hcnRUcmVlTW9kZWw7XHJcbiAgQElucHV0KCkgdHJlZVN0eWxlPzogVHJlZVN0eWxlO1xyXG4gIEBJbnB1dCgpIHRyZWVTZXJ2aWNlITogU21hcnR0cmVlU2VydmljZTxhbnk+O1xyXG4gIHNtYXJ0VHJlZU5vZGVCdXR0b25UeXBlID0gU21hcnRUcmVlTm9kZUJ1dHRvblR5cGU7XHJcblxyXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgdWlBY3Rpb25Nb2RlbHM6IFVpQWN0aW9uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJlZVNlcnZpY2UpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmVlU2VydmljZSBoYXMgbm90IGJlZW4gZ2l2ZW4hJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMudHJlZVNlcnZpY2UuZXJyb3JNZXNzYWdlO1xyXG5cclxuICAgIHRoaXMudHJlZVNlcnZpY2Uuc21hcnRUcmVlTW9kZWxDaGFuZ2VkLnN1YnNjcmliZSgobmV3U21hcnRUcmVlOiBTbWFydFRyZWVNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLnRyZWVEYXRhID0gbmV3U21hcnRUcmVlO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudHJlZURhdGEucm9vdE5vZGVzITtcclxuICAgICAgdGhpcy5leHBhbmRUcmVlTm9kZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmVlU2VydmljZS51aUFjdGlvbk1vZGVsc0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy50cmVlU2VydmljZS51aUFjdGlvbk1vZGVscykge1xyXG4gICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbHMgPSB0aGlzLnRyZWVTZXJ2aWNlLnVpQWN0aW9uTW9kZWxzO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWZFeHBhbmRlZChub2RlOiBTbWFydFRyZWVOb2RlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kVHJlZU5vZGVzKCkge1xyXG4gICAgdGhpcy5leHBhbmRUcmVlTm9kZXNEZWVwbHkodGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kVHJlZU5vZGVzRGVlcGx5KG5vZGVzOiBTbWFydFRyZWVOb2RlW10pIHtcclxuICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbk5vZGVzICYmIG5vZGUuY2hpbGRyZW5Ob2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kVHJlZU5vZGVzRGVlcGx5KG5vZGUuY2hpbGRyZW5Ob2Rlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wuY29sbGFwc2Uobm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Ob2RlQ2xpY2soZXZlbnQ6IGFueSwgbm9kZTogU21hcnRUcmVlTm9kZSkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHRoaXMudGVtcEFjdGl2ZU5vZGUpIHRoaXMudGVtcEFjdGl2ZU5vZGUuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy50ZW1wQWN0aXZlTm9kZSA9IG5vZGU7XHJcblxyXG4gICAgdGhpcy50cmVlU2VydmljZS5vblRyZWVOb2RlQ2xpY2sobm9kZSk7XHJcbiAgfVxyXG5cclxuICBvbk9wZW5Ob2RlKGV2ZW50OiBhbnksIG5vZGU6IFNtYXJ0VHJlZU5vZGUpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy50cmVlU2VydmljZS5vblRyZWVOb2RlT3Blbihub2RlKTtcclxuICB9XHJcblxyXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogU21hcnRUcmVlTm9kZSkgPT4gbm9kZS5oYXNDaGlsZHJlbjtcclxuXHJcbiAgZ2V0Tm9kZVN0eWxlKG5vZGU6IFNtYXJ0VHJlZU5vZGUpIHtcclxuICAgIGlmICh0aGlzLnRyZWVTdHlsZSkge1xyXG4gICAgICB2YXIgc3R5bGUgPSBub2RlLnNlbGVjdGVkXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRoaXMudHJlZVN0eWxlLmFjdGl2ZVN0eWxlPy5iYWNrZ3JvdW5kQ29sb3IsXHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLnRyZWVTdHlsZS5hY3RpdmVTdHlsZT8uY29sb3IsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRoaXMudHJlZVN0eWxlLmxldmVsQmFja2dyb3VuZENvbG9yIVtub2RlLmxldmVsIV0sXHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLnRyZWVTdHlsZS5jb2xvciEsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICByZXR1cm4gc3R5bGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge307XHJcbiAgfVxyXG4gIGdldE5vZGVQYWRkaW5nKG5vZGU6IFNtYXJ0VHJlZU5vZGUpIHtcclxuICAgIGlmICh0aGlzLnRyZWVTdHlsZSkge1xyXG4gICAgICB2YXIgc3R5bGUgPSBub2RlLnNlbGVjdGVkXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICdwYWRkaW5nLWxlZnQnOiAxNSAqIG5vZGUubGV2ZWwhICsgJ3B4JyxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IHtcclxuICAgICAgICAgICAgJ3BhZGRpbmctbGVmdCc6IDE1ICogbm9kZS5sZXZlbCEgKyAncHgnLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt9O1xyXG4gIH1cclxuXHJcbiAgY3VzdG9tQnV0dG9uQ2xpY2tlZChldmVudDogYW55LCBidXR0b246IFNtYXJ0VHJlZU5vZGVCdXR0b24sIGNsb3NlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKGJ1dHRvbi50eXBlID09PSBTbWFydFRyZWVOb2RlQnV0dG9uVHlwZS5NRU5VKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWJ1dHRvbi5jYWxsYmFjaykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEJ1dHRvbiB3aXRoIG5hbWUgJHtidXR0b24ubGFiZWwgfHwgYnV0dG9uLmljb259IGRvZXMgbm90IGhhdmUgYSBjYWxsYmFjayFgKTtcclxuICAgIH1cclxuICAgIGJ1dHRvbi5jYWxsYmFjayhidXR0b24uYXJncyk7XHJcbiAgICBpZiAoY2xvc2UpIHtcclxuICAgICAgbGV0IG9wZW5NZW51cyA9IHRoaXMudHJpZ2dlci5maWx0ZXIoXHJcbiAgICAgICAgKG1hdE1lbnVUcmlnZ2VyOiBNYXRNZW51VHJpZ2dlcikgPT4gbWF0TWVudVRyaWdnZXIubWVudU9wZW5cclxuICAgICAgKTtcclxuICAgICAgb3Blbk1lbnVzLmZvckVhY2goKG1hdE1lbnVUcmlnZ2VyOiBNYXRNZW51VHJpZ2dlcikgPT4ge1xyXG4gICAgICAgIG1hdE1lbnVUcmlnZ2VyLmNsb3NlTWVudSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENsYXNzZXNGb3JUcmVlTm9kZShub2RlOiBTbWFydFRyZWVOb2RlKTogc3RyaW5nW10ge1xyXG4gICAgbGV0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcclxuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuZ2V0Q3VzdG9tQ2xhc3MoJ2V4cGFuZGVkJywgbm9kZS5sZXZlbCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuZ2V0Q3VzdG9tQ2xhc3MoJ2NvbGxhcHNlZCcsIG5vZGUubGV2ZWwpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDdXN0b21DbGFzcygnc2VsZWN0ZWQnLCBub2RlLmxldmVsKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDdXN0b21DbGFzcygndW5zZWxlY3RlZCcsIG5vZGUubGV2ZWwpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobm9kZS5sZXZlbCAhPT0gMCkge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDdXN0b21DbGFzcygnY2hpbGQnLCBub2RlLmxldmVsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNsYXNzZXM7XHJcbiAgfVxyXG5cclxuICBnZXRJbm5lckNsYXNzZXNGb3JUcmVlTm9kZShub2RlOiBTbWFydFRyZWVOb2RlKTogc3RyaW5nW10ge1xyXG4gICAgbGV0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcclxuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuZ2V0Q3VzdG9tQ2xhc3MoJ2lubmVyLWV4cGFuZGVkJywgbm9kZS5sZXZlbCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuZ2V0Q3VzdG9tQ2xhc3MoJ2lubmVyLWNvbGxhcHNlZCcsIG5vZGUubGV2ZWwpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDdXN0b21DbGFzcygnaW5uZXItc2VsZWN0ZWQnLCBub2RlLmxldmVsKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDdXN0b21DbGFzcygnaW5uZXItdW5zZWxlY3RlZCcsIG5vZGUubGV2ZWwpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2xhc3NlcztcclxuICB9XHJcblxyXG4gIGdldENsYXNzZXNGb3JUcmVlTm9kZUNoaWxkcmVuKG5vZGU6IFNtYXJ0VHJlZU5vZGUpOiBzdHJpbmdbXSB7XHJcbiAgICBsZXQgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDdXN0b21DbGFzcygnZ3JvdXAnLCBub2RlLmxldmVsKSk7XHJcblxyXG4gICAgcmV0dXJuIGNsYXNzZXM7XHJcbiAgfVxyXG5cclxuICBnZXRDdXN0b21DbGFzcyhjc3NDbGFzczogc3RyaW5nLCBwbHVzUHJvcGVydHk6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7Y3NzQ2xhc3N9LSR7cGx1c1Byb3BlcnR5fWA7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWFydFRyZWVDb250YWluZXJcIj5cclxuICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXJcclxuICAgICpuZ0lmPVwidWlBY3Rpb25Nb2RlbHMubGVuZ3RoXCJcclxuICAgIFt1aUFjdGlvbk1vZGVsc109XCJ1aUFjdGlvbk1vZGVsc1wiXHJcbiAgPjwvc21hcnQtdWktYWN0aW9uLXRvb2xiYXI+XHJcbiAgPG1hdC10cmVlXHJcbiAgICAjdHJlZVxyXG4gICAgKm5nSWY9XCJ0cmVlRGF0YVwiXHJcbiAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiXHJcbiAgICBjbGFzcz1cInNtLXRyZWVcIlxyXG4gID5cclxuICAgIDxtYXQtbmVzdGVkLXRyZWUtbm9kZVxyXG4gICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogaGFzQ2hpbGRcIlxyXG4gICAgICBtYXRUcmVlTm9kZVRvZ2dsZT1cInt7IGdldElmRXhwYW5kZWQobm9kZSkgfX1cIlxyXG4gICAgICBbbmdDbGFzc109XCJnZXRDbGFzc2VzRm9yVHJlZU5vZGUobm9kZSlcIlxyXG4gICAgICBbbmdTdHlsZV09XCJnZXROb2RlU3R5bGUobm9kZSlcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0Tm9kZVBhZGRpbmcobm9kZSlcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImdldElubmVyQ2xhc3Nlc0ZvclRyZWVOb2RlKG5vZGUpXCJcclxuICAgICAgICBjbGFzcz1cIm1hdC10cmVlLW5vZGUgc20tdHJlZS1ub2RlXCJcclxuICAgICAgICAoY2xpY2spPVwib25Ob2RlQ2xpY2soJGV2ZW50LCBub2RlKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidUb2dnbGUgJyArIG5vZGUubmFtZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiXHJcbiAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk9wZW5Ob2RlKCRldmVudCwgbm9kZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzQ2hpbGQobm9kZS5sZXZlbCwgbm9kZSlcIj5cclxuICAgICAgICAgICAgICB7eyB0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0JyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPHNtYXJ0LWljb24gW2ljb25dPVwibm9kZS5pY29uXCI+IDwvc21hcnQtaWNvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic20tdHJlZS1yb3dcIiBbbmdDbGFzc109XCJub2RlLmNsYXNzZXNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbS10cmVlLXJvdy1jYXB0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7IG5vZGUuY2FwdGlvbiB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic20tc2hvcnREZXNjcmlwdGlvbi1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbS10cmVlLXJvdy1zaG9ydERlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7IG5vZGUuc2hvcnREZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic20tc2hvcnREZXNjcmlwdGlvbi1idXR0b24tc3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5idXR0b25cIiBjbGFzcz1cInNtLXRyZWUtbm9kZS1idXR0b25cIiBbbmdTd2l0Y2hdPVwibm9kZS5idXR0b24udHlwZVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBub2RlLmJ1dHRvbilcIlxyXG4gICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJzbWFydFRyZWVOb2RlQnV0dG9uVHlwZS5JQ09OXCJcclxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzbWFydC1pY29uIHRpdGxlPVwie3sgbm9kZS5idXR0b24uaWNvbiB9fVwiIFtpY29uXT1cIm5vZGUuYnV0dG9uLmljb25cIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCJzbWFydFRyZWVOb2RlQnV0dG9uVHlwZS5NRU5VXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBub2RlLmJ1dHRvbiwgdHJ1ZSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwibm9kZS5idXR0b24uaWNvblwiIFtpY29uXT1cIm5vZGUuYnV0dG9uLmljb25cIj48L3NtYXJ0LWljb25cclxuICAgICAgICAgICAgICAgID57eyBub2RlLmJ1dHRvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBub2RlLmJ1dHRvbi5tZW51SXRlbUJ1dHRvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ1dHRvbiwgdHJ1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwiYnV0dG9uLmljb25cIiBbaWNvbl09XCJidXR0b24uaWNvblwiPjwvc21hcnQtaWNvblxyXG4gICAgICAgICAgICAgICAgICA+e3sgYnV0dG9uLmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjdXN0b21CdXR0b25DbGlja2VkKCRldmVudCwgbm9kZS5idXR0b24pXCJcclxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwic21hcnRUcmVlTm9kZUJ1dHRvblR5cGUuTk9STUFMXCJcclxuICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJub2RlLmJ1dHRvbi5pY29uXCIgW2ljb25dPVwibm9kZS5idXR0b24uaWNvblwiPjwvc21hcnQtaWNvbj5cclxuICAgICAgICAgICAgICB7eyBub2RlLmJ1dHRvbi5pY29uIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW2NsYXNzLnNtLXRyZWUtaW52aXNpYmxlXT1cIiF0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXCJcclxuICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzc2VzRm9yVHJlZU5vZGVDaGlsZHJlbihub2RlKVwiXHJcbiAgICAgICAgcm9sZT1cImdyb3VwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0VHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtbmVzdGVkLXRyZWUtbm9kZT5cclxuICA8L21hdC10cmVlPlxyXG4gIDxkaXYgKm5nSWY9XCIhdHJlZURhdGFcIj5cclxuICAgIDxoMz5cclxuICAgICAge3sgZXJyb3JNZXNzYWdlIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19