@smartbit4all/ng-client 6.0.9 → 6.0.11

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 (369) hide show
  1. package/README.md +386 -386
  2. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +1 -1
  3. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +1 -1
  4. package/esm2022/lib/component-factory-service/projects.mjs +1 -1
  5. package/esm2022/lib/session/api/api/api.mjs +1 -1
  6. package/esm2022/lib/session/api/api/session.service.mjs +1 -1
  7. package/esm2022/lib/session/api/configuration.mjs +1 -1
  8. package/esm2022/lib/session/api/encoder.mjs +1 -1
  9. package/esm2022/lib/session/api/index.mjs +1 -1
  10. package/esm2022/lib/session/api/model/accountInfo.mjs +1 -1
  11. package/esm2022/lib/session/api/model/apiError.mjs +1 -1
  12. package/esm2022/lib/session/api/model/authenticationProviderData.mjs +1 -1
  13. package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
  14. package/esm2022/lib/session/api/model/models.mjs +1 -1
  15. package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +1 -1
  16. package/esm2022/lib/session/api/model/session.mjs +1 -1
  17. package/esm2022/lib/session/api/model/sessionInfoData.mjs +1 -1
  18. package/esm2022/lib/session/api/model/userActivityLog.mjs +1 -1
  19. package/esm2022/lib/session/api/param.mjs +1 -1
  20. package/esm2022/lib/session/api/variables.mjs +1 -1
  21. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +1 -1
  22. package/esm2022/lib/session/projects.mjs +1 -1
  23. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +1 -1
  24. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +7 -4
  25. package/esm2022/lib/session/smart-default-error-ui.service.mjs +1 -1
  26. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +1 -1
  27. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +1 -1
  28. package/esm2022/lib/session/smart-session-handler.service.mjs +1 -1
  29. package/esm2022/lib/session/smart-session.module.mjs +1 -1
  30. package/esm2022/lib/session/smart-session.service.mjs +1 -1
  31. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +3 -3
  32. package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +1 -1
  33. package/esm2022/lib/shared/projects.mjs +1 -1
  34. package/esm2022/lib/shared/shared.module.mjs +1 -1
  35. package/esm2022/lib/shared/smart-tooltip.directive.mjs +1 -1
  36. package/esm2022/lib/shared/smarttable.date-pipe.mjs +1 -1
  37. package/esm2022/lib/smart-client/projects.mjs +1 -1
  38. package/esm2022/lib/smart-client/smart-component-api-client.mjs +1 -1
  39. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +3 -3
  40. package/esm2022/lib/smart-client/smart.component.mjs +1 -1
  41. package/esm2022/lib/smart-client/smart.service.mjs +1 -1
  42. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
  43. package/esm2022/lib/smart-component-layout/api/model/models.mjs +1 -1
  44. package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +1 -1
  45. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +1 -1
  46. package/esm2022/lib/smart-component-layout/projects.mjs +1 -1
  47. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +1 -1
  48. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +3 -3
  49. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +1 -1
  50. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +1 -1
  51. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +22 -22
  52. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +1 -1
  53. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +1 -1
  54. package/esm2022/lib/smart-diagram/projects.mjs +1 -1
  55. package/esm2022/lib/smart-dialog/projects.mjs +1 -1
  56. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +3 -3
  57. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +1 -1
  58. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +1 -1
  59. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +1 -1
  60. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +3 -3
  61. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +1 -1
  62. package/esm2022/lib/smart-expandable-section/projects.mjs +1 -1
  63. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +1 -1
  64. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +1 -1
  65. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
  66. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
  67. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
  68. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
  69. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
  70. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
  71. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
  72. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
  73. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
  74. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
  75. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
  76. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
  77. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
  78. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +1 -1
  79. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
  80. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +1 -1
  81. package/esm2022/lib/smart-filter/api/value/model/value.mjs +1 -1
  82. package/esm2022/lib/smart-filter/projects.mjs +1 -1
  83. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +1 -1
  84. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +3 -3
  85. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +3 -3
  86. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +3 -3
  87. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +1 -1
  88. package/esm2022/lib/smart-filter/smart-filter.model.mjs +1 -1
  89. package/esm2022/lib/smart-filter/smart-filter.module.mjs +1 -1
  90. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
  91. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
  92. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
  93. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
  94. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
  95. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
  96. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
  97. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
  98. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
  99. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
  100. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
  101. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
  102. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
  103. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
  104. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
  105. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
  106. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
  107. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
  108. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +1 -1
  109. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
  110. package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
  111. package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
  112. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +1 -1
  113. package/esm2022/lib/smart-filter-editor/project.mjs +1 -1
  114. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +3 -3
  115. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +3 -3
  116. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +3 -3
  117. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
  118. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +1 -1
  119. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +1 -1
  120. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +3 -3
  121. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +3 -3
  122. package/esm2022/lib/smart-form/api/model/divProperties.mjs +1 -1
  123. package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
  124. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +1 -1
  125. package/esm2022/lib/smart-form/projects.mjs +1 -1
  126. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +1 -1
  127. package/esm2022/lib/smart-form/services/smartform.service.mjs +1 -1
  128. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +3 -3
  129. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +3 -3
  130. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
  131. package/esm2022/lib/smart-form/smartform.component.mjs +3 -3
  132. package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
  133. package/esm2022/lib/smart-form/smartform.model.mjs +1 -1
  134. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +3 -3
  135. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +3 -3
  136. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +3 -3
  137. package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +3 -3
  138. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +1 -1
  139. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +1 -1
  140. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +3 -3
  141. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +3 -3
  142. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +1 -1
  143. package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +3 -3
  144. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +1 -1
  145. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +1 -1
  146. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +1 -1
  147. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +1 -1
  148. package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +1 -1
  149. package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +1 -1
  150. package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +1 -1
  151. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +1 -1
  152. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +1 -1
  153. package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +3 -3
  154. package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +3 -3
  155. package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +3 -3
  156. package/esm2022/lib/smart-generic-pages/projects.mjs +1 -1
  157. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +3 -3
  158. package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +1 -1
  159. package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +3 -3
  160. package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +3 -3
  161. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
  162. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
  163. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
  164. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
  165. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
  166. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
  167. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
  168. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
  169. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
  170. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +1 -1
  171. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  172. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
  173. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
  174. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
  175. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
  176. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
  177. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
  178. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  179. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
  180. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
  181. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
  182. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
  183. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
  184. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +3 -3
  185. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +3 -3
  186. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +3 -3
  187. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +3 -3
  188. package/esm2022/lib/smart-grid/models/model.mjs +1 -1
  189. package/esm2022/lib/smart-grid/projects.mjs +1 -1
  190. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +13 -9
  191. package/esm2022/lib/smart-grid/smart-grid.component.mjs +36 -3
  192. package/esm2022/lib/smart-grid/smart-grid.module.mjs +1 -1
  193. package/esm2022/lib/smart-grid/smart-grid.service.mjs +1 -1
  194. package/esm2022/lib/smart-icon/projects.mjs +1 -1
  195. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +3 -3
  196. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +3 -3
  197. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +1 -1
  198. package/esm2022/lib/smart-icon/smart-icon.module.mjs +1 -1
  199. package/esm2022/lib/smart-icon/smart-icon.service.mjs +1 -1
  200. package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
  201. package/esm2022/lib/smart-map/api-default/api-default.mjs +1 -1
  202. package/esm2022/lib/smart-map/impl/google-map.mjs +1 -1
  203. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +1 -1
  204. package/esm2022/lib/smart-map/projects.mjs +1 -1
  205. package/esm2022/lib/smart-map/smart-map.component.mjs +3 -3
  206. package/esm2022/lib/smart-map/smart-map.module.mjs +1 -1
  207. package/esm2022/lib/smart-map/smart-map.types.mjs +1 -1
  208. package/esm2022/lib/smart-navbar/projects.mjs +1 -1
  209. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +3 -3
  210. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +1 -1
  211. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +1 -1
  212. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +1 -1
  213. package/esm2022/lib/smart-navigation/projects.mjs +1 -1
  214. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
  215. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +1 -1
  216. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +1 -1
  217. package/esm2022/lib/smart-ng-client.module.mjs +1 -1
  218. package/esm2022/lib/smart-ng-client.service.mjs +1 -1
  219. package/esm2022/lib/smart-subject/projects.mjs +1 -1
  220. package/esm2022/lib/smart-subject/smart-subject.mjs +1 -1
  221. package/esm2022/lib/smart-tab-group/projects.mjs +1 -1
  222. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +1 -1
  223. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +3 -3
  224. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +3 -3
  225. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +1 -1
  226. package/esm2022/lib/smart-table/projects.mjs +1 -1
  227. package/esm2022/lib/smart-table/smarttable.component.mjs +3 -3
  228. package/esm2022/lib/smart-table/smarttable.model.mjs +1 -1
  229. package/esm2022/lib/smart-table/smarttable.module.mjs +1 -1
  230. package/esm2022/lib/smart-table/smarttable.service.mjs +1 -1
  231. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +7 -11
  232. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +5 -5
  233. package/esm2022/lib/smart-table/tables/table.mjs +53 -59
  234. package/esm2022/lib/smart-tree/projects.mjs +1 -1
  235. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +1 -1
  236. package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
  237. package/esm2022/lib/smart-tree/smarttree.model.mjs +1 -1
  238. package/esm2022/lib/smart-tree/smarttree.module.mjs +1 -1
  239. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +1 -1
  240. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +1 -1
  241. package/esm2022/lib/smart-tree/smarttree.service.mjs +1 -1
  242. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
  243. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +1 -1
  244. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +1 -1
  245. package/esm2022/lib/smart-tree/tree-api/param.mjs +1 -1
  246. package/esm2022/lib/smart-tree/tree-api/variables.mjs +1 -1
  247. package/esm2022/lib/smart-validation/named-validator.service.mjs +1 -1
  248. package/esm2022/lib/smart-validation/projects.mjs +1 -1
  249. package/esm2022/lib/smart-validation/smart-validation.module.mjs +1 -1
  250. package/esm2022/lib/smart-validation/smart-validation.types.mjs +1 -1
  251. package/esm2022/lib/theme/theme.service.mjs +48 -0
  252. package/esm2022/lib/view-context/api/api/view.service.mjs +211 -1
  253. package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +2 -0
  254. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +1 -1
  255. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +1 -1
  256. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +1 -1
  257. package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +1 -1
  258. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
  259. package/esm2022/lib/view-context/api/model/menuDescriptor.mjs +2 -0
  260. package/esm2022/lib/view-context/api/model/menuOpenDirection.mjs +23 -0
  261. package/esm2022/lib/view-context/api/model/menuTriggerType.mjs +17 -0
  262. package/esm2022/lib/view-context/api/model/models.mjs +9 -1
  263. package/esm2022/lib/view-context/api/model/publishedViewData.mjs +13 -0
  264. package/esm2022/lib/view-context/api/model/shellProperty.mjs +13 -0
  265. package/esm2022/lib/view-context/api/model/themeDefinition.mjs +2 -0
  266. package/esm2022/lib/view-context/api/model/themeDescriptor.mjs +2 -0
  267. package/esm2022/lib/view-context/api/model/themeShellDescriptor.mjs +2 -0
  268. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
  269. package/esm2022/lib/view-context/default-view-components.token.mjs +1 -1
  270. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +3 -3
  271. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +3 -3
  272. package/esm2022/lib/view-context/projects.mjs +3 -2
  273. package/esm2022/lib/view-context/property-definition-data.mjs +1 -1
  274. package/esm2022/lib/view-context/reuse-router-slot.token.mjs +1 -1
  275. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +1 -1
  276. package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +209 -0
  277. package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +209 -0
  278. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +58 -68
  279. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +1 -1
  280. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
  281. package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +35 -0
  282. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +3 -3
  283. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +3 -3
  284. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +3 -3
  285. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +1 -1
  286. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +3 -3
  287. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +3 -3
  288. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +1 -1
  289. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +3 -3
  290. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +3 -3
  291. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +1 -1
  292. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +3 -3
  293. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +1 -1
  294. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +6 -4
  295. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +20 -12
  296. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +12 -7
  297. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +1 -1
  298. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +1 -1
  299. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +13 -3
  300. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +1 -1
  301. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +3 -3
  302. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +1 -1
  303. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +1 -1
  304. package/esm2022/lib/view-context/smart-view-context.model.mjs +1 -1
  305. package/esm2022/lib/view-context/smart-view-context.module.mjs +13 -7
  306. package/esm2022/lib/view-context/smart-view-context.service.mjs +14 -5
  307. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +1 -1
  308. package/esm2022/lib/view-context/utility/componentLibrary.mjs +1 -1
  309. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +1 -1
  310. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +1 -1
  311. package/esm2022/lib/view-context/value-api/api/api.mjs +1 -1
  312. package/esm2022/lib/view-context/value-api/api/value.service.mjs +1 -1
  313. package/esm2022/lib/view-context/value-api/api.module.mjs +1 -1
  314. package/esm2022/lib/view-context/value-api/configuration.mjs +1 -1
  315. package/esm2022/lib/view-context/value-api/encoder.mjs +1 -1
  316. package/esm2022/lib/view-context/value-api/index.mjs +1 -1
  317. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +1 -1
  318. package/esm2022/lib/view-context/value-api/model/models.mjs +1 -1
  319. package/esm2022/lib/view-context/value-api/model/value.mjs +1 -1
  320. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +1 -1
  321. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
  322. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
  323. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
  324. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
  325. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
  326. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
  327. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
  328. package/esm2022/lib/view-context/value-api/param.mjs +1 -1
  329. package/esm2022/lib/view-context/value-api/variables.mjs +1 -1
  330. package/esm2022/lib/view-context/view-handler-resolution.mjs +1 -1
  331. package/esm2022/lib/view-context/view-op.mjs +1 -1
  332. package/esm2022/lib/view-context/view-slot-resolution.mjs +1 -1
  333. package/esm2022/projects.mjs +2 -1
  334. package/fesm2022/smartbit4all-ng-client.mjs +916 -306
  335. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  336. package/lib/session/smart-backend-bootstrap.config.d.ts +9 -1
  337. package/lib/session/smart-backend-bootstrap.service.d.ts +3 -1
  338. package/lib/smart-grid/smart-grid.component.d.ts +3 -0
  339. package/lib/smart-table/tables/material-table/material-table.component.d.ts +0 -1
  340. package/lib/smart-table/tables/table.d.ts +6 -5
  341. package/lib/theme/theme.service.d.ts +17 -0
  342. package/lib/view-context/api/api/view.service.d.ts +94 -0
  343. package/lib/view-context/api/api-default/binaryContentData.d.ts +2 -0
  344. package/lib/view-context/api/model/deviceInfo.d.ts +1 -0
  345. package/lib/view-context/api/model/menuDescriptor.d.ts +17 -0
  346. package/lib/view-context/api/model/menuOpenDirection.d.ts +21 -0
  347. package/lib/view-context/api/model/menuTriggerType.d.ts +15 -0
  348. package/lib/view-context/api/model/models.d.ts +8 -0
  349. package/lib/view-context/api/model/publishedViewData.d.ts +14 -0
  350. package/lib/view-context/api/model/shellProperty.d.ts +15 -0
  351. package/lib/view-context/api/model/themeDefinition.d.ts +22 -0
  352. package/lib/view-context/api/model/themeDescriptor.d.ts +16 -0
  353. package/lib/view-context/api/model/themeShellDescriptor.d.ts +17 -0
  354. package/lib/view-context/api/model/uiActionDescriptor.d.ts +2 -0
  355. package/lib/view-context/projects.d.ts +2 -1
  356. package/lib/view-context/smart-ui-action/components/menu/{menu.component.d.ts → click/menu.component.d.ts} +9 -7
  357. package/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.d.ts +44 -0
  358. package/lib/view-context/smart-ui-action/components/menu/menu.constants.d.ts +4 -0
  359. package/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.d.ts +16 -0
  360. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +1 -0
  361. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +2 -1
  362. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +3 -1
  363. package/lib/view-context/smart-view-context.module.d.ts +56 -54
  364. package/lib/view-context/smart-view-context.service.d.ts +4 -2
  365. package/package.json +1 -1
  366. package/projects.d.ts +1 -0
  367. package/smartbit4all-ng-client-6.0.11.tgz +0 -0
  368. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +0 -199
  369. package/smartbit4all-ng-client-6.0.9.tgz +0 -0
@@ -23,61 +23,63 @@ import * as i21 from "../smart-form/widgets/components/smart-multi-file-editor/s
23
23
  import * as i22 from "../smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component";
24
24
  import * as i23 from "../smart-form/highlightMacthingString-pipe";
25
25
  import * as i24 from "./smart-ui-action/ui-action-button/ui-action-button.component";
26
- import * as i25 from "./smart-ui-action/components/menu/menu.component";
27
- import * as i26 from "./smart-ui-action/components/upload-widget/upload-widget.component";
28
- import * as i27 from "./smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component";
29
- import * as i28 from "./smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component";
30
- import * as i29 from "./smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component";
31
- import * as i30 from "./smart-embedded-slot.directive";
32
- import * as i31 from "@angular/common";
33
- import * as i32 from "@angular/common/http";
34
- import * as i33 from "@angular/material/core";
35
- import * as i34 from "@angular/material/button";
36
- import * as i35 from "primeng/button";
37
- import * as i36 from "@angular/material/icon";
38
- import * as i37 from "@angular/material/snack-bar";
39
- import * as i38 from "../smart-icon/smart-icon.module";
40
- import * as i39 from "@angular/material/tooltip";
41
- import * as i40 from "../shared/shared.module";
42
- import * as i41 from "primeng/api";
43
- import * as i42 from "@angular/platform-browser";
44
- import * as i43 from "@angular/material/chips";
45
- import * as i44 from "@angular/forms";
46
- import * as i45 from "@angular/material/form-field";
47
- import * as i46 from "@angular/material/checkbox";
48
- import * as i47 from "@angular/material/select";
49
- import * as i48 from "@angular/material/input";
50
- import * as i49 from "@angular/material/datepicker";
51
- import * as i50 from "@angular/material-moment-adapter";
52
- import * as i51 from "@angular/material/radio";
53
- import * as i52 from "@angular/material/slide-toggle";
54
- import * as i53 from "@angular/material/autocomplete";
55
- import * as i54 from "ngx-quill";
56
- import * as i55 from "@angular/cdk/drag-drop";
57
- import * as i56 from "@angular/youtube-player";
58
- import * as i57 from "primeng/inputtext";
59
- import * as i58 from "primeng/messages";
60
- import * as i59 from "primeng/overlaypanel";
61
- import * as i60 from "primeng/dropdown";
62
- import * as i61 from "primeng/multiselect";
63
- import * as i62 from "primeng/inputswitch";
64
- import * as i63 from "primeng/inputnumber";
65
- import * as i64 from "primeng/tooltip";
66
- import * as i65 from "primeng/inputtextarea";
67
- import * as i66 from "primeng/image";
68
- import * as i67 from "primeng/floatlabel";
69
- import * as i68 from "primeng/toast";
70
- import * as i69 from "primeng/dynamicdialog";
71
- import * as i70 from "primeng/fileupload";
72
- import * as i71 from "primeng/chips";
73
- import * as i72 from "primeng/calendar";
74
- import * as i73 from "primeng/checkbox";
75
- import * as i74 from "primeng/orderlist";
76
- import * as i75 from "primeng/inputmask";
77
- import * as i76 from "primeng/editor";
78
- import * as i77 from "@angular/material/menu";
26
+ import * as i25 from "./smart-ui-action/components/menu/click/menu.component";
27
+ import * as i26 from "./smart-ui-action/components/menu/hover/hover-menu.component";
28
+ import * as i27 from "./smart-ui-action/components/upload-widget/upload-widget.component";
29
+ import * as i28 from "./smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component";
30
+ import * as i29 from "./smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component";
31
+ import * as i30 from "./smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component";
32
+ import * as i31 from "./smart-embedded-slot.directive";
33
+ import * as i32 from "./smart-ui-action/components/theme-selector/theme-selector.component";
34
+ import * as i33 from "@angular/common";
35
+ import * as i34 from "@angular/common/http";
36
+ import * as i35 from "@angular/material/core";
37
+ import * as i36 from "@angular/material/button";
38
+ import * as i37 from "primeng/button";
39
+ import * as i38 from "@angular/material/icon";
40
+ import * as i39 from "@angular/material/snack-bar";
41
+ import * as i40 from "../smart-icon/smart-icon.module";
42
+ import * as i41 from "@angular/material/tooltip";
43
+ import * as i42 from "../shared/shared.module";
44
+ import * as i43 from "primeng/api";
45
+ import * as i44 from "@angular/platform-browser";
46
+ import * as i45 from "@angular/material/chips";
47
+ import * as i46 from "@angular/forms";
48
+ import * as i47 from "@angular/material/form-field";
49
+ import * as i48 from "@angular/material/checkbox";
50
+ import * as i49 from "@angular/material/select";
51
+ import * as i50 from "@angular/material/input";
52
+ import * as i51 from "@angular/material/datepicker";
53
+ import * as i52 from "@angular/material-moment-adapter";
54
+ import * as i53 from "@angular/material/radio";
55
+ import * as i54 from "@angular/material/slide-toggle";
56
+ import * as i55 from "@angular/material/autocomplete";
57
+ import * as i56 from "ngx-quill";
58
+ import * as i57 from "@angular/cdk/drag-drop";
59
+ import * as i58 from "@angular/youtube-player";
60
+ import * as i59 from "primeng/inputtext";
61
+ import * as i60 from "primeng/messages";
62
+ import * as i61 from "primeng/overlaypanel";
63
+ import * as i62 from "primeng/dropdown";
64
+ import * as i63 from "primeng/multiselect";
65
+ import * as i64 from "primeng/inputswitch";
66
+ import * as i65 from "primeng/inputnumber";
67
+ import * as i66 from "primeng/tooltip";
68
+ import * as i67 from "primeng/inputtextarea";
69
+ import * as i68 from "primeng/image";
70
+ import * as i69 from "primeng/floatlabel";
71
+ import * as i70 from "primeng/toast";
72
+ import * as i71 from "primeng/dynamicdialog";
73
+ import * as i72 from "primeng/fileupload";
74
+ import * as i73 from "primeng/chips";
75
+ import * as i74 from "primeng/calendar";
76
+ import * as i75 from "primeng/checkbox";
77
+ import * as i76 from "primeng/orderlist";
78
+ import * as i77 from "primeng/inputmask";
79
+ import * as i78 from "primeng/editor";
80
+ import * as i79 from "@angular/material/menu";
79
81
  export declare class SmartViewContextModule {
80
82
  static ɵfac: i0.ɵɵFactoryDeclaration<SmartViewContextModule, never>;
81
- static ɵmod: i0.ɵɵNgModuleDeclaration<SmartViewContextModule, [typeof i1.MessageDialogComponent, typeof i2.SmartViewContextErrorDialogComponent, typeof i3.SmartViewRedirect, typeof i4.UiActionToolbarComponent, typeof i5.FileEditorToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i7.UiActionConfirmDialogComponent, typeof i8.UiActionFileUploadDialogComponent, typeof i9.InvalidFieldsSnackBarComponent, typeof i10.SmartformComponent, typeof i11.UiActionDialogButtonComponent, typeof i12.SmartformwidgetComponent, typeof i13.SmartfileuploaderComponent, typeof i14.TrackCapsDirective, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i17.LargeFileSnackBarComponent, typeof i18.SortableWidgetComponent, typeof i19.SmartMonthPickerComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i23.HighlightPipe, typeof i24.UiActionButtonComponent, typeof i25.MenuComponent, typeof i26.UploadWidgetComponent, typeof i27.VoiceRecordWidgetComponent, typeof i28.PhotoCaptureWidgetComponent, typeof i29.PrimeFileUploaderComponent, typeof i30.SmartEmbeddedSlotDirective], [typeof i31.CommonModule, typeof i32.HttpClientModule, typeof i33.MatCommonModule, typeof i34.MatButtonModule, typeof i35.ButtonModule, typeof i36.MatIconModule, typeof i37.MatSnackBarModule, typeof i38.SmartIconModule, typeof i39.MatTooltipModule, typeof i40.SharedModule, typeof i41.SharedModule, typeof i42.BrowserModule, typeof i43.MatChipsModule, typeof i44.FormsModule, typeof i44.ReactiveFormsModule, typeof i45.MatFormFieldModule, typeof i46.MatCheckboxModule, typeof i47.MatSelectModule, typeof i48.MatInputModule, typeof i49.MatDatepickerModule, typeof i50.MatMomentDateModule, typeof i51.MatRadioModule, typeof i52.MatSlideToggleModule, typeof i53.MatAutocompleteModule, typeof i54.QuillModule, typeof i55.DragDropModule, typeof i56.YouTubePlayerModule, typeof i57.InputTextModule, typeof i58.MessagesModule, typeof i59.OverlayPanelModule, typeof i60.DropdownModule, typeof i61.MultiSelectModule, typeof i44.FormsModule, typeof i62.InputSwitchModule, typeof i63.InputNumberModule, typeof i64.TooltipModule, typeof i65.InputTextareaModule, typeof i66.ImageModule, typeof i67.FloatLabelModule, typeof i31.CommonModule, typeof i68.ToastModule, typeof i69.DynamicDialogModule, typeof i70.FileUploadModule, typeof i71.ChipsModule, typeof i72.CalendarModule, typeof i73.CheckboxModule, typeof i74.OrderListModule, typeof i75.InputMaskModule, typeof i76.EditorModule, typeof i77.MatMenuModule, typeof i38.SmartIconModule], [typeof i4.UiActionToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i10.SmartformComponent, typeof i12.SmartformwidgetComponent, typeof i11.UiActionDialogButtonComponent, typeof i13.SmartfileuploaderComponent, typeof i23.HighlightPipe, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i24.UiActionButtonComponent, typeof i25.MenuComponent, typeof i26.UploadWidgetComponent, typeof i27.VoiceRecordWidgetComponent, typeof i28.PhotoCaptureWidgetComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i30.SmartEmbeddedSlotDirective]>;
83
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SmartViewContextModule, [typeof i1.MessageDialogComponent, typeof i2.SmartViewContextErrorDialogComponent, typeof i3.SmartViewRedirect, typeof i4.UiActionToolbarComponent, typeof i5.FileEditorToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i7.UiActionConfirmDialogComponent, typeof i8.UiActionFileUploadDialogComponent, typeof i9.InvalidFieldsSnackBarComponent, typeof i10.SmartformComponent, typeof i11.UiActionDialogButtonComponent, typeof i12.SmartformwidgetComponent, typeof i13.SmartfileuploaderComponent, typeof i14.TrackCapsDirective, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i17.LargeFileSnackBarComponent, typeof i18.SortableWidgetComponent, typeof i19.SmartMonthPickerComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i23.HighlightPipe, typeof i24.UiActionButtonComponent, typeof i25.ClickMenuComponent, typeof i26.HoverMenuComponent, typeof i27.UploadWidgetComponent, typeof i28.VoiceRecordWidgetComponent, typeof i29.PhotoCaptureWidgetComponent, typeof i30.PrimeFileUploaderComponent, typeof i31.SmartEmbeddedSlotDirective, typeof i32.ThemeSelectorComponent], [typeof i33.CommonModule, typeof i34.HttpClientModule, typeof i35.MatCommonModule, typeof i36.MatButtonModule, typeof i37.ButtonModule, typeof i38.MatIconModule, typeof i39.MatSnackBarModule, typeof i40.SmartIconModule, typeof i41.MatTooltipModule, typeof i42.SharedModule, typeof i43.SharedModule, typeof i44.BrowserModule, typeof i45.MatChipsModule, typeof i46.FormsModule, typeof i46.ReactiveFormsModule, typeof i47.MatFormFieldModule, typeof i48.MatCheckboxModule, typeof i49.MatSelectModule, typeof i50.MatInputModule, typeof i51.MatDatepickerModule, typeof i52.MatMomentDateModule, typeof i53.MatRadioModule, typeof i54.MatSlideToggleModule, typeof i55.MatAutocompleteModule, typeof i56.QuillModule, typeof i57.DragDropModule, typeof i58.YouTubePlayerModule, typeof i59.InputTextModule, typeof i60.MessagesModule, typeof i61.OverlayPanelModule, typeof i62.DropdownModule, typeof i63.MultiSelectModule, typeof i46.FormsModule, typeof i64.InputSwitchModule, typeof i65.InputNumberModule, typeof i66.TooltipModule, typeof i67.InputTextareaModule, typeof i68.ImageModule, typeof i69.FloatLabelModule, typeof i33.CommonModule, typeof i70.ToastModule, typeof i71.DynamicDialogModule, typeof i72.FileUploadModule, typeof i73.ChipsModule, typeof i74.CalendarModule, typeof i75.CheckboxModule, typeof i76.OrderListModule, typeof i77.InputMaskModule, typeof i78.EditorModule, typeof i79.MatMenuModule, typeof i40.SmartIconModule], [typeof i4.UiActionToolbarComponent, typeof i6.UiActionInputDialogComponent, typeof i10.SmartformComponent, typeof i12.SmartformwidgetComponent, typeof i11.UiActionDialogButtonComponent, typeof i13.SmartfileuploaderComponent, typeof i23.HighlightPipe, typeof i15.ComparableDropdownDirective, typeof i16.ComparableMultiselectDirective, typeof i24.UiActionButtonComponent, typeof i25.ClickMenuComponent, typeof i27.UploadWidgetComponent, typeof i28.VoiceRecordWidgetComponent, typeof i29.PhotoCaptureWidgetComponent, typeof i20.SmartFileEditorComponent, typeof i21.SmartMultiFileEditorComponent, typeof i22.SmartVoiceRecorderComponent, typeof i31.SmartEmbeddedSlotDirective]>;
82
84
  static ɵinj: i0.ɵɵInjectorDeclaration<SmartViewContextModule>;
83
85
  }
@@ -9,6 +9,7 @@ import { SmartViewContextDialogService } from './smart-view-context-dialog.servi
9
9
  import { ComponentLibrary } from './utility/componentLibrary';
10
10
  import { SlotKind } from './view-slot-resolution';
11
11
  import { DefaultViewComponentEntry } from './default-view-components.token';
12
+ import { ThemeService } from '../theme/theme.service';
12
13
  import * as i0 from "@angular/core";
13
14
  export declare const SmartViewContextErrorDialogButtonLabel = "SmartViewContextErrorDialogButtonLabel";
14
15
  export declare const SmartViewContextErrorDialogTitle = "SmartViewContextErrorDialogTitle";
@@ -20,6 +21,7 @@ export declare class SmartViewContextService implements OnDestroy {
20
21
  private session;
21
22
  private dialog;
22
23
  private apiQueueService;
24
+ private themeService;
23
25
  private inject;
24
26
  private readonly viewContextUuidName;
25
27
  private readonly viewContextUuidHeaderName;
@@ -54,7 +56,7 @@ export declare class SmartViewContextService implements OnDestroy {
54
56
  private _translateService?;
55
57
  translateServiceChanged: Subject<void>;
56
58
  componentLibrary: ComponentLibrary | undefined;
57
- constructor(view: ViewService, session: SmartSessionService, dialog: SmartViewContextDialogService, apiQueueService: ApiQueueService, inject: Injector, compLib?: ComponentLibrary, defaultViewComponents?: DefaultViewComponentEntry[]);
59
+ constructor(view: ViewService, session: SmartSessionService, dialog: SmartViewContextDialogService, apiQueueService: ApiQueueService, themeService: ThemeService, inject: Injector, compLib?: ComponentLibrary, defaultViewComponents?: DefaultViewComponentEntry[]);
58
60
  ngOnDestroy(): void;
59
61
  follow(uuid: string, detectChange: SmartSubject<any>): void;
60
62
  unfollow(uuid: string): void;
@@ -147,7 +149,7 @@ export declare class SmartViewContextService implements OnDestroy {
147
149
  load(uuid: string): Promise<ComponentModel | undefined>;
148
150
  load2(uuid: string): Promise<ViewContextChange | undefined>;
149
151
  getCurrentViewContext(): ViewContextData | undefined;
150
- static ɵfac: i0.ɵɵFactoryDeclaration<SmartViewContextService, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
152
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmartViewContextService, [null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
151
153
  static ɵprov: i0.ɵɵInjectableDeclaration<SmartViewContextService>;
152
154
  }
153
155
  export declare const IS_ASYNC_PARAM_NAME = "isAsync";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartbit4all/ng-client",
3
- "version": "6.0.9",
3
+ "version": "6.0.11",
4
4
  "description": "Angular client library for the smartbit4all platform — a server-driven UI framework that renders views, pages, forms, grids, trees and dialogs from backend (ViewApi/PageApi) definitions. Provides reactive view-context state management, dynamic component layouts and OpenAPI-generated BFF clients.",
5
5
  "peerDependencies": {
6
6
  "@angular/animations": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
package/projects.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './lib/smart-ng-client.service';
2
2
  export * from './lib/smart-ng-client.module';
3
3
  export * from './lib/smart-client/smart-file-uploader/smart-file-uploader.component';
4
4
  export * from './lib/smart-client/projects';
5
+ export * from './lib/theme/theme.service';
5
6
  export * from './lib/component-factory-service/projects';
6
7
  export * from './lib/session/projects';
7
8
  export * from './lib/smart-component-layout/projects';
@@ -1,199 +0,0 @@
1
- import { Component, EventEmitter, HostListener, Inject, Input, Optional, Output, ViewChild, ViewChildren, } from '@angular/core';
2
- import { Subject, takeUntil } from 'rxjs';
3
- import { COMPONENT_LIBRARY, ComponentLibrary } from '../../../utility/componentLibrary';
4
- import { TemplatePortal } from '@angular/cdk/portal';
5
- import { SUBMENU_POSITIONS, ROOT_MENU_POSITIONS } from './menu.constants';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./menu.service";
8
- import * as i2 from "@angular/cdk/overlay";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "../../../../smart-icon/smart-icon/smart-icon.component";
11
- import * as i5 from "../../ui-action-button/ui-action-button.component";
12
- import * as i6 from "../../../utility/componentLibrary";
13
- export class MenuComponent {
14
- constructor(menuService, overlay, viewContainerRef, overlayPositionBuilder, compLib) {
15
- this.menuService = menuService;
16
- this.overlay = overlay;
17
- this.viewContainerRef = viewContainerRef;
18
- this.overlayPositionBuilder = overlayPositionBuilder;
19
- this.compLib = compLib;
20
- this.overlayRef = null;
21
- this.isSubmenu = false;
22
- this.actionClick = new EventEmitter();
23
- this.submenuOpened = new EventEmitter();
24
- this.destroy$ = new Subject();
25
- this.submenuOpenMap = new Map();
26
- this.subActions = [];
27
- this.hasCheckedChildren = false;
28
- this.compLib = compLib ?? ComponentLibrary.PRIMENG;
29
- if (this.compLib === ComponentLibrary.PRIMENG) {
30
- this.icon = 'chevron-right';
31
- }
32
- else if (this.compLib === ComponentLibrary.MATERIAL) {
33
- this.icon = 'chevron_right';
34
- }
35
- }
36
- ngOnInit() {
37
- this.menuService
38
- .getCloseSignal()
39
- .pipe(takeUntil(this.destroy$))
40
- .subscribe(() => {
41
- this.closeMenu();
42
- });
43
- }
44
- ngAfterViewChecked() {
45
- if (this.isOpen && !this.hasCheckedChildren && this.submenuComponents.length > 0) {
46
- this.hasCheckedChildren = true;
47
- }
48
- }
49
- ngOnChanges(changes) {
50
- if (changes['triggerAction']) {
51
- const trigger = changes['triggerAction'].currentValue;
52
- const previousTrigger = changes['triggerAction'].previousValue;
53
- this.subActions = trigger?.subActions ?? [];
54
- if (this.isOpen && previousTrigger) {
55
- const hasSubActionsChanged = this.hasSubActionsChanged(previousTrigger?.subActions, trigger?.subActions);
56
- if (hasSubActionsChanged) {
57
- this.refreshOverlay();
58
- }
59
- }
60
- }
61
- }
62
- hasSubActionsChanged(oldSubActions, newSubActions) {
63
- const oldLength = oldSubActions?.length ?? 0;
64
- const newLength = newSubActions?.length ?? 0;
65
- if (oldLength !== newLength) {
66
- return true;
67
- }
68
- if (oldLength > 0 && newLength > 0) {
69
- for (let i = 0; i < newLength; i++) {
70
- if (oldSubActions[i].code !== newSubActions[i].code) {
71
- return true;
72
- }
73
- }
74
- }
75
- return false;
76
- }
77
- ngOnDestroy() {
78
- this.destroy$.next();
79
- this.destroy$.complete();
80
- }
81
- onActionClick(action) {
82
- if (!action.disabled) {
83
- this.actionClick.emit(action);
84
- this.menuService.closeAllMenus();
85
- }
86
- }
87
- onMenuClick(event) {
88
- event.stopPropagation();
89
- }
90
- onDocumentClick(event) {
91
- this.menuService.closeAllMenus();
92
- if (this.overlayRef) {
93
- this.closeMenu();
94
- }
95
- }
96
- get isOpen() {
97
- return !!this.overlayRef;
98
- }
99
- closeMenu() {
100
- if (this.overlayRef) {
101
- this.overlayRef.dispose();
102
- this.overlayRef = null;
103
- this.hasCheckedChildren = false;
104
- }
105
- if (this.submenuComponents && this.submenuComponents.length > 0) {
106
- this.submenuComponents.forEach((submenu) => {
107
- submenu.closeMenu();
108
- });
109
- }
110
- }
111
- refreshOverlay() {
112
- if (!this.overlayRef) {
113
- return;
114
- }
115
- this.overlayRef.detach();
116
- let portal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);
117
- this.overlayRef.attach(portal);
118
- this.hasCheckedChildren = false;
119
- }
120
- openMenu(event) {
121
- if (this.isOpen) {
122
- return;
123
- }
124
- if (this.isSubmenu) {
125
- this.submenuOpened.emit(this.triggerAction);
126
- }
127
- else {
128
- this.menuService.closeAllMenus();
129
- }
130
- let triggerElement = event.currentTarget;
131
- const positions = this.isSubmenu ? SUBMENU_POSITIONS : ROOT_MENU_POSITIONS;
132
- let positionStrategy = this.overlayPositionBuilder
133
- .flexibleConnectedTo(triggerElement)
134
- .withFlexibleDimensions(false)
135
- .withPush(true)
136
- .withPositions(positions);
137
- this.overlayRef = this.overlay.create({
138
- positionStrategy,
139
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
140
- hasBackdrop: false,
141
- });
142
- let portal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);
143
- this.overlayRef.attach(portal);
144
- }
145
- toggleMenu(event) {
146
- if (!this.isOpen) {
147
- this.openMenu(event);
148
- }
149
- else {
150
- this.closeMenu();
151
- }
152
- }
153
- onSubmenuOpened(openedAction) {
154
- // Check if submenuComponents is available
155
- if (!this.submenuComponents || this.submenuComponents.length === 0) {
156
- setTimeout(() => {
157
- this.onSubmenuOpened(openedAction);
158
- }, 0);
159
- return;
160
- }
161
- this.submenuComponents.forEach((submenu) => {
162
- if (submenu.triggerAction.code !== openedAction.code && submenu.overlayRef) {
163
- submenu.closeMenu();
164
- }
165
- });
166
- }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MenuComponent, deps: [{ token: i1.UiMenuService }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i2.OverlayPositionBuilder }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MenuComponent, selector: "ui-tiered-menu", inputs: { triggerAction: "triggerAction", isSubmenu: "isSubmenu" }, outputs: { actionClick: "actionClick", submenuOpened: "submenuOpened" }, host: { listeners: { "click": "onMenuClick($event)", "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true }, { propertyName: "submenuComponents", predicate: ["submenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isSubmenu) {\n <div class=\"submenu hoverEffect\" [class.activeSubmenu]=\"isOpen\" (mouseenter)=\"openMenu($event)\">\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n <smart-icon [icon]=\"icon\" color=\"black\"></smart-icon>\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n}\n\n<ng-template #menuTemplate>\n <ul class=\"ui-tiered-menu\">\n <li *ngFor=\"let action of subActions\" class=\"hoverEffect\" [class.disabled]=\"action.disabled\">\n @if (action.subActions && action.subActions.length > 0) {\n <ui-tiered-menu\n #submenu\n [triggerAction]=\"action\"\n [isSubmenu]=\"true\"\n [subActions]=\"action.subActions!\"\n (actionClick)=\"actionClick.emit($event)\"\n (submenuOpened)=\"onSubmenuOpened(submenu)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"action.descriptor!\"\n [code]=\"action.code\"\n [disabled]=\"!!action.disabled\"\n (actionClick)=\"!action.subActions?.length && onActionClick(action)\"\n ></ui-action-button>\n }\n </li>\n </ul>\n</ng-template>\n\n<ng-template #triggerTempalte>\n <ui-action-button\n [descriptor]=\"triggerAction.descriptor!\"\n [code]=\"triggerAction.code\"\n [disabled]=\"!!triggerAction.disabled\"\n (actionClick)=\"toggleMenu($event.event)\"\n [class.submenuTrigger]=\"isSubmenu\"\n >\n </ui-action-button>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}ul,.ui-tiered-menu{top:100%;left:0;list-style:none;padding-left:0;margin:0;background:#fff;width:fit-content;box-shadow:2px 2px 8px #0003;z-index:1000;border-radius:5px;padding:.1rem}.submenuTrigger,.ui-tiered-menu ::ng-deep button{background-color:#fff;box-shadow:unset;border:unset;border-radius:unset;color:#000;width:100%;justify-content:flex-start}.hoverEffect:hover,.hoverEffect ::ng-deep button:hover{background-color:#f1f5f9}.hoverEffect.activeSubmenu,.hoverEffect.activeSubmenu ::ng-deep button{background-color:#f1f5f9}.ui-tiered-menu ::ng-deep ui-action-button,.ui-tiered-menu ::ng-deep ui-badge{width:100%}.ui-tiered-menu>li{position:relative}.submenu{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.submenu ::ng-deep ui-action-button{flex:1}.disabled{color:#aaa;cursor:not-allowed}.ui-tiered-menu ui-tiered-menu{width:100%}smart-icon{align-content:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: MenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu"], outputs: ["actionClick", "submenuOpened"] }] }); }
169
- }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MenuComponent, decorators: [{
171
- type: Component,
172
- args: [{ selector: 'ui-tiered-menu', template: "@if (isSubmenu) {\n <div class=\"submenu hoverEffect\" [class.activeSubmenu]=\"isOpen\" (mouseenter)=\"openMenu($event)\">\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n <smart-icon [icon]=\"icon\" color=\"black\"></smart-icon>\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"triggerTempalte\"></ng-container>\n}\n\n<ng-template #menuTemplate>\n <ul class=\"ui-tiered-menu\">\n <li *ngFor=\"let action of subActions\" class=\"hoverEffect\" [class.disabled]=\"action.disabled\">\n @if (action.subActions && action.subActions.length > 0) {\n <ui-tiered-menu\n #submenu\n [triggerAction]=\"action\"\n [isSubmenu]=\"true\"\n [subActions]=\"action.subActions!\"\n (actionClick)=\"actionClick.emit($event)\"\n (submenuOpened)=\"onSubmenuOpened(submenu)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"action.descriptor!\"\n [code]=\"action.code\"\n [disabled]=\"!!action.disabled\"\n (actionClick)=\"!action.subActions?.length && onActionClick(action)\"\n ></ui-action-button>\n }\n </li>\n </ul>\n</ng-template>\n\n<ng-template #triggerTempalte>\n <ui-action-button\n [descriptor]=\"triggerAction.descriptor!\"\n [code]=\"triggerAction.code\"\n [disabled]=\"!!triggerAction.disabled\"\n (actionClick)=\"toggleMenu($event.event)\"\n [class.submenuTrigger]=\"isSubmenu\"\n >\n </ui-action-button>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}ul,.ui-tiered-menu{top:100%;left:0;list-style:none;padding-left:0;margin:0;background:#fff;width:fit-content;box-shadow:2px 2px 8px #0003;z-index:1000;border-radius:5px;padding:.1rem}.submenuTrigger,.ui-tiered-menu ::ng-deep button{background-color:#fff;box-shadow:unset;border:unset;border-radius:unset;color:#000;width:100%;justify-content:flex-start}.hoverEffect:hover,.hoverEffect ::ng-deep button:hover{background-color:#f1f5f9}.hoverEffect.activeSubmenu,.hoverEffect.activeSubmenu ::ng-deep button{background-color:#f1f5f9}.ui-tiered-menu ::ng-deep ui-action-button,.ui-tiered-menu ::ng-deep ui-badge{width:100%}.ui-tiered-menu>li{position:relative}.submenu{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.submenu ::ng-deep ui-action-button{flex:1}.disabled{color:#aaa;cursor:not-allowed}.ui-tiered-menu ui-tiered-menu{width:100%}smart-icon{align-content:center}\n"] }]
173
- }], ctorParameters: () => [{ type: i1.UiMenuService }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i2.OverlayPositionBuilder }, { type: i6.ComponentLibrary, decorators: [{
174
- type: Inject,
175
- args: [COMPONENT_LIBRARY]
176
- }, {
177
- type: Optional
178
- }] }], propDecorators: { submenuComponents: [{
179
- type: ViewChildren,
180
- args: ['submenu']
181
- }], menuTemplate: [{
182
- type: ViewChild,
183
- args: ['menuTemplate']
184
- }], triggerAction: [{
185
- type: Input
186
- }], isSubmenu: [{
187
- type: Input
188
- }], actionClick: [{
189
- type: Output
190
- }], submenuOpened: [{
191
- type: Output
192
- }], onMenuClick: [{
193
- type: HostListener,
194
- args: ['click', ['$event']]
195
- }], onDocumentClick: [{
196
- type: HostListener,
197
- args: ['document:click', ['$event']]
198
- }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFJTixTQUFTLEVBQ1QsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFPMUUsTUFBTSxPQUFPLGFBQWE7SUFrQnhCLFlBQ1UsV0FBMEIsRUFDMUIsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLHNCQUE4QyxFQUNSLE9BQTBCO1FBSmhFLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ1IsWUFBTyxHQUFQLE9BQU8sQ0FB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QUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2TVUsYUFBYSw0SUF1QmQsaUJBQWlCO21HQXZCaEIsYUFBYSw4ZkNuQzFCLDgvQ0EyQ0EsaW1ERFJhLGFBQWE7OzRGQUFiLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsZ0JBQWdCOzswQkEyQnZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFBRyxRQUFRO3lDQXRCYixpQkFBaUI7c0JBQXpDLFlBQVk7dUJBQUMsU0FBUztnQkFFSSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBR2hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBOEZQLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTWpDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBBZnRlclZpZXdDaGVja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVWlNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcbmltcG9ydCB7XG4gIENvbm5lY3RlZFBvc2l0aW9uLFxuICBPdmVybGF5LFxuICBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU1VCTUVOVV9QT1NJVElPTlMsIFJPT1RfTUVOVV9QT1NJVElPTlMgfSBmcm9tICcuL21lbnUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktdGllcmVkLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGRyZW4oJ3N1Ym1lbnUnKSBzdWJtZW51Q29tcG9uZW50cyE6IFF1ZXJ5TGlzdDxNZW51Q29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCdtZW51VGVtcGxhdGUnKSBtZW51VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgdHJpZ2dlckFjdGlvbiE6IFVpQWN0aW9uO1xuICBASW5wdXQoKSBpc1N1Ym1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFVpQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgc3VibWVudU9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8VWlBY3Rpb24+KCk7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGljb24hOiBzdHJpbmc7XG4gIHN1Ym1lbnVPcGVuTWFwID0gbmV3IE1hcDxVaUFjdGlvbiwgYm9vbGVhbj4oKTtcbiAgc3ViQWN0aW9uczogVWlBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIGhhc0NoZWNrZWRDaGlsZHJlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IFVpTWVudVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgQE9wdGlvbmFsKCkgcHVibGljIGNvbXBMaWI/OiBDb21wb25lbnRMaWJyYXJ5XG4gICkge1xuICAgIHRoaXMuY29tcExpYiA9IGNvbXBMaWIgPz8gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HO1xuXG4gICAgaWYgKHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gICAgICB0aGlzLmljb24gPSAnY2hldnJvbi1yaWdodCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuTUFURVJJQUwpIHtcbiAgICAgIHRoaXMuaWNvbiA9ICdjaGV2cm9uX3JpZ2h0JztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlXG4gICAgICAuZ2V0Q2xvc2VTaWduYWwoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4gJiYgIXRoaXMuaGFzQ2hlY2tlZENoaWxkcmVuICYmIHRoaXMuc3VibWVudUNvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5oYXNDaGVja2VkQ2hpbGRyZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sndHJpZ2dlckFjdGlvbiddKSB7XG4gICAgICBjb25zdCB0cmlnZ2VyID0gY2hhbmdlc1sndHJpZ2dlckFjdGlvbiddLmN1cnJlbnRWYWx1ZSBhcyBVaUFjdGlvbjtcbiAgICAgIGNvbnN0IHByZXZpb3VzVHJpZ2dlciA9IGNoYW5nZXNbJ3RyaWdnZXJBY3Rpb24nXS5wcmV2aW91c1ZhbHVlIGFzIFVpQWN0aW9uO1xuXG4gICAgICB0aGlzLnN1YkFjdGlvbnMgPSB0cmlnZ2VyPy5zdWJBY3Rpb25zID8/IFtdO1xuXG4gICAgICBpZiAodGhpcy5pc09wZW4gJiYgcHJldmlvdXNUcmlnZ2VyKSB7XG4gICAgICAgIGNvbnN0IGhhc1N1YkFjdGlvbnNDaGFuZ2VkID0gdGhpcy5oYXNTdWJBY3Rpb25zQ2hhbmdlZChcbiAgICAgICAgICBwcmV2aW91c1RyaWdnZXI/LnN1YkFjdGlvbnMsXG4gICAgICAgICAgdHJpZ2dlcj8uc3ViQWN0aW9uc1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoYXNTdWJBY3Rpb25zQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMucmVmcmVzaE92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzU3ViQWN0aW9uc0NoYW5nZWQoXG4gICAgb2xkU3ViQWN0aW9uczogVWlBY3Rpb25bXSB8IHVuZGVmaW5lZCxcbiAgICBuZXdTdWJBY3Rpb25zOiBVaUFjdGlvbltdIHwgdW5kZWZpbmVkXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9sZExlbmd0aCA9IG9sZFN1YkFjdGlvbnM/Lmxlbmd0aCA/PyAwO1xuICAgIGNvbnN0IG5ld0xlbmd0aCA9IG5ld1N1YkFjdGlvbnM/Lmxlbmd0aCA/PyAwO1xuXG4gICAgaWYgKG9sZExlbmd0aCAhPT0gbmV3TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAob2xkTGVuZ3RoID4gMCAmJiBuZXdMZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld0xlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChvbGRTdWJBY3Rpb25zIVtpXS5jb2RlICE9PSBuZXdTdWJBY3Rpb25zIVtpXS5jb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogVWlBY3Rpb24pIHtcbiAgICBpZiAoIWFjdGlvbi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGFjdGlvbik7XG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uTWVudUNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5tZW51U2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5jbG9zZU1lbnUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcmxheVJlZjtcbiAgfVxuXG4gIGNsb3NlTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgIHRoaXMuaGFzQ2hlY2tlZENoaWxkcmVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3VibWVudUNvbXBvbmVudHMgJiYgdGhpcy5zdWJtZW51Q29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1Ym1lbnVDb21wb25lbnRzLmZvckVhY2goKHN1Ym1lbnUpID0+IHtcbiAgICAgICAgc3VibWVudS5jbG9zZU1lbnUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXG4gICAgbGV0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm1lbnVUZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICB0aGlzLmhhc0NoZWNrZWRDaGlsZHJlbiA9IGZhbHNlO1xuICB9XG5cbiAgb3Blbk1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1N1Ym1lbnUpIHtcbiAgICAgIHRoaXMuc3VibWVudU9wZW5lZC5lbWl0KHRoaXMudHJpZ2dlckFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVudVNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgIH1cblxuICAgIGxldCB0cmlnZ2VyRWxlbWVudCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gdGhpcy5pc1N1Ym1lbnUgPyBTVUJNRU5VX1BPU0lUSU9OUyA6IFJPT1RfTUVOVV9QT1NJVElPTlM7XG5cbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVBvc2l0aW9uQnVpbGRlclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odHJpZ2dlckVsZW1lbnQpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgLndpdGhQb3NpdGlvbnMocG9zaXRpb25zKTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBsZXQgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMubWVudVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW5NZW51KGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZU1lbnUoKTtcbiAgICB9XG4gIH1cblxuICBvblN1Ym1lbnVPcGVuZWQob3BlbmVkQWN0aW9uOiBVaUFjdGlvbikge1xuICAgIC8vIENoZWNrIGlmIHN1Ym1lbnVDb21wb25lbnRzIGlzIGF2YWlsYWJsZVxuICAgIGlmICghdGhpcy5zdWJtZW51Q29tcG9uZW50cyB8fCB0aGlzLnN1Ym1lbnVDb21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdWJtZW51T3BlbmVkKG9wZW5lZEFjdGlvbik7XG4gICAgICB9LCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1lbnVDb21wb25lbnRzLmZvckVhY2goKHN1Ym1lbnUpID0+IHtcbiAgICAgIGlmIChzdWJtZW51LnRyaWdnZXJBY3Rpb24uY29kZSAhPT0gb3BlbmVkQWN0aW9uLmNvZGUgJiYgc3VibWVudS5vdmVybGF5UmVmKSB7XG4gICAgICAgIHN1Ym1lbnUuY2xvc2VNZW51KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoaXNTdWJtZW51KSB7XG4gIDxkaXYgY2xhc3M9XCJzdWJtZW51IGhvdmVyRWZmZWN0XCIgW2NsYXNzLmFjdGl2ZVN1Ym1lbnVdPVwiaXNPcGVuXCIgKG1vdXNlZW50ZXIpPVwib3Blbk1lbnUoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmlnZ2VyVGVtcGFsdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c21hcnQtaWNvbiBbaWNvbl09XCJpY29uXCIgY29sb3I9XCJibGFja1wiPjwvc21hcnQtaWNvbj5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRyaWdnZXJUZW1wYWx0ZVwiPjwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZT5cbiAgPHVsIGNsYXNzPVwidWktdGllcmVkLW1lbnVcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBzdWJBY3Rpb25zXCIgY2xhc3M9XCJob3ZlckVmZmVjdFwiIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWRcIj5cbiAgICAgIEBpZiAoYWN0aW9uLnN1YkFjdGlvbnMgJiYgYWN0aW9uLnN1YkFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8dWktdGllcmVkLW1lbnVcbiAgICAgICAgICAjc3VibWVudVxuICAgICAgICAgIFt0cmlnZ2VyQWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgW2lzU3VibWVudV09XCJ0cnVlXCJcbiAgICAgICAgICBbc3ViQWN0aW9uc109XCJhY3Rpb24uc3ViQWN0aW9ucyFcIlxuICAgICAgICAgIChhY3Rpb25DbGljayk9XCJhY3Rpb25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgIChzdWJtZW51T3BlbmVkKT1cIm9uU3VibWVudU9wZW5lZChzdWJtZW51KVwiXG4gICAgICAgID48L3VpLXRpZXJlZC1tZW51PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiYWN0aW9uLmRlc2NyaXB0b3IhXCJcbiAgICAgICAgICBbY29kZV09XCJhY3Rpb24uY29kZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEhYWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAoYWN0aW9uQ2xpY2spPVwiIWFjdGlvbi5zdWJBY3Rpb25zPy5sZW5ndGggJiYgb25BY3Rpb25DbGljayhhY3Rpb24pXCJcbiAgICAgICAgPjwvdWktYWN0aW9uLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cmlnZ2VyVGVtcGFsdGU+XG4gIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgW2Rlc2NyaXB0b3JdPVwidHJpZ2dlckFjdGlvbi5kZXNjcmlwdG9yIVwiXG4gICAgW2NvZGVdPVwidHJpZ2dlckFjdGlvbi5jb2RlXCJcbiAgICBbZGlzYWJsZWRdPVwiISF0cmlnZ2VyQWN0aW9uLmRpc2FibGVkXCJcbiAgICAoYWN0aW9uQ2xpY2spPVwidG9nZ2xlTWVudSgkZXZlbnQuZXZlbnQpXCJcbiAgICBbY2xhc3Muc3VibWVudVRyaWdnZXJdPVwiaXNTdWJtZW51XCJcbiAgPlxuICA8L3VpLWFjdGlvbi1idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
Binary file