@smartbit4all/ng-client 5.0.21 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. package/README.md +386 -386
  2. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +17 -0
  3. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +35 -0
  4. package/esm2022/lib/component-factory-service/projects.mjs +6 -0
  5. package/esm2022/lib/session/api/api/api.mjs +4 -0
  6. package/esm2022/lib/session/api/api/session.service.mjs +306 -0
  7. package/esm2022/lib/session/api/configuration.mjs +91 -0
  8. package/esm2022/lib/session/api/encoder.mjs +19 -0
  9. package/esm2022/lib/session/api/index.mjs +3 -0
  10. package/esm2022/lib/session/api/model/accountInfo.mjs +13 -0
  11. package/esm2022/lib/session/api/model/apiError.mjs +13 -0
  12. package/esm2022/lib/session/api/model/authenticationProviderData.mjs +13 -0
  13. package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
  14. package/esm2022/lib/session/api/model/models.mjs +9 -0
  15. package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +13 -0
  16. package/esm2022/lib/session/api/model/session.mjs +2 -0
  17. package/esm2022/lib/session/api/model/sessionInfoData.mjs +2 -0
  18. package/esm2022/lib/session/api/model/userActivityLog.mjs +13 -0
  19. package/esm2022/lib/session/api/param.mjs +2 -0
  20. package/esm2022/lib/session/api/variables.mjs +9 -0
  21. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
  22. package/esm2022/lib/session/projects.mjs +13 -0
  23. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +2 -0
  24. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +214 -0
  25. package/esm2022/lib/session/smart-default-error-ui.service.mjs +134 -0
  26. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +109 -0
  27. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +44 -0
  28. package/esm2022/lib/session/smart-session-handler.service.mjs +7 -0
  29. package/esm2022/lib/session/smart-session.module.mjs +58 -0
  30. package/esm2022/lib/session/smart-session.service.mjs +284 -0
  31. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +39 -0
  32. package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +63 -0
  33. package/esm2022/lib/shared/projects.mjs +4 -0
  34. package/esm2022/lib/shared/shared.module.mjs +19 -0
  35. package/esm2022/lib/shared/smart-tooltip.directive.mjs +58 -0
  36. package/esm2022/lib/shared/smarttable.date-pipe.mjs +43 -0
  37. package/esm2022/lib/smart-client/projects.mjs +4 -0
  38. package/esm2022/lib/smart-client/smart-component-api-client.mjs +934 -0
  39. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +79 -0
  40. package/esm2022/lib/smart-client/smart.component.mjs +88 -0
  41. package/esm2022/lib/smart-client/smart.service.mjs +71 -0
  42. package/esm2022/lib/smart-component-layout/api/api/api.mjs +4 -0
  43. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +133 -0
  44. package/esm2022/lib/smart-component-layout/api/api.module.mjs +40 -0
  45. package/esm2022/lib/smart-component-layout/api/configuration.mjs +91 -0
  46. package/esm2022/lib/smart-component-layout/api/encoder.mjs +19 -0
  47. package/esm2022/lib/smart-component-layout/api/index.mjs +7 -0
  48. package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +18 -0
  49. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +22 -0
  50. package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +2 -0
  51. package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +17 -0
  52. package/esm2022/lib/smart-component-layout/api/model/models.mjs +9 -0
  53. package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
  54. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
  55. package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +17 -0
  56. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +2 -0
  57. package/esm2022/lib/smart-component-layout/api/param.mjs +2 -0
  58. package/esm2022/lib/smart-component-layout/api/variables.mjs +9 -0
  59. package/esm2022/lib/smart-component-layout/projects.mjs +8 -0
  60. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +169 -0
  61. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +436 -0
  62. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +57 -0
  63. package/esm2022/lib/smart-diagram/api/api/api.mjs +4 -0
  64. package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +141 -0
  65. package/esm2022/lib/smart-diagram/api/api.module.mjs +40 -0
  66. package/esm2022/lib/smart-diagram/api/configuration.mjs +91 -0
  67. package/esm2022/lib/smart-diagram/api/encoder.mjs +19 -0
  68. package/esm2022/lib/smart-diagram/api/index.mjs +7 -0
  69. package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +13 -0
  70. package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +2 -0
  71. package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +13 -0
  72. package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +2 -0
  73. package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +2 -0
  74. package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +2 -0
  75. package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +2 -0
  76. package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +18 -0
  77. package/esm2022/lib/smart-diagram/api/model/labelText.mjs +2 -0
  78. package/esm2022/lib/smart-diagram/api/model/models.mjs +10 -0
  79. package/esm2022/lib/smart-diagram/api/param.mjs +2 -0
  80. package/esm2022/lib/smart-diagram/api/variables.mjs +9 -0
  81. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +312 -0
  82. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +359 -0
  83. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +40 -0
  84. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +10 -0
  85. package/esm2022/lib/smart-diagram/projects.mjs +5 -0
  86. package/esm2022/lib/smart-dialog/projects.mjs +8 -0
  87. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +54 -0
  88. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +16 -0
  89. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +46 -0
  90. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +86 -0
  91. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +101 -0
  92. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +12 -0
  93. package/esm2022/lib/smart-expandable-section/projects.mjs +8 -0
  94. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +57 -0
  95. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -0
  96. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +17 -0
  97. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
  98. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +8 -0
  99. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
  100. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
  101. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +20 -0
  102. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +2 -0
  103. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
  104. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +28 -0
  105. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
  106. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
  107. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +32 -0
  108. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +18 -0
  109. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +16 -0
  110. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +2 -0
  111. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +13 -0
  112. package/esm2022/lib/smart-filter/api/value/model/value.mjs +13 -0
  113. package/esm2022/lib/smart-filter/projects.mjs +9 -0
  114. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -0
  115. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +166 -0
  116. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -0
  117. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
  118. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -0
  119. package/esm2022/lib/smart-filter/smart-filter.model.mjs +13 -0
  120. package/esm2022/lib/smart-filter/smart-filter.module.mjs +33 -0
  121. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +198 -0
  122. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +91 -0
  123. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +19 -0
  124. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +17 -0
  125. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +13 -0
  126. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +2 -0
  127. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +8 -0
  128. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +2 -0
  129. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +7 -0
  130. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +2 -0
  131. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +20 -0
  132. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +2 -0
  133. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +2 -0
  134. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +2 -0
  135. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +28 -0
  136. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +2 -0
  137. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +2 -0
  138. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +32 -0
  139. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +19 -0
  140. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +17 -0
  141. package/esm2022/lib/smart-filter-editor/api/param.mjs +2 -0
  142. package/esm2022/lib/smart-filter-editor/api/variables.mjs +9 -0
  143. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +15 -0
  144. package/esm2022/lib/smart-filter-editor/project.mjs +8 -0
  145. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +73 -0
  146. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +40 -0
  147. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +294 -0
  148. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +2 -0
  149. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +69 -0
  150. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +63 -0
  151. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +24 -0
  152. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +57 -0
  153. package/esm2022/lib/smart-form/api/api/api.mjs +4 -0
  154. package/esm2022/lib/smart-form/api/api/default.service.mjs +133 -0
  155. package/esm2022/lib/smart-form/api/api.module.mjs +40 -0
  156. package/esm2022/lib/smart-form/api/configuration.mjs +91 -0
  157. package/esm2022/lib/smart-form/api/encoder.mjs +19 -0
  158. package/esm2022/lib/smart-form/api/index.mjs +7 -0
  159. package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +13 -0
  160. package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +2 -0
  161. package/esm2022/lib/smart-form/api/model/imageProperties.mjs +2 -0
  162. package/esm2022/lib/smart-form/api/model/models.mjs +19 -0
  163. package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +2 -0
  164. package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +13 -0
  165. package/esm2022/lib/smart-form/api/model/recordingUploaderProperties.mjs +7 -0
  166. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +14 -0
  167. package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +22 -0
  168. package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +17 -0
  169. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +49 -0
  170. package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +2 -0
  171. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
  172. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +2 -0
  173. package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +18 -0
  174. package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +13 -0
  175. package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +13 -0
  176. package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +13 -0
  177. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +21 -0
  178. package/esm2022/lib/smart-form/api/param.mjs +2 -0
  179. package/esm2022/lib/smart-form/api/variables.mjs +9 -0
  180. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +20 -0
  181. package/esm2022/lib/smart-form/projects.mjs +18 -0
  182. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +753 -0
  183. package/esm2022/lib/smart-form/services/smartform.service.mjs +683 -0
  184. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +15 -0
  185. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +193 -0
  186. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +2 -0
  187. package/esm2022/lib/smart-form/smartform.component.mjs +190 -0
  188. package/esm2022/lib/smart-form/smartform.form-model.mjs +2 -0
  189. package/esm2022/lib/smart-form/smartform.model.mjs +38 -0
  190. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +179 -0
  191. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +83 -0
  192. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +170 -0
  193. package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +151 -0
  194. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +35 -0
  195. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +79 -0
  196. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +1038 -0
  197. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +78 -0
  198. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -0
  199. package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +98 -0
  200. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +2 -0
  201. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +18 -0
  202. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +19 -0
  203. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +13 -0
  204. package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +2 -0
  205. package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +2 -0
  206. package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +13 -0
  207. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +2 -0
  208. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +2 -0
  209. package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +54 -0
  210. package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +40 -0
  211. package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +40 -0
  212. package/esm2022/lib/smart-generic-pages/projects.mjs +13 -0
  213. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +80 -0
  214. package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +116 -0
  215. package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +77 -0
  216. package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +93 -0
  217. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +4 -0
  218. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +514 -0
  219. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
  220. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +91 -0
  221. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +19 -0
  222. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +7 -0
  223. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +17 -0
  224. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +2 -0
  225. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +20 -0
  226. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +2 -0
  227. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +2 -0
  228. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +2 -0
  229. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +2 -0
  230. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +13 -0
  231. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +18 -0
  232. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +17 -0
  233. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +2 -0
  234. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +2 -0
  235. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +2 -0
  236. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +8 -0
  237. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +15 -0
  238. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +2 -0
  239. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +9 -0
  240. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -0
  241. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +47 -0
  242. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +72 -0
  243. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +200 -0
  244. package/esm2022/lib/smart-grid/models/model.mjs +29 -0
  245. package/esm2022/lib/smart-grid/projects.mjs +9 -0
  246. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +65 -0
  247. package/esm2022/lib/smart-grid/smart-grid.component.mjs +1035 -0
  248. package/esm2022/lib/smart-grid/smart-grid.module.mjs +103 -0
  249. package/esm2022/lib/smart-grid/smart-grid.service.mjs +92 -0
  250. package/esm2022/lib/smart-icon/projects.mjs +9 -0
  251. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +95 -0
  252. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +40 -0
  253. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +37 -0
  254. package/esm2022/lib/smart-icon/smart-icon.module.mjs +26 -0
  255. package/esm2022/lib/smart-icon/smart-icon.service.mjs +93 -0
  256. package/esm2022/lib/smart-map/abstract-map.mjs +112 -0
  257. package/esm2022/lib/smart-map/api/api/api.mjs +4 -0
  258. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +312 -0
  259. package/esm2022/lib/smart-map/api/api.module.mjs +40 -0
  260. package/esm2022/lib/smart-map/api/configuration.mjs +91 -0
  261. package/esm2022/lib/smart-map/api/encoder.mjs +19 -0
  262. package/esm2022/lib/smart-map/api/index.mjs +7 -0
  263. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +13 -0
  264. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +2 -0
  265. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +2 -0
  266. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +17 -0
  267. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +2 -0
  268. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +19 -0
  269. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +2 -0
  270. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +2 -0
  271. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +2 -0
  272. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +18 -0
  273. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +2 -0
  274. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +2 -0
  275. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +2 -0
  276. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +2 -0
  277. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +17 -0
  278. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +18 -0
  279. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +2 -0
  280. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +17 -0
  281. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +2 -0
  282. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +2 -0
  283. package/esm2022/lib/smart-map/api/model/models.mjs +21 -0
  284. package/esm2022/lib/smart-map/api/param.mjs +2 -0
  285. package/esm2022/lib/smart-map/api/variables.mjs +9 -0
  286. package/esm2022/lib/smart-map/api-default/api-default.mjs +2 -0
  287. package/esm2022/lib/smart-map/impl/google-map.mjs +224 -0
  288. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +422 -0
  289. package/esm2022/lib/smart-map/projects.mjs +9 -0
  290. package/esm2022/lib/smart-map/smart-map.component.mjs +222 -0
  291. package/esm2022/lib/smart-map/smart-map.module.mjs +22 -0
  292. package/esm2022/lib/smart-map/smart-map.types.mjs +2 -0
  293. package/esm2022/lib/smart-navbar/projects.mjs +8 -0
  294. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +61 -0
  295. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +6 -0
  296. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +63 -0
  297. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +14 -0
  298. package/esm2022/lib/smart-navigation/projects.mjs +6 -0
  299. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +2 -0
  300. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +18 -0
  301. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +27 -0
  302. package/esm2022/lib/smart-ng-client.module.mjs +130 -0
  303. package/esm2022/lib/smart-ng-client.service.mjs +19 -0
  304. package/esm2022/lib/smart-subject/projects.mjs +5 -0
  305. package/esm2022/lib/smart-subject/smart-subject.mjs +21 -0
  306. package/esm2022/lib/smart-tab-group/projects.mjs +5 -0
  307. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +22 -0
  308. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +43 -0
  309. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +15 -0
  310. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +52 -0
  311. package/esm2022/lib/smart-table/projects.mjs +8 -0
  312. package/esm2022/lib/smart-table/smarttable.component.mjs +98 -0
  313. package/esm2022/lib/smart-table/smarttable.model.mjs +177 -0
  314. package/esm2022/lib/smart-table/smarttable.module.mjs +109 -0
  315. package/esm2022/lib/smart-table/smarttable.service.mjs +14 -0
  316. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +42 -0
  317. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +23 -0
  318. package/esm2022/lib/smart-table/tables/table.mjs +573 -0
  319. package/esm2022/lib/smart-tree/projects.mjs +9 -0
  320. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +292 -0
  321. package/esm2022/lib/smart-tree/smarttree.component.mjs +187 -0
  322. package/esm2022/lib/smart-tree/smarttree.model.mjs +7 -0
  323. package/esm2022/lib/smart-tree/smarttree.module.mjs +60 -0
  324. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +6 -0
  325. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +2 -0
  326. package/esm2022/lib/smart-tree/smarttree.service.mjs +47 -0
  327. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1190 -0
  328. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +91 -0
  329. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +19 -0
  330. package/esm2022/lib/smart-tree/tree-api/param.mjs +2 -0
  331. package/esm2022/lib/smart-tree/tree-api/variables.mjs +9 -0
  332. package/esm2022/lib/smart-validation/named-validator.service.mjs +115 -0
  333. package/esm2022/lib/smart-validation/projects.mjs +4 -0
  334. package/esm2022/lib/smart-validation/smart-validation.module.mjs +24 -0
  335. package/esm2022/lib/smart-validation/smart-validation.types.mjs +4 -0
  336. package/esm2022/lib/view-context/api/api/api.mjs +4 -0
  337. package/esm2022/lib/view-context/api/api/view.service.mjs +903 -0
  338. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +2 -0
  339. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +2 -0
  340. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +2 -0
  341. package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +2 -0
  342. package/esm2022/lib/view-context/api/api.module.mjs +40 -0
  343. package/esm2022/lib/view-context/api/configuration.mjs +91 -0
  344. package/esm2022/lib/view-context/api/encoder.mjs +19 -0
  345. package/esm2022/lib/view-context/api/index.mjs +7 -0
  346. package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +2 -0
  347. package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +13 -0
  348. package/esm2022/lib/view-context/api/model/clipboardData.mjs +13 -0
  349. package/esm2022/lib/view-context/api/model/closeResult.mjs +18 -0
  350. package/esm2022/lib/view-context/api/model/componentConstraint.mjs +2 -0
  351. package/esm2022/lib/view-context/api/model/componentModel.mjs +2 -0
  352. package/esm2022/lib/view-context/api/model/componentModelChange.mjs +13 -0
  353. package/esm2022/lib/view-context/api/model/dataChange.mjs +2 -0
  354. package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +2 -0
  355. package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +21 -0
  356. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +13 -0
  357. package/esm2022/lib/view-context/api/model/downloadedFile.mjs +13 -0
  358. package/esm2022/lib/view-context/api/model/iconPosition.mjs +21 -0
  359. package/esm2022/lib/view-context/api/model/imageResource.mjs +8 -0
  360. package/esm2022/lib/view-context/api/model/link.mjs +20 -0
  361. package/esm2022/lib/view-context/api/model/messageData.mjs +2 -0
  362. package/esm2022/lib/view-context/api/model/messageOption.mjs +2 -0
  363. package/esm2022/lib/view-context/api/model/messageOptionType.mjs +18 -0
  364. package/esm2022/lib/view-context/api/model/messageResult.mjs +2 -0
  365. package/esm2022/lib/view-context/api/model/messageTextType.mjs +17 -0
  366. package/esm2022/lib/view-context/api/model/messageType.mjs +19 -0
  367. package/esm2022/lib/view-context/api/model/models.mjs +63 -0
  368. package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +13 -0
  369. package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +2 -0
  370. package/esm2022/lib/view-context/api/model/namedValidator.mjs +19 -0
  371. package/esm2022/lib/view-context/api/model/openPendingData.mjs +2 -0
  372. package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +2 -0
  373. package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +2 -0
  374. package/esm2022/lib/view-context/api/model/serverRequestType.mjs +24 -0
  375. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +2 -0
  376. package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +8 -0
  377. package/esm2022/lib/view-context/api/model/statisticRecord.mjs +13 -0
  378. package/esm2022/lib/view-context/api/model/style.mjs +13 -0
  379. package/esm2022/lib/view-context/api/model/uiAction.mjs +2 -0
  380. package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +2 -0
  381. package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +27 -0
  382. package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +13 -0
  383. package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +2 -0
  384. package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +2 -0
  385. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
  386. package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
  387. package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +20 -0
  388. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +21 -0
  389. package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +13 -0
  390. package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +13 -0
  391. package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +22 -0
  392. package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +2 -0
  393. package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +18 -0
  394. package/esm2022/lib/view-context/api/model/uploadedFile.mjs +2 -0
  395. package/esm2022/lib/view-context/api/model/valueSet.mjs +2 -0
  396. package/esm2022/lib/view-context/api/model/view.mjs +2 -0
  397. package/esm2022/lib/view-context/api/model/viewApiError.mjs +13 -0
  398. package/esm2022/lib/view-context/api/model/viewConstraint.mjs +2 -0
  399. package/esm2022/lib/view-context/api/model/viewContext.mjs +2 -0
  400. package/esm2022/lib/view-context/api/model/viewContextChange.mjs +2 -0
  401. package/esm2022/lib/view-context/api/model/viewContextData.mjs +2 -0
  402. package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
  403. package/esm2022/lib/view-context/api/model/viewData.mjs +2 -0
  404. package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +8 -0
  405. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +13 -0
  406. package/esm2022/lib/view-context/api/model/viewState.mjs +22 -0
  407. package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
  408. package/esm2022/lib/view-context/api/model/viewType.mjs +18 -0
  409. package/esm2022/lib/view-context/api/param.mjs +2 -0
  410. package/esm2022/lib/view-context/api/variables.mjs +9 -0
  411. package/esm2022/lib/view-context/default-view-components.token.mjs +9 -0
  412. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +20 -0
  413. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +93 -0
  414. package/esm2022/lib/view-context/projects.mjs +29 -0
  415. package/esm2022/lib/view-context/property-definition-data.mjs +2 -0
  416. package/esm2022/lib/view-context/reuse-router-slot.token.mjs +4 -0
  417. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +57 -0
  418. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +199 -0
  419. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +72 -0
  420. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +21 -0
  421. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
  422. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +198 -0
  423. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +95 -0
  424. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +134 -0
  425. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +12 -0
  426. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +256 -0
  427. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +77 -0
  428. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +54 -0
  429. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +60 -0
  430. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +106 -0
  431. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +60 -0
  432. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +132 -0
  433. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +58 -0
  434. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +33 -0
  435. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +215 -0
  436. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +319 -0
  437. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +185 -0
  438. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
  439. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +235 -0
  440. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +77 -0
  441. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +35 -0
  442. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +74 -0
  443. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +63 -0
  444. package/esm2022/lib/view-context/smart-view-context.model.mjs +2 -0
  445. package/esm2022/lib/view-context/smart-view-context.module.mjs +397 -0
  446. package/esm2022/lib/view-context/smart-view-context.service.mjs +1074 -0
  447. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +41 -0
  448. package/esm2022/lib/view-context/utility/componentLibrary.mjs +9 -0
  449. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +44 -0
  450. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +68 -0
  451. package/esm2022/lib/view-context/value-api/api/api.mjs +4 -0
  452. package/esm2022/lib/view-context/value-api/api/value.service.mjs +138 -0
  453. package/esm2022/lib/view-context/value-api/api.module.mjs +40 -0
  454. package/esm2022/lib/view-context/value-api/configuration.mjs +91 -0
  455. package/esm2022/lib/view-context/value-api/encoder.mjs +19 -0
  456. package/esm2022/lib/view-context/value-api/index.mjs +7 -0
  457. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +13 -0
  458. package/esm2022/lib/view-context/value-api/model/models.mjs +11 -0
  459. package/esm2022/lib/view-context/value-api/model/value.mjs +13 -0
  460. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +2 -0
  461. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +2 -0
  462. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +2 -0
  463. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +13 -0
  464. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +24 -0
  465. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +2 -0
  466. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +2 -0
  467. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +19 -0
  468. package/esm2022/lib/view-context/value-api/param.mjs +2 -0
  469. package/esm2022/lib/view-context/value-api/variables.mjs +9 -0
  470. package/esm2022/lib/view-context/view-handler-resolution.mjs +21 -0
  471. package/esm2022/lib/view-context/view-op.mjs +41 -0
  472. package/esm2022/lib/view-context/view-slot-resolution.mjs +28 -0
  473. package/esm2022/projects.mjs +30 -0
  474. package/esm2022/smartbit4all-ng-client.mjs +5 -0
  475. package/fesm2022/smartbit4all-ng-client.mjs +8990 -4553
  476. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  477. package/lib/session/api/model/accountInfo.d.ts +2 -0
  478. package/lib/session/projects.d.ts +3 -0
  479. package/lib/session/smart-backend-bootstrap.config.d.ts +65 -0
  480. package/lib/session/smart-backend-bootstrap.service.d.ts +55 -0
  481. package/lib/session/smart-default-error-ui.service.d.ts +90 -0
  482. package/lib/session/smart-error-catching.interceptor.d.ts +4 -1
  483. package/lib/session/smart-session-handler.service.d.ts +2 -1
  484. package/lib/session/smart-session.service.d.ts +16 -1
  485. package/lib/session/smart-timer/smart-session-timer.component.d.ts +3 -1
  486. package/lib/smart-client/projects.d.ts +0 -1
  487. package/lib/smart-client/smart-component-api-client.d.ts +45 -19
  488. package/lib/smart-client/smart.component.d.ts +7 -5
  489. package/lib/smart-client/smart.service.d.ts +4 -5
  490. package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +3 -1
  491. package/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.d.ts +19 -0
  492. package/lib/smart-component-layout/api/model/models.d.ts +3 -0
  493. package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +2 -0
  494. package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +6 -0
  495. package/{src/lib/smart-chart/smart-chart/api/model/chartData.d.ts → lib/smart-component-layout/api/model/toolbarDirection.d.ts} +5 -6
  496. package/lib/smart-component-layout/api/model/toolbarProperties.d.ts +16 -0
  497. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +9 -1
  498. package/lib/smart-component-layout/smart-component-layout.component.d.ts +31 -5
  499. package/lib/smart-component-layout/smart-component-layout.module.d.ts +4 -1
  500. package/lib/smart-diagram/api/api/api.d.ts +3 -0
  501. package/lib/smart-diagram/api/api/diagramService.service.d.ts +36 -0
  502. package/lib/smart-diagram/api/encoder.d.ts +11 -0
  503. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramColor.d.ts +2 -2
  504. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataContainer.d.ts +2 -3
  505. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataItem.d.ts +3 -3
  506. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataSet.d.ts +4 -4
  507. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDescriptor.d.ts +13 -9
  508. package/{src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.d.ts → lib/smart-diagram/api/model/diagramModel.d.ts} +5 -4
  509. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramShape.d.ts +2 -2
  510. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/drawTime.d.ts +2 -2
  511. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/labelText.d.ts +2 -2
  512. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/models.d.ts +1 -2
  513. package/lib/smart-diagram/component/default-smart-diagram-options.provider.d.ts +33 -0
  514. package/lib/smart-diagram/component/smart-diagram.component.d.ts +43 -0
  515. package/lib/smart-diagram/component/smart-diagram.module.d.ts +11 -0
  516. package/lib/smart-diagram/component/smart-diagram.util.d.ts +1 -0
  517. package/lib/smart-diagram/projects.d.ts +4 -0
  518. package/lib/smart-dialog/smartdialog.model.d.ts +2 -1
  519. package/lib/smart-dialog/smartdialog.module.d.ts +1 -2
  520. package/lib/smart-dialog/smartdialog.service.d.ts +1 -3
  521. package/lib/smart-expandable-section/expandable-section.component.d.ts +3 -1
  522. package/lib/smart-expandable-section/expandable-section.model.d.ts +1 -0
  523. package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +2 -1
  524. package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +4 -2
  525. package/{src/lib/smart-chart/smart-chart/api/model/chartOrientation.d.ts → lib/smart-form/api/model/dateFieldProperties.d.ts} +6 -7
  526. package/lib/smart-form/api/model/fileUploaderProperties.d.ts +20 -0
  527. package/lib/smart-form/api/model/imageProperties.d.ts +15 -0
  528. package/lib/smart-form/api/model/models.d.ts +7 -0
  529. package/lib/smart-form/api/model/multiFileUploaderProperties.d.ts +19 -0
  530. package/lib/smart-form/api/model/recordingUploaderProperties.d.ts +20 -0
  531. package/lib/smart-form/api/model/selectionDefinition.d.ts +17 -0
  532. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +4 -1
  533. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +5 -0
  534. package/lib/smart-form/api/model/textBoxProperties.d.ts +15 -0
  535. package/{src/lib/smart-chart/smart-chart/api/model/chartValue.d.ts → lib/smart-form/api/model/textFieldProperties.d.ts} +4 -6
  536. package/lib/smart-form/api/model/valueChangeMode.d.ts +3 -2
  537. package/lib/smart-form/projects.d.ts +3 -0
  538. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +6 -2
  539. package/lib/smart-form/services/smartform.service.d.ts +3 -2
  540. package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +19 -3
  541. package/lib/smart-form/smartform.component.d.ts +3 -2
  542. package/lib/smart-form/smartform.form-model.d.ts +160 -11
  543. package/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.d.ts +54 -0
  544. package/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.d.ts +57 -0
  545. package/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.d.ts +50 -0
  546. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +38 -7
  547. package/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.d.ts +21 -0
  548. package/lib/smart-generic-pages/api/platform/acl/model/aCL.d.ts +18 -0
  549. package/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.d.ts +54 -0
  550. package/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.d.ts +19 -0
  551. package/lib/smart-generic-pages/api/platform/acl/model/subject.d.ts +24 -0
  552. package/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.d.ts +2 -0
  553. package/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.d.ts +27 -0
  554. package/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.d.ts +14 -0
  555. package/lib/smart-generic-pages/api/platform/validation/model/validationItem.d.ts +17 -0
  556. package/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.d.ts +18 -0
  557. package/lib/smart-generic-pages/generic-page/generic-page.component.d.ts +12 -0
  558. package/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.d.ts +11 -0
  559. package/lib/smart-generic-pages/no-permission-page/no-permission-page.component.d.ts +11 -0
  560. package/lib/smart-generic-pages/projects.d.ts +9 -0
  561. package/lib/smart-generic-pages/search-page/search-page.component.d.ts +25 -0
  562. package/lib/smart-generic-pages/smart-generic-pages.module.d.ts +19 -0
  563. package/lib/smart-generic-pages/subject-selector/subject-selector.component.d.ts +17 -0
  564. package/lib/smart-generic-pages/validation-result-page/validation-result-page.component.d.ts +25 -0
  565. package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +27 -6
  566. package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +4 -0
  567. package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +2 -2
  568. package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +2 -0
  569. package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +6 -0
  570. package/lib/smart-grid/components/generic-component/expanded-row-renderer.component.d.ts +21 -0
  571. package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +1 -0
  572. package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +1 -0
  573. package/lib/smart-grid/smart-grid-toolbar-util.d.ts +1 -0
  574. package/lib/smart-grid/smart-grid.component.d.ts +20 -6
  575. package/lib/smart-grid/smart-grid.module.d.ts +20 -21
  576. package/lib/smart-grid/smart-grid.service.d.ts +2 -0
  577. package/lib/smart-icon/projects.d.ts +2 -0
  578. package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +10 -4
  579. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.d.ts +12 -0
  580. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.d.ts +14 -0
  581. package/lib/smart-icon/smart-icon.module.d.ts +8 -5
  582. package/lib/smart-map/abstract-map.d.ts +1 -1
  583. package/lib/smart-navigation/smart-navigation.interface.d.ts +1 -7
  584. package/lib/smart-navigation/smart-navigation.service.d.ts +2 -8
  585. package/lib/smart-ng-client.module.d.ts +3 -4
  586. package/lib/smart-tab-group/projects.d.ts +0 -4
  587. package/lib/smart-tab-group/smart-tab-group.module.d.ts +5 -8
  588. package/lib/smart-table/tables/material-table/material-table.component.d.ts +2 -3
  589. package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +1 -2
  590. package/lib/smart-table/tables/table.d.ts +5 -5
  591. package/lib/smart-tree/smarttree-generic.service.d.ts +0 -1
  592. package/lib/smart-tree/smarttree.component.d.ts +1 -0
  593. package/lib/smart-tree/smarttree.model.d.ts +1 -0
  594. package/lib/smart-tree/smarttree.service.d.ts +1 -0
  595. package/lib/view-context/api/api/view.service.d.ts +14 -13
  596. package/lib/view-context/api/api-default/invocationRun.d.ts +2 -0
  597. package/lib/view-context/api/model/backgroundProcessInfo.d.ts +25 -0
  598. package/lib/view-context/api/model/componentModel.d.ts +5 -0
  599. package/lib/view-context/api/model/deviceInfo.d.ts +4 -0
  600. package/lib/view-context/api/model/iconPosition.d.ts +2 -1
  601. package/lib/view-context/api/model/imageResource.d.ts +2 -0
  602. package/lib/view-context/api/model/messageOption.d.ts +2 -0
  603. package/lib/view-context/api/model/models.d.ts +6 -0
  604. package/lib/view-context/api/model/multiComboBoxElement.d.ts +16 -0
  605. package/lib/view-context/api/model/multiComboBoxModel.d.ts +16 -0
  606. package/lib/view-context/api/model/namedValidator.d.ts +1 -0
  607. package/lib/view-context/api/model/smartLinkData.d.ts +3 -0
  608. package/lib/view-context/api/model/uiAction.d.ts +8 -0
  609. package/lib/view-context/api/model/uiActionDefinition.d.ts +19 -0
  610. package/lib/view-context/api/model/uiActionDefinitionEntry.d.ts +18 -0
  611. package/lib/view-context/api/model/uiActionDescriptor.d.ts +4 -0
  612. package/lib/view-context/api/model/uiActionRequest.d.ts +3 -0
  613. package/lib/view-context/api/model/uiActionSchedule.d.ts +14 -0
  614. package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +2 -0
  615. package/lib/view-context/api/model/view.d.ts +7 -0
  616. package/lib/view-context/api/model/viewContext.d.ts +1 -0
  617. package/lib/view-context/api/model/viewData.d.ts +2 -0
  618. package/lib/view-context/api/model/viewEventHandler.d.ts +5 -0
  619. package/lib/view-context/api/model/viewPlaceholder.d.ts +1 -0
  620. package/lib/view-context/default-view-components.token.d.ts +18 -0
  621. package/lib/view-context/message-dialog/message-dialog.component.d.ts +1 -0
  622. package/lib/view-context/projects.d.ts +8 -3
  623. package/lib/view-context/reuse-router-slot.token.d.ts +3 -0
  624. package/lib/view-context/smart-embedded-slot.directive.d.ts +20 -0
  625. package/lib/view-context/smart-ui-action/components/menu/menu.component.d.ts +6 -2
  626. package/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.d.ts +32 -0
  627. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.d.ts +40 -0
  628. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.d.ts +3 -0
  629. package/lib/view-context/smart-ui-action/{dialogs/ui-action-file-upload-dialog → components/upload-widget}/voice-record-widget/voice-record-widget.component.d.ts +15 -6
  630. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +1 -2
  631. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +2 -16
  632. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +3 -3
  633. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +1 -2
  634. package/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.d.ts +13 -0
  635. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +14 -7
  636. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +27 -3
  637. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +4 -3
  638. package/lib/view-context/smart-view-context-dialog.service.d.ts +1 -3
  639. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +1 -2
  640. package/lib/view-context/smart-view-context.model.d.ts +7 -2
  641. package/lib/view-context/smart-view-context.module.d.ts +74 -65
  642. package/lib/view-context/smart-view-context.service.d.ts +55 -8
  643. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +3 -1
  644. package/lib/view-context/view-handler-resolution.d.ts +11 -0
  645. package/lib/view-context/view-op.d.ts +18 -0
  646. package/lib/view-context/view-slot-resolution.d.ts +27 -0
  647. package/package.json +16 -18
  648. package/projects.d.ts +2 -0
  649. package/smartbit4all-ng-client-6.0.1.tgz +0 -0
  650. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs +0 -686
  651. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +0 -1
  652. package/lib/smart-client/smart-authentication.service.d.ts +0 -15
  653. package/lib/smart-tab-group/smart-tab-group.component.d.ts +0 -21
  654. package/lib/smart-tab-group/smart-tab-group.service.d.ts +0 -6
  655. package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +0 -14
  656. package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +0 -29
  657. package/lib/smart-tab-group/tabTile.model.d.ts +0 -8
  658. package/lib/view-context/smart-ui-action/components/action-badge/action-badge.component.d.ts +0 -12
  659. package/smartbit4all-ng-client-5.0.21.tgz +0 -0
  660. package/src/lib/smart-chart/index.d.ts +0 -5
  661. package/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.d.ts +0 -37
  662. package/src/lib/smart-chart/smart-chart/api/model/chartType.d.ts +0 -21
  663. package/src/lib/smart-chart/smart-chart/api/model/models.d.ts +0 -6
  664. package/src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.d.ts +0 -16
  665. package/src/lib/smart-chart/smart-chart/default-chart-options.provider.d.ts +0 -31
  666. package/src/lib/smart-chart/smart-chart/smart-chart.component.d.ts +0 -33
  667. package/src/lib/smart-chart/smart-chart/smart-chart.module.d.ts +0 -11
  668. package/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.d.ts +0 -1
  669. package/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.d.ts +0 -21
  670. package/src/lib/smart-chart/smart-chart-projects.d.ts +0 -5
  671. package/src/lib/smart-chart/view-context/utility/componentLibrary.d.ts +0 -6
  672. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/api.module.d.ts +0 -0
  673. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/configuration.d.ts +0 -0
  674. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/index.d.ts +0 -0
  675. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/param.d.ts +0 -0
  676. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/variables.d.ts +0 -0
  677. /package/lib/view-context/smart-ui-action/{dialogs/ui-action-file-upload-dialog → components/upload-widget}/photo-capture-widget/photo-capture-widget.component.d.ts +0 -0
@@ -0,0 +1,177 @@
1
+ import { SelectionModel } from '@angular/cdk/collections';
2
+ export var SmartTableType;
3
+ (function (SmartTableType) {
4
+ SmartTableType["INHERITED"] = "Inherited";
5
+ SmartTableType["CHECK_BOX"] = "CheckBox";
6
+ SmartTableType["ROW_SELECT"] = "RowSelect";
7
+ })(SmartTableType || (SmartTableType = {}));
8
+ export var SmartTableHeaderPropertyType;
9
+ (function (SmartTableHeaderPropertyType) {
10
+ SmartTableHeaderPropertyType[SmartTableHeaderPropertyType["DATE"] = 0] = "DATE";
11
+ SmartTableHeaderPropertyType[SmartTableHeaderPropertyType["TIME"] = 1] = "TIME";
12
+ SmartTableHeaderPropertyType[SmartTableHeaderPropertyType["DATETIME"] = 2] = "DATETIME";
13
+ SmartTableHeaderPropertyType[SmartTableHeaderPropertyType["ICON"] = 3] = "ICON";
14
+ SmartTableHeaderPropertyType[SmartTableHeaderPropertyType["CHECKBOX"] = 4] = "CHECKBOX";
15
+ })(SmartTableHeaderPropertyType || (SmartTableHeaderPropertyType = {}));
16
+ export var SmartTableOrder;
17
+ (function (SmartTableOrder) {
18
+ SmartTableOrder["ASC"] = "ASC";
19
+ SmartTableOrder["DESC"] = "DESC";
20
+ })(SmartTableOrder || (SmartTableOrder = {}));
21
+ export var SmartTableButtonType;
22
+ (function (SmartTableButtonType) {
23
+ SmartTableButtonType["MENU"] = "MENU";
24
+ SmartTableButtonType["ICON"] = "ICON";
25
+ SmartTableButtonType["NORMAL"] = "NORMAL";
26
+ SmartTableButtonType["RAISED"] = "RAISED";
27
+ SmartTableButtonType["SEPARATOR"] = "SEPARATOR";
28
+ })(SmartTableButtonType || (SmartTableButtonType = {}));
29
+ export var SmartTableOptionButtonDirection;
30
+ (function (SmartTableOptionButtonDirection) {
31
+ SmartTableOptionButtonDirection[SmartTableOptionButtonDirection["HORIZONTAL"] = 0] = "HORIZONTAL";
32
+ SmartTableOptionButtonDirection[SmartTableOptionButtonDirection["VERTICAL"] = 1] = "VERTICAL";
33
+ })(SmartTableOptionButtonDirection || (SmartTableOptionButtonDirection = {}));
34
+ export var SmartTableInterfaceTypeEnum;
35
+ (function (SmartTableInterfaceTypeEnum) {
36
+ SmartTableInterfaceTypeEnum[SmartTableInterfaceTypeEnum["NORMAL"] = 0] = "NORMAL";
37
+ SmartTableInterfaceTypeEnum[SmartTableInterfaceTypeEnum["GRID"] = 1] = "GRID";
38
+ })(SmartTableInterfaceTypeEnum || (SmartTableInterfaceTypeEnum = {}));
39
+ export class SmartTable {
40
+ constructor(config, gridId, serviceToUse) {
41
+ this.gridId = gridId;
42
+ this.serviceToUse = serviceToUse;
43
+ this.type = SmartTableInterfaceTypeEnum.NORMAL;
44
+ this.expandable = config.expandable;
45
+ this.expandedComponent = config.expandedComponent;
46
+ this.asyncOnExpand = config.asyncOnExpand;
47
+ this.highlightProperty = config.highlightProperty;
48
+ this.customSmartTableHeaders = config.customSmartTableHeaders;
49
+ if (this.expandable) {
50
+ this.customSmartTableHeaders?.push({
51
+ label: '',
52
+ propertyName: 'expand',
53
+ });
54
+ }
55
+ this.tableType = config.tableType;
56
+ if (this.tableType === SmartTableType.CHECK_BOX) {
57
+ this.customSmartTableHeaders = [
58
+ {
59
+ label: '',
60
+ propertyName: 'select',
61
+ showCheckboxInHeader: typeof config.showCheckboxInHeader === 'undefined' ? true : config.showCheckboxInHeader,
62
+ },
63
+ ...this.customSmartTableHeaders,
64
+ ];
65
+ }
66
+ if (this.tableType === SmartTableType.CHECK_BOX ||
67
+ this.tableType === SmartTableType.ROW_SELECT) {
68
+ this.isMultiple = config.isMultiple;
69
+ this.selectionProperty = config.selectionProperty;
70
+ this.selection = config.selection ?? new SelectionModel(this.isMultiple, []);
71
+ }
72
+ this.tableHeaders = this.getPropertyNamesDeeply(config.tableRows[0]);
73
+ this.setTableHeaders();
74
+ this.tableRows = config.tableRows;
75
+ this.title = config.title;
76
+ this.options = config.options;
77
+ this.tableOptionButtonDirection = config.tableOptionButtonDirection;
78
+ this.onRowClick = config.onRowClick;
79
+ this.onRowDoubleClick = config.onRowDoubleClick;
80
+ this.defaultActions = config.defaultActions;
81
+ this.defaultActionCodes = config.defaultActionCodes;
82
+ this.highlightOnRowClick = config.highlightOnRowClick;
83
+ this.highlightClass = config.highlightClass;
84
+ this.hover = config.hover;
85
+ this.sortIconAsc = config.sortIconAsc;
86
+ this.sortIconDesc = config.sortIconDesc;
87
+ this.sortIconNeutral = config.sortIconNeutral;
88
+ this.sortable = config.sortable;
89
+ this.maxNumOfSelectableRows = config.maxNumOfSelectableRows;
90
+ this.isRowDisabledPropertyName = config.isRowDisabledPropertyName;
91
+ this.selectablePropertyName = config.selectablePropertyName;
92
+ this.onSelection = config.onSelection;
93
+ this.onAllSelection = config.onAllSelection;
94
+ this.rowExpander = config.rowExpander;
95
+ this.pushOptions();
96
+ }
97
+ getPropertyNamesDeeply(element) {
98
+ if (element === undefined) {
99
+ return [];
100
+ }
101
+ let properties = Object.keys(element);
102
+ properties.forEach((property) => {
103
+ if (element === undefined ||
104
+ typeof element[property] === 'string' ||
105
+ typeof element[property] === 'boolean' ||
106
+ typeof element[property] === 'number' ||
107
+ element[property] === undefined ||
108
+ element[property] === null ||
109
+ !element[property] ||
110
+ !element) {
111
+ return;
112
+ }
113
+ let innerProperties = this.getPropertyNamesDeeply(element[property]);
114
+ properties.push(...innerProperties);
115
+ });
116
+ return properties;
117
+ }
118
+ getValueDeeply(model, key) {
119
+ let splittedKey = key.split('.');
120
+ let value;
121
+ splittedKey.forEach((k) => {
122
+ if (!value) {
123
+ value = model[k];
124
+ }
125
+ else {
126
+ if (value === undefined) {
127
+ return undefined;
128
+ }
129
+ else if (value[k] === undefined || value[k] === null || !value) {
130
+ value = '';
131
+ return value;
132
+ }
133
+ else {
134
+ value = value[k];
135
+ }
136
+ }
137
+ });
138
+ return value;
139
+ }
140
+ pushOptions() {
141
+ if (this.options && this.options.length) {
142
+ this.tableHeaders.push('options');
143
+ }
144
+ }
145
+ setTableHeaders() {
146
+ if (this.customSmartTableHeaders && this.customSmartTableHeaders.length) {
147
+ let originalHeaders = this.tableHeaders;
148
+ this.tableHeaders = [];
149
+ this.customTableHeaders = [];
150
+ this.customSmartTableHeaders.forEach((tableHeader) => {
151
+ let propertyNames = tableHeader.propertyName.split('.');
152
+ if (propertyNames.filter((property) => originalHeaders.includes(property)) &&
153
+ !tableHeader.isHidden) {
154
+ this.tableHeaders.push(tableHeader.propertyName);
155
+ this.customTableHeaders.push(tableHeader.label);
156
+ }
157
+ else if (tableHeader.buttons ||
158
+ tableHeader.icon ||
159
+ tableHeader.propertyName === 'expand' ||
160
+ tableHeader.propertyName === 'select') {
161
+ this.tableHeaders.push(tableHeader.propertyName);
162
+ this.customTableHeaders.push(tableHeader.label);
163
+ }
164
+ });
165
+ }
166
+ else {
167
+ this.customTableHeaders = this.tableHeaders;
168
+ }
169
+ }
170
+ getServiceToUse() {
171
+ return this.serviceToUse;
172
+ }
173
+ getGridId() {
174
+ return this.gridId;
175
+ }
176
+ }
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0dGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTFELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIseUNBQXVCLENBQUE7SUFDdkIsd0NBQXNCLENBQUE7SUFDdEIsMENBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBUUQsTUFBTSxDQUFOLElBQVksNEJBTVg7QUFORCxXQUFZLDRCQUE0QjtJQUN0QywrRUFBSSxDQUFBO0lBQ0osK0VBQUksQ0FBQTtJQUNKLHVGQUFRLENBQUE7SUFDUiwrRUFBSSxDQUFBO0lBQ0osdUZBQVEsQ0FBQTtBQUNWLENBQUMsRUFOVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBTXZDO0FBeUNELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFnQkQsTUFBTSxDQUFOLElBQVksb0JBTVg7QUFORCxXQUFZLG9CQUFvQjtJQUM5QixxQ0FBYSxDQUFBO0lBQ2IscUNBQWEsQ0FBQTtJQUNiLHlDQUFpQixDQUFBO0lBQ2pCLHlDQUFpQixDQUFBO0lBQ2pCLCtDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFOVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBTS9CO0FBRUQsTUFBTSxDQUFOLElBQVksK0JBR1g7QUFIRCxXQUFZLCtCQUErQjtJQUN6QyxpR0FBVSxDQUFBO0lBQ1YsNkZBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVywrQkFBK0IsS0FBL0IsK0JBQStCLFFBRzFDO0FBTUQsTUFBTSxDQUFOLElBQVksMkJBR1g7QUFIRCxXQUFZLDJCQUEyQjtJQUNyQyxpRkFBTSxDQUFBO0lBQ04sNkVBQUksQ0FBQTtBQUNOLENBQUMsRUFIVywyQkFBMkIsS0FBM0IsMkJBQTJCLFFBR3RDO0FBMEVELE1BQU0sT0FBTyxVQUFVO0lBbUNyQixZQUFZLE1BQThCLEVBQVUsTUFBZSxFQUFVLFlBQWtCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBTTtRQWxDL0YsU0FBSSxHQUF1QywyQkFBMkIsQ0FBQyxNQUFNLENBQUM7UUFtQzVFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBRWxELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFFOUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQztnQkFDakMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsWUFBWSxFQUFFLFFBQVE7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUVsQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyx1QkFBdUIsR0FBRztnQkFDN0I7b0JBQ0UsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsWUFBWSxFQUFFLFFBQVE7b0JBQ3RCLG9CQUFvQixFQUNsQixPQUFPLE1BQU0sQ0FBQyxvQkFBb0IsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQjtpQkFDMUY7Z0JBQ0QsR0FBRyxJQUFJLENBQUMsdUJBQXdCO2FBQ2pDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFDRSxJQUFJLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxTQUFTO1lBQzNDLElBQUksQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUFDLFVBQVUsRUFDNUMsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUVwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLGNBQWMsQ0FBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUM7UUFDcEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDO1FBQzVELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUM7UUFDbEUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUV0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQVk7UUFDakMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDOUIsSUFDRSxPQUFPLEtBQUssU0FBUztnQkFDckIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssUUFBUTtnQkFDckMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUztnQkFDdEMsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssUUFBUTtnQkFDckMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVM7Z0JBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJO2dCQUMxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLENBQUMsT0FBTyxFQUNSLENBQUM7Z0JBQ0QsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDckUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVLEVBQUUsR0FBVztRQUNwQyxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBVSxDQUFDO1FBRWYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxTQUFTLENBQUM7Z0JBQ25CLENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakUsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDWCxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO3FCQUFNLENBQUM7b0JBQ04sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEUsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDbkQsSUFBSSxhQUFhLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hELElBQ0UsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdEUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUNyQixDQUFDO29CQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xELENBQUM7cUJBQU0sSUFDTCxXQUFXLENBQUMsT0FBTztvQkFDbkIsV0FBVyxDQUFDLElBQUk7b0JBQ2hCLFdBQVcsQ0FBQyxZQUFZLEtBQUssUUFBUTtvQkFDckMsV0FBVyxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQ3JDLENBQUM7b0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBTdHlsZSwgVWlBY3Rpb24sIFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xuXG5leHBvcnQgZW51bSBTbWFydFRhYmxlVHlwZSB7XG4gIElOSEVSSVRFRCA9ICdJbmhlcml0ZWQnLFxuICBDSEVDS19CT1ggPSAnQ2hlY2tCb3gnLFxuICBST1dfU0VMRUNUID0gJ1Jvd1NlbGVjdCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZU9wdGlvbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNhbGxiYWNrOiAoaWQ6IHN0cmluZykgPT4gYW55O1xufVxuXG5leHBvcnQgZW51bSBTbWFydFRhYmxlSGVhZGVyUHJvcGVydHlUeXBlIHtcbiAgREFURSxcbiAgVElNRSxcbiAgREFURVRJTUUsXG4gIElDT04sXG4gIENIRUNLQk9YLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVIZWFkZXJJY29ucyB7XG4gIGljb246IHN0cmluZztcbiAgY29sb3I6IFRoZW1lUGFsZXR0ZTtcbiAgc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aFN0cmluZz86IHN0cmluZztcbiAgc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aE51bWJlcj86IG51bWJlcjtcbiAgc2hvd0ljb25JZlZhbHVlU21hbGxlclRoYW5OdW1iZXI/OiBudW1iZXI7XG4gIHNob3dJY29uSWZWYWx1ZUJpZ2dlclRoYW5OdW1iZXI/OiBudW1iZXI7XG4gIHNob3dJY29uSWZWYWx1ZUJvb2xlYW4/OiBib29sZWFuO1xuICBzaG93SWNvbklmVmFsdWVOdWxsPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0aWVzIHtcbiAgdHlwZTogU21hcnRUYWJsZUhlYWRlclByb3BlcnR5VHlwZTtcbiAgZGF0ZUZvcm1hdD86IHN0cmluZztcbiAgaWNvbnM/OiBTbWFydFRhYmxlSGVhZGVySWNvbnNbXTtcbiAgdG9vbFRpcENvbHVtbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSWNvbiB7XG4gIGljb246IHN0cmluZztcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVIZWFkZXIge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaXNIaWRkZW4/OiBib29sZWFuO1xuICBwcm9wZXJ0aWVzPzogU21hcnRUYWJsZUhlYWRlclByb3BlcnRpZXM7XG4gIGJ1dHRvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XG4gIGljb24/OiBTbWFydFRhYmxlSWNvbjtcbiAgdHJhbnNsYXRvcj86ICgodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKSB8ICgodmFsdWU6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+KTtcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBvcmRlcj86IFNtYXJ0VGFibGVPcmRlcjtcbiAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XG4gIGlzU29ydGFibGU/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xufVxuXG5leHBvcnQgZW51bSBTbWFydFRhYmxlT3JkZXIge1xuICBBU0MgPSAnQVNDJyxcbiAgREVTQyA9ICdERVNDJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlQnV0dG9uIHtcbiAgaWNvbj86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNvbG9yPzogVGhlbWVQYWxldHRlO1xuICBjb2RlPzogc3RyaW5nO1xuICB0eXBlOiBTbWFydFRhYmxlQnV0dG9uVHlwZTtcbiAgbWVudUl0ZW1CdXR0b25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xuICBtZW51SXRlbUJ1dHRvbnNQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XG4gIHRyYW5zbGF0b3I/OiAodWlBY3Rpb246IFVpQWN0aW9uKSA9PiBVaUFjdGlvbkRlc2NyaXB0b3I7XG4gIGNhbGxiYWNrPzogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG4gIGFyZ3M/OiBhbnlbXTtcbiAgc2hvd0J1dHRvbklmPzogKHJvdzogYW55KSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBTbWFydFRhYmxlQnV0dG9uVHlwZSB7XG4gIE1FTlUgPSAnTUVOVScsXG4gIElDT04gPSAnSUNPTicsXG4gIE5PUk1BTCA9ICdOT1JNQUwnLFxuICBSQUlTRUQgPSAnUkFJU0VEJyxcbiAgU0VQQVJBVE9SID0gJ1NFUEFSQVRPUicsXG59XG5cbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24ge1xuICBIT1JJWk9OVEFMLFxuICBWRVJUSUNBTCxcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZTxUPiA9XG4gIHwgU21hcnRUYWJsZUludGVyZmFjZTxUPlxuICB8IFNtYXJ0VGFibGVHcmlkSW50ZXJmYWNlPFQ+O1xuXG5leHBvcnQgZW51bSBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0ge1xuICBOT1JNQUwsXG4gIEdSSUQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUludGVyZmFjZTxUPiB7XG4gIHR5cGU6IFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bS5OT1JNQUw7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0YWJsZUhlYWRlcnM/OiBzdHJpbmdbXTtcbiAgY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM/OiBTbWFydFRhYmxlSGVhZGVyW107XG4gIGN1c3RvbVRhYmxlSGVhZGVycz86IHN0cmluZ1tdO1xuICB0YWJsZVJvd3M6IFRbXTtcbiAgdGFibGVUeXBlOiBTbWFydFRhYmxlVHlwZTtcbiAgb3B0aW9ucz86IFNtYXJ0VGFibGVPcHRpb25bXTtcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xuICBvblJvd0NsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcbiAgb25Sb3dEb3VibGVDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xuICBkZWZhdWx0QWN0aW9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcbiAgaGlnaGxpZ2h0T25Sb3dDbGljaz86IGJvb2xlYW47XG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xuICBob3Zlcj86IGJvb2xlYW47XG4gIGV4cGFuZGFibGU/OiBib29sZWFuO1xuICBleHBhbmRlZENvbXBvbmVudD86IGFueTtcbiAgYXN5bmNPbkV4cGFuZD86IGJvb2xlYW47XG4gIHNvcnRJY29uQXNjPzogc3RyaW5nO1xuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XG4gIHNvcnRJY29uTmV1dHJhbD86IHN0cmluZztcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xuICBzZWxlY3Rpb25Qcm9wZXJ0eT86IHN0cmluZztcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPGFueT47XG4gIHNob3dDaGVja2JveEluSGVhZGVyPzogYm9vbGVhbjtcbiAgaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZT86IHN0cmluZztcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcbiAgb25TZWxlY3Rpb24/OiAocm93OiBhbnkpID0+IFByb21pc2U8dm9pZD47XG4gIG9uQWxsU2VsZWN0aW9uPzogKHNlbGVjdGVkOiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVHcmlkSW50ZXJmYWNlPFQ+IHtcbiAgdHlwZTogU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLkdSSUQ7XG4gIGN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPzogU21hcnRUYWJsZUhlYWRlcltdO1xuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xuICBvcHRpb25zPzogU21hcnRUYWJsZU9wdGlvbltdO1xuICB0YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbj86IFNtYXJ0VGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb247XG4gIG9uUm93Q2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xuICBvblJvd0RvdWJsZUNsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcbiAgZGVmYXVsdEFjdGlvbkNvZGVzPzogc3RyaW5nW107XG4gIGRlZmF1bHRBY3Rpb25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xuICBoaWdobGlnaHRPblJvd0NsaWNrPzogYm9vbGVhbjtcbiAgaGlnaGxpZ2h0Q2xhc3M/OiBzdHJpbmc7XG4gIGhvdmVyPzogYm9vbGVhbjtcbiAgc29ydEljb25Bc2M/OiBzdHJpbmc7XG4gIHNvcnRJY29uRGVzYz86IHN0cmluZztcbiAgc29ydEljb25OZXV0cmFsPzogc3RyaW5nO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIG1heE51bU9mU2VsZWN0YWJsZVJvd3M/OiBudW1iZXI7XG4gIHNlbGVjdGlvblByb3BlcnR5Pzogc3RyaW5nO1xuICBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uTW9kZWw8YW55PjtcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuO1xuICBpc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuICBzZWxlY3RhYmxlUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuICBvblNlbGVjdGlvbj86IChyb3c6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgb25BbGxTZWxlY3Rpb24/OiAoc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD47XG4gIGFzeW5jT25FeHBhbmQ/OiBib29sZWFuO1xuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZVJvd0V4cGFuZGVyPFQ+IHtcbiAgZXhwYW5kKHJvd0lkOiBudW1iZXIpOiBUO1xuICBleHBhbmRBc3luYyhyb3dJZDogbnVtYmVyKTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGNsYXNzIFNtYXJ0VGFibGU8VD4gaW1wbGVtZW50cyBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+IHtcbiAgdHlwZTogU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLk5PUk1BTCA9IFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bS5OT1JNQUw7XG4gIHRpdGxlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdO1xuICBjdXN0b21TbWFydFRhYmxlSGVhZGVycz86IFNtYXJ0VGFibGVIZWFkZXJbXTtcbiAgY3VzdG9tVGFibGVIZWFkZXJzITogc3RyaW5nW107XG4gIHRhYmxlUm93czogVFtdO1xuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xuICBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgb3B0aW9ucz86IFNtYXJ0VGFibGVPcHRpb25bXTtcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xuICBvblJvd0NsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcbiAgb25Sb3dEb3VibGVDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xuICBkZWZhdWx0QWN0aW9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcbiAgaGlnaGxpZ2h0T25Sb3dDbGljaz86IGJvb2xlYW47XG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xuICBob3Zlcj86IGJvb2xlYW47XG4gIGV4cGFuZGFibGU/OiBib29sZWFuO1xuICBleHBhbmRlZENvbXBvbmVudD86IGFueTtcbiAgYXN5bmNPbkV4cGFuZD86IGJvb2xlYW47XG4gIHNvcnRJY29uQXNjPzogc3RyaW5nO1xuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XG4gIHNvcnRJY29uTmV1dHJhbD86IHN0cmluZztcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xuICBzZWxlY3Rpb25Qcm9wZXJ0eT86IHN0cmluZztcbiAgaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZT86IHN0cmluZztcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcbiAgb25TZWxlY3Rpb24/OiAocm93OiBhbnkpID0+IFByb21pc2U8dm9pZD47XG4gIG9uQWxsU2VsZWN0aW9uPzogKHNlbGVjdGVkOiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+LCBwcml2YXRlIGdyaWRJZD86IHN0cmluZywgcHJpdmF0ZSBzZXJ2aWNlVG9Vc2U/OiBhbnkpIHtcbiAgICB0aGlzLmV4cGFuZGFibGUgPSBjb25maWcuZXhwYW5kYWJsZTtcbiAgICB0aGlzLmV4cGFuZGVkQ29tcG9uZW50ID0gY29uZmlnLmV4cGFuZGVkQ29tcG9uZW50O1xuICAgIHRoaXMuYXN5bmNPbkV4cGFuZCA9IGNvbmZpZy5hc3luY09uRXhwYW5kO1xuICAgIHRoaXMuaGlnaGxpZ2h0UHJvcGVydHkgPSBjb25maWcuaGlnaGxpZ2h0UHJvcGVydHk7XG5cbiAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzID0gY29uZmlnLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzO1xuXG4gICAgaWYgKHRoaXMuZXhwYW5kYWJsZSkge1xuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycz8ucHVzaCh7XG4gICAgICAgIGxhYmVsOiAnJyxcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnZXhwYW5kJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnRhYmxlVHlwZSA9IGNvbmZpZy50YWJsZVR5cGU7XG5cbiAgICBpZiAodGhpcy50YWJsZVR5cGUgPT09IFNtYXJ0VGFibGVUeXBlLkNIRUNLX0JPWCkge1xuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnJyxcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6ICdzZWxlY3QnLFxuICAgICAgICAgIHNob3dDaGVja2JveEluSGVhZGVyOlxuICAgICAgICAgICAgdHlwZW9mIGNvbmZpZy5zaG93Q2hlY2tib3hJbkhlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogY29uZmlnLnNob3dDaGVja2JveEluSGVhZGVyLFxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzISxcbiAgICAgIF07XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5DSEVDS19CT1ggfHxcbiAgICAgIHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5ST1dfU0VMRUNUXG4gICAgKSB7XG4gICAgICB0aGlzLmlzTXVsdGlwbGUgPSBjb25maWcuaXNNdWx0aXBsZTtcblxuICAgICAgdGhpcy5zZWxlY3Rpb25Qcm9wZXJ0eSA9IGNvbmZpZy5zZWxlY3Rpb25Qcm9wZXJ0eTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gY29uZmlnLnNlbGVjdGlvbiA/PyBuZXcgU2VsZWN0aW9uTW9kZWw8VD4odGhpcy5pc011bHRpcGxlLCBbXSk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZUhlYWRlcnMgPSB0aGlzLmdldFByb3BlcnR5TmFtZXNEZWVwbHkoY29uZmlnLnRhYmxlUm93c1swXSk7XG5cbiAgICB0aGlzLnNldFRhYmxlSGVhZGVycygpO1xuXG4gICAgdGhpcy50YWJsZVJvd3MgPSBjb25maWcudGFibGVSb3dzO1xuICAgIHRoaXMudGl0bGUgPSBjb25maWcudGl0bGU7XG4gICAgdGhpcy5vcHRpb25zID0gY29uZmlnLm9wdGlvbnM7XG4gICAgdGhpcy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbiA9IGNvbmZpZy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcbiAgICB0aGlzLm9uUm93Q2xpY2sgPSBjb25maWcub25Sb3dDbGljaztcbiAgICB0aGlzLm9uUm93RG91YmxlQ2xpY2sgPSBjb25maWcub25Sb3dEb3VibGVDbGljaztcbiAgICB0aGlzLmRlZmF1bHRBY3Rpb25zID0gY29uZmlnLmRlZmF1bHRBY3Rpb25zO1xuICAgIHRoaXMuZGVmYXVsdEFjdGlvbkNvZGVzID0gY29uZmlnLmRlZmF1bHRBY3Rpb25Db2RlcztcbiAgICB0aGlzLmhpZ2hsaWdodE9uUm93Q2xpY2sgPSBjb25maWcuaGlnaGxpZ2h0T25Sb3dDbGljaztcbiAgICB0aGlzLmhpZ2hsaWdodENsYXNzID0gY29uZmlnLmhpZ2hsaWdodENsYXNzO1xuICAgIHRoaXMuaG92ZXIgPSBjb25maWcuaG92ZXI7XG4gICAgdGhpcy5zb3J0SWNvbkFzYyA9IGNvbmZpZy5zb3J0SWNvbkFzYztcbiAgICB0aGlzLnNvcnRJY29uRGVzYyA9IGNvbmZpZy5zb3J0SWNvbkRlc2M7XG4gICAgdGhpcy5zb3J0SWNvbk5ldXRyYWwgPSBjb25maWcuc29ydEljb25OZXV0cmFsO1xuICAgIHRoaXMuc29ydGFibGUgPSBjb25maWcuc29ydGFibGU7XG4gICAgdGhpcy5tYXhOdW1PZlNlbGVjdGFibGVSb3dzID0gY29uZmlnLm1heE51bU9mU2VsZWN0YWJsZVJvd3M7XG4gICAgdGhpcy5pc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lID0gY29uZmlnLmlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU7XG4gICAgdGhpcy5zZWxlY3RhYmxlUHJvcGVydHlOYW1lID0gY29uZmlnLnNlbGVjdGFibGVQcm9wZXJ0eU5hbWU7XG4gICAgdGhpcy5vblNlbGVjdGlvbiA9IGNvbmZpZy5vblNlbGVjdGlvbjtcbiAgICB0aGlzLm9uQWxsU2VsZWN0aW9uID0gY29uZmlnLm9uQWxsU2VsZWN0aW9uO1xuICAgIHRoaXMucm93RXhwYW5kZXIgPSBjb25maWcucm93RXhwYW5kZXI7XG5cbiAgICB0aGlzLnB1c2hPcHRpb25zKCk7XG4gIH1cblxuICBnZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGVsZW1lbnQ6IGFueSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoZWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoZWxlbWVudCk7XG4gICAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBlbGVtZW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnc3RyaW5nJyB8fFxuICAgICAgICB0eXBlb2YgZWxlbWVudFtwcm9wZXJ0eV0gPT09ICdib29sZWFuJyB8fFxuICAgICAgICB0eXBlb2YgZWxlbWVudFtwcm9wZXJ0eV0gPT09ICdudW1iZXInIHx8XG4gICAgICAgIGVsZW1lbnRbcHJvcGVydHldID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgZWxlbWVudFtwcm9wZXJ0eV0gPT09IG51bGwgfHxcbiAgICAgICAgIWVsZW1lbnRbcHJvcGVydHldIHx8XG4gICAgICAgICFlbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGlubmVyUHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydHlOYW1lc0RlZXBseShlbGVtZW50W3Byb3BlcnR5XSk7XG4gICAgICBwcm9wZXJ0aWVzLnB1c2goLi4uaW5uZXJQcm9wZXJ0aWVzKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcHJvcGVydGllcztcbiAgfVxuXG4gIGdldFZhbHVlRGVlcGx5KG1vZGVsOiBhbnksIGtleTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgc3BsaXR0ZWRLZXkgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICBsZXQgdmFsdWU6IGFueTtcblxuICAgIHNwbGl0dGVkS2V5LmZvckVhY2goKGs6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IG1vZGVsW2tdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW2tdID09PSB1bmRlZmluZWQgfHwgdmFsdWVba10gPT09IG51bGwgfHwgIXZhbHVlKSB7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVtrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1c2hPcHRpb25zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy50YWJsZUhlYWRlcnMucHVzaCgnb3B0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIHNldFRhYmxlSGVhZGVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJiB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzLmxlbmd0aCkge1xuICAgICAgbGV0IG9yaWdpbmFsSGVhZGVycyA9IHRoaXMudGFibGVIZWFkZXJzO1xuICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSBbXTtcbiAgICAgIHRoaXMuY3VzdG9tVGFibGVIZWFkZXJzID0gW107XG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzLmZvckVhY2goKHRhYmxlSGVhZGVyKSA9PiB7XG4gICAgICAgIGxldCBwcm9wZXJ0eU5hbWVzID0gdGFibGVIZWFkZXIucHJvcGVydHlOYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmZpbHRlcigocHJvcGVydHkpID0+IG9yaWdpbmFsSGVhZGVycy5pbmNsdWRlcyhwcm9wZXJ0eSkpICYmXG4gICAgICAgICAgIXRhYmxlSGVhZGVyLmlzSGlkZGVuXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIucHJvcGVydHlOYW1lKTtcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLmxhYmVsKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0YWJsZUhlYWRlci5idXR0b25zIHx8XG4gICAgICAgICAgdGFibGVIZWFkZXIuaWNvbiB8fFxuICAgICAgICAgIHRhYmxlSGVhZGVyLnByb3BlcnR5TmFtZSA9PT0gJ2V4cGFuZCcgfHxcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIucHJvcGVydHlOYW1lKTtcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLmxhYmVsKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VzdG9tVGFibGVIZWFkZXJzID0gdGhpcy50YWJsZUhlYWRlcnM7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VydmljZVRvVXNlKCkge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2VUb1VzZTtcbiAgfVxuICBnZXRHcmlkSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZElkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,109 @@
1
+ import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
+ import { MatTableModule } from '@angular/material/table';
3
+ import { MatCommonModule } from '@angular/material/core';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { MatCheckboxModule } from '@angular/material/checkbox';
7
+ import { MatButtonModule } from '@angular/material/button';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { MatMenuModule } from '@angular/material/menu';
10
+ import { BrowserModule } from '@angular/platform-browser';
11
+ import { SmarttableComponent } from './smarttable.component';
12
+ import { LoadingComponent } from './components/loading/loading.component';
13
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
14
+ import { MaterialTableComponent } from './tables/material-table/material-table.component';
15
+ import { MobileTableComponent } from './tables/mobile-table/mobile-table.component';
16
+ import { ComponentFactoryService, ComponentFactoryServiceModule, } from '../component-factory-service/projects';
17
+ import { SmartIconModule } from '../smart-icon/projects';
18
+ import { MatDividerModule } from '@angular/material/divider';
19
+ import { DefaultActionsPopupComponent } from './components/default-actions-popup/default-actions-popup.component';
20
+ import { MatTooltipModule } from '@angular/material/tooltip';
21
+ import { CommonModule } from '@angular/common';
22
+ import { SharedModule } from '../shared/shared.module';
23
+ import { MatContextMenuTriggerForDirective } from './directives/mat-context-menu-trigger-for.directive';
24
+ import { SmartViewContextModule } from '../view-context/smart-view-context.module';
25
+ import * as i0 from "@angular/core";
26
+ export class SmarttableModule {
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, declarations: [SmarttableComponent,
29
+ LoadingComponent,
30
+ MaterialTableComponent,
31
+ MobileTableComponent,
32
+ DefaultActionsPopupComponent,
33
+ MatContextMenuTriggerForDirective], imports: [SharedModule,
34
+ BrowserModule,
35
+ MatCommonModule,
36
+ FormsModule,
37
+ ReactiveFormsModule,
38
+ MatFormFieldModule,
39
+ MatCheckboxModule,
40
+ MatButtonModule,
41
+ MatTableModule,
42
+ MatIconModule,
43
+ MatMenuModule,
44
+ MatProgressSpinnerModule,
45
+ ComponentFactoryServiceModule,
46
+ SmartIconModule,
47
+ MatDividerModule,
48
+ MatTooltipModule,
49
+ CommonModule,
50
+ SharedModule,
51
+ SmartViewContextModule], exports: [SmarttableComponent] }); }
52
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, providers: [ComponentFactoryService], imports: [SharedModule,
53
+ BrowserModule,
54
+ MatCommonModule,
55
+ FormsModule,
56
+ ReactiveFormsModule,
57
+ MatFormFieldModule,
58
+ MatCheckboxModule,
59
+ MatButtonModule,
60
+ MatTableModule,
61
+ MatIconModule,
62
+ MatMenuModule,
63
+ MatProgressSpinnerModule,
64
+ ComponentFactoryServiceModule,
65
+ SmartIconModule,
66
+ MatDividerModule,
67
+ MatTooltipModule,
68
+ CommonModule,
69
+ SharedModule,
70
+ SmartViewContextModule] }); }
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, decorators: [{
73
+ type: NgModule,
74
+ args: [{
75
+ declarations: [
76
+ SmarttableComponent,
77
+ LoadingComponent,
78
+ MaterialTableComponent,
79
+ MobileTableComponent,
80
+ DefaultActionsPopupComponent,
81
+ MatContextMenuTriggerForDirective,
82
+ ],
83
+ imports: [
84
+ SharedModule,
85
+ BrowserModule,
86
+ MatCommonModule,
87
+ FormsModule,
88
+ ReactiveFormsModule,
89
+ MatFormFieldModule,
90
+ MatCheckboxModule,
91
+ MatButtonModule,
92
+ MatTableModule,
93
+ MatIconModule,
94
+ MatMenuModule,
95
+ MatProgressSpinnerModule,
96
+ ComponentFactoryServiceModule,
97
+ SmartIconModule,
98
+ MatDividerModule,
99
+ MatTooltipModule,
100
+ CommonModule,
101
+ SharedModule,
102
+ SmartViewContextModule,
103
+ ],
104
+ exports: [SmarttableComponent],
105
+ providers: [ComponentFactoryService],
106
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
107
+ }]
108
+ }] });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC10YWJsZS9zbWFydHRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUM5QixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQW9DbkYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBaEN6QixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0QixvQkFBb0I7WUFDcEIsNEJBQTRCO1lBQzVCLGlDQUFpQyxhQUdqQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFlBQVk7WUFDWixzQkFBc0IsYUFFZCxtQkFBbUI7Z0hBSWxCLGdCQUFnQixhQUhoQixDQUFDLHVCQUF1QixDQUFDLFlBckJsQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFlBQVk7WUFDWixzQkFBc0I7OzRGQU1iLGdCQUFnQjtrQkFsQzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4Qiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBTbWFydHRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydHRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRlcmlhbFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZXMvbWF0ZXJpYWwtdGFibGUvbWF0ZXJpYWwtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1vYmlsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZXMvbW9iaWxlLXRhYmxlL21vYmlsZS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UsXG4gIENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlTW9kdWxlLFxufSBmcm9tICcuLi9jb21wb25lbnQtZmFjdG9yeS1zZXJ2aWNlL3Byb2plY3RzJztcbmltcG9ydCB7IFNtYXJ0SWNvbk1vZHVsZSB9IGZyb20gJy4uL3NtYXJ0LWljb24vcHJvamVjdHMnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgRGVmYXVsdEFjdGlvbnNQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kZWZhdWx0LWFjdGlvbnMtcG9wdXAvZGVmYXVsdC1hY3Rpb25zLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgTWF0Q29udGV4dE1lbnVUcmlnZ2VyRm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hdC1jb250ZXh0LW1lbnUtdHJpZ2dlci1mb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRNb2R1bGUgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNtYXJ0dGFibGVDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBNYXRlcmlhbFRhYmxlQ29tcG9uZW50LFxuICAgIE1vYmlsZVRhYmxlQ29tcG9uZW50LFxuICAgIERlZmF1bHRBY3Rpb25zUG9wdXBDb21wb25lbnQsXG4gICAgTWF0Q29udGV4dE1lbnVUcmlnZ2VyRm9yRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIEJyb3dzZXJNb2R1bGUsXG4gICAgTWF0Q29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlTW9kdWxlLFxuICAgIFNtYXJ0SWNvbk1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBTbWFydFZpZXdDb250ZXh0TW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU21hcnR0YWJsZUNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0NvbXBvbmVudEZhY3RvcnlTZXJ2aWNlXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydHRhYmxlTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SmarttableService {
4
+ constructor() { }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableService, providedIn: 'root' }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: () => [] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtdGFibGUvc21hcnR0YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsZ0JBQWdCLENBQUM7K0dBRk4saUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU21hcnR0YWJsZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Component } from '@angular/core';
2
+ import { Table } from '../table';
3
+ import { trigger, state, style, transition, animate } from '@angular/animations';
4
+ import { SmartGridToolbarActionsUtil } from '../../../smart-grid/smart-grid-toolbar-util';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../component-factory-service/projects";
7
+ import * as i2 from "../../../shared/smart-tooltip.directive";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/material/checkbox";
10
+ import * as i5 from "@angular/material/button";
11
+ import * as i6 from "@angular/material/table";
12
+ import * as i7 from "@angular/material/menu";
13
+ import * as i8 from "../../../smart-icon/smart-icon/smart-icon.component";
14
+ import * as i9 from "@angular/material/divider";
15
+ import * as i10 from "../../../view-context/smart-ui-action/ui-action-toolbar.component";
16
+ import * as i11 from "../../components/default-actions-popup/default-actions-popup.component";
17
+ import * as i12 from "../../../shared/smarttable.date-pipe";
18
+ export class MaterialTableComponent extends Table {
19
+ constructor(cfService) {
20
+ super(cfService);
21
+ this.defaultActionToolbarId = SmartGridToolbarActionsUtil.defaultActionToolbarId;
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MaterialTableComponent, deps: [{ token: i1.ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\n #myTable\n mat-table\n [dataSource]=\"smartTable.tableRows\"\n class=\"full-width\"\n multiTemplateDataRows\n>\n <!-- Column Descriptor -->\n @if(smartTable.title){\n <caption *ngIf=\"smartTable.title\" class=\"captionTitle\">\n {{ smartTable.title }}\n </caption>\n\n }\n <ng-container\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\n matColumnDef=\"{{ header }}\"\n >\n <!-- my_menu is the implicit action column present on all tables: -->\n @if ('my_menu' === header) {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <smart-ui-action-toolbar\n #headerToolbar\n [id]=\"\n smartTable.getGridId()\n ? smartTable.getGridId() + '_headerToolbar'\n : 'grid_not_initialized'\n \"\n >\n </smart-ui-action-toolbar>\n </th>\n } @else {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <div\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\n ></div>\n <div *ngIf=\"header === 'select'\">\n <mat-checkbox\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n >\n </mat-checkbox>\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\n {{ smartTable.customTableHeaders[i] }}\n </div>\n </div>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'options' &&\n header !== 'button' &&\n header !== 'select' &&\n header !== 'expand' &&\n header !== 'actions'\n \"\n >\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\n <ng-template #sortable>\n <button\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\n mat-button\n class=\"sortableHeaderButton\"\n >\n {{ smartTable.customTableHeaders[i] }}\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"getSortIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortIcon(header)!\"\n ></smart-icon>\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"hasSortNumIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortNumIcon(header)\"\n ></smart-icon>\n </button>\n </ng-template>\n <ng-template #notSortable>\n {{ smartTable.customTableHeaders[i] }}\n </ng-template>\n </div>\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\n !isDisabled(element)\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n : null\n \"\n [disabled]=\"isDisabled(element)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(element, header)\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(element, header)\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(element, header)\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(element, i)\"\n [icon]=\"getIcon(getValue(element, header), i)!\"\n [color]=\"getColor(getValue(element, header), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div class=\"smart-table-icon-container\">\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\n <smart-icon [imageResource]=\"ir\"> </smart-icon>\n </div>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n <!------ TOOLBAR ------>\n <button\n *ngIf=\"showMenuButton(element, button)\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n <!-- {{ button.label ?? (button.translator ? button.translator(element).title : '') }} -->\n </button>\n <mat-menu #menu=\"matMenu\">\n <div *ngIf=\"button.menuItemButtons\">\n <button\n *ngFor=\"let btn of getMenuButtons(element, button)\"\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\n mat-menu-item\n >\n <smart-icon\n *ngIf=\"btn?.translator(btn)?.icon\"\n [icon]=\"btn!.translator!(btn)!.icon!\"\n ></smart-icon>\n {{ btn?.translator(btn)?.title }}\n </button>\n </div>\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\n <div *ngFor=\"let btn of getMenuItemButtonsPropertyName(element, button)\">\n <button\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\n mat-menu-item\n [disabled]=\"btn.disabled\"\n [smartTooltip]=\"\n btn?.descriptor?.tooltip\n ? btn?.descriptor?.tooltip\n : button.translator!(btn).tooltip\n \"\n >\n <div\n class=\"smart-table-icon-container\"\n [ngClass]=\"\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\n \"\n ><smart-icon\n *ngIf=\"button.translator!(btn).icon\"\n [icon]=\"button.translator!(btn).icon!\"\n ></smart-icon>\n {{ button.translator!(btn).title }}</div\n >\n </button>\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\n </div>\n </div>\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\n </div>\n <button\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\n \"\n mat-icon-button\n aria-label=\"expand row\"\n (click)=\"onToggle(element, $event)\"\n >\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\n </button>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\n <img\n *ngIf=\"header === 'img'\"\n [src]=\"getValue(element, header)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <!------ TOOLBAR ------>\n <ng-container *ngIf=\"showCellToolbar(element, header)\">\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, header)\"\n ></smart-ui-action-toolbar>\n </ng-container>\n <!------ TOOLBAR ------>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'option' &&\n header !== 'button' &&\n !isImageResource(element, header)\n \"\n [innerHtml]=\"getValue(element, header)\"\n ></div>\n </div>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n >\n <ng-template #expandedArea></ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\n <tr\n mat-row\n class=\"example-element-row\"\n [class.example-expanded-row]=\"expandedElement === element\"\n [ngClass]=\"getRowClasses(element)\"\n [ngStyle]=\"getRowStyles(element)\"\n (click)=\"handleOnRowClick(element)\"\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\n [attr.data-testid]=\"element?.id ?? null\"\n ></tr>\n <lib-default-actions-popup\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\n #defaultActionMenu\n [buttons]=\"getDefaultActionsForRow(element)!\"\n [row]=\"element\"\n ></lib-default-actions-popup>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\n</table>\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row;justify-content:space-between;white-space:initial}.reversed{flex-direction:row-reverse;gap:1rem}:host ::ng-deep .mat-mdc-menu-item{line-height:normal!important}.mat-mdc-menu-item[disabled]{cursor:default!important}.menu-button{display:flex;flex-direction:row;justify-content:flex-end;text-align:-webkit-right;align-items:center}.captionTitle{font-size:1.5rem;align-content:center;padding:.5rem .75rem;text-align:start;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);background:#f5f5f5}\n"], dependencies: [{ kind: "directive", type: i2.SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i11.DefaultActionsPopupComponent, selector: "lib-default-actions-popup", inputs: ["buttons", "row", "colIdx"] }, { kind: "pipe", type: i12.SmartDateTimePipe, name: "smartDateTime" }, { kind: "pipe", type: i12.SmartDatePipe, name: "smartDate" }, { kind: "pipe", type: i12.SmartTimePipe, name: "smartTime" }], animations: [
25
+ trigger('detailExpand', [
26
+ state('collapsed', style({ height: '0px', minHeight: '0' })),
27
+ state('expanded', style({ height: '*' })),
28
+ transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
29
+ ]),
30
+ ] }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MaterialTableComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'lib-material-table', animations: [
35
+ trigger('detailExpand', [
36
+ state('collapsed', style({ height: '0px', minHeight: '0' })),
37
+ state('expanded', style({ height: '*' })),
38
+ transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
39
+ ]),
40
+ ], template: "<table\n #myTable\n mat-table\n [dataSource]=\"smartTable.tableRows\"\n class=\"full-width\"\n multiTemplateDataRows\n>\n <!-- Column Descriptor -->\n @if(smartTable.title){\n <caption *ngIf=\"smartTable.title\" class=\"captionTitle\">\n {{ smartTable.title }}\n </caption>\n\n }\n <ng-container\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\n matColumnDef=\"{{ header }}\"\n >\n <!-- my_menu is the implicit action column present on all tables: -->\n @if ('my_menu' === header) {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <smart-ui-action-toolbar\n #headerToolbar\n [id]=\"\n smartTable.getGridId()\n ? smartTable.getGridId() + '_headerToolbar'\n : 'grid_not_initialized'\n \"\n >\n </smart-ui-action-toolbar>\n </th>\n } @else {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <div\n *ngIf=\"header === 'icon' || header === 'img' || header === 'options' || header === 'button'\"\n ></div>\n <div *ngIf=\"header === 'select'\">\n <mat-checkbox\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n >\n </mat-checkbox>\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\n {{ smartTable.customTableHeaders[i] }}\n </div>\n </div>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'options' &&\n header !== 'button' &&\n header !== 'select' &&\n header !== 'expand' &&\n header !== 'actions'\n \"\n >\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\n <ng-template #sortable>\n <button\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\n mat-button\n class=\"sortableHeaderButton\"\n >\n {{ smartTable.customTableHeaders[i] }}\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"getSortIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortIcon(header)!\"\n ></smart-icon>\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"hasSortNumIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortNumIcon(header)\"\n ></smart-icon>\n </button>\n </ng-template>\n <ng-template #notSortable>\n {{ smartTable.customTableHeaders[i] }}\n </ng-template>\n </div>\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\n !isDisabled(element)\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n : null\n \"\n [disabled]=\"isDisabled(element)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(element, header)\n | smartDateTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(element, header)\n | smartDate : smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(element, header)\n | smartTime : smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(element, i)\"\n [icon]=\"getIcon(getValue(element, header), i)!\"\n [color]=\"getColor(getValue(element, header), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div class=\"smart-table-icon-container\">\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\n <smart-icon [imageResource]=\"ir\"> </smart-icon>\n </div>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n <!------ TOOLBAR ------>\n <button\n *ngIf=\"showMenuButton(element, button)\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n <!-- {{ button.label ?? (button.translator ? button.translator(element).title : '') }} -->\n </button>\n <mat-menu #menu=\"matMenu\">\n <div *ngIf=\"button.menuItemButtons\">\n <button\n *ngFor=\"let btn of getMenuButtons(element, button)\"\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\n mat-menu-item\n >\n <smart-icon\n *ngIf=\"btn?.translator(btn)?.icon\"\n [icon]=\"btn!.translator!(btn)!.icon!\"\n ></smart-icon>\n {{ btn?.translator(btn)?.title }}\n </button>\n </div>\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\n <div *ngFor=\"let btn of getMenuItemButtonsPropertyName(element, button)\">\n <button\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\n mat-menu-item\n [disabled]=\"btn.disabled\"\n [smartTooltip]=\"\n btn?.descriptor?.tooltip\n ? btn?.descriptor?.tooltip\n : button.translator!(btn).tooltip\n \"\n >\n <div\n class=\"smart-table-icon-container\"\n [ngClass]=\"\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\n \"\n ><smart-icon\n *ngIf=\"button.translator!(btn).icon\"\n [icon]=\"button.translator!(btn).icon!\"\n ></smart-icon>\n {{ button.translator!(btn).title }}</div\n >\n </button>\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\n </div>\n </div>\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\n </div>\n <button\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\n \"\n mat-icon-button\n aria-label=\"expand row\"\n (click)=\"onToggle(element, $event)\"\n >\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\n </button>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\n <img\n *ngIf=\"header === 'img'\"\n [src]=\"getValue(element, header)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <!------ TOOLBAR ------>\n <ng-container *ngIf=\"showCellToolbar(element, header)\">\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, header)\"\n ></smart-ui-action-toolbar>\n </ng-container>\n <!------ TOOLBAR ------>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'option' &&\n header !== 'button' &&\n !isImageResource(element, header)\n \"\n [innerHtml]=\"getValue(element, header)\"\n ></div>\n </div>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n >\n <ng-template #expandedArea></ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\n <tr\n mat-row\n class=\"example-element-row\"\n [class.example-expanded-row]=\"expandedElement === element\"\n [ngClass]=\"getRowClasses(element)\"\n [ngStyle]=\"getRowStyles(element)\"\n (click)=\"handleOnRowClick(element)\"\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\n [attr.data-testid]=\"element?.id ?? null\"\n ></tr>\n <lib-default-actions-popup\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\n #defaultActionMenu\n [buttons]=\"getDefaultActionsForRow(element)!\"\n [row]=\"element\"\n ></lib-default-actions-popup>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\n</table>\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row;justify-content:space-between;white-space:initial}.reversed{flex-direction:row-reverse;gap:1rem}:host ::ng-deep .mat-mdc-menu-item{line-height:normal!important}.mat-mdc-menu-item[disabled]{cursor:default!important}.menu-button{display:flex;flex-direction:row;justify-content:flex-end;text-align:-webkit-right;align-items:center}.captionTitle{font-size:1.5rem;align-content:center;padding:.5rem .75rem;text-align:start;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);background:#f5f5f5}\n"] }]
41
+ }], ctorParameters: () => [{ type: i1.ComponentFactoryService }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtdGFibGUvdGFibGVzL21hdGVyaWFsLXRhYmxlL21hdGVyaWFsLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3RhYmxlcy9tYXRlcmlhbC10YWJsZS9tYXRlcmlhbC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFjMUYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLEtBQUs7SUFHL0MsWUFBWSxTQUFrQztRQUM1QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFIbkIsMkJBQXNCLEdBQVcsMkJBQTJCLENBQUMsc0JBQXNCLENBQUM7SUFJcEYsQ0FBQzsrR0FMVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpRkNsQm5DLHVrZUF5WEEsb3lLRC9XYztZQUNWLE9BQU8sQ0FBQyxjQUFjLEVBQUU7Z0JBQ3RCLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDNUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ3RGLENBQUM7U0FDSDs7NEZBRVUsc0JBQXNCO2tCQVpsQyxTQUFTOytCQUNFLG9CQUFvQixjQUdsQjt3QkFDVixPQUFPLENBQUMsY0FBYyxFQUFFOzRCQUN0QixLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQzVELEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQzt5QkFDdEYsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi90YWJsZSc7XG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50LWZhY3Rvcnktc2VydmljZS9wcm9qZWN0cyc7XG5pbXBvcnQgeyBTbWFydEdyaWRUb29sYmFyQWN0aW9uc1V0aWwgfSBmcm9tICcuLi8uLi8uLi9zbWFydC1ncmlkL3NtYXJ0LWdyaWQtdG9vbGJhci11dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW1hdGVyaWFsLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdGVyaWFsLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZGV0YWlsRXhwYW5kJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgbWluSGVpZ2h0OiAnMCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpJykpLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgVGFibGUge1xuICBkZWZhdWx0QWN0aW9uVG9vbGJhcklkOiBzdHJpbmcgPSBTbWFydEdyaWRUb29sYmFyQWN0aW9uc1V0aWwuZGVmYXVsdEFjdGlvblRvb2xiYXJJZDtcblxuICBjb25zdHJ1Y3RvcihjZlNlcnZpY2U6IENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlKSB7XG4gICAgc3VwZXIoY2ZTZXJ2aWNlKTtcbiAgfVxufVxuIiwiPHRhYmxlXG4gICNteVRhYmxlXG4gIG1hdC10YWJsZVxuICBbZGF0YVNvdXJjZV09XCJzbWFydFRhYmxlLnRhYmxlUm93c1wiXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXG4gIG11bHRpVGVtcGxhdGVEYXRhUm93c1xuPlxuICA8IS0tIENvbHVtbiBEZXNjcmlwdG9yIC0tPlxuICBAaWYoc21hcnRUYWJsZS50aXRsZSl7XG4gIDxjYXB0aW9uICpuZ0lmPVwic21hcnRUYWJsZS50aXRsZVwiIGNsYXNzPVwiY2FwdGlvblRpdGxlXCI+XG4gICAge3sgc21hcnRUYWJsZS50aXRsZSB9fVxuICA8L2NhcHRpb24+XG5cbiAgfVxuICA8bmctY29udGFpbmVyXG4gICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBzbWFydFRhYmxlLnRhYmxlSGVhZGVyczsgbGV0IGkgPSBpbmRleFwiXG4gICAgbWF0Q29sdW1uRGVmPVwie3sgaGVhZGVyIH19XCJcbiAgPlxuICAgIDwhLS0gbXlfbWVudSBpcyB0aGUgaW1wbGljaXQgYWN0aW9uIGNvbHVtbiBwcmVzZW50IG9uIGFsbCB0YWJsZXM6IC0tPlxuICAgIEBpZiAoJ215X21lbnUnID09PSBoZWFkZXIpIHtcbiAgICA8dGhcbiAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgIFtuZ0NsYXNzXT1cImdldENvbHVtbkNsYXNzZXMoc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyFbaV0pXCJcbiAgICAgIFtuZ1N0eWxlXT1cImdldENvbHVtblN0eWxlcyhzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXSlcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyFbaV0ucHJvcGVydHlOYW1lXCJcbiAgICA+XG4gICAgICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXJcbiAgICAgICAgI2hlYWRlclRvb2xiYXJcbiAgICAgICAgW2lkXT1cIlxuICAgICAgICAgIHNtYXJ0VGFibGUuZ2V0R3JpZElkKClcbiAgICAgICAgICAgID8gc21hcnRUYWJsZS5nZXRHcmlkSWQoKSArICdfaGVhZGVyVG9vbGJhcidcbiAgICAgICAgICAgIDogJ2dyaWRfbm90X2luaXRpYWxpemVkJ1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPC9zbWFydC11aS1hY3Rpb24tdG9vbGJhcj5cbiAgICA8L3RoPlxuICAgIH0gQGVsc2Uge1xuICAgIDx0aFxuICAgICAgbWF0LWhlYWRlci1jZWxsXG4gICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3NlcyhzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXSlcIlxuICAgICAgW25nU3R5bGVdPVwiZ2V0Q29sdW1uU3R5bGVzKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldKVwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzIVtpXS5wcm9wZXJ0eU5hbWVcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJoZWFkZXIgPT09ICdpY29uJyB8fCBoZWFkZXIgPT09ICdpbWcnIHx8IGhlYWRlciA9PT0gJ29wdGlvbnMnIHx8IGhlYWRlciA9PT0gJ2J1dHRvbidcIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImhlYWRlciA9PT0gJ3NlbGVjdCdcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyFbaV0uc2hvd0NoZWNrYm94SW5IZWFkZXJcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gdG9nZ2xlQWxsUm93cygpIDogbnVsbFwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwic21hcnRUYWJsZS5zZWxlY3Rpb24hLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzbWFydFRhYmxlLnNlbGVjdGlvbiEuaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgICBbYXJpYS1sYWJlbF09XCJjaGVja2JveExhYmVsKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldLnNob3dDaGVja2JveEluSGVhZGVyXCI+XG4gICAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21UYWJsZUhlYWRlcnNbaV0gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBoZWFkZXIgIT09ICdpY29uJyAmJlxuICAgICAgICAgIGhlYWRlciAhPT0gJ2ltZycgJiZcbiAgICAgICAgICBoZWFkZXIgIT09ICdvcHRpb25zJyAmJlxuICAgICAgICAgIGhlYWRlciAhPT0gJ2J1dHRvbicgJiZcbiAgICAgICAgICBoZWFkZXIgIT09ICdzZWxlY3QnICYmXG4gICAgICAgICAgaGVhZGVyICE9PSAnZXhwYW5kJyAmJlxuICAgICAgICAgIGhlYWRlciAhPT0gJ2FjdGlvbnMnXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzbWFydFRhYmxlLnNvcnRhYmxlOyB0aGVuIHNvcnRhYmxlOyBlbHNlIG5vdFNvcnRhYmxlXCI+PC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc29ydGFibGU+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInNvcnRCdXR0b25DbGlja2VkKCRldmVudCwgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyFbaV0pXCJcbiAgICAgICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5zb3J0YWJsZSAmJiBpc1NvcnRhYmxlKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhW2ldKVwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNvcnRhYmxlSGVhZGVyQnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBzbWFydFRhYmxlLmN1c3RvbVRhYmxlSGVhZGVyc1tpXSB9fVxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvbkljb25cIlxuICAgICAgICAgICAgICAqbmdJZj1cImdldFNvcnRJY29uKGhlYWRlcilcIlxuICAgICAgICAgICAgICB0aXRsZT1cInNvcnRcIlxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRTb3J0SWNvbihoZWFkZXIpIVwiXG4gICAgICAgICAgICA+PC9zbWFydC1pY29uPlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJzb3J0YWJsZUhlYWRlckJ1dHRvbkljb25cIlxuICAgICAgICAgICAgICAqbmdJZj1cImhhc1NvcnROdW1JY29uKGhlYWRlcilcIlxuICAgICAgICAgICAgICB0aXRsZT1cInNvcnRcIlxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRTb3J0TnVtSWNvbihoZWFkZXIpXCJcbiAgICAgICAgICAgID48L3NtYXJ0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90U29ydGFibGU+XG4gICAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21UYWJsZUhlYWRlcnNbaV0gfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvdGg+XG4gICAgfVxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgW25nQ2xhc3NdPVwiaXNEaXNhYmxlZChlbGVtZW50KSA/ICdkaXNhYmxlZFJvdycgOiAnJ1wiPlxuICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgJiZcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnR5TmFtZSA9PT0gJ3NlbGVjdCcgJiZcbiAgICAgICAgICAhaXNEaXNhYmxlZChlbGVtZW50KVxuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgICAkZXZlbnRcbiAgICAgICAgICAgID8gc2V0U2VsZWN0aW9uKFxuICAgICAgICAgICAgICAgIHNtYXJ0VGFibGUuc2VsZWN0aW9uUHJvcGVydHlcbiAgICAgICAgICAgICAgICAgID8gc21hcnRUYWJsZS5nZXRWYWx1ZURlZXBseShlbGVtZW50LCBzbWFydFRhYmxlLnNlbGVjdGlvblByb3BlcnR5KVxuICAgICAgICAgICAgICAgICAgOiBlbGVtZW50XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbnVsbFxuICAgICAgICBcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChlbGVtZW50KVwiXG4gICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgIHNtYXJ0VGFibGUuc2VsZWN0aW9uIS5pc1NlbGVjdGVkKFxuICAgICAgICAgICAgc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eVxuICAgICAgICAgICAgICA/IHNtYXJ0VGFibGUuZ2V0VmFsdWVEZWVwbHkoZWxlbWVudCwgc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eSlcbiAgICAgICAgICAgICAgOiBlbGVtZW50XG4gICAgICAgICAgKVxuICAgICAgICBcIlxuICAgICAgICBbYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICBjaGVja2JveExhYmVsKFxuICAgICAgICAgICAgc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eVxuICAgICAgICAgICAgICA/IHNtYXJ0VGFibGUuZ2V0VmFsdWVEZWVwbHkoZWxlbWVudCwgc21hcnRUYWJsZS5zZWxlY3Rpb25Qcm9wZXJ0eSlcbiAgICAgICAgICAgICAgOiBlbGVtZW50XG4gICAgICAgICAgKVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXNcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8udHlwZSA9PT0gdHlwZSgpLkRBVEVUSU1FXCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcbiAgICAgICAgICAgICAgfCBzbWFydERhdGVUaW1lIDogc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy5kYXRlRm9ybWF0XG4gICAgICAgICAgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXM/LnR5cGUgPT09IHR5cGUoKS5EQVRFXCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcbiAgICAgICAgICAgICAgfCBzbWFydERhdGUgOiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXM/LmRhdGVGb3JtYXRcbiAgICAgICAgICB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8udHlwZSA9PT0gdHlwZSgpLlRJTUVcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVxuICAgICAgICAgICAgICB8IHNtYXJ0VGltZSA6IHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydGllcz8uZGF0ZUZvcm1hdFxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzPy50eXBlID09PSB0eXBlKCkuQ0hFQ0tCT1hcIj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IFtkaXNhYmxlZF09XCJ0cnVlXCIgW2NoZWNrZWRdPVwiZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKVwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXM/LnR5cGUgPT09IHR5cGUoKS5JQ09OICYmXG4gICAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLnByb3BlcnRpZXM/Lmljb25zPy5sZW5ndGhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgIFtzbWFydFRvb2x0aXBdPVwiZ2V0VG9vbFRpcChlbGVtZW50LCBpKVwiXG4gICAgICAgICAgICBbaWNvbl09XCJnZXRJY29uKGdldFZhbHVlKGVsZW1lbnQsIGhlYWRlciksIGkpIVwiXG4gICAgICAgICAgICBbY29sb3JdPVwiZ2V0Q29sb3IoZ2V0VmFsdWUoZWxlbWVudCwgaGVhZGVyKSwgaSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3NtYXJ0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic21hcnQtdGFibGUtaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXIgb2YgZ2V0SW1hZ2VSZXNvdXJjZUljb25zKGVsZW1lbnQsIGhlYWRlcilcIj5cbiAgICAgICAgICA8c21hcnQtaWNvbiBbaW1hZ2VSZXNvdXJjZV09XCJpclwiPiA8L3NtYXJ0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJiBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmJ1dHRvbnNcIlxuICAgICAgICBjbGFzcz1cInNtYXJ0LXRhYmxlLWJ1dHRvbnMtY29sXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uYnV0dG9uc1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93QnV0dG9uKGJ1dHRvbiwgZWxlbWVudClcIiBbbmdTd2l0Y2hdPVwiYnV0dG9uLnR5cGVcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInNtYXJ0VGFibGVCdXR0b25UeXBlLklDT05cIlxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c21hcnQtaWNvbiB0aXRsZT1cInt7IGJ1dHRvbi5sYWJlbCB9fVwiIFtpY29uXT1cImJ1dHRvbi5pY29uIVwiPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ1dHRvbiwgZWxlbWVudClcIlxuICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwic21hcnRUYWJsZUJ1dHRvblR5cGUuTk9STUFMXCJcbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICBjb2xvcj1cInt7IGJ1dHRvbi5jb2xvciB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwiYnV0dG9uLmljb25cIiBbaWNvbl09XCJidXR0b24uaWNvblwiPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsID8/IChidXR0b24udHJhbnNsYXRvciA/IGJ1dHRvbi50cmFuc2xhdG9yKGVsZW1lbnQpLnRpdGxlIDogJycpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInNtYXJ0VGFibGVCdXR0b25UeXBlLlJBSVNFRFwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uLmNvbG9yIH19XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtpY29uXT1cImJ1dHRvbi5pY29uXCI+PC9zbWFydC1pY29uPlxuICAgICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgPz8gKGJ1dHRvbi50cmFuc2xhdG9yID8gYnV0dG9uLnRyYW5zbGF0b3IoZWxlbWVudCkudGl0bGUgOiAnJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwic21hcnRUYWJsZUJ1dHRvblR5cGUuTUVOVVwiIGNsYXNzPVwibWVudS1idXR0b25cIj5cbiAgICAgICAgICAgICAgPCEtLS0tLS0gVE9PTEJBUiAtLS0tLS0+XG4gICAgICAgICAgICAgIDxzbWFydC11aS1hY3Rpb24tdG9vbGJhclxuICAgICAgICAgICAgICAgIFt1aUFjdGlvbk1vZGVsc109XCJnZXRSb3dDb2x1bW5BY3Rpb24oZWxlbWVudCwgZGVmYXVsdEFjdGlvblRvb2xiYXJJZClcIlxuICAgICAgICAgICAgICA+PC9zbWFydC11aS1hY3Rpb24tdG9vbGJhcj5cbiAgICAgICAgICAgICAgPCEtLS0tLS0gVE9PTEJBUiAtLS0tLS0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dNZW51QnV0dG9uKGVsZW1lbnQsIGJ1dHRvbilcIlxuICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImN1c3RvbUJ1dHRvbkNsaWNrZWQoJGV2ZW50LCBidXR0b24sIGVsZW1lbnQsIHVuZGVmaW5lZCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uLmNvbG9yIH19XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwiYnV0dG9uLmljb25cIiBbaWNvbl09XCJidXR0b24uaWNvblwiPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgICAgICA8IS0tIHt7IGJ1dHRvbi5sYWJlbCA/PyAoYnV0dG9uLnRyYW5zbGF0b3IgPyBidXR0b24udHJhbnNsYXRvcihlbGVtZW50KS50aXRsZSA6ICcnKSB9fSAtLT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnV0dG9uLm1lbnVJdGVtQnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGdldE1lbnVCdXR0b25zKGVsZW1lbnQsIGJ1dHRvbilcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ0biwgZWxlbWVudCwgdW5kZWZpbmVkLCB0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImJ0bj8udHJhbnNsYXRvcihidG4pPy5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJidG4hLnRyYW5zbGF0b3IhKGJ0bikhLmljb24hXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAge3sgYnRuPy50cmFuc2xhdG9yKGJ0bik/LnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnV0dG9uLm1lbnVJdGVtQnV0dG9uc1Byb3BlcnR5TmFtZVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnRuIG9mIGdldE1lbnVJdGVtQnV0dG9uc1Byb3BlcnR5TmFtZShlbGVtZW50LCBidXR0b24pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImJ0bi5jb2RlICE9PSBBQ1RJT05fU0VQRVJBVE9SXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VzdG9tQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIGJ1dHRvbiwgZWxlbWVudCwgYnRuLCB0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzbWFydFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBidG4/LmRlc2NyaXB0b3I/LnRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBidG4/LmRlc2NyaXB0b3I/LnRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBidXR0b24udHJhbnNsYXRvciEoYnRuKS50b29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hcnQtdGFibGUtaWNvbi1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi50cmFuc2xhdG9yIShidG4pLmljb25Qb3NpdGlvbiA9PT0gJ1BPU1QnID8gJ3JldmVyc2VkJyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjxzbWFydC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYnV0dG9uLnRyYW5zbGF0b3IhKGJ0bikuaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImJ1dHRvbi50cmFuc2xhdG9yIShidG4pLmljb24hXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NtYXJ0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBidXR0b24udHJhbnNsYXRvciEoYnRuKS50aXRsZSB9fTwvZGl2XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiYnRuLmNvZGUgPT09IEFDVElPTl9TRVBFUkFUT1JcIj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0uaWNvblwiPlxuICAgICAgICA8c21hcnQtaWNvblxuICAgICAgICAgICpuZ0lmPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5pY29uPy5pY29uXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzW2ldLmljb24/LmNzc0NsYXNzID8/ICcnXCJcbiAgICAgICAgICBbY29sb3JdPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5pY29uPy5jb2xvclwiXG4gICAgICAgICAgW2ljb25dPVwic21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5pY29uIS5pY29uXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NtYXJ0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yICE9PSB1bmRlZmluZWRcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yIShnZXRWYWx1ZShlbGVtZW50LCBoZWFkZXIpKSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyAmJlxuICAgICAgICAgIHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydHlOYW1lID09PSAnZXhwYW5kJ1xuICAgICAgICBcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgYXJpYS1sYWJlbD1cImV4cGFuZCByb3dcIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGUoZWxlbWVudCwgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxzbWFydC1pY29uICpuZ0lmPVwiZXhwYW5kZWRFbGVtZW50ICE9PSBlbGVtZW50XCIgW2ljb25dPVwiJ2tleWJvYXJkX2Fycm93X2Rvd24nXCI+PC9zbWFydC1pY29uPlxuICAgICAgICA8c21hcnQtaWNvbiAqbmdJZj1cImV4cGFuZGVkRWxlbWVudCA9PT0gZWxlbWVudFwiIFtpY29uXT1cIidrZXlib2FyZF9hcnJvd191cCdcIj48L3NtYXJ0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVycyB8fFxuICAgICAgICAgIChzbWFydFRhYmxlLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzICYmXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0aWVzICYmXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5pY29uICYmXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5idXR0b25zICYmXG4gICAgICAgICAgICAhc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS50cmFuc2xhdG9yICYmXG4gICAgICAgICAgICAhKHNtYXJ0VGFibGUuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnNbaV0ucHJvcGVydHlOYW1lID09PSAnc2VsZWN0JykgJiZcbiAgICAgICAgICAgICEoc21hcnRUYWJsZS5jdXN0b21TbWFydFRhYmxlSGVhZGVyc1tpXS5wcm9wZXJ0eU5hbWUgPT09ICdleHBhbmQnKSlcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHNtYXJ0LWljb24gKm5nSWY9XCJoZWFkZXIgPT09ICdpY29uJ1wiIFtpY29uXT1cImdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcikhXCI+IDwvc21hcnQtaWNvbj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICpuZ0lmPVwiaGVhZGVyID09PSAnaW1nJ1wiXG4gICAgICAgICAgW3NyY109XCJnZXRWYWx1ZShlbGVtZW50LCBoZWFkZXIpXCJcbiAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgIGNsYXNzPVwic21hcnR0YWJsZUltZ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDwhLS0tLS0tIFRPT0xCQVIgLS0tLS0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0NlbGxUb29sYmFyKGVsZW1lbnQsIGhlYWRlcilcIj5cbiAgICAgICAgICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXJcbiAgICAgICAgICAgIFt1aUFjdGlvbk1vZGVsc109XCJnZXRSb3dDb2x1bW5BY3Rpb24oZWxlbWVudCwgaGVhZGVyKVwiXG4gICAgICAgICAgPjwvc21hcnQtdWktYWN0aW9uLXRvb2xiYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tLS0tLSBUT09MQkFSIC0tLS0tLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBoZWFkZXIgIT09ICdpY29uJyAmJlxuICAgICAgICAgICAgaGVhZGVyICE9PSAnaW1nJyAmJlxuICAgICAgICAgICAgaGVhZGVyICE9PSAnb3B0aW9uJyAmJlxuICAgICAgICAgICAgaGVhZGVyICE9PSAnYnV0dG9uJyAmJlxuICAgICAgICAgICAgIWlzSW1hZ2VSZXNvdXJjZShlbGVtZW50LCBoZWFkZXIpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbaW5uZXJIdG1sXT1cImdldFZhbHVlKGVsZW1lbnQsIGhlYWRlcilcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIEV4cGFuZGVkIENvbnRlbnQgQ29sdW1uIC0gVGhlIGRldGFpbCByb3cgaXMgbWFkZSB1cCBvZiB0aGlzIG9uZSBjb2x1bW4gdGhhdCBzcGFucyBhY3Jvc3MgYWxsIGNvbHVtbnMgLS0+XG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZXhwYW5kZWREZXRhaWxcIj5cbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFthdHRyLmNvbHNwYW5dPVwic21hcnRUYWJsZS50YWJsZUhlYWRlcnMubGVuZ3RoXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZXhhbXBsZS1lbGVtZW50LWRldGFpbFwiXG4gICAgICAgIFtAZGV0YWlsRXhwYW5kXT1cImVsZW1lbnQgPT0gZXhwYW5kZWRFbGVtZW50ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNleHBhbmRlZEFyZWE+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwic21hcnRUYWJsZS50YWJsZUhlYWRlcnM7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gIDxuZy1jb250YWluZXIgKm1hdFJvd0RlZj1cImxldCBlbGVtZW50OyBjb2x1bW5zOiBzbWFydFRhYmxlLnRhYmxlSGVhZGVyc1wiPlxuICAgIDx0clxuICAgICAgbWF0LXJvd1xuICAgICAgY2xhc3M9XCJleGFtcGxlLWVsZW1lbnQtcm93XCJcbiAgICAgIFtjbGFzcy5leGFtcGxlLWV4cGFuZGVkLXJvd109XCJleHBhbmRlZEVsZW1lbnQgPT09IGVsZW1lbnRcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0Um93Q2xhc3NlcyhlbGVtZW50KVwiXG4gICAgICBbbmdTdHlsZV09XCJnZXRSb3dTdHlsZXMoZWxlbWVudClcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZU9uUm93Q2xpY2soZWxlbWVudClcIlxuICAgICAgKGRibGNsaWNrKT1cImhhbmRsZU9uUm93RG91YmxlQ2xpY2soJGV2ZW50LCBlbGVtZW50KVwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJlbGVtZW50Py5pZCA/PyBudWxsXCJcbiAgICA+PC90cj5cbiAgICA8bGliLWRlZmF1bHQtYWN0aW9ucy1wb3B1cFxuICAgICAgKm5nSWY9XCJzbWFydFRhYmxlLmRlZmF1bHRBY3Rpb25Db2RlcyAmJiBzbWFydFRhYmxlLmRlZmF1bHRBY3Rpb25Db2Rlcy5sZW5ndGggPiAwXCJcbiAgICAgICNkZWZhdWx0QWN0aW9uTWVudVxuICAgICAgW2J1dHRvbnNdPVwiZ2V0RGVmYXVsdEFjdGlvbnNGb3JSb3coZWxlbWVudCkhXCJcbiAgICAgIFtyb3ddPVwiZWxlbWVudFwiXG4gICAgPjwvbGliLWRlZmF1bHQtYWN0aW9ucy1wb3B1cD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2V4cGFuZGVkRGV0YWlsJ11cIiBjbGFzcz1cImV4YW1wbGUtZGV0YWlsLXJvd1wiPjwvdHI+XG48L3RhYmxlPlxuIl19