@smartbit4all/ng-client 3.3.205 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) 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/{esm2020 → esm2022}/lib/smart-form/services/smartform.layout-definition.service.mjs +542 -502
  146. package/esm2022/lib/smart-form/services/smartform.service.mjs +640 -0
  147. package/{esm2020 → esm2022}/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +14 -14
  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/{esm2020 → esm2022}/lib/smart-grid/smart-grid.component.mjs +767 -767
  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/{esm2020 → esm2022}/lib/smart-tab-group/smart-tab-group.component.mjs +43 -43
  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/{esm2020 → esm2022}/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +19 -19
  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/{esm2020 → esm2022}/lib/view-context/smart-ui-action/ui-action.service.mjs +211 -211
  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/esm2022/lib/view-context/smart-view-context.model.mjs +2 -0
  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 +15917 -15886
  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 -42
  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.0.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.service.mjs +0 -640
  745. package/esm2020/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +0 -78
  746. package/esm2020/lib/smart-form/smartform.component.mjs +0 -178
  747. package/esm2020/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +0 -84
  748. package/esm2020/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +0 -736
  749. package/esm2020/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +0 -59
  750. package/esm2020/lib/smart-grid/api/grid-api/api/grid.service.mjs +0 -451
  751. package/esm2020/lib/smart-grid/api/grid-api/api.module.mjs +0 -40
  752. package/esm2020/lib/smart-grid/api/grid-api/configuration.mjs +0 -91
  753. package/esm2020/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +0 -61
  754. package/esm2020/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +0 -182
  755. package/esm2020/lib/smart-grid/smart-grid.module.mjs +0 -78
  756. package/esm2020/lib/smart-grid/smart-grid.service.mjs +0 -80
  757. package/esm2020/lib/smart-icon/smart-icon/smart-icon.component.mjs +0 -40
  758. package/esm2020/lib/smart-icon/smart-icon.module.mjs +0 -22
  759. package/esm2020/lib/smart-icon/smart-icon.service.mjs +0 -74
  760. package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +0 -61
  761. package/esm2020/lib/smart-navbar/smart-navbar.module.mjs +0 -65
  762. package/esm2020/lib/smart-navigation/smart-navigation.module.mjs +0 -18
  763. package/esm2020/lib/smart-navigation/smart-navigation.service.mjs +0 -56
  764. package/esm2020/lib/smart-ng-client.module.mjs +0 -128
  765. package/esm2020/lib/smart-subject/smart-subject.mjs +0 -21
  766. package/esm2020/lib/smart-tab-group/smart-tab-group.module.mjs +0 -25
  767. package/esm2020/lib/smart-tab-group/tab-content/tab-content.component.mjs +0 -31
  768. package/esm2020/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +0 -66
  769. package/esm2020/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +0 -43
  770. package/esm2020/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +0 -52
  771. package/esm2020/lib/smart-table/smarttable.component.mjs +0 -98
  772. package/esm2020/lib/smart-table/smarttable.model.mjs +0 -169
  773. package/esm2020/lib/smart-table/smarttable.module.mjs +0 -107
  774. package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +0 -39
  775. package/esm2020/lib/smart-table/tables/table.mjs +0 -520
  776. package/esm2020/lib/smart-tree/smarttree-generic.service.mjs +0 -288
  777. package/esm2020/lib/smart-tree/smarttree.component.mjs +0 -181
  778. package/esm2020/lib/smart-tree/smarttree.module.mjs +0 -62
  779. package/esm2020/lib/smart-tree/smarttree.service.mjs +0 -47
  780. package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +0 -1190
  781. package/esm2020/lib/smart-tree/tree-api/configuration.mjs +0 -91
  782. package/esm2020/lib/smart-tree/tree-api/param.mjs +0 -2
  783. package/esm2020/lib/view-context/api/api/view.service.mjs +0 -903
  784. package/esm2020/lib/view-context/api/api.module.mjs +0 -40
  785. package/esm2020/lib/view-context/api/configuration.mjs +0 -91
  786. package/esm2020/lib/view-context/api/model/clipboardData.mjs +0 -13
  787. package/esm2020/lib/view-context/api/model/view.mjs +0 -2
  788. package/esm2020/lib/view-context/api/model/viewContext.mjs +0 -2
  789. package/esm2020/lib/view-context/api/model/viewContextData.mjs +0 -2
  790. package/esm2020/lib/view-context/api/model/viewPlaceholder.mjs +0 -13
  791. package/esm2020/lib/view-context/message-dialog/message-dialog.component.mjs +0 -66
  792. package/esm2020/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +0 -30
  793. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +0 -72
  794. package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +0 -126
  795. package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +0 -146
  796. package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +0 -180
  797. package/esm2020/lib/view-context/smart-view-context-dialog.service.mjs +0 -54
  798. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +0 -29
  799. package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +0 -69
  800. package/esm2020/lib/view-context/smart-view-context.interceptor.mjs +0 -39
  801. package/esm2020/lib/view-context/smart-view-context.model.mjs +0 -2
  802. package/esm2020/lib/view-context/smart-view-context.module.mjs +0 -222
  803. package/esm2020/lib/view-context/smart-view-context.service.mjs +0 -685
  804. package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +0 -33
  805. package/esm2020/lib/view-context/utility/smart-object-utility.mjs +0 -30
  806. package/esm2020/lib/view-context/utility/smart-style-utility.mjs +0 -68
  807. package/esm2020/lib/view-context/value-api/api/value.service.mjs +0 -138
  808. package/esm2020/lib/view-context/value-api/api.module.mjs +0 -40
  809. package/esm2020/lib/view-context/value-api/configuration.mjs +0 -91
  810. package/esm2020/lib/view-context/value-api/model/genericValue.mjs +0 -13
  811. package/esm2020/lib/view-context/value-api/model/value.mjs +0 -13
  812. package/esm2020/lib/view-context/value-api/model/valueSetDefinition.mjs +0 -2
  813. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +0 -13
  814. package/esm2020/lib/view-context/value-api/model/valueSetOperand.mjs +0 -2
  815. package/esm2020/lib/view-context/value-api/param.mjs +0 -2
  816. package/fesm2015/smartbit4all-ng-client.mjs +0 -16397
  817. package/fesm2015/smartbit4all-ng-client.mjs.map +0 -1
  818. package/fesm2020/smartbit4all-ng-client.mjs.map +0 -1
  819. package/smartbit4all-ng-client-3.3.205.tgz +0 -0
  820. package/src/lib/component-factory-service/README.md +0 -99
  821. package/src/lib/session/api/README.md +0 -226
  822. package/src/lib/smart-component-layout/README.md +0 -31
  823. package/src/lib/smart-component-layout/api/README.md +0 -226
  824. package/src/lib/smart-dialog/README.md +0 -197
  825. package/src/lib/smart-expandable-section/README.md +0 -249
  826. package/src/lib/smart-filter/README.md +0 -101
  827. package/src/lib/smart-filter-editor/api/README.md +0 -226
  828. package/src/lib/smart-form/README.md +0 -1178
  829. package/src/lib/smart-form/api/README.md +0 -226
  830. package/src/lib/smart-grid/README.md +0 -24
  831. package/src/lib/smart-grid/api/grid-api/README.md +0 -226
  832. package/src/lib/smart-icon/README.md +0 -116
  833. package/src/lib/smart-navbar/README.md +0 -119
  834. package/src/lib/smart-navigation/README.md +0 -141
  835. package/src/lib/smart-tab-group/README.md +0 -155
  836. package/src/lib/smart-table/README.md +0 -667
  837. package/src/lib/smart-tree/tree-api/README.md +0 -226
  838. package/src/lib/view-context/api/README.md +0 -226
  839. package/src/lib/view-context/value-api/README.md +0 -226
@@ -0,0 +1,520 @@
1
+ import { Component, Input, ViewChild, ViewChildren, ViewContainerRef, } from '@angular/core';
2
+ import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu';
3
+ import { Subject } from 'rxjs';
4
+ import { SmartStyleUtility } from '../../view-context/utility/smart-style-utility';
5
+ import { DefaultActionsPopupComponent } from '../components/default-actions-popup/default-actions-popup.component';
6
+ import { LoadingComponent } from '../components/loading/loading.component';
7
+ import { SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, } from '../smarttable.model';
8
+ import { SmartObjectUtility } from '../../view-context/utility/smart-object-utility';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../component-factory-service/projects";
11
+ export class Table {
12
+ constructor(cfService) {
13
+ this.cfService = cfService;
14
+ this._destroy$ = new Subject();
15
+ this.tableType = SmartTableType;
16
+ this.smartTableButtonType = SmartTableButtonType;
17
+ this.highlightedRows = [];
18
+ this.sortEvent = new Subject();
19
+ this.onSelectionChanged = new Subject();
20
+ this.asyncTranslationResult = (translator, param) => translator(param);
21
+ this.ACTION_SEPERATOR = '_actionSeparator_';
22
+ }
23
+ ngOnInit() {
24
+ if (this.smartTable.sortable)
25
+ this.sortEvent = new Subject();
26
+ }
27
+ ngOnDestroy() {
28
+ this._destroy$.next();
29
+ this._destroy$.complete();
30
+ }
31
+ handleOnRowClick(element) {
32
+ if (this.smartTable.tableType === SmartTableType.INHERITED) {
33
+ this.onRowClick(element);
34
+ }
35
+ else if (this.smartTable.tableType === SmartTableType.CHECK_BOX) {
36
+ if (!this.smartTable.onRowDoubleClick && !this.smartTable.onRowClick) {
37
+ this.setSelection(this.smartTable.selectionProperty
38
+ ? this.smartTable.getValueDeeply(element, this.smartTable.selectionProperty)
39
+ : element);
40
+ }
41
+ else if (this.smartTable.onRowClick) {
42
+ this.onRowClick(element);
43
+ }
44
+ }
45
+ else if (this.smartTable.tableType === SmartTableType.ROW_SELECT) {
46
+ this.setSelection(this.smartTable.selectionProperty
47
+ ? this.smartTable.getValueDeeply(element, this.smartTable.selectionProperty)
48
+ : element);
49
+ }
50
+ }
51
+ updateSmartTable(smartTable) {
52
+ this.smartTable = smartTable;
53
+ this.renderRows();
54
+ }
55
+ renderRows() {
56
+ this.myTableChild.renderRows();
57
+ }
58
+ handleOnRowDoubleClick(event, element) {
59
+ if (this.smartTable.defaultActions && this.smartTable.defaultActions.length > 0) {
60
+ this.openDefaultActionsMenu(event, element);
61
+ }
62
+ else {
63
+ if (this.smartTable.tableType === SmartTableType.INHERITED) {
64
+ this.onRowDoubleClick(element);
65
+ }
66
+ else if (this.smartTable.tableType === SmartTableType.CHECK_BOX) {
67
+ if (this.smartTable.onRowDoubleClick) {
68
+ this.onRowDoubleClick(element);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ type() {
74
+ return SmartTableHeaderPropertyType;
75
+ }
76
+ sortButtonClicked(event, header) {
77
+ event.stopPropagation();
78
+ this.sortEvent.next(header);
79
+ }
80
+ customButtonClicked(event, button, element, btn, close) {
81
+ event.stopPropagation();
82
+ if (btn?.disabled) {
83
+ return;
84
+ }
85
+ if (button.type === SmartTableButtonType.MENU && btn === undefined)
86
+ return;
87
+ if (!button.callback) {
88
+ throw new Error(`Button with name ${button.label || button.icon} does not have a callback!`);
89
+ }
90
+ button.callback(button.args, element, btn);
91
+ if (close) {
92
+ let openMenus = this.triggers.filter((matMenuTrigger) => matMenuTrigger.menuOpen);
93
+ openMenus.forEach((matMenuTrigger) => {
94
+ matMenuTrigger.closeMenu();
95
+ });
96
+ }
97
+ }
98
+ isSortable(header) {
99
+ let isSortableTable = this.smartTable.sortable;
100
+ if (isSortableTable) {
101
+ return header.isSortable !== undefined ? header.isSortable : true;
102
+ }
103
+ return false;
104
+ }
105
+ getSortIcon(header) {
106
+ let tableHeader = this.smartTable.customSmartTableHeaders?.find((tableHeader) => tableHeader.propertyName === header);
107
+ if (tableHeader && tableHeader.order) {
108
+ return tableHeader.order === SmartTableOrder.ASC
109
+ ? this.smartTable.sortIconAsc ?? 'keyboard_arrow_down'
110
+ : this.smartTable.sortIconDesc ?? 'keyboard_arrow_up';
111
+ }
112
+ return undefined;
113
+ }
114
+ hasSortNumIcon(header) {
115
+ let tableHeader = this.smartTable.customSmartTableHeaders?.find((tableHeader) => tableHeader.propertyName === header);
116
+ return tableHeader?.orderNumber !== undefined;
117
+ }
118
+ getSortNumIcon(header) {
119
+ let tableHeader = this.smartTable.customSmartTableHeaders?.find((tableHeader) => tableHeader.propertyName === header);
120
+ if (tableHeader && tableHeader.orderNumber) {
121
+ return `filter_${tableHeader.orderNumber}`;
122
+ }
123
+ return '';
124
+ }
125
+ getToolTip(element, headerIndex) {
126
+ if (!this.smartTable.customSmartTableHeaders) {
127
+ throw new Error('CustomTableHeaders property is missing');
128
+ }
129
+ else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties) {
130
+ throw new Error(`CustomTableHeader with index ${headerIndex} does not have properties`);
131
+ }
132
+ else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties.icons) {
133
+ throw new Error(`CustomTableHeader with index ${headerIndex} does not have icons defined`);
134
+ }
135
+ let toolTipColumn = this.smartTable.customSmartTableHeaders[headerIndex].properties?.toolTipColumn;
136
+ return toolTipColumn ? this.getValue(element, toolTipColumn) : undefined;
137
+ }
138
+ getIcon(value, headerIndex) {
139
+ if (!this.smartTable.customSmartTableHeaders) {
140
+ throw new Error('CustomTableHeaders property is missing');
141
+ }
142
+ else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties) {
143
+ throw new Error(`CustomTableHeader with index ${headerIndex} does not have properties`);
144
+ }
145
+ else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties.icons) {
146
+ throw new Error(`CustomTableHeader with index ${headerIndex} does not have icons defined`);
147
+ }
148
+ let customTableHeaderIcons = this.smartTable.customSmartTableHeaders[headerIndex].properties.icons;
149
+ let icon = '';
150
+ for (var i = 0; i < customTableHeaderIcons.length; i++) {
151
+ let customTableHeaderIcon = customTableHeaderIcons[i];
152
+ if (value === null) {
153
+ if (customTableHeaderIcon.showIconIfValueNull &&
154
+ customTableHeaderIcon.showIconIfValueNull === value) {
155
+ icon = customTableHeaderIcon.icon;
156
+ break;
157
+ }
158
+ }
159
+ if (typeof value === 'number') {
160
+ if (customTableHeaderIcon.showIconIfValueBiggerThanNumber &&
161
+ customTableHeaderIcon.showIconIfValueBiggerThanNumber < value) {
162
+ icon = customTableHeaderIcon.icon;
163
+ break;
164
+ }
165
+ else if (customTableHeaderIcon.showIconIfValueSmallerThanNumber &&
166
+ customTableHeaderIcon.showIconIfValueSmallerThanNumber > value) {
167
+ icon = customTableHeaderIcon.icon;
168
+ break;
169
+ }
170
+ else if (customTableHeaderIcon.showIconIfValueEqualsWithNumber &&
171
+ customTableHeaderIcon.showIconIfValueEqualsWithNumber === value) {
172
+ icon = customTableHeaderIcon.icon;
173
+ break;
174
+ }
175
+ }
176
+ else if (typeof value === 'string') {
177
+ if (customTableHeaderIcon.showIconIfValueEqualsWithString &&
178
+ customTableHeaderIcon.showIconIfValueEqualsWithString === value) {
179
+ icon = customTableHeaderIcon.icon;
180
+ break;
181
+ }
182
+ }
183
+ else if (typeof value === 'boolean') {
184
+ if (customTableHeaderIcon.showIconIfValueBoolean &&
185
+ customTableHeaderIcon.showIconIfValueBoolean === value) {
186
+ icon = customTableHeaderIcon.icon;
187
+ break;
188
+ }
189
+ }
190
+ }
191
+ return icon;
192
+ }
193
+ getColor(value, headerIndex) {
194
+ if (!this.smartTable.customSmartTableHeaders) {
195
+ throw new Error('CustomTableHeaders property is missing');
196
+ }
197
+ else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties) {
198
+ throw new Error(`CustomTableHeader with index ${headerIndex} does not have properties`);
199
+ }
200
+ else if (!this.smartTable.customSmartTableHeaders[headerIndex].properties.icons) {
201
+ throw new Error(`CustomTableHeader with index ${headerIndex} does not have icons defined`);
202
+ }
203
+ let customTableHeaderIcons = this.smartTable.customSmartTableHeaders[headerIndex].properties.icons;
204
+ let color = 'primary';
205
+ for (var i = 0; i < customTableHeaderIcons.length; i++) {
206
+ let customTableHeaderIcon = customTableHeaderIcons[i];
207
+ if (typeof value === 'number') {
208
+ if (customTableHeaderIcon.showIconIfValueBiggerThanNumber &&
209
+ customTableHeaderIcon.showIconIfValueBiggerThanNumber < value) {
210
+ color = customTableHeaderIcon.color;
211
+ break;
212
+ }
213
+ else if (customTableHeaderIcon.showIconIfValueSmallerThanNumber &&
214
+ customTableHeaderIcon.showIconIfValueSmallerThanNumber > value) {
215
+ color = customTableHeaderIcon.color;
216
+ break;
217
+ }
218
+ else if (customTableHeaderIcon.showIconIfValueEqualsWithNumber &&
219
+ customTableHeaderIcon.showIconIfValueEqualsWithNumber === value) {
220
+ color = customTableHeaderIcon.color;
221
+ break;
222
+ }
223
+ }
224
+ else if (typeof value === 'string') {
225
+ if (customTableHeaderIcon.showIconIfValueEqualsWithString &&
226
+ customTableHeaderIcon.showIconIfValueEqualsWithString === value) {
227
+ color = customTableHeaderIcon.color;
228
+ break;
229
+ }
230
+ }
231
+ else if (typeof value === 'boolean') {
232
+ if (customTableHeaderIcon.showIconIfValueBoolean &&
233
+ customTableHeaderIcon.showIconIfValueBoolean === value) {
234
+ color = customTableHeaderIcon.color;
235
+ break;
236
+ }
237
+ }
238
+ }
239
+ return color;
240
+ }
241
+ tableOptionButtonDirection() {
242
+ return SmartTableOptionButtonDirection;
243
+ }
244
+ isAllSelected() {
245
+ const numSelected = this.smartTable.selection.selected.length;
246
+ const numRows = this.smartTable.tableRows.length;
247
+ return numSelected === numRows;
248
+ }
249
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
250
+ toggleAllRows() {
251
+ if (this.isAllSelected()) {
252
+ this.smartTable.selection.clear();
253
+ if (this.smartTable.onAllSelection) {
254
+ this.smartTable.onAllSelection(false);
255
+ }
256
+ return;
257
+ }
258
+ if (this.smartTable.maxNumOfSelectableRows) {
259
+ this.smartTable.selection.clear();
260
+ if (this.smartTable.onAllSelection) {
261
+ this.smartTable.onAllSelection(false);
262
+ }
263
+ return;
264
+ }
265
+ if (this.smartTable.selectionProperty) {
266
+ this.smartTable.selection.select(...this.smartTable.tableRows.map((row) => this.smartTable.getValueDeeply(row, this.smartTable.selectionProperty)));
267
+ }
268
+ else {
269
+ this.smartTable.selection.select(...this.smartTable.tableRows);
270
+ }
271
+ if (this.smartTable.onAllSelection) {
272
+ this.smartTable.onAllSelection(true);
273
+ }
274
+ }
275
+ /** The label for the checkbox on the passed row */
276
+ checkboxLabel(row) {
277
+ if (!row) {
278
+ return `${this.isAllSelected() ? 'deselect' : 'select'} all`;
279
+ }
280
+ return `${this.smartTable.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;
281
+ }
282
+ isHighlighted(row) {
283
+ if (this.smartTable.highlightProperty) {
284
+ if (row['data'][this.smartTable.highlightProperty]) {
285
+ return true;
286
+ }
287
+ }
288
+ if (!this.highlightedRows || !this.highlightedRows.length) {
289
+ return false;
290
+ }
291
+ return this.highlightedRows.includes(row);
292
+ }
293
+ getRowClasses(row) {
294
+ let classesToAdd = [];
295
+ let classesToRemove = [];
296
+ classesToAdd.push(this.isHighlighted(row) ? this.smartTable.highlightClass : 'unselected');
297
+ if (this.smartTable.hover) {
298
+ classesToAdd.push('smartTableRowHover');
299
+ }
300
+ else {
301
+ classesToRemove.push('smartTableRowHover');
302
+ }
303
+ if (this.isSelected(row)) {
304
+ classesToAdd.push('selected');
305
+ }
306
+ else {
307
+ classesToRemove.push('selected');
308
+ }
309
+ return SmartStyleUtility.getNgClasses(row.style, classesToAdd, classesToRemove);
310
+ }
311
+ getRowStyles(row) {
312
+ return SmartStyleUtility.getNgStyles(row.style);
313
+ }
314
+ getColumnClasses(header) {
315
+ return SmartStyleUtility.getNgClasses(header.style);
316
+ }
317
+ getColumnStyles(header) {
318
+ return SmartStyleUtility.getNgStyles(header.style);
319
+ }
320
+ toCamelCase(css) {
321
+ return css.replace(/-([a-z])/g, function (g) {
322
+ return g[1].toUpperCase();
323
+ });
324
+ }
325
+ onRowClick(row) {
326
+ if (this.smartTable.highlightOnRowClick) {
327
+ if (this.isHighlighted(row)) {
328
+ let index = this.highlightedRows.indexOf(row, 0);
329
+ this.highlightedRows.splice(index, 1);
330
+ }
331
+ else if (!this.highlightedRows || !this.highlightedRows.length) {
332
+ this.highlightedRows = [];
333
+ this.highlightedRows.push(row);
334
+ }
335
+ else {
336
+ this.highlightedRows.push(row);
337
+ }
338
+ }
339
+ if (this.smartTable.expandable && !this.smartTable.onRowDoubleClick) {
340
+ this.onToggle(row);
341
+ }
342
+ if (this.smartTable.onRowClick) {
343
+ this.smartTable.onRowClick(row);
344
+ }
345
+ }
346
+ onRowDoubleClick(row) {
347
+ if (this.smartTable.highlightOnRowClick) {
348
+ if (this.isHighlighted(row)) {
349
+ let index = this.highlightedRows.indexOf(row, 0);
350
+ this.highlightedRows.splice(index, 1);
351
+ }
352
+ else if (!this.highlightedRows || !this.highlightedRows.length) {
353
+ this.highlightedRows = [];
354
+ this.highlightedRows.push(row);
355
+ }
356
+ else {
357
+ this.highlightedRows.push(row);
358
+ }
359
+ }
360
+ if (this.smartTable.onRowDoubleClick) {
361
+ this.smartTable.onRowDoubleClick(row);
362
+ }
363
+ }
364
+ async onToggle(element, event) {
365
+ if (!this.smartTable.rowExpander) {
366
+ throw new Error('SmartTableRowExpander not found!. Please provide a SmartTableRowExpander implementation.');
367
+ }
368
+ if (event) {
369
+ event?.stopPropagation();
370
+ }
371
+ let oldIndex = this.smartTable.tableRows.findIndex((element) => element === this.expandedElement);
372
+ if (oldIndex !== -1) {
373
+ let ref = this.vcRef.filter((element, index) => index === oldIndex);
374
+ ref[0].clear();
375
+ }
376
+ this.expandedElement = this.expandedElement === element ? null : element;
377
+ let newIndex = this.smartTable.tableRows.findIndex((element) => element === this.expandedElement);
378
+ let rowDataResponse;
379
+ if (newIndex !== -1) {
380
+ if (this.smartTable.asyncOnExpand) {
381
+ this.componentRef = this.cfService.createComponent(this.vcRef?.filter((element, index) => index === newIndex)[0], LoadingComponent, new Map());
382
+ rowDataResponse = await this.smartTable.rowExpander?.expandAsync(newIndex);
383
+ let ref = this.vcRef.filter((element, index) => index === newIndex)[0];
384
+ ref.clear();
385
+ }
386
+ this.componentRef = this.cfService.createComponent(this.vcRef?.filter((element, index) => index === newIndex)[0], this.smartTable.expandedComponent, new Map([['rowData', rowDataResponse]]));
387
+ this.element = undefined;
388
+ }
389
+ }
390
+ setSelection(element) {
391
+ if (this.smartTable.maxNumOfSelectableRows &&
392
+ this.smartTable.selection.selected.length === this.smartTable.maxNumOfSelectableRows) {
393
+ return;
394
+ }
395
+ this.smartTable.selection?.toggle(element);
396
+ this.onSelectionChanged.next();
397
+ if (this.smartTable.onSelection) {
398
+ this.smartTable.onSelection(element);
399
+ }
400
+ }
401
+ showMenuButton(element, button) {
402
+ if (button.menuItemButtons) {
403
+ return true;
404
+ }
405
+ else if (button.menuItemButtonsPropertyName) {
406
+ try {
407
+ let length = this.getValue(element, button.menuItemButtonsPropertyName).length;
408
+ return length > 0;
409
+ }
410
+ catch (error) {
411
+ return false;
412
+ }
413
+ }
414
+ return false;
415
+ }
416
+ getValue(element, header) {
417
+ return SmartObjectUtility.getValueByPath(element, header);
418
+ }
419
+ showButton(button, element) {
420
+ if (button.showButtonIf) {
421
+ return button.showButtonIf(element);
422
+ }
423
+ return true;
424
+ }
425
+ isDisabled(element) {
426
+ if (this.smartTable.isRowDisabledPropertyName) {
427
+ return this.smartTable.getValueDeeply(element, this.smartTable.isRowDisabledPropertyName);
428
+ }
429
+ else if (this.smartTable.selectablePropertyName) {
430
+ const selectable = this.smartTable.getValueDeeply(element, this.smartTable.selectablePropertyName);
431
+ return selectable === undefined || selectable === null ? false : !selectable;
432
+ }
433
+ return false;
434
+ }
435
+ isSelected(element) {
436
+ return (this.smartTable.selection?.isSelected(this.smartTable.selectionProperty
437
+ ? this.smartTable.getValueDeeply(element, this.smartTable.selectionProperty)
438
+ : element) ?? false);
439
+ }
440
+ originalProperty(header) {
441
+ if (header.startsWith('data.')) {
442
+ return header.substring('data.'.length);
443
+ }
444
+ return header;
445
+ }
446
+ isImageResource(element, header) {
447
+ if (!element.icons) {
448
+ return false;
449
+ }
450
+ let property = this.originalProperty(header);
451
+ return Object.keys(element.icons).some((key) => key === property);
452
+ }
453
+ getImageResourceIcons(element, header) {
454
+ if (element?.icons) {
455
+ let iconCodes = element?.icons[this.originalProperty(header)];
456
+ return iconCodes;
457
+ }
458
+ return [];
459
+ }
460
+ getImageResourceIcon(element, header) {
461
+ return element.icons[this.originalProperty(header)].identifier;
462
+ }
463
+ getImageResourceColor(element, header) {
464
+ return element.icons[this.originalProperty(header)].color ?? 'primary';
465
+ }
466
+ getImageResourceStyle(resource) {
467
+ return resource.style ? resource.style : {};
468
+ }
469
+ openDefaultActionsMenu(event, row) {
470
+ let actionCodesFromRow = row?.actions?.map((action) => action.code);
471
+ if (!actionCodesFromRow) {
472
+ return;
473
+ }
474
+ let filteredActions = this.smartTable.defaultActions?.filter((action) => actionCodesFromRow.includes(action.code));
475
+ if (filteredActions && filteredActions.length > 0) {
476
+ if (filteredActions.length === 1) {
477
+ if (this.smartTable.onRowDoubleClick) {
478
+ this.smartTable.onRowDoubleClick(row);
479
+ return;
480
+ }
481
+ }
482
+ this.defaultActionMenuComponents
483
+ .toArray()
484
+ .find((comp) => comp.row.id === row.id)
485
+ ?.openDefaultActionsMenu(event);
486
+ }
487
+ }
488
+ getDefaultActionsForRow(element) {
489
+ if (element?.actions) {
490
+ const actionCodesFromRow = new Map(element?.actions?.map((action) => [action.code, action]));
491
+ return new Map(this.smartTable.defaultActions
492
+ ?.filter((action) => actionCodesFromRow.has(action.code))
493
+ .map((action) => [action, actionCodesFromRow.get(action.code)]));
494
+ }
495
+ return undefined;
496
+ }
497
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: Table, deps: [{ token: i1.ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
498
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: Table, selector: "ng-component", inputs: { smartTable: "smartTable" }, viewQueries: [{ propertyName: "myTableChild", first: true, predicate: ["myTable"], descendants: true }, { propertyName: "triggers", predicate: MatMenuTrigger, descendants: true }, { propertyName: "vcRef", predicate: ["expandedArea"], descendants: true, read: ViewContainerRef }, { propertyName: "defaultActionMenuComponents", predicate: DefaultActionsPopupComponent, descendants: true }], ngImport: i0, template: '', isInline: true }); }
499
+ }
500
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: Table, decorators: [{
501
+ type: Component,
502
+ args: [{
503
+ template: '',
504
+ }]
505
+ }], ctorParameters: () => [{ type: i1.ComponentFactoryService }], propDecorators: { triggers: [{
506
+ type: ViewChildren,
507
+ args: [MatMenuTrigger]
508
+ }], vcRef: [{
509
+ type: ViewChildren,
510
+ args: ['expandedArea', { read: ViewContainerRef }]
511
+ }], defaultActionMenuComponents: [{
512
+ type: ViewChildren,
513
+ args: [DefaultActionsPopupComponent]
514
+ }], myTableChild: [{
515
+ type: ViewChild,
516
+ args: ['myTable']
517
+ }], smartTable: [{
518
+ type: Input
519
+ }] } });
520
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC10YWJsZS90YWJsZXMvdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG9CQUFvQixJQUFJLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUdMLG9CQUFvQixFQUVwQiw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7O0FBSXJGLE1BQU0sT0FBTyxLQUFLO0lBdUJoQixZQUFzQixTQUFrQztRQUFsQyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQXRCakQsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBWWhELGNBQVMsR0FBRyxjQUFjLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFDNUIsY0FBUyxHQUE4QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBS3JELHVCQUFrQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSTNDLDJCQUFzQixHQUFHLENB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QTJCO3NCQUQxQixZQUFZO3VCQUFDLDRCQUE0QjtnQkFHcEIsWUFBWTtzQkFBakMsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0TGVnYWN5TWVudVRyaWdnZXIgYXMgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktbWVudSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeVRhYmxlIGFzIE1hdFRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXRhYmxlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC1mYWN0b3J5LXNlcnZpY2UvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBJbWFnZVJlc291cmNlLCBVaUFjdGlvbiwgVWlBY3Rpb25Ub29sdGlwIH0gZnJvbSAnLi4vLi4vdmlldy1jb250ZXh0L2FwaS9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xyXG5pbXBvcnQgeyBEZWZhdWx0QWN0aW9uc1BvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9kZWZhdWx0LWFjdGlvbnMtcG9wdXAvZGVmYXVsdC1hY3Rpb25zLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0VGFibGUsXHJcbiAgU21hcnRUYWJsZUJ1dHRvbixcclxuICBTbWFydFRhYmxlQnV0dG9uVHlwZSxcclxuICBTbWFydFRhYmxlSGVhZGVyLFxyXG4gIFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0eVR5cGUsXHJcbiAgU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbixcclxuICBTbWFydFRhYmxlT3JkZXIsXHJcbiAgU21hcnRUYWJsZVR5cGUsXHJcbn0gZnJvbSAnLi4vc21hcnR0YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0T2JqZWN0VXRpbGl0eSB9IGZyb20gJy4uLy4uL3ZpZXctY29udGV4dC91dGlsaXR5L3NtYXJ0LW9iamVjdC11dGlsaXR5JztcclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZHJlbihNYXRNZW51VHJpZ2dlcikgdHJpZ2dlcnMhOiBRdWVyeUxpc3Q8TWF0TWVudVRyaWdnZXI+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2V4cGFuZGVkQXJlYScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxyXG4gIHZjUmVmPzogVmlld0NvbnRhaW5lclJlZltdO1xyXG4gIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xyXG5cclxuICBAVmlld0NoaWxkcmVuKERlZmF1bHRBY3Rpb25zUG9wdXBDb21wb25lbnQpXHJcbiAgZGVmYXVsdEFjdGlvbk1lbnVDb21wb25lbnRzITogUXVlcnlMaXN0PERlZmF1bHRBY3Rpb25zUG9wdXBDb21wb25lbnQ+O1xyXG5cclxuICBAVmlld0NoaWxkKCdteVRhYmxlJykgbXlUYWJsZUNoaWxkITogTWF0VGFibGU8YW55PjtcclxuXHJcbiAgQElucHV0KCkgc21hcnRUYWJsZSE6IFNtYXJ0VGFibGU8YW55PjtcclxuICB0YWJsZVR5cGUgPSBTbWFydFRhYmxlVHlwZTtcclxuICBzbWFydFRhYmxlQnV0dG9uVHlwZSA9IFNtYXJ0VGFibGVCdXR0b25UeXBlO1xyXG4gIGhpZ2hsaWdodGVkUm93czogYW55W10gPSBbXTtcclxuICBzb3J0RXZlbnQ6IFN1YmplY3Q8U21hcnRUYWJsZUhlYWRlcj4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGV4cGFuZGVkRWxlbWVudDogYW55IHwgbnVsbDtcclxuXHJcbiAgZWxlbWVudD86IGFueTtcclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNmU2VydmljZTogQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UpIHt9XHJcblxyXG4gIHB1YmxpYyBhc3luY1RyYW5zbGF0aW9uUmVzdWx0ID0gKHRyYW5zbGF0b3I6IGFueSwgcGFyYW06IHN0cmluZykgPT4gdHJhbnNsYXRvcihwYXJhbSk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBBQ1RJT05fU0VQRVJBVE9SID0gJ19hY3Rpb25TZXBhcmF0b3JfJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zbWFydFRhYmxlLnNvcnRhYmxlKSB0aGlzLnNvcnRFdmVudCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPblJvd0NsaWNrKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc21hcnRUYWJsZS50YWJsZVR5cGUgPT09IFNtYXJ0VGFibGVUeXBlLklOSEVSSVRFRCkge1xyXG4gICAgICB0aGlzLm9uUm93Q2xpY2soZWxlbWVudCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc21hcnRUYWJsZS50YWJsZVR5cGUgPT09IFNtYXJ0VGFibGVUeXBlLkNIRUNLX0JPWCkge1xyXG4gICAgICBpZiAoIXRoaXMuc21hcnRUYWJsZS5vblJvd0RvdWJsZUNsaWNrICYmICF0aGlzLnNtYXJ0VGFibGUub25Sb3dDbGljaykge1xyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uKFxyXG4gICAgICAgICAgdGhpcy5zbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5XHJcbiAgICAgICAgICAgID8gdGhpcy5zbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHRoaXMuc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eSlcclxuICAgICAgICAgICAgOiBlbGVtZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0VGFibGUub25Sb3dDbGljaykge1xyXG4gICAgICAgIHRoaXMub25Sb3dDbGljayhlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0VGFibGUudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5ST1dfU0VMRUNUKSB7XHJcbiAgICAgIHRoaXMuc2V0U2VsZWN0aW9uKFxyXG4gICAgICAgIHRoaXMuc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eVxyXG4gICAgICAgICAgPyB0aGlzLnNtYXJ0VGFibGUuZ2V0VmFsdWVEZWVwbHkoZWxlbWVudCwgdGhpcy5zbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5KVxyXG4gICAgICAgICAgOiBlbGVtZW50XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTbWFydFRhYmxlKHNtYXJ0VGFibGU6IFNtYXJ0VGFibGU8YW55Pik6IHZvaWQge1xyXG4gICAgdGhpcy5zbWFydFRhYmxlID0gc21hcnRUYWJsZTtcclxuICAgIHRoaXMucmVuZGVyUm93cygpO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyUm93cygpOiB2b2lkIHtcclxuICAgIHRoaXMubXlUYWJsZUNoaWxkLnJlbmRlclJvd3MoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uUm93RG91YmxlQ2xpY2soZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zbWFydFRhYmxlLmRlZmF1bHRBY3Rpb25zICYmIHRoaXMuc21hcnRUYWJsZS5kZWZhdWx0QWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMub3BlbkRlZmF1bHRBY3Rpb25zTWVudShldmVudCwgZWxlbWVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zbWFydFRhYmxlLnRhYmxlVHlwZSA9PT0gU21hcnRUYWJsZVR5cGUuSU5IRVJJVEVEKSB7XHJcbiAgICAgICAgdGhpcy5vblJvd0RvdWJsZUNsaWNrKGVsZW1lbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc21hcnRUYWJsZS50YWJsZVR5cGUgPT09IFNtYXJ0VGFibGVUeXBlLkNIRUNLX0JPWCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNtYXJ0VGFibGUub25Sb3dEb3VibGVDbGljaykge1xyXG4gICAgICAgICAgdGhpcy5vblJvd0RvdWJsZUNsaWNrKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHlwZSgpOiB0eXBlb2YgU21hcnRUYWJsZUhlYWRlclByb3BlcnR5VHlwZSB7XHJcbiAgICByZXR1cm4gU21hcnRUYWJsZUhlYWRlclByb3BlcnR5VHlwZTtcclxuICB9XHJcblxyXG4gIHNvcnRCdXR0b25DbGlja2VkKGV2ZW50OiBhbnksIGhlYWRlcjogU21hcnRUYWJsZUhlYWRlcikge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNvcnRFdmVudC5uZXh0KGhlYWRlcik7XHJcbiAgfVxyXG5cclxuICBjdXN0b21CdXR0b25DbGlja2VkKFxyXG4gICAgZXZlbnQ6IGFueSxcclxuICAgIGJ1dHRvbjogU21hcnRUYWJsZUJ1dHRvbixcclxuICAgIGVsZW1lbnQ6IGFueSxcclxuICAgIGJ0bj86IGFueSxcclxuICAgIGNsb3NlPzogYm9vbGVhblxyXG4gICkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoYnRuPy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJ1dHRvbi50eXBlID09PSBTbWFydFRhYmxlQnV0dG9uVHlwZS5NRU5VICYmIGJ0biA9PT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblxyXG4gICAgaWYgKCFidXR0b24uY2FsbGJhY2spIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCdXR0b24gd2l0aCBuYW1lICR7YnV0dG9uLmxhYmVsIHx8IGJ1dHRvbi5pY29ufSBkb2VzIG5vdCBoYXZlIGEgY2FsbGJhY2shYCk7XHJcbiAgICB9XHJcbiAgICBidXR0b24uY2FsbGJhY2soYnV0dG9uLmFyZ3MsIGVsZW1lbnQsIGJ0bik7XHJcbiAgICBpZiAoY2xvc2UpIHtcclxuICAgICAgbGV0IG9wZW5NZW51cyA9IHRoaXMudHJpZ2dlcnMuZmlsdGVyKFxyXG4gICAgICAgIChtYXRNZW51VHJpZ2dlcjogTWF0TWVudVRyaWdnZXIpID0+IG1hdE1lbnVUcmlnZ2VyLm1lbnVPcGVuXHJcbiAgICAgICk7XHJcbiAgICAgIG9wZW5NZW51cy5mb3JFYWNoKChtYXRNZW51VHJpZ2dlcjogTWF0TWVudVRyaWdnZXIpID0+IHtcclxuICAgICAgICBtYXRNZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1NvcnRhYmxlKGhlYWRlcjogU21hcnRUYWJsZUhlYWRlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzU29ydGFibGVUYWJsZSA9IHRoaXMuc21hcnRUYWJsZS5zb3J0YWJsZTtcclxuICAgIGlmIChpc1NvcnRhYmxlVGFibGUpIHtcclxuICAgICAgcmV0dXJuIGhlYWRlci5pc1NvcnRhYmxlICE9PSB1bmRlZmluZWQgPyBoZWFkZXIuaXNTb3J0YWJsZSA6IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0SWNvbihoZWFkZXI6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgdGFibGVIZWFkZXIgPSB0aGlzLnNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM/LmZpbmQoXHJcbiAgICAgICh0YWJsZUhlYWRlcjogU21hcnRUYWJsZUhlYWRlcikgPT4gdGFibGVIZWFkZXIucHJvcGVydHlOYW1lID09PSBoZWFkZXJcclxuICAgICk7XHJcbiAgICBpZiAodGFibGVIZWFkZXIgJiYgdGFibGVIZWFkZXIub3JkZXIpIHtcclxuICAgICAgcmV0dXJuIHRhYmxlSGVhZGVyLm9yZGVyID09PSBTbWFydFRhYmxlT3JkZXIuQVNDXHJcbiAgICAgICAgPyB0aGlzLnNtYXJ0VGFibGUuc29ydEljb25Bc2MgPz8gJ2tleWJvYXJkX2Fycm93X2Rvd24nXHJcbiAgICAgICAgOiB0aGlzLnNtYXJ0VGFibGUuc29ydEljb25EZXNjID8/ICdrZXlib2FyZF9hcnJvd191cCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBoYXNTb3J0TnVtSWNvbihoZWFkZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHRhYmxlSGVhZGVyID0gdGhpcy5zbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPy5maW5kKFxyXG4gICAgICAodGFibGVIZWFkZXI6IFNtYXJ0VGFibGVIZWFkZXIpID0+IHRhYmxlSGVhZGVyLnByb3BlcnR5TmFtZSA9PT0gaGVhZGVyXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRhYmxlSGVhZGVyPy5vcmRlck51bWJlciAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBnZXRTb3J0TnVtSWNvbihoZWFkZXI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdGFibGVIZWFkZXIgPSB0aGlzLnNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM/LmZpbmQoXHJcbiAgICAgICh0YWJsZUhlYWRlcjogU21hcnRUYWJsZUhlYWRlcikgPT4gdGFibGVIZWFkZXIucHJvcGVydHlOYW1lID09PSBoZWFkZXJcclxuICAgICk7XHJcbiAgICBpZiAodGFibGVIZWFkZXIgJiYgdGFibGVIZWFkZXIub3JkZXJOdW1iZXIpIHtcclxuICAgICAgcmV0dXJuIGBmaWx0ZXJfJHt0YWJsZUhlYWRlci5vcmRlck51bWJlcn1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbFRpcChlbGVtZW50OiBhbnksIGhlYWRlckluZGV4OiBudW1iZXIpOiBVaUFjdGlvblRvb2x0aXAgfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0aGlzLnNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDdXN0b21UYWJsZUhlYWRlcnMgcHJvcGVydHkgaXMgbWlzc2luZycpO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5zbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2hlYWRlckluZGV4XS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ3VzdG9tVGFibGVIZWFkZXIgd2l0aCBpbmRleCAke2hlYWRlckluZGV4fSBkb2VzIG5vdCBoYXZlIHByb3BlcnRpZXNgKTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1toZWFkZXJJbmRleF0ucHJvcGVydGllcyEuaWNvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b21UYWJsZUhlYWRlciB3aXRoIGluZGV4ICR7aGVhZGVySW5kZXh9IGRvZXMgbm90IGhhdmUgaWNvbnMgZGVmaW5lZGApO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0b29sVGlwQ29sdW1uID1cclxuICAgICAgdGhpcy5zbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2hlYWRlckluZGV4XS5wcm9wZXJ0aWVzPy50b29sVGlwQ29sdW1uO1xyXG4gICAgcmV0dXJuIHRvb2xUaXBDb2x1bW4gPyB0aGlzLmdldFZhbHVlKGVsZW1lbnQsIHRvb2xUaXBDb2x1bW4pIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWNvbih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiwgaGVhZGVySW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0N1c3RvbVRhYmxlSGVhZGVycyBwcm9wZXJ0eSBpcyBtaXNzaW5nJyk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaGVhZGVySW5kZXhdLnByb3BlcnRpZXMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b21UYWJsZUhlYWRlciB3aXRoIGluZGV4ICR7aGVhZGVySW5kZXh9IGRvZXMgbm90IGhhdmUgcHJvcGVydGllc2ApO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5zbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2hlYWRlckluZGV4XS5wcm9wZXJ0aWVzIS5pY29ucykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEN1c3RvbVRhYmxlSGVhZGVyIHdpdGggaW5kZXggJHtoZWFkZXJJbmRleH0gZG9lcyBub3QgaGF2ZSBpY29ucyBkZWZpbmVkYCk7XHJcbiAgICB9XHJcbiAgICBsZXQgY3VzdG9tVGFibGVIZWFkZXJJY29ucyA9XHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1toZWFkZXJJbmRleF0ucHJvcGVydGllcyEuaWNvbnM7XHJcblxyXG4gICAgbGV0IGljb246IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3VzdG9tVGFibGVIZWFkZXJJY29ucyEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGN1c3RvbVRhYmxlSGVhZGVySWNvbiA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbnMhW2ldO1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlTnVsbCAmJlxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZU51bGwgPT09IHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpY29uID0gY3VzdG9tVGFibGVIZWFkZXJJY29uLmljb247XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlQmlnZ2VyVGhhbk51bWJlciAmJlxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZUJpZ2dlclRoYW5OdW1iZXIgPCB2YWx1ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWNvbiA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbi5pY29uO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGN1c3RvbVRhYmxlSGVhZGVySWNvbi5zaG93SWNvbklmVmFsdWVTbWFsbGVyVGhhbk51bWJlciAmJlxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZVNtYWxsZXJUaGFuTnVtYmVyID4gdmFsdWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGljb24gPSBjdXN0b21UYWJsZUhlYWRlckljb24uaWNvbjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aE51bWJlciAmJlxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZUVxdWFsc1dpdGhOdW1iZXIgPT09IHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpY29uID0gY3VzdG9tVGFibGVIZWFkZXJJY29uLmljb247XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGN1c3RvbVRhYmxlSGVhZGVySWNvbi5zaG93SWNvbklmVmFsdWVFcXVhbHNXaXRoU3RyaW5nICYmXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aFN0cmluZyA9PT0gdmFsdWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGljb24gPSBjdXN0b21UYWJsZUhlYWRlckljb24uaWNvbjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGN1c3RvbVRhYmxlSGVhZGVySWNvbi5zaG93SWNvbklmVmFsdWVCb29sZWFuICYmXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlQm9vbGVhbiA9PT0gdmFsdWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGljb24gPSBjdXN0b21UYWJsZUhlYWRlckljb24uaWNvbjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpY29uO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3IodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4sIGhlYWRlckluZGV4OiBudW1iZXIpOiBUaGVtZVBhbGV0dGUge1xyXG4gICAgaWYgKCF0aGlzLnNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDdXN0b21UYWJsZUhlYWRlcnMgcHJvcGVydHkgaXMgbWlzc2luZycpO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5zbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2hlYWRlckluZGV4XS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ3VzdG9tVGFibGVIZWFkZXIgd2l0aCBpbmRleCAke2hlYWRlckluZGV4fSBkb2VzIG5vdCBoYXZlIHByb3BlcnRpZXNgKTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1toZWFkZXJJbmRleF0ucHJvcGVydGllcyEuaWNvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDdXN0b21UYWJsZUhlYWRlciB3aXRoIGluZGV4ICR7aGVhZGVySW5kZXh9IGRvZXMgbm90IGhhdmUgaWNvbnMgZGVmaW5lZGApO1xyXG4gICAgfVxyXG4gICAgbGV0IGN1c3RvbVRhYmxlSGVhZGVySWNvbnMgPVxyXG4gICAgICB0aGlzLnNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaGVhZGVySW5kZXhdLnByb3BlcnRpZXMhLmljb25zO1xyXG5cclxuICAgIGxldCBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3VzdG9tVGFibGVIZWFkZXJJY29ucyEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGN1c3RvbVRhYmxlSGVhZGVySWNvbiA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbnMhW2ldO1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGN1c3RvbVRhYmxlSGVhZGVySWNvbi5zaG93SWNvbklmVmFsdWVCaWdnZXJUaGFuTnVtYmVyICYmXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlQmlnZ2VyVGhhbk51bWJlciA8IHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb2xvciA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbi5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlU21hbGxlclRoYW5OdW1iZXIgJiZcclxuICAgICAgICAgIGN1c3RvbVRhYmxlSGVhZGVySWNvbi5zaG93SWNvbklmVmFsdWVTbWFsbGVyVGhhbk51bWJlciA+IHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb2xvciA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbi5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aE51bWJlciAmJlxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZUVxdWFsc1dpdGhOdW1iZXIgPT09IHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb2xvciA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbi5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZUVxdWFsc1dpdGhTdHJpbmcgJiZcclxuICAgICAgICAgIGN1c3RvbVRhYmxlSGVhZGVySWNvbi5zaG93SWNvbklmVmFsdWVFcXVhbHNXaXRoU3RyaW5nID09PSB2YWx1ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29sb3IgPSBjdXN0b21UYWJsZUhlYWRlckljb24uY29sb3I7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBjdXN0b21UYWJsZUhlYWRlckljb24uc2hvd0ljb25JZlZhbHVlQm9vbGVhbiAmJlxyXG4gICAgICAgICAgY3VzdG9tVGFibGVIZWFkZXJJY29uLnNob3dJY29uSWZWYWx1ZUJvb2xlYW4gPT09IHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb2xvciA9IGN1c3RvbVRhYmxlSGVhZGVySWNvbi5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2xvcjtcclxuICB9XHJcblxyXG4gIHRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uKCk6IHR5cGVvZiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uIHtcclxuICAgIHJldHVybiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zbWFydFRhYmxlLnNlbGVjdGlvbiEuc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuc21hcnRUYWJsZS50YWJsZVJvd3MubGVuZ3RoO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cclxuICB0b2dnbGVBbGxSb3dzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCgpKSB7XHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5zZWxlY3Rpb24hLmNsZWFyKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zbWFydFRhYmxlLm9uQWxsU2VsZWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5zbWFydFRhYmxlLm9uQWxsU2VsZWN0aW9uKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zbWFydFRhYmxlLm1heE51bU9mU2VsZWN0YWJsZVJvd3MpIHtcclxuICAgICAgdGhpcy5zbWFydFRhYmxlLnNlbGVjdGlvbiEuY2xlYXIoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNtYXJ0VGFibGUub25BbGxTZWxlY3Rpb24pIHtcclxuICAgICAgICB0aGlzLnNtYXJ0VGFibGUub25BbGxTZWxlY3Rpb24oZmFsc2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eSkge1xyXG4gICAgICB0aGlzLnNtYXJ0VGFibGUuc2VsZWN0aW9uIS5zZWxlY3QoXHJcbiAgICAgICAgLi4udGhpcy5zbWFydFRhYmxlLnRhYmxlUm93cy5tYXAoKHJvdzogYW55KSA9PlxyXG4gICAgICAgICAgdGhpcy5zbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KHJvdywgdGhpcy5zbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5ISlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNtYXJ0VGFibGUuc2VsZWN0aW9uIS5zZWxlY3QoLi4udGhpcy5zbWFydFRhYmxlLnRhYmxlUm93cyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zbWFydFRhYmxlLm9uQWxsU2VsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5vbkFsbFNlbGVjdGlvbih0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBUaGUgbGFiZWwgZm9yIHRoZSBjaGVja2JveCBvbiB0aGUgcGFzc2VkIHJvdyAqL1xyXG4gIGNoZWNrYm94TGFiZWwocm93PzogYW55KTogc3RyaW5nIHtcclxuICAgIGlmICghcm93KSB7XHJcbiAgICAgIHJldHVybiBgJHt0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/ICdkZXNlbGVjdCcgOiAnc2VsZWN0J30gYWxsYDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGlzLnNtYXJ0VGFibGUuc2VsZWN0aW9uIS5pc1NlbGVjdGVkKHJvdykgPyAnZGVzZWxlY3QnIDogJ3NlbGVjdCd9IHJvdyAke1xyXG4gICAgICByb3cucG9zaXRpb24gKyAxXHJcbiAgICB9YDtcclxuICB9XHJcblxyXG4gIGlzSGlnaGxpZ2h0ZWQocm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0VGFibGUuaGlnaGxpZ2h0UHJvcGVydHkpIHtcclxuICAgICAgaWYgKHJvd1snZGF0YSddW3RoaXMuc21hcnRUYWJsZS5oaWdobGlnaHRQcm9wZXJ0eV0pIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5oaWdobGlnaHRlZFJvd3MgfHwgIXRoaXMuaGlnaGxpZ2h0ZWRSb3dzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRlZFJvd3MuaW5jbHVkZXMocm93KTtcclxuICB9XHJcblxyXG4gIGdldFJvd0NsYXNzZXMocm93OiBhbnkpIHtcclxuICAgIGxldCBjbGFzc2VzVG9BZGQ6IHN0cmluZ1tdID0gW107XHJcbiAgICBsZXQgY2xhc3Nlc1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY2xhc3Nlc1RvQWRkLnB1c2godGhpcy5pc0hpZ2hsaWdodGVkKHJvdykgPyB0aGlzLnNtYXJ0VGFibGUuaGlnaGxpZ2h0Q2xhc3MhIDogJ3Vuc2VsZWN0ZWQnKTtcclxuICAgIGlmICh0aGlzLnNtYXJ0VGFibGUuaG92ZXIpIHtcclxuICAgICAgY2xhc3Nlc1RvQWRkLnB1c2goJ3NtYXJ0VGFibGVSb3dIb3ZlcicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2xhc3Nlc1RvUmVtb3ZlLnB1c2goJ3NtYXJ0VGFibGVSb3dIb3ZlcicpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChyb3cpKSB7XHJcbiAgICAgIGNsYXNzZXNUb0FkZC5wdXNoKCdzZWxlY3RlZCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2xhc3Nlc1RvUmVtb3ZlLnB1c2goJ3NlbGVjdGVkJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU21hcnRTdHlsZVV0aWxpdHkuZ2V0TmdDbGFzc2VzKHJvdy5zdHlsZSwgY2xhc3Nlc1RvQWRkLCBjbGFzc2VzVG9SZW1vdmUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um93U3R5bGVzKHJvdzogYW55KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XHJcbiAgICByZXR1cm4gU21hcnRTdHlsZVV0aWxpdHkuZ2V0TmdTdHlsZXMocm93LnN0eWxlKTtcclxuICB9XHJcblxyXG4gIGdldENvbHVtbkNsYXNzZXMoaGVhZGVyOiBTbWFydFRhYmxlSGVhZGVyKSB7XHJcbiAgICByZXR1cm4gU21hcnRTdHlsZVV0aWxpdHkuZ2V0TmdDbGFzc2VzKGhlYWRlci5zdHlsZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5TdHlsZXMoaGVhZGVyOiBTbWFydFRhYmxlSGVhZGVyKSB7XHJcbiAgICByZXR1cm4gU21hcnRTdHlsZVV0aWxpdHkuZ2V0TmdTdHlsZXMoaGVhZGVyLnN0eWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9DYW1lbENhc2UoY3NzOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGNzcy5yZXBsYWNlKC8tKFthLXpdKS9nLCBmdW5jdGlvbiAoZykge1xyXG4gICAgICByZXR1cm4gZ1sxXS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblJvd0NsaWNrKHJvdzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zbWFydFRhYmxlLmhpZ2hsaWdodE9uUm93Q2xpY2spIHtcclxuICAgICAgaWYgKHRoaXMuaXNIaWdobGlnaHRlZChyb3cpKSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5oaWdobGlnaHRlZFJvd3MuaW5kZXhPZihyb3csIDApO1xyXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRSb3dzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaGlnaGxpZ2h0ZWRSb3dzIHx8ICF0aGlzLmhpZ2hsaWdodGVkUm93cy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkUm93cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRSb3dzLnB1c2gocm93KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkUm93cy5wdXNoKHJvdyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNtYXJ0VGFibGUuZXhwYW5kYWJsZSAmJiAhdGhpcy5zbWFydFRhYmxlLm9uUm93RG91YmxlQ2xpY2spIHtcclxuICAgICAgdGhpcy5vblRvZ2dsZShyb3cpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc21hcnRUYWJsZS5vblJvd0NsaWNrKSB7XHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5vblJvd0NsaWNrKHJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uUm93RG91YmxlQ2xpY2socm93OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0VGFibGUuaGlnaGxpZ2h0T25Sb3dDbGljaykge1xyXG4gICAgICBpZiAodGhpcy5pc0hpZ2hsaWdodGVkKHJvdykpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmhpZ2hsaWdodGVkUm93cy5pbmRleE9mKHJvdywgMCk7XHJcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZFJvd3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgfSBlbHNlIGlmICghdGhpcy5oaWdobGlnaHRlZFJvd3MgfHwgIXRoaXMuaGlnaGxpZ2h0ZWRSb3dzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRSb3dzID0gW107XHJcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZFJvd3MucHVzaChyb3cpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRSb3dzLnB1c2gocm93KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc21hcnRUYWJsZS5vblJvd0RvdWJsZUNsaWNrKSB7XHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5vblJvd0RvdWJsZUNsaWNrKHJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBvblRvZ2dsZShlbGVtZW50OiBhbnksIGV2ZW50PzogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuc21hcnRUYWJsZS5yb3dFeHBhbmRlcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1NtYXJ0VGFibGVSb3dFeHBhbmRlciBub3QgZm91bmQhLiBQbGVhc2UgcHJvdmlkZSBhIFNtYXJ0VGFibGVSb3dFeHBhbmRlciBpbXBsZW1lbnRhdGlvbi4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgb2xkSW5kZXggPSB0aGlzLnNtYXJ0VGFibGUudGFibGVSb3dzLmZpbmRJbmRleChcclxuICAgICAgKGVsZW1lbnQpID0+IGVsZW1lbnQgPT09IHRoaXMuZXhwYW5kZWRFbGVtZW50XHJcbiAgICApO1xyXG4gICAgaWYgKG9sZEluZGV4ICE9PSAtMSkge1xyXG4gICAgICBsZXQgcmVmID0gdGhpcy52Y1JlZiEuZmlsdGVyKChlbGVtZW50OiBhbnksIGluZGV4OiBudW1iZXIpID0+IGluZGV4ID09PSBvbGRJbmRleCk7XHJcbiAgICAgIHJlZlswXS5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5leHBhbmRlZEVsZW1lbnQgPSB0aGlzLmV4cGFuZGVkRWxlbWVudCA9PT0gZWxlbWVudCA/IG51bGwgOiBlbGVtZW50O1xyXG5cclxuICAgIGxldCBuZXdJbmRleCA9IHRoaXMuc21hcnRUYWJsZS50YWJsZVJvd3MuZmluZEluZGV4KFxyXG4gICAgICAoZWxlbWVudCkgPT4gZWxlbWVudCA9PT0gdGhpcy5leHBhbmRlZEVsZW1lbnRcclxuICAgICk7XHJcblxyXG4gICAgbGV0IHJvd0RhdGFSZXNwb25zZTtcclxuXHJcbiAgICBpZiAobmV3SW5kZXggIT09IC0xKSB7XHJcbiAgICAgIGlmICh0aGlzLnNtYXJ0VGFibGUuYXN5bmNPbkV4cGFuZCkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jZlNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICAgICAgdGhpcy52Y1JlZj8uZmlsdGVyKChlbGVtZW50OiBhbnksIGluZGV4OiBudW1iZXIpID0+IGluZGV4ID09PSBuZXdJbmRleClbMF0hLFxyXG4gICAgICAgICAgTG9hZGluZ0NvbXBvbmVudCxcclxuICAgICAgICAgIG5ldyBNYXA8c3RyaW5nLCBhbnk+KClcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByb3dEYXRhUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNtYXJ0VGFibGUucm93RXhwYW5kZXI/LmV4cGFuZEFzeW5jKG5ld0luZGV4KTtcclxuXHJcbiAgICAgICAgbGV0IHJlZiA9IHRoaXMudmNSZWYhLmZpbHRlcigoZWxlbWVudDogYW55LCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCA9PT0gbmV3SW5kZXgpWzBdITtcclxuICAgICAgICByZWYuY2xlYXIoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNmU2VydmljZS5jcmVhdGVDb21wb25lbnQoXHJcbiAgICAgICAgdGhpcy52Y1JlZj8uZmlsdGVyKChlbGVtZW50OiBhbnksIGluZGV4OiBudW1iZXIpID0+IGluZGV4ID09PSBuZXdJbmRleClbMF0hLFxyXG4gICAgICAgIHRoaXMuc21hcnRUYWJsZS5leHBhbmRlZENvbXBvbmVudCxcclxuICAgICAgICBuZXcgTWFwPHN0cmluZywgYW55PihbWydyb3dEYXRhJywgcm93RGF0YVJlc3BvbnNlXV0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5tYXhOdW1PZlNlbGVjdGFibGVSb3dzICYmXHJcbiAgICAgIHRoaXMuc21hcnRUYWJsZS5zZWxlY3Rpb24hLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5zbWFydFRhYmxlLm1heE51bU9mU2VsZWN0YWJsZVJvd3NcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNtYXJ0VGFibGUuc2VsZWN0aW9uPy50b2dnbGUoZWxlbWVudCk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZC5uZXh0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRUYWJsZS5vblNlbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnNtYXJ0VGFibGUub25TZWxlY3Rpb24oZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TWVudUJ1dHRvbihlbGVtZW50OiBhbnksIGJ1dHRvbjogU21hcnRUYWJsZUJ1dHRvbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGJ1dHRvbi5tZW51SXRlbUJ1dHRvbnMpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKGJ1dHRvbi5tZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWUpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQgbGVuZ3RoID0gdGhpcy5nZXRWYWx1ZShlbGVtZW50LCBidXR0b24ubWVudUl0ZW1CdXR0b25zUHJvcGVydHlOYW1lISkubGVuZ3RoO1xyXG4gICAgICAgIHJldHVybiBsZW5ndGggPiAwO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoZWxlbWVudDogYW55LCBoZWFkZXI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gU21hcnRPYmplY3RVdGlsaXR5LmdldFZhbHVlQnlQYXRoKGVsZW1lbnQsIGhlYWRlcik7XHJcbiAgfVxyXG5cclxuICBzaG93QnV0dG9uKGJ1dHRvbjogU21hcnRUYWJsZUJ1dHRvbiwgZWxlbWVudDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYnV0dG9uLnNob3dCdXR0b25JZikge1xyXG4gICAgICByZXR1cm4gYnV0dG9uLnNob3dCdXR0b25JZihlbGVtZW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaXNEaXNhYmxlZChlbGVtZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0VGFibGUuaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHRoaXMuc21hcnRUYWJsZS5pc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydFRhYmxlLnNlbGVjdGFibGVQcm9wZXJ0eU5hbWUpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9IHRoaXMuc21hcnRUYWJsZS5nZXRWYWx1ZURlZXBseShcclxuICAgICAgICBlbGVtZW50LFxyXG4gICAgICAgIHRoaXMuc21hcnRUYWJsZS5zZWxlY3RhYmxlUHJvcGVydHlOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBzZWxlY3RhYmxlID09PSB1bmRlZmluZWQgfHwgc2VsZWN0YWJsZSA9PT0gbnVsbCA/IGZhbHNlIDogIXNlbGVjdGFibGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkKGVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zbWFydFRhYmxlLnNlbGVjdGlvbj8uaXNTZWxlY3RlZChcclxuICAgICAgICB0aGlzLnNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHlcclxuICAgICAgICAgID8gdGhpcy5zbWFydFRhYmxlLmdldFZhbHVlRGVlcGx5KGVsZW1lbnQsIHRoaXMuc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eSlcclxuICAgICAgICAgIDogZWxlbWVudFxyXG4gICAgICApID8/IGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcmlnaW5hbFByb3BlcnR5KGhlYWRlcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChoZWFkZXIuc3RhcnRzV2l0aCgnZGF0YS4nKSkge1xyXG4gICAgICByZXR1cm4gaGVhZGVyLnN1YnN0cmluZygnZGF0YS4nLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgaXNJbWFnZVJlc291cmNlKGVsZW1lbnQ6IGFueSwgaGVhZGVyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghZWxlbWVudC5pY29ucykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBsZXQgcHJvcGVydHkgPSB0aGlzLm9yaWdpbmFsUHJvcGVydHkoaGVhZGVyKTtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlbGVtZW50Lmljb25zKS5zb21lKChrZXkpID0+IGtleSA9PT0gcHJvcGVydHkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1hZ2VSZXNvdXJjZUljb25zKGVsZW1lbnQ6IGFueSwgaGVhZGVyOiBzdHJpbmcpOiBJbWFnZVJlc291cmNlW10ge1xyXG4gICAgaWYgKGVsZW1lbnQ/Lmljb25zKSB7XHJcbiAgICAgIGxldCBpY29uQ29kZXMgPSBlbGVtZW50Py5pY29uc1t0aGlzLm9yaWdpbmFsUHJvcGVydHkoaGVhZGVyKV07XHJcbiAgICAgIHJldHVybiBpY29uQ29kZXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBnZXRJbWFnZVJlc291cmNlSWNvbihlbGVtZW50OiBhbnksIGhlYWRlcjogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiBlbGVtZW50Lmljb25zW3RoaXMub3JpZ2luYWxQcm9wZXJ0eShoZWFkZXIpXS5pZGVudGlmaWVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1hZ2VSZXNvdXJjZUNvbG9yKGVsZW1lbnQ6IGFueSwgaGVhZGVyOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIGVsZW1lbnQuaWNvbnNbdGhpcy5vcmlnaW5hbFByb3BlcnR5KGhlYWRlcildLmNvbG9yID8/ICdwcmltYXJ5JztcclxuICB9XHJcblxyXG4gIGdldEltYWdlUmVzb3VyY2VTdHlsZShyZXNvdXJjZTogSW1hZ2VSZXNvdXJjZSk6IGFueSB7XHJcbiAgICByZXR1cm4gcmVzb3VyY2Uuc3R5bGUgPyByZXNvdXJjZS5zdHlsZSA6IHt9O1xyXG4gIH1cclxuXHJcbiAgb3BlbkRlZmF1bHRBY3Rpb25zTWVudShldmVudDogYW55LCByb3c6IGFueSkge1xyXG4gICAgbGV0IGFjdGlvbkNvZGVzRnJvbVJvdyA9IHJvdz8uYWN0aW9ucz8ubWFwKChhY3Rpb246IFVpQWN0aW9uKSA9PiBhY3Rpb24uY29kZSk7XHJcbiAgICBpZiAoIWFjdGlvbkNvZGVzRnJvbVJvdykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWRBY3Rpb25zID0gdGhpcy5zbWFydFRhYmxlLmRlZmF1bHRBY3Rpb25zPy5maWx0ZXIoKGFjdGlvbjogU21hcnRUYWJsZUJ1dHRvbikgPT5cclxuICAgICAgYWN0aW9uQ29kZXNGcm9tUm93LmluY2x1ZGVzKGFjdGlvbi5jb2RlISlcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGZpbHRlcmVkQWN0aW9ucyAmJiBmaWx0ZXJlZEFjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoZmlsdGVyZWRBY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGlmICh0aGlzLnNtYXJ0VGFibGUub25Sb3dEb3VibGVDbGljaykge1xyXG4gICAgICAgICAgdGhpcy5zbWFydFRhYmxlLm9uUm93RG91YmxlQ2xpY2socm93KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kZWZhdWx0QWN0aW9uTWVudUNvbXBvbmVudHNcclxuICAgICAgICAudG9BcnJheSgpXHJcbiAgICAgICAgLmZpbmQoKGNvbXA6IERlZmF1bHRBY3Rpb25zUG9wdXBDb21wb25lbnQpID0+IGNvbXAucm93LmlkID09PSByb3cuaWQpXHJcbiAgICAgICAgPy5vcGVuRGVmYXVsdEFjdGlvbnNNZW51KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERlZmF1bHRBY3Rpb25zRm9yUm93KGVsZW1lbnQ6IGFueSk6IE1hcDxTbWFydFRhYmxlQnV0dG9uLCBVaUFjdGlvbj4gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKGVsZW1lbnQ/LmFjdGlvbnMpIHtcclxuICAgICAgY29uc3QgYWN0aW9uQ29kZXNGcm9tUm93ID0gbmV3IE1hcDxzdHJpbmcsIFVpQWN0aW9uPihcclxuICAgICAgICBlbGVtZW50Py5hY3Rpb25zPy5tYXAoKGFjdGlvbjogVWlBY3Rpb24pID0+IFthY3Rpb24uY29kZSwgYWN0aW9uXSlcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIG5ldyBNYXA8U21hcnRUYWJsZUJ1dHRvbiwgVWlBY3Rpb24+KFxyXG4gICAgICAgIHRoaXMuc21hcnRUYWJsZS5kZWZhdWx0QWN0aW9uc1xyXG4gICAgICAgICAgPy5maWx0ZXIoKGFjdGlvbjogU21hcnRUYWJsZUJ1dHRvbikgPT4gYWN0aW9uQ29kZXNGcm9tUm93LmhhcyhhY3Rpb24uY29kZSEpKVxyXG4gICAgICAgICAgLm1hcCgoYWN0aW9uOiBTbWFydFRhYmxlQnV0dG9uKSA9PiBbYWN0aW9uLCBhY3Rpb25Db2Rlc0Zyb21Sb3cuZ2V0KGFjdGlvbi5jb2RlISkhXSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,9 +1,9 @@
1
- /*
2
- * Public API Surface of smarttree
3
- */
4
- export * from './smarttree.service';
5
- export * from './smarttree.component';
6
- export * from './smarttree.module';
7
- export * from './smarttree.model';
8
- export * from './smarttree-generic.service';
1
+ /*
2
+ * Public API Surface of smarttree
3
+ */
4
+ export * from './smarttree.service';
5
+ export * from './smarttree.component';
6
+ export * from './smarttree.module';
7
+ export * from './smarttree.model';
8
+ export * from './smarttree-generic.service';
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC10cmVlL3Byb2plY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNtYXJ0dHJlZVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnR0cmVlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0dHJlZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0dHJlZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0dHJlZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnR0cmVlLWdlbmVyaWMuc2VydmljZSc7XHJcbiJdfQ==