@smartbit4all/ng-client 6.0.40 → 6.0.41

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 (336) hide show
  1. package/README.md +386 -386
  2. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +1 -1
  3. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +1 -1
  4. package/esm2022/lib/component-factory-service/projects.mjs +1 -1
  5. package/esm2022/lib/session/api/api/api.mjs +1 -1
  6. package/esm2022/lib/session/api/api/session.service.mjs +1 -1
  7. package/esm2022/lib/session/api/configuration.mjs +1 -1
  8. package/esm2022/lib/session/api/encoder.mjs +1 -1
  9. package/esm2022/lib/session/api/index.mjs +1 -1
  10. package/esm2022/lib/session/api/model/accountInfo.mjs +1 -1
  11. package/esm2022/lib/session/api/model/apiError.mjs +1 -1
  12. package/esm2022/lib/session/api/model/authenticationProviderData.mjs +1 -1
  13. package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
  14. package/esm2022/lib/session/api/model/models.mjs +1 -1
  15. package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +1 -1
  16. package/esm2022/lib/session/api/model/session.mjs +1 -1
  17. package/esm2022/lib/session/api/model/sessionInfoData.mjs +1 -1
  18. package/esm2022/lib/session/api/model/userActivityLog.mjs +1 -1
  19. package/esm2022/lib/session/api/param.mjs +1 -1
  20. package/esm2022/lib/session/api/variables.mjs +1 -1
  21. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +1 -1
  22. package/esm2022/lib/session/projects.mjs +1 -1
  23. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +1 -1
  24. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +1 -1
  25. package/esm2022/lib/session/smart-default-error-ui.service.mjs +1 -1
  26. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +1 -1
  27. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +1 -1
  28. package/esm2022/lib/session/smart-session-handler.service.mjs +1 -1
  29. package/esm2022/lib/session/smart-session.module.mjs +1 -1
  30. package/esm2022/lib/session/smart-session.service.mjs +1 -1
  31. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +3 -3
  32. package/esm2022/lib/shared/projects.mjs +1 -1
  33. package/esm2022/lib/shared/shared.module.mjs +1 -1
  34. package/esm2022/lib/shared/smart-tooltip.directive.mjs +1 -1
  35. package/esm2022/lib/shared/smarttable.date-pipe.mjs +1 -1
  36. package/esm2022/lib/smart-client/projects.mjs +1 -1
  37. package/esm2022/lib/smart-client/smart-component-api-client.mjs +1 -1
  38. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +3 -3
  39. package/esm2022/lib/smart-client/smart.component.mjs +1 -1
  40. package/esm2022/lib/smart-client/smart.service.mjs +1 -1
  41. package/esm2022/lib/smart-component-layout/api/model/models.mjs +1 -1
  42. package/esm2022/lib/smart-component-layout/api/model/toolbarAlignment.mjs +1 -1
  43. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +1 -1
  44. package/esm2022/lib/smart-component-layout/projects.mjs +1 -1
  45. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +1 -1
  46. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +4 -4
  47. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +1 -1
  48. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +1 -1
  49. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +22 -22
  50. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +1 -1
  51. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +1 -1
  52. package/esm2022/lib/smart-diagram/projects.mjs +1 -1
  53. package/esm2022/lib/smart-dialog/projects.mjs +1 -1
  54. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +3 -3
  55. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +1 -1
  56. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +1 -1
  57. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +1 -1
  58. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +3 -3
  59. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +1 -1
  60. package/esm2022/lib/smart-expandable-section/projects.mjs +1 -1
  61. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +1 -1
  62. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +1 -1
  63. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
  64. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
  65. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
  66. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
  67. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
  68. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
  69. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
  70. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
  71. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
  72. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
  73. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
  74. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
  75. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
  76. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +1 -1
  77. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
  78. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +1 -1
  79. package/esm2022/lib/smart-filter/api/value/model/value.mjs +1 -1
  80. package/esm2022/lib/smart-filter/projects.mjs +1 -1
  81. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +1 -1
  82. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +3 -3
  83. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +3 -3
  84. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +3 -3
  85. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +1 -1
  86. package/esm2022/lib/smart-filter/smart-filter.model.mjs +1 -1
  87. package/esm2022/lib/smart-filter/smart-filter.module.mjs +1 -1
  88. package/esm2022/lib/smart-filter-editor/api/api/api.mjs +1 -1
  89. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
  90. package/esm2022/lib/smart-filter-editor/api/api.module.mjs +1 -1
  91. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
  92. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
  93. package/esm2022/lib/smart-filter-editor/api/index.mjs +1 -1
  94. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
  95. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilder.mjs +1 -1
  96. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
  97. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
  98. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
  99. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
  100. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
  101. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
  102. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
  103. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
  104. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
  105. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
  106. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
  107. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
  108. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
  109. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
  110. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +1 -1
  111. package/esm2022/lib/smart-filter-editor/api/model/models.mjs +1 -1
  112. package/esm2022/lib/smart-filter-editor/api/model/searchPageConfig.mjs +1 -1
  113. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
  114. package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
  115. package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
  116. package/esm2022/lib/smart-filter-editor/filter-utils.mjs +1 -1
  117. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +1 -1
  118. package/esm2022/lib/smart-filter-editor/project.mjs +1 -1
  119. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/advanced/advanced-relation-button/advanced-relation-button.component.mjs +3 -3
  120. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/advanced/advanced-smart-filter-expression-item/advanced-smart-filter-expression-item.component.mjs +3 -3
  121. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/advanced/expression-editor-dialog/expression-editor-dialog.component.mjs +3 -3
  122. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/advanced/expression-editor-dialog/expression-editor-dialog.service.mjs +1 -1
  123. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +3 -3
  124. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +3 -3
  125. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +3 -3
  126. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
  127. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +1 -1
  128. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +1 -1
  129. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +3 -3
  130. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +3 -3
  131. package/esm2022/lib/smart-form/api/model/divProperties.mjs +1 -1
  132. package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
  133. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +1 -1
  134. package/esm2022/lib/smart-form/projects.mjs +1 -1
  135. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +1 -1
  136. package/esm2022/lib/smart-form/services/smartform.service.mjs +1 -1
  137. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +3 -3
  138. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +3 -3
  139. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
  140. package/esm2022/lib/smart-form/smartform.component.mjs +3 -3
  141. package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
  142. package/esm2022/lib/smart-form/smartform.model.mjs +1 -1
  143. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +3 -3
  144. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +3 -3
  145. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +3 -3
  146. package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +3 -3
  147. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +1 -1
  148. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +1 -1
  149. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +3 -3
  150. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +3 -3
  151. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +1 -1
  152. package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +3 -3
  153. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +1 -1
  154. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +1 -1
  155. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +1 -1
  156. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +1 -1
  157. package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +1 -1
  158. package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +1 -1
  159. package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +1 -1
  160. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +1 -1
  161. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +1 -1
  162. package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +3 -3
  163. package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +3 -3
  164. package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +3 -3
  165. package/esm2022/lib/smart-generic-pages/projects.mjs +1 -1
  166. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +3 -3
  167. package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +1 -1
  168. package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +3 -3
  169. package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +3 -3
  170. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
  171. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
  172. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
  173. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
  174. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
  175. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
  176. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
  177. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
  178. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
  179. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +1 -1
  180. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
  181. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
  182. package/esm2022/lib/smart-grid/api/grid-api/model/gridRowLayoutDescriptor.mjs +1 -1
  183. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
  184. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
  185. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
  186. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
  187. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  188. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
  189. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
  190. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
  191. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
  192. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
  193. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +3 -3
  194. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +3 -3
  195. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +3 -3
  196. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +3 -3
  197. package/esm2022/lib/smart-grid/models/model.mjs +1 -1
  198. package/esm2022/lib/smart-grid/projects.mjs +1 -1
  199. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +1 -1
  200. package/esm2022/lib/smart-grid/smart-grid.component.mjs +3 -3
  201. package/esm2022/lib/smart-grid/smart-grid.module.mjs +1 -1
  202. package/esm2022/lib/smart-grid/smart-grid.service.mjs +1 -1
  203. package/esm2022/lib/smart-icon/projects.mjs +1 -1
  204. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +3 -3
  205. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +3 -3
  206. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +1 -1
  207. package/esm2022/lib/smart-icon/smart-icon.module.mjs +1 -1
  208. package/esm2022/lib/smart-icon/smart-icon.service.mjs +1 -1
  209. package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
  210. package/esm2022/lib/smart-map/api-default/api-default.mjs +1 -1
  211. package/esm2022/lib/smart-map/impl/google-map.mjs +1 -1
  212. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +1 -1
  213. package/esm2022/lib/smart-map/projects.mjs +1 -1
  214. package/esm2022/lib/smart-map/smart-map.component.mjs +3 -3
  215. package/esm2022/lib/smart-map/smart-map.module.mjs +1 -1
  216. package/esm2022/lib/smart-map/smart-map.types.mjs +1 -1
  217. package/esm2022/lib/smart-navbar/projects.mjs +1 -1
  218. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +3 -3
  219. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +1 -1
  220. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +1 -1
  221. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +1 -1
  222. package/esm2022/lib/smart-navigation/projects.mjs +1 -1
  223. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
  224. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +1 -1
  225. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +1 -1
  226. package/esm2022/lib/smart-ng-client.module.mjs +1 -1
  227. package/esm2022/lib/smart-ng-client.service.mjs +1 -1
  228. package/esm2022/lib/smart-subject/projects.mjs +1 -1
  229. package/esm2022/lib/smart-subject/smart-subject.mjs +1 -1
  230. package/esm2022/lib/smart-tab-group/projects.mjs +1 -1
  231. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +1 -1
  232. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +3 -3
  233. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +3 -3
  234. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +1 -1
  235. package/esm2022/lib/smart-table/projects.mjs +1 -1
  236. package/esm2022/lib/smart-table/smarttable.component.mjs +3 -3
  237. package/esm2022/lib/smart-table/smarttable.model.mjs +1 -1
  238. package/esm2022/lib/smart-table/smarttable.module.mjs +1 -1
  239. package/esm2022/lib/smart-table/smarttable.service.mjs +1 -1
  240. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +3 -3
  241. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +3 -3
  242. package/esm2022/lib/smart-table/tables/table.mjs +1 -1
  243. package/esm2022/lib/smart-tree/projects.mjs +1 -1
  244. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +1 -1
  245. package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
  246. package/esm2022/lib/smart-tree/smarttree.model.mjs +1 -1
  247. package/esm2022/lib/smart-tree/smarttree.module.mjs +1 -1
  248. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +1 -1
  249. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +1 -1
  250. package/esm2022/lib/smart-tree/smarttree.service.mjs +1 -1
  251. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
  252. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +1 -1
  253. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +1 -1
  254. package/esm2022/lib/smart-tree/tree-api/param.mjs +1 -1
  255. package/esm2022/lib/smart-tree/tree-api/variables.mjs +1 -1
  256. package/esm2022/lib/smart-validation/named-validator.service.mjs +1 -1
  257. package/esm2022/lib/smart-validation/projects.mjs +1 -1
  258. package/esm2022/lib/smart-validation/smart-validation.module.mjs +1 -1
  259. package/esm2022/lib/smart-validation/smart-validation.types.mjs +1 -1
  260. package/esm2022/lib/theme/theme.service.mjs +1 -1
  261. package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +1 -1
  262. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +1 -1
  263. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +1 -1
  264. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +1 -1
  265. package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +1 -1
  266. package/esm2022/lib/view-context/default-view-components.token.mjs +1 -1
  267. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +3 -3
  268. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +3 -3
  269. package/esm2022/lib/view-context/projects.mjs +1 -1
  270. package/esm2022/lib/view-context/property-definition-data.mjs +1 -1
  271. package/esm2022/lib/view-context/reuse-router-slot.token.mjs +1 -1
  272. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +1 -1
  273. package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +3 -3
  274. package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +3 -3
  275. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +1 -1
  276. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +1 -1
  277. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
  278. package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +3 -3
  279. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +3 -3
  280. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +3 -3
  281. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +3 -3
  282. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +1 -1
  283. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +3 -3
  284. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +3 -3
  285. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +1 -1
  286. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +3 -3
  287. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +3 -3
  288. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +1 -1
  289. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +3 -3
  290. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +1 -1
  291. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +3 -3
  292. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/button-icon-placeholder.mjs +1 -1
  293. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +3 -3
  294. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +3 -3
  295. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +1 -1
  296. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +1 -1
  297. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +1 -1
  298. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +1 -1
  299. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +3 -3
  300. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +1 -1
  301. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +1 -1
  302. package/esm2022/lib/view-context/smart-view-context.model.mjs +1 -1
  303. package/esm2022/lib/view-context/smart-view-context.module.mjs +1 -1
  304. package/esm2022/lib/view-context/smart-view-context.service.mjs +1 -1
  305. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +1 -1
  306. package/esm2022/lib/view-context/utility/componentLibrary.mjs +1 -1
  307. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +1 -1
  308. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +1 -1
  309. package/esm2022/lib/view-context/value-api/api/api.mjs +1 -1
  310. package/esm2022/lib/view-context/value-api/api/value.service.mjs +1 -1
  311. package/esm2022/lib/view-context/value-api/api.module.mjs +1 -1
  312. package/esm2022/lib/view-context/value-api/configuration.mjs +1 -1
  313. package/esm2022/lib/view-context/value-api/encoder.mjs +1 -1
  314. package/esm2022/lib/view-context/value-api/index.mjs +1 -1
  315. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +1 -1
  316. package/esm2022/lib/view-context/value-api/model/models.mjs +1 -1
  317. package/esm2022/lib/view-context/value-api/model/value.mjs +1 -1
  318. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +1 -1
  319. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
  320. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
  321. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
  322. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
  323. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
  324. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
  325. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
  326. package/esm2022/lib/view-context/value-api/param.mjs +1 -1
  327. package/esm2022/lib/view-context/value-api/variables.mjs +1 -1
  328. package/esm2022/lib/view-context/view-handler-resolution.mjs +1 -1
  329. package/esm2022/lib/view-context/view-op.mjs +1 -1
  330. package/esm2022/lib/view-context/view-slot-resolution.mjs +1 -1
  331. package/esm2022/projects.mjs +1 -1
  332. package/fesm2022/smartbit4all-ng-client.mjs +152 -152
  333. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  334. package/package.json +1 -1
  335. package/smartbit4all-ng-client-6.0.41.tgz +0 -0
  336. package/smartbit4all-ng-client-6.0.40.tgz +0 -0
@@ -114,11 +114,11 @@ export class UiActionInputDialogComponent {
114
114
  return UiActionButtonType;
115
115
  }
116
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionInputDialogComponent, deps: [{ token: 'textFieldDialogService' }, { token: COMPONENT_LIBRARY }, { token: i1.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionInputDialogComponent, selector: "smart-ui-action-input-dialog", viewQueries: [{ propertyName: "folderFormChild", first: true, predicate: ["form"], descendants: true }], ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\n <div class=\"headerContainer\">\n <h3 class=\"color-accent-700\">\n {{ getTitle() }}\n </h3>\n @if(compLib === componentLibrary.MATERIAL) {\n <button mat-icon-button (click)=\"cancel()\">\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n </button>\n }@else {\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" (click)=\"cancel()\" />\n }\n </div>\n <p>\n {{ getText() }}\n </p>\n <smartform #form [smartForm]=\"folderForm\"></smartform>\n <div class=\"folderNameDialogButtonsContainer\">\n <ui-action-dialog-button\n [descriptor]=\"getCancelButton()\"\n (click)=\"cancel()\"\n ></ui-action-dialog-button>\n <ui-action-dialog-button\n [descriptor]=\"getActionButton()\"\n [buttonType]=\"UiActionButtonType().RAISED\"\n (click)=\"save()\"\n ></ui-action-dialog-button>\n </div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: i6.UiActionDialogButtonComponent, selector: "ui-action-dialog-button", inputs: ["descriptor", "buttonType"], outputs: ["click"] }] }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionInputDialogComponent, selector: "smart-ui-action-input-dialog", viewQueries: [{ propertyName: "folderFormChild", first: true, predicate: ["form"], descendants: true }], ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n @if(compLib === componentLibrary.MATERIAL) {\r\n <button mat-icon-button (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n }@else {\r\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" (click)=\"cancel()\" />\r\n }\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n <smartform #form [smartForm]=\"folderForm\"></smartform>\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <ui-action-dialog-button\r\n [descriptor]=\"getCancelButton()\"\r\n (click)=\"cancel()\"\r\n ></ui-action-dialog-button>\r\n <ui-action-dialog-button\r\n [descriptor]=\"getActionButton()\"\r\n [buttonType]=\"UiActionButtonType().RAISED\"\r\n (click)=\"save()\"\r\n ></ui-action-dialog-button>\r\n </div>\r\n</div>\r\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: i6.UiActionDialogButtonComponent, selector: "ui-action-dialog-button", inputs: ["descriptor", "buttonType"], outputs: ["click"] }] }); }
118
118
  }
119
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionInputDialogComponent, decorators: [{
120
120
  type: Component,
121
- args: [{ selector: 'smart-ui-action-input-dialog', template: "<div class=\"folderNameDialogContainer\">\n <div class=\"headerContainer\">\n <h3 class=\"color-accent-700\">\n {{ getTitle() }}\n </h3>\n @if(compLib === componentLibrary.MATERIAL) {\n <button mat-icon-button (click)=\"cancel()\">\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\n </button>\n }@else {\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" (click)=\"cancel()\" />\n }\n </div>\n <p>\n {{ getText() }}\n </p>\n <smartform #form [smartForm]=\"folderForm\"></smartform>\n <div class=\"folderNameDialogButtonsContainer\">\n <ui-action-dialog-button\n [descriptor]=\"getCancelButton()\"\n (click)=\"cancel()\"\n ></ui-action-dialog-button>\n <ui-action-dialog-button\n [descriptor]=\"getActionButton()\"\n [buttonType]=\"UiActionButtonType().RAISED\"\n (click)=\"save()\"\n ></ui-action-dialog-button>\n </div>\n</div>\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
121
+ args: [{ selector: 'smart-ui-action-input-dialog', template: "<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n @if(compLib === componentLibrary.MATERIAL) {\r\n <button mat-icon-button (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n }@else {\r\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" (click)=\"cancel()\" />\r\n }\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n <smartform #form [smartForm]=\"folderForm\"></smartform>\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <ui-action-dialog-button\r\n [descriptor]=\"getCancelButton()\"\r\n (click)=\"cancel()\"\r\n ></ui-action-dialog-button>\r\n <ui-action-dialog-button\r\n [descriptor]=\"getActionButton()\"\r\n [buttonType]=\"UiActionButtonType().RAISED\"\r\n (click)=\"save()\"\r\n ></ui-action-dialog-button>\r\n </div>\r\n</div>\r\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
122
122
  }], ctorParameters: () => [{ type: i7.UiActionInputDialogService, decorators: [{
123
123
  type: Inject,
124
124
  args: ['textFieldDialogService']
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
129
129
  type: ViewChild,
130
130
  args: ['form']
131
131
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWlucHV0LWRpYWxvZy91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBRUwsa0JBQWtCLEVBRWxCLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUt0QixrRkFBa0Y7QUFDbEYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFPeEUsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxZQUM0QyxPQUFtQyxFQUMzQyxPQUF5QixFQUNuRCxPQUFrQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBQzNDLFlBQU8sR0FB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QU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzsrR0F2SFUsNEJBQTRCLGtCQVU3Qix3QkFBd0IsYUFDeEIsaUJBQWlCO21HQVhoQiw0QkFBNEIsNktDekJ6QyxrN0JBNkJBOzs0RkRKYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsOEJBQThCOzswQkFjckMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLGlCQUFpQjtpRkFWUixlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIFVpQWN0aW9uQnV0dG9uRGVzY3JpcHRvcixcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxuICBVaUFjdGlvbkRlc2NyaXB0b3IsXG4gIFVpQWN0aW9uSW5wdXRUeXBlLFxufSBmcm9tICcuLi8uLi8uLi9hcGknO1xuXG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24taW5wdXQtZGlhbG9nLnNlcnZpY2UnO1xuLy9pbXBvcnQgeyBTbWFydGZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU21hcnRGb3JtLCBTbWFydFZhbGlkYXRvck5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9hcGkvbW9kZWwvc21hcnRGb3JtV2lkZ2V0VHlwZSc7XG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsJztcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWZvcm0vYXBpL21vZGVsL3NtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbic7XG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uLy4uLy4uL3Byb2plY3RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLWlucHV0LWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdmb3JtJykgZm9sZGVyRm9ybUNoaWxkITogYW55O1xuICBjb2RlITogc3RyaW5nO1xuICBmb2xkZXJGb3JtITogU21hcnRGb3JtO1xuICBjb21wb25lbnRMaWJyYXJ5ID0gQ29tcG9uZW50TGlicmFyeTtcbiAgZGlhbG9nVHlwZSE6ICdkaWFsb2cnIHwgJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnO1xuXG4gIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgndGV4dEZpZWxkRGlhbG9nU2VydmljZScpIHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgcHVibGljIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnksXG4gICAgcHJpdmF0ZSBtYW5hZ2VyOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY29kZSA9IHRoaXMuc2VydmljZS5hY3Rpb24uY29kZSE7XG4gICAgdGhpcy5zZXRVcCgpO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gIH1cblxuICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih0aGlzLnNlcnZpY2UuYWN0aW9uKTtcblxuICAgIGlmICh0aGlzLmRlc2NyaXB0b3JbdGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWVdKSB7XG4gICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaWFsb2dUeXBlID0gdGhpcy5kZXNjcmlwdG9yLmlucHV0RGlhbG9nID8gJ2lucHV0RGlhbG9nJyA6ICdkaWFsb2cnO1xuICAgIH1cblxuICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xuICB9XG5cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS50aXRsZTtcbiAgfVxuICBnZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGV4dCA/PyAnJztcbiAgfVxuXG4gIGdldEFjdGlvbkJ1dHRvbigpOiBVaUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmFjdGlvbkJ1dHRvbjtcbiAgfVxuXG4gIGdldENhbmNlbEJ1dHRvbigpOiBVaUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmNhbmNlbEJ1dHRvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdEZvcm0oKTogdm9pZCB7XG4gICAgbGV0IG1vZGVsOiBhbnkgPSB7fTtcbiAgICBsZXQgaW5wdXROYW1lOiAnaW5wdXQnIHwgJ2lucHV0Mic7XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWUgPT09ICdpbnB1dERpYWxvZycpIHtcbiAgICAgIGlucHV0TmFtZSA9ICdpbnB1dCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0TmFtZSA9ICdpbnB1dDInO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlcnZpY2Uubm9kZU5hbWUpIHtcbiAgICAgIG1vZGVsW2lucHV0TmFtZV0gPSB0aGlzLnNlcnZpY2Uubm9kZU5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGVsW2lucHV0TmFtZV0gPSAnJztcbiAgICB9XG4gICAgbGV0IHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGU7XG4gICAgbGV0IGlucHV0VHlwZTogJ2lucHV0VHlwZScgfCAnaW5wdXQyVHlwZScgPSBgJHtpbnB1dE5hbWV9VHlwZWA7XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5URVhURklFTEQpIHtcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YO1xuICAgIH1cblxuICAgIGxldCB3aWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IGlucHV0TmFtZSxcbiAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICB0eXBlLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHZhbGlkYXRvcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBuYW1lOiBTbWFydFZhbGlkYXRvck5hbWUucmVxdWlyZWQsXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdFeiBhIG1lesWRIGvDtnRlbGV6xZEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnBsYWNlaG9sZGVyID8/ICcnLFxuICAgICAgICBzaG93TGFiZWw6IHRydWUsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB3aWRnZXRzWzBdLnR5cGUgPT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRCAmJlxuICAgICAgdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdPy5tYXNrXG4gICAgKSB7XG4gICAgICB3aWRnZXRzWzBdLm1hc2sgPSB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0/Lm1hc2s7XG4gICAgfVxuXG4gICAgdGhpcy5mb2xkZXJGb3JtID0ge1xuICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxuICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogbW9kZWwgfSxcbiAgICAgIHdpZGdldHMsXG4gICAgfTtcbiAgfVxuXG4gIHNhdmUoKTogdm9pZCB7XG4gICAgbGV0IGZvcm0gPSB0aGlzLmZvbGRlckZvcm1DaGlsZC5zdWJtaXRGb3JtKCk7XG4gICAgaWYgKChmb3JtIGFzIFNtYXJ0Rm9ybSkuaW52YWxpZEZpZWxkcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZm9ybSBpcyBpbnZhbGlkIScpO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2Uub25TYXZlKChmb3JtIGFzIFNtYXJ0Rm9ybSkuY29tcG9uZW50TW9kZWw/LmRhdGEpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jYW5jZWwoKTtcbiAgfVxuXG4gIFVpQWN0aW9uQnV0dG9uVHlwZSgpOiB0eXBlb2YgVWlBY3Rpb25CdXR0b25UeXBlIHtcbiAgICByZXR1cm4gVWlBY3Rpb25CdXR0b25UeXBlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9sZGVyTmFtZURpYWxvZ0NvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyQ29udGFpbmVyXCI+XG4gICAgPGgzIGNsYXNzPVwiY29sb3ItYWNjZW50LTcwMFwiPlxuICAgICAge3sgZ2V0VGl0bGUoKSB9fVxuICAgIDwvaDM+XG4gICAgQGlmKGNvbXBMaWIgPT09IGNvbXBvbmVudExpYnJhcnkuTUFURVJJQUwpIHtcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgIDxzbWFydC1pY29uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbaWNvbl09XCInWCdcIj48L3NtYXJ0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgfUBlbHNlIHtcbiAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXRpbWVzXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIFt0ZXh0XT1cInRydWVcIiAoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxwPlxuICAgIHt7IGdldFRleHQoKSB9fVxuICA8L3A+XG4gIDxzbWFydGZvcm0gI2Zvcm0gW3NtYXJ0Rm9ybV09XCJmb2xkZXJGb3JtXCI+PC9zbWFydGZvcm0+XG4gIDxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQnV0dG9uc0NvbnRhaW5lclwiPlxuICAgIDx1aS1hY3Rpb24tZGlhbG9nLWJ1dHRvblxuICAgICAgW2Rlc2NyaXB0b3JdPVwiZ2V0Q2FuY2VsQnV0dG9uKClcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICA+PC91aS1hY3Rpb24tZGlhbG9nLWJ1dHRvbj5cbiAgICA8dWktYWN0aW9uLWRpYWxvZy1idXR0b25cbiAgICAgIFtkZXNjcmlwdG9yXT1cImdldEFjdGlvbkJ1dHRvbigpXCJcbiAgICAgIFtidXR0b25UeXBlXT1cIlVpQWN0aW9uQnV0dG9uVHlwZSgpLlJBSVNFRFwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICA+PC91aS1hY3Rpb24tZGlhbG9nLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWlucHV0LWRpYWxvZy91aS1hY3Rpb24taW5wdXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBRUwsa0JBQWtCLEVBRWxCLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUt0QixrRkFBa0Y7QUFDbEYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFPeEUsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxZQUM0QyxPQUFtQyxFQUMzQyxPQUF5QixFQUNuRCxPQUFrQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBQzNDLFlBQU8sR0FB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QU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzsrR0F2SFUsNEJBQTRCLGtCQVU3Qix3QkFBd0IsYUFDeEIsaUJBQWlCO21HQVhoQiw0QkFBNEIsNktDekJ6Qyw0K0JBNkJBOzs0RkRKYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsOEJBQThCOzswQkFjckMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLGlCQUFpQjtpRkFWUixlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7XHJcbiAgVWlBY3Rpb25CdXR0b25EZXNjcmlwdG9yLFxyXG4gIFVpQWN0aW9uQnV0dG9uVHlwZSxcclxuICBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgVWlBY3Rpb25JbnB1dFR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vYXBpJztcclxuXHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24taW5wdXQtZGlhbG9nLnNlcnZpY2UnO1xyXG4vL2ltcG9ydCB7IFNtYXJ0Zm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybSwgU21hcnRWYWxpZGF0b3JOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9zbWFydGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9hcGkvbW9kZWwvc21hcnRGb3JtV2lkZ2V0VHlwZSc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldCB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1mb3JtL2FwaS9tb2RlbC9zbWFydEZvcm1XaWRnZXREaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uLy4uLy4uL3Byb2plY3RzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLWlucHV0LWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25JbnB1dERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZm9ybScpIGZvbGRlckZvcm1DaGlsZCE6IGFueTtcclxuICBjb2RlITogc3RyaW5nO1xyXG4gIGZvbGRlckZvcm0hOiBTbWFydEZvcm07XHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7XHJcbiAgZGlhbG9nVHlwZSE6ICdkaWFsb2cnIHwgJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnO1xyXG5cclxuICBkZXNjcmlwdG9yPzogVWlBY3Rpb25EZXNjcmlwdG9yO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ3RleHRGaWVsZERpYWxvZ1NlcnZpY2UnKSBwcml2YXRlIHNlcnZpY2U6IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlLFxyXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgcHVibGljIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnksXHJcbiAgICBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY29kZSA9IHRoaXMuc2VydmljZS5hY3Rpb24uY29kZSE7XHJcbiAgICB0aGlzLnNldFVwKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmNhbmNlbCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2V0VXAoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih0aGlzLnNlcnZpY2UuYWN0aW9uKTtcclxuXHJcbiAgICBpZiAodGhpcy5kZXNjcmlwdG9yW3RoaXMuc2VydmljZS5pbnB1dFR5cGVOYW1lXSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nVHlwZSA9IHRoaXMuZGVzY3JpcHRvci5pbnB1dERpYWxvZyA/ICdpbnB1dERpYWxvZycgOiAnZGlhbG9nJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnN0cnVjdEZvcm0oKTtcclxuICB9XHJcblxyXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS50aXRsZTtcclxuICB9XHJcbiAgZ2V0VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGV4dCA/PyAnJztcclxuICB9XHJcblxyXG4gIGdldEFjdGlvbkJ1dHRvbigpOiBVaUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuYWN0aW9uQnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FuY2VsQnV0dG9uKCk6IFVpQWN0aW9uQnV0dG9uRGVzY3JpcHRvciB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5jYW5jZWxCdXR0b247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtKCk6IHZvaWQge1xyXG4gICAgbGV0IG1vZGVsOiBhbnkgPSB7fTtcclxuICAgIGxldCBpbnB1dE5hbWU6ICdpbnB1dCcgfCAnaW5wdXQyJztcclxuXHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWUgPT09ICdpbnB1dERpYWxvZycpIHtcclxuICAgICAgaW5wdXROYW1lID0gJ2lucHV0JztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlucHV0TmFtZSA9ICdpbnB1dDInO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlcnZpY2Uubm9kZU5hbWUpIHtcclxuICAgICAgbW9kZWxbaW5wdXROYW1lXSA9IHRoaXMuc2VydmljZS5ub2RlTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG1vZGVsW2lucHV0TmFtZV0gPSAnJztcclxuICAgIH1cclxuICAgIGxldCB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlO1xyXG4gICAgbGV0IGlucHV0VHlwZTogJ2lucHV0VHlwZScgfCAnaW5wdXQyVHlwZScgPSBgJHtpbnB1dE5hbWV9VHlwZWA7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VydmljZS5hY3Rpb25baW5wdXRUeXBlXSA9PT0gVWlBY3Rpb25JbnB1dFR5cGUuVEVYVEZJRUxEKSB7XHJcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0eXBlID0gU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgd2lkZ2V0czogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGtleTogaW5wdXROYW1lLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICB2YWxpZGF0b3JzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcjogVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgbmFtZTogU21hcnRWYWxpZGF0b3JOYW1lLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdFeiBhIG1lesWRIGvDtnRlbGV6xZEnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnBsYWNlaG9sZGVyID8/ICcnLFxyXG4gICAgICAgIHNob3dMYWJlbDogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB3aWRnZXRzWzBdLnR5cGUgPT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRCAmJlxyXG4gICAgICB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0/Lm1hc2tcclxuICAgICkge1xyXG4gICAgICB3aWRnZXRzWzBdLm1hc2sgPSB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0/Lm1hc2s7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb2xkZXJGb3JtID0ge1xyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IG1vZGVsIH0sXHJcbiAgICAgIHdpZGdldHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpOiB2b2lkIHtcclxuICAgIGxldCBmb3JtID0gdGhpcy5mb2xkZXJGb3JtQ2hpbGQuc3VibWl0Rm9ybSgpO1xyXG4gICAgaWYgKChmb3JtIGFzIFNtYXJ0Rm9ybSkuaW52YWxpZEZpZWxkcykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBmb3JtIGlzIGludmFsaWQhJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uub25TYXZlKChmb3JtIGFzIFNtYXJ0Rm9ybSkuY29tcG9uZW50TW9kZWw/LmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNhbmNlbCgpO1xyXG4gIH1cclxuXHJcbiAgVWlBY3Rpb25CdXR0b25UeXBlKCk6IHR5cGVvZiBVaUFjdGlvbkJ1dHRvblR5cGUge1xyXG4gICAgcmV0dXJuIFVpQWN0aW9uQnV0dG9uVHlwZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvbGRlck5hbWVEaWFsb2dDb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyQ29udGFpbmVyXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJjb2xvci1hY2NlbnQtNzAwXCI+XHJcbiAgICAgIHt7IGdldFRpdGxlKCkgfX1cclxuICAgIDwvaDM+XHJcbiAgICBAaWYoY29tcExpYiA9PT0gY29tcG9uZW50TGlicmFyeS5NQVRFUklBTCkge1xyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIDxzbWFydC1pY29uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbaWNvbl09XCInWCdcIj48L3NtYXJ0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIH1AZWxzZSB7XHJcbiAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXRpbWVzXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIFt0ZXh0XT1cInRydWVcIiAoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxwPlxyXG4gICAge3sgZ2V0VGV4dCgpIH19XHJcbiAgPC9wPlxyXG4gIDxzbWFydGZvcm0gI2Zvcm0gW3NtYXJ0Rm9ybV09XCJmb2xkZXJGb3JtXCI+PC9zbWFydGZvcm0+XHJcbiAgPGRpdiBjbGFzcz1cImZvbGRlck5hbWVEaWFsb2dCdXR0b25zQ29udGFpbmVyXCI+XHJcbiAgICA8dWktYWN0aW9uLWRpYWxvZy1idXR0b25cclxuICAgICAgW2Rlc2NyaXB0b3JdPVwiZ2V0Q2FuY2VsQnV0dG9uKClcIlxyXG4gICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxyXG4gICAgPjwvdWktYWN0aW9uLWRpYWxvZy1idXR0b24+XHJcbiAgICA8dWktYWN0aW9uLWRpYWxvZy1idXR0b25cclxuICAgICAgW2Rlc2NyaXB0b3JdPVwiZ2V0QWN0aW9uQnV0dG9uKClcIlxyXG4gICAgICBbYnV0dG9uVHlwZV09XCJVaUFjdGlvbkJ1dHRvblR5cGUoKS5SQUlTRURcIlxyXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgID48L3VpLWFjdGlvbi1kaWFsb2ctYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
55
55
  type: Inject,
56
56
  args: [COMPONENT_LIBRARY]
57
57
  }] }, { type: i3.UiActionDescriptorService }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBK0MsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFLbkcsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQVVoRSxZQUNFLE1BQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLE1BQWdCLEVBQ1csT0FBeUIsRUFDNUMsT0FBa0M7UUFFMUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRnRDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBZDVDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU16QyxhQUFRLEdBQThCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQVd2RSxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBZ0IsRUFBRSxRQUFpQjtRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFVBQVU7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixlQUFlLEVBQUUsNEJBQTRCO1NBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQWxEVSwwQkFBMEIsZ0dBYzNCLGlCQUFpQjttSEFkaEIsMEJBQTBCLGNBRnpCLE1BQU07OzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LXN1YmplY3QvcHJvamVjdHMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVaUFjdGlvbiwgVWlBY3Rpb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNtYXJ0ZGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWRpYWxvZy9zbWFydGRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNtYXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL3NtYXJ0LWRpYWxvZy9zbWFydGRpYWxvZy5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5LCBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvamVjdHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UgZXh0ZW5kcyBTbWFydGRpYWxvZ1NlcnZpY2Uge1xuICBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGlucHV0VHlwZU5hbWUhOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZyc7XG4gIGFjdGlvbiE6IFVpQWN0aW9uO1xuICBub2RlTmFtZT86IHN0cmluZztcblxuICBvbkFjdGlvbjogU3ViamVjdDxFZGl0Rm9sZGVyQWN0aW9uPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xuICBwYXJhbXM/OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICBpbmplY3Q6IEluamVjdG9yLFxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnksXG4gICAgcHJpdmF0ZSBtYW5hZ2VyOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGRpYWxvZywgZGlhbG9nU2VydmljZSwgaW5qZWN0LCBjb21wTGliKTtcbiAgfVxuXG4gIHNldERhdGFBbmRPcGVuRGlhbG9nKGFjdGlvbjogVWlBY3Rpb24sIG5vZGVOYW1lPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XG4gICAgdGhpcy5ub2RlTmFtZSA9IG5vZGVOYW1lO1xuICAgIHRoaXMub3BlbkRpYWxvZygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb3BlbkRpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9uQWN0aW9uID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XG4gICAgY29uc3QgZGlhbG9nRGF0YTogU21hcnREaWFsb2dEYXRhID0ge1xuICAgICAgY29udGVudDoge1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICB9LFxuICAgICAgc2l6ZToge30sXG4gICAgICBjdXN0b21Db21wb25lbnQ6IFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQsXG4gICAgfTtcbiAgICB0aGlzLmNyZWF0ZURpYWxvZyhkaWFsb2dEYXRhLCBVaUFjdGlvbklucHV0RGlhbG9nQ29tcG9uZW50KTtcbiAgfVxuXG4gIGFzeW5jIG9uU2F2ZShwYXJhbXM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMub25BY3Rpb24uY29tcGxldGUoKTtcbiAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgdGhpcy5vbkFjdGlvbiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMub25BY3Rpb24uY29tcGxldGUoKTtcbiAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgdGhpcy5vbkFjdGlvbiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEZvbGRlckFjdGlvbiB7XG4gIG5vZGVJZDogc3RyaW5nO1xuICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdDtcbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBK0MsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFLbkcsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQVVoRSxZQUNFLE1BQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLE1BQWdCLEVBQ1csT0FBeUIsRUFDNUMsT0FBa0M7UUFFMUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRnRDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBZDVDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU16QyxhQUFRLEdBQThCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQVd2RSxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBZ0IsRUFBRSxRQUFpQjtRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFVBQVU7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixlQUFlLEVBQUUsNEJBQTRCO1NBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDOytHQWxEVSwwQkFBMEIsZ0dBYzNCLGlCQUFpQjttSEFkaEIsMEJBQTBCLGNBRnpCLE1BQU07OzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVWlBY3Rpb24sIFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRkaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZGlhbG9nL3NtYXJ0ZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9zbWFydC1kaWFsb2cvc21hcnRkaWFsb2cubW9kZWwnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgQ09NUE9ORU5UX0xJQlJBUlksIENvbXBvbmVudExpYnJhcnksIFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm9qZWN0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UgZXh0ZW5kcyBTbWFydGRpYWxvZ1NlcnZpY2Uge1xyXG4gIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGlucHV0VHlwZU5hbWUhOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZyc7XHJcbiAgYWN0aW9uITogVWlBY3Rpb247XHJcbiAgbm9kZU5hbWU/OiBzdHJpbmc7XHJcblxyXG4gIG9uQWN0aW9uOiBTdWJqZWN0PEVkaXRGb2xkZXJBY3Rpb24+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgcGFyYW1zPzogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIGluamVjdDogSW5qZWN0b3IsXHJcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5LFxyXG4gICAgcHJpdmF0ZSBtYW5hZ2VyOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihkaWFsb2csIGRpYWxvZ1NlcnZpY2UsIGluamVjdCwgY29tcExpYik7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhQW5kT3BlbkRpYWxvZyhhY3Rpb246IFVpQWN0aW9uLCBub2RlTmFtZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XHJcbiAgICB0aGlzLm5vZGVOYW1lID0gbm9kZU5hbWU7XHJcbiAgICB0aGlzLm9wZW5EaWFsb2coKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9wZW5EaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMub25BY3Rpb24gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcclxuICAgICAgY29udGVudDoge1xyXG4gICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgfSxcclxuICAgICAgc2l6ZToge30sXHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudDogVWlBY3Rpb25JbnB1dERpYWxvZ0NvbXBvbmVudCxcclxuICAgIH07XHJcbiAgICB0aGlzLmNyZWF0ZURpYWxvZyhkaWFsb2dEYXRhLCBVaUFjdGlvbklucHV0RGlhbG9nQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uU2F2ZShwYXJhbXM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XHJcbiAgICB0aGlzLm9uQWN0aW9uID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XHJcbiAgICB0aGlzLm9uQWN0aW9uID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRGb2xkZXJBY3Rpb24ge1xyXG4gIG5vZGVJZDogc3RyaW5nO1xyXG4gIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0O1xyXG59XHJcbiJdfQ==
@@ -22,14 +22,14 @@ export class FileEditorToolbarComponent extends UiActionToolbarComponent {
22
22
  await super.fireAction(uiActionModel);
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FileEditorToolbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: FileEditorToolbarComponent, selector: "file-editor-toolbar", inputs: { dataUri: "dataUri" }, outputs: { actionEvent: "actionEvent" }, usesInheritance: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div\n #container\n class=\"uiActionButtonsContainer\"\n (click)=\"$event.stopPropagation()\"\n [ngClass]=\"{\n scrollableContent: scrollOnWrap,\n verticalToolbar: isVertical,\n horizontalToolbar: isHorizontal,\n alignedStart: isAlignedStart,\n alignedEnd: isAlignedEnd,\n }\"\n>\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.code === 'themeSelector') {\n <theme-selector [model]=\"uiActionModel\"></theme-selector>\n } @else if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ng-container\n *ngTemplateOutlet=\"menuTypes; context: { uiActionModel: uiActionModel }\"\n ></ng-container>\n } @else {\n <ui-action-button\n (mouseenter)=\"onHover()\"\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n [viewActivated]=\"uiActionModel.uiAction.viewActivated\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<ng-template #menuTypes let-uiActionModel=\"uiActionModel\">\n @switch (uiActionModel?.uiAction?.descriptor?.menu?.triggerType) {\n @case (triggerType.HOVER) {\n <ui-hover-menu\n #menu\n [toolbarId]=\"id\"\n (mouseenter)=\"onHover()\"\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-hover-menu>\n }\n @case (triggerType.CLICK) {\n <ui-tiered-menu\n #menu\n (mouseenter)=\"onHover()\"\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n }\n @default {\n <ui-tiered-menu\n #menu\n (mouseenter)=\"onHover()\"\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n }\n }\n</ng-template>\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}:host:has(.verticalToolbar){height:100%}:host:has(.horizontalToolbar.alignedEnd){width:100%}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column;height:100%}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%}.alignedStart{justify-content:flex-start}.alignedEnd{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "viewActivated", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i3.ClickMenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu", "menuOpenDirection"], outputs: ["actionClick", "submenuOpened"] }, { kind: "component", type: i4.HoverMenuComponent, selector: "ui-hover-menu", inputs: ["triggerAction", "isSubmenu", "menuOpenDirection", "toolbarId"], outputs: ["actionClick", "submenuOpened"] }, { kind: "component", type: i5.ThemeSelectorComponent, selector: "theme-selector", inputs: ["model"] }] }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: FileEditorToolbarComponent, selector: "file-editor-toolbar", inputs: { dataUri: "dataUri" }, outputs: { actionEvent: "actionEvent" }, usesInheritance: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonLeft\"\r\n (actionClick)=\"scrollLeft()\"\r\n (mousedown)=\"scrollStart('left')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('left')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n\r\n<div\r\n #container\r\n class=\"uiActionButtonsContainer\"\r\n (click)=\"$event.stopPropagation()\"\r\n [ngClass]=\"{\r\n scrollableContent: scrollOnWrap,\r\n verticalToolbar: isVertical,\r\n horizontalToolbar: isHorizontal,\r\n alignedStart: isAlignedStart,\r\n alignedEnd: isAlignedEnd,\r\n }\"\r\n>\r\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\r\n @if (uiActionModel.uiAction.code === 'themeSelector') {\r\n <theme-selector [model]=\"uiActionModel\"></theme-selector>\r\n } @else if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\r\n <ng-container\r\n *ngTemplateOutlet=\"menuTypes; context: { uiActionModel: uiActionModel }\"\r\n ></ng-container>\r\n } @else {\r\n <ui-action-button\r\n (mouseenter)=\"onHover()\"\r\n [descriptor]=\"uiActionModel.descriptor!\"\r\n [code]=\"uiActionModel.uiAction.code\"\r\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\r\n [addedCssClass]=\"uiActionModel.cssClass\"\r\n [viewActivated]=\"uiActionModel.uiAction.viewActivated\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\r\n >\r\n </ui-action-button>\r\n }\r\n </ng-container>\r\n</div>\r\n\r\n@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonRight\"\r\n (actionClick)=\"scrollRight()\"\r\n (mousedown)=\"scrollStart('right')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('right')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n\r\n<ng-template #menuTypes let-uiActionModel=\"uiActionModel\">\r\n @switch (uiActionModel?.uiAction?.descriptor?.menu?.triggerType) {\r\n @case (triggerType.HOVER) {\r\n <ui-hover-menu\r\n #menu\r\n [toolbarId]=\"id\"\r\n (mouseenter)=\"onHover()\"\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-hover-menu>\r\n }\r\n @case (triggerType.CLICK) {\r\n <ui-tiered-menu\r\n #menu\r\n (mouseenter)=\"onHover()\"\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-tiered-menu>\r\n }\r\n @default {\r\n <ui-tiered-menu\r\n #menu\r\n (mouseenter)=\"onHover()\"\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-tiered-menu>\r\n }\r\n }\r\n</ng-template>\r\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}:host:has(.verticalToolbar){height:100%}:host:has(.horizontalToolbar.alignedEnd){width:100%}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column;height:100%}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%}.alignedStart{justify-content:flex-start}.alignedEnd{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "viewActivated", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i3.ClickMenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu", "menuOpenDirection"], outputs: ["actionClick", "submenuOpened"] }, { kind: "component", type: i4.HoverMenuComponent, selector: "ui-hover-menu", inputs: ["triggerAction", "isSubmenu", "menuOpenDirection", "toolbarId"], outputs: ["actionClick", "submenuOpened"] }, { kind: "component", type: i5.ThemeSelectorComponent, selector: "theme-selector", inputs: ["model"] }] }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FileEditorToolbarComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'file-editor-toolbar', template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div\n #container\n class=\"uiActionButtonsContainer\"\n (click)=\"$event.stopPropagation()\"\n [ngClass]=\"{\n scrollableContent: scrollOnWrap,\n verticalToolbar: isVertical,\n horizontalToolbar: isHorizontal,\n alignedStart: isAlignedStart,\n alignedEnd: isAlignedEnd,\n }\"\n>\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.code === 'themeSelector') {\n <theme-selector [model]=\"uiActionModel\"></theme-selector>\n } @else if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ng-container\n *ngTemplateOutlet=\"menuTypes; context: { uiActionModel: uiActionModel }\"\n ></ng-container>\n } @else {\n <ui-action-button\n (mouseenter)=\"onHover()\"\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n [viewActivated]=\"uiActionModel.uiAction.viewActivated\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<ng-template #menuTypes let-uiActionModel=\"uiActionModel\">\n @switch (uiActionModel?.uiAction?.descriptor?.menu?.triggerType) {\n @case (triggerType.HOVER) {\n <ui-hover-menu\n #menu\n [toolbarId]=\"id\"\n (mouseenter)=\"onHover()\"\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-hover-menu>\n }\n @case (triggerType.CLICK) {\n <ui-tiered-menu\n #menu\n (mouseenter)=\"onHover()\"\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n }\n @default {\n <ui-tiered-menu\n #menu\n (mouseenter)=\"onHover()\"\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n }\n }\n</ng-template>\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}:host:has(.verticalToolbar){height:100%}:host:has(.horizontalToolbar.alignedEnd){width:100%}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column;height:100%}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%}.alignedStart{justify-content:flex-start}.alignedEnd{justify-content:flex-end}\n"] }]
29
+ args: [{ selector: 'file-editor-toolbar', template: "@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonLeft\"\r\n (actionClick)=\"scrollLeft()\"\r\n (mousedown)=\"scrollStart('left')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('left')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n\r\n<div\r\n #container\r\n class=\"uiActionButtonsContainer\"\r\n (click)=\"$event.stopPropagation()\"\r\n [ngClass]=\"{\r\n scrollableContent: scrollOnWrap,\r\n verticalToolbar: isVertical,\r\n horizontalToolbar: isHorizontal,\r\n alignedStart: isAlignedStart,\r\n alignedEnd: isAlignedEnd,\r\n }\"\r\n>\r\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\r\n @if (uiActionModel.uiAction.code === 'themeSelector') {\r\n <theme-selector [model]=\"uiActionModel\"></theme-selector>\r\n } @else if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\r\n <ng-container\r\n *ngTemplateOutlet=\"menuTypes; context: { uiActionModel: uiActionModel }\"\r\n ></ng-container>\r\n } @else {\r\n <ui-action-button\r\n (mouseenter)=\"onHover()\"\r\n [descriptor]=\"uiActionModel.descriptor!\"\r\n [code]=\"uiActionModel.uiAction.code\"\r\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\r\n [addedCssClass]=\"uiActionModel.cssClass\"\r\n [viewActivated]=\"uiActionModel.uiAction.viewActivated\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\r\n >\r\n </ui-action-button>\r\n }\r\n </ng-container>\r\n</div>\r\n\r\n@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonRight\"\r\n (actionClick)=\"scrollRight()\"\r\n (mousedown)=\"scrollStart('right')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('right')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n\r\n<ng-template #menuTypes let-uiActionModel=\"uiActionModel\">\r\n @switch (uiActionModel?.uiAction?.descriptor?.menu?.triggerType) {\r\n @case (triggerType.HOVER) {\r\n <ui-hover-menu\r\n #menu\r\n [toolbarId]=\"id\"\r\n (mouseenter)=\"onHover()\"\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-hover-menu>\r\n }\r\n @case (triggerType.CLICK) {\r\n <ui-tiered-menu\r\n #menu\r\n (mouseenter)=\"onHover()\"\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-tiered-menu>\r\n }\r\n @default {\r\n <ui-tiered-menu\r\n #menu\r\n (mouseenter)=\"onHover()\"\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-tiered-menu>\r\n }\r\n }\r\n</ng-template>\r\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}:host:has(.verticalToolbar){height:100%}:host:has(.horizontalToolbar.alignedEnd){width:100%}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column;height:100%}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%}.alignedStart{justify-content:flex-start}.alignedEnd{justify-content:flex-end}\n"] }]
30
30
  }], propDecorators: { dataUri: [{
31
31
  type: Input
32
32
  }], actionEvent: [{
33
33
  type: Output
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2ZpbGUtZWRpdG9yLXRvb2xiYXIvZmlsZS1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7QUFRMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHdCQUF3QjtJQUx4RTs7UUFRWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUVwQyxDQUFDO0tBWU47SUFWVSxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQTRCO1FBQ3BELGFBQWEsQ0FBQyxRQUFRLEdBQUc7WUFDdkIsR0FBRyxhQUFhLENBQUMsUUFBUTtZQUN6QixNQUFNLEVBQUU7Z0JBQ04sR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTzthQUN2QjtTQUNGLENBQUM7UUFDRixNQUFNLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0FoQlUsMEJBQTBCO21HQUExQiwwQkFBMEIsMkpDVHZDLDhsR0E2RkE7OzRGRHBGYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQUt0QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gJy4uL3VpLWFjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbGUtZWRpdG9yLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUVkaXRvclRvb2xiYXJDb21wb25lbnQgZXh0ZW5kcyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhVXJpITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWw7XG4gIH0+KCk7XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmlyZUFjdGlvbih1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdWlBY3Rpb25Nb2RlbC51aUFjdGlvbiA9IHtcbiAgICAgIC4uLnVpQWN0aW9uTW9kZWwudWlBY3Rpb24sXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgLi4udWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5wYXJhbXMsXG4gICAgICAgIF9kYXRhVXJpOiB0aGlzLmRhdGFVcmksXG4gICAgICB9LFxuICAgIH07XG4gICAgYXdhaXQgc3VwZXIuZmlyZUFjdGlvbih1aUFjdGlvbk1vZGVsKTtcbiAgfVxufVxuIiwiQGlmIChpc1Njcm9sbGFibGUgJiYgc2Nyb2xsT25XcmFwKSB7XG4gIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Njcm9sbGFibGVcIlxuICAgIFtkZXNjcmlwdG9yXT1cImJ1dHRvbkxlZnRcIlxuICAgIChhY3Rpb25DbGljayk9XCJzY3JvbGxMZWZ0KClcIlxuICAgIChtb3VzZWRvd24pPVwic2Nyb2xsU3RhcnQoJ2xlZnQnKVwiXG4gICAgKG1vdXNldXApPVwic3RvcFNjcm9sbCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wU2Nyb2xsKClcIlxuICAgICh0b3VjaHN0YXJ0KT1cInNjcm9sbFN0YXJ0KCdsZWZ0JylcIlxuICAgICh0b3VjaGVuZCk9XCJzdG9wU2Nyb2xsKClcIlxuICAvPlxufVxuXG48ZGl2XG4gICNjb250YWluZXJcbiAgY2xhc3M9XCJ1aUFjdGlvbkJ1dHRvbnNDb250YWluZXJcIlxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgIHNjcm9sbGFibGVDb250ZW50OiBzY3JvbGxPbldyYXAsXG4gICAgdmVydGljYWxUb29sYmFyOiBpc1ZlcnRpY2FsLFxuICAgIGhvcml6b250YWxUb29sYmFyOiBpc0hvcml6b250YWwsXG4gICAgYWxpZ25lZFN0YXJ0OiBpc0FsaWduZWRTdGFydCxcbiAgICBhbGlnbmVkRW5kOiBpc0FsaWduZWRFbmQsXG4gIH1cIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1aUFjdGlvbk1vZGVsIG9mIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgQGlmICh1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLmNvZGUgPT09ICd0aGVtZVNlbGVjdG9yJykge1xuICAgICAgPHRoZW1lLXNlbGVjdG9yIFttb2RlbF09XCJ1aUFjdGlvbk1vZGVsXCI+PC90aGVtZS1zZWxlY3Rvcj5cbiAgICB9IEBlbHNlIGlmICh1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLnN1YkFjdGlvbnMgJiYgdWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51VHlwZXM7IGNvbnRleHQ6IHsgdWlBY3Rpb25Nb2RlbDogdWlBY3Rpb25Nb2RlbCB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoKVwiXG4gICAgICAgIFtkZXNjcmlwdG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvciFcIlxuICAgICAgICBbY29kZV09XCJ1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLmNvZGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiISF1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgW2FkZGVkQ3NzQ2xhc3NdPVwidWlBY3Rpb25Nb2RlbC5jc3NDbGFzc1wiXG4gICAgICAgIFt2aWV3QWN0aXZhdGVkXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24udmlld0FjdGl2YXRlZFwiXG4gICAgICAgIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCB1aUFjdGlvbk1vZGVsKVwiXG4gICAgICAgIChhY3Rpb25Eb3VibGVDbGljayk9XCJvbkFjdGlvbkRvdWJsZUNsaWNrZWQoJGV2ZW50LCB1aUFjdGlvbk1vZGVsKVwiXG4gICAgICA+XG4gICAgICA8L3VpLWFjdGlvbi1idXR0b24+XG4gICAgfVxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG5AaWYgKGlzU2Nyb2xsYWJsZSAmJiBzY3JvbGxPbldyYXApIHtcbiAgPHVpLWFjdGlvbi1idXR0b25cbiAgICBbZGlzYWJsZWRdPVwiIWlzU2Nyb2xsYWJsZVwiXG4gICAgW2Rlc2NyaXB0b3JdPVwiYnV0dG9uUmlnaHRcIlxuICAgIChhY3Rpb25DbGljayk9XCJzY3JvbGxSaWdodCgpXCJcbiAgICAobW91c2Vkb3duKT1cInNjcm9sbFN0YXJ0KCdyaWdodCcpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wU2Nyb2xsKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3BTY3JvbGwoKVwiXG4gICAgKHRvdWNoc3RhcnQpPVwic2Nyb2xsU3RhcnQoJ3JpZ2h0JylcIlxuICAgICh0b3VjaGVuZCk9XCJzdG9wU2Nyb2xsKClcIlxuICAvPlxufVxuXG48bmctdGVtcGxhdGUgI21lbnVUeXBlcyBsZXQtdWlBY3Rpb25Nb2RlbD1cInVpQWN0aW9uTW9kZWxcIj5cbiAgQHN3aXRjaCAodWlBY3Rpb25Nb2RlbD8udWlBY3Rpb24/LmRlc2NyaXB0b3I/Lm1lbnU/LnRyaWdnZXJUeXBlKSB7XG4gICAgQGNhc2UgKHRyaWdnZXJUeXBlLkhPVkVSKSB7XG4gICAgICA8dWktaG92ZXItbWVudVxuICAgICAgICAjbWVudVxuICAgICAgICBbdG9vbGJhcklkXT1cImlkXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Ib3ZlcigpXCJcbiAgICAgICAgW3RyaWdnZXJBY3Rpb25dPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvblwiXG4gICAgICAgIFtzdWJBY3Rpb25zXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyFcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgPjwvdWktaG92ZXItbWVudT5cbiAgICB9XG4gICAgQGNhc2UgKHRyaWdnZXJUeXBlLkNMSUNLKSB7XG4gICAgICA8dWktdGllcmVkLW1lbnVcbiAgICAgICAgI21lbnVcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Ib3ZlcigpXCJcbiAgICAgICAgW3RyaWdnZXJBY3Rpb25dPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvblwiXG4gICAgICAgIFtzdWJBY3Rpb25zXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyFcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgPjwvdWktdGllcmVkLW1lbnU+XG4gICAgfVxuICAgIEBkZWZhdWx0IHtcbiAgICAgIDx1aS10aWVyZWQtbWVudVxuICAgICAgICAjbWVudVxuICAgICAgICAobW91c2VlbnRlcik9XCJvbkhvdmVyKClcIlxuICAgICAgICBbdHJpZ2dlckFjdGlvbl09XCJ1aUFjdGlvbk1vZGVsLnVpQWN0aW9uXCJcbiAgICAgICAgW3N1YkFjdGlvbnNdPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zIVwiXG4gICAgICAgIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCB1aUFjdGlvbk1vZGVsKVwiXG4gICAgICA+PC91aS10aWVyZWQtbWVudT5cbiAgICB9XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2ZpbGUtZWRpdG9yLXRvb2xiYXIvZmlsZS1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7QUFRMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHdCQUF3QjtJQUx4RTs7UUFRWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUVwQyxDQUFDO0tBWU47SUFWVSxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQTRCO1FBQ3BELGFBQWEsQ0FBQyxRQUFRLEdBQUc7WUFDdkIsR0FBRyxhQUFhLENBQUMsUUFBUTtZQUN6QixNQUFNLEVBQUU7Z0JBQ04sR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTzthQUN2QjtTQUNGLENBQUM7UUFDRixNQUFNLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0FoQlUsMEJBQTBCO21HQUExQiwwQkFBMEIsMkpDVHZDLHd4R0E2RkE7OzRGRHBGYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQUt0QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuLi91aS1hY3Rpb24ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmaWxlLWVkaXRvci10b29sYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZUVkaXRvclRvb2xiYXJDb21wb25lbnQgZXh0ZW5kcyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGRhdGFVcmkhOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgdWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbDtcclxuICB9PigpO1xyXG5cclxuICBvdmVycmlkZSBhc3luYyBmaXJlQWN0aW9uKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHVpQWN0aW9uTW9kZWwudWlBY3Rpb24gPSB7XHJcbiAgICAgIC4uLnVpQWN0aW9uTW9kZWwudWlBY3Rpb24sXHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIC4uLnVpQWN0aW9uTW9kZWwudWlBY3Rpb24ucGFyYW1zLFxyXG4gICAgICAgIF9kYXRhVXJpOiB0aGlzLmRhdGFVcmksXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgYXdhaXQgc3VwZXIuZmlyZUFjdGlvbih1aUFjdGlvbk1vZGVsKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChpc1Njcm9sbGFibGUgJiYgc2Nyb2xsT25XcmFwKSB7XHJcbiAgPHVpLWFjdGlvbi1idXR0b25cclxuICAgIFtkaXNhYmxlZF09XCIhaXNTY3JvbGxhYmxlXCJcclxuICAgIFtkZXNjcmlwdG9yXT1cImJ1dHRvbkxlZnRcIlxyXG4gICAgKGFjdGlvbkNsaWNrKT1cInNjcm9sbExlZnQoKVwiXHJcbiAgICAobW91c2Vkb3duKT1cInNjcm9sbFN0YXJ0KCdsZWZ0JylcIlxyXG4gICAgKG1vdXNldXApPVwic3RvcFNjcm9sbCgpXCJcclxuICAgIChtb3VzZWxlYXZlKT1cInN0b3BTY3JvbGwoKVwiXHJcbiAgICAodG91Y2hzdGFydCk9XCJzY3JvbGxTdGFydCgnbGVmdCcpXCJcclxuICAgICh0b3VjaGVuZCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gIC8+XHJcbn1cclxuXHJcbjxkaXZcclxuICAjY29udGFpbmVyXHJcbiAgY2xhc3M9XCJ1aUFjdGlvbkJ1dHRvbnNDb250YWluZXJcIlxyXG4gIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgIHNjcm9sbGFibGVDb250ZW50OiBzY3JvbGxPbldyYXAsXHJcbiAgICB2ZXJ0aWNhbFRvb2xiYXI6IGlzVmVydGljYWwsXHJcbiAgICBob3Jpem9udGFsVG9vbGJhcjogaXNIb3Jpem9udGFsLFxyXG4gICAgYWxpZ25lZFN0YXJ0OiBpc0FsaWduZWRTdGFydCxcclxuICAgIGFsaWduZWRFbmQ6IGlzQWxpZ25lZEVuZCxcclxuICB9XCJcclxuPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVpQWN0aW9uTW9kZWwgb2YgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgIEBpZiAodWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5jb2RlID09PSAndGhlbWVTZWxlY3RvcicpIHtcclxuICAgICAgPHRoZW1lLXNlbGVjdG9yIFttb2RlbF09XCJ1aUFjdGlvbk1vZGVsXCI+PC90aGVtZS1zZWxlY3Rvcj5cclxuICAgIH0gQGVsc2UgaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyAmJiB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLnN1YkFjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51VHlwZXM7IGNvbnRleHQ6IHsgdWlBY3Rpb25Nb2RlbDogdWlBY3Rpb25Nb2RlbCB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDx1aS1hY3Rpb24tYnV0dG9uXHJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Ib3ZlcigpXCJcclxuICAgICAgICBbZGVzY3JpcHRvcl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhXCJcclxuICAgICAgICBbY29kZV09XCJ1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLmNvZGVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhIXVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWRcIlxyXG4gICAgICAgIFthZGRlZENzc0NsYXNzXT1cInVpQWN0aW9uTW9kZWwuY3NzQ2xhc3NcIlxyXG4gICAgICAgIFt2aWV3QWN0aXZhdGVkXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24udmlld0FjdGl2YXRlZFwiXHJcbiAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcclxuICAgICAgICAoYWN0aW9uRG91YmxlQ2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvdWktYWN0aW9uLWJ1dHRvbj5cclxuICAgIH1cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG5AaWYgKGlzU2Nyb2xsYWJsZSAmJiBzY3JvbGxPbldyYXApIHtcclxuICA8dWktYWN0aW9uLWJ1dHRvblxyXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Njcm9sbGFibGVcIlxyXG4gICAgW2Rlc2NyaXB0b3JdPVwiYnV0dG9uUmlnaHRcIlxyXG4gICAgKGFjdGlvbkNsaWNrKT1cInNjcm9sbFJpZ2h0KClcIlxyXG4gICAgKG1vdXNlZG93bik9XCJzY3JvbGxTdGFydCgncmlnaHQnKVwiXHJcbiAgICAobW91c2V1cCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcFNjcm9sbCgpXCJcclxuICAgICh0b3VjaHN0YXJ0KT1cInNjcm9sbFN0YXJ0KCdyaWdodCcpXCJcclxuICAgICh0b3VjaGVuZCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gIC8+XHJcbn1cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbWVudVR5cGVzIGxldC11aUFjdGlvbk1vZGVsPVwidWlBY3Rpb25Nb2RlbFwiPlxyXG4gIEBzd2l0Y2ggKHVpQWN0aW9uTW9kZWw/LnVpQWN0aW9uPy5kZXNjcmlwdG9yPy5tZW51Py50cmlnZ2VyVHlwZSkge1xyXG4gICAgQGNhc2UgKHRyaWdnZXJUeXBlLkhPVkVSKSB7XHJcbiAgICAgIDx1aS1ob3Zlci1tZW51XHJcbiAgICAgICAgI21lbnVcclxuICAgICAgICBbdG9vbGJhcklkXT1cImlkXCJcclxuICAgICAgICAobW91c2VlbnRlcik9XCJvbkhvdmVyKClcIlxyXG4gICAgICAgIFt0cmlnZ2VyQWN0aW9uXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb25cIlxyXG4gICAgICAgIFtzdWJBY3Rpb25zXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyFcIlxyXG4gICAgICAgIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCB1aUFjdGlvbk1vZGVsKVwiXHJcbiAgICAgID48L3VpLWhvdmVyLW1lbnU+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAodHJpZ2dlclR5cGUuQ0xJQ0spIHtcclxuICAgICAgPHVpLXRpZXJlZC1tZW51XHJcbiAgICAgICAgI21lbnVcclxuICAgICAgICAobW91c2VlbnRlcik9XCJvbkhvdmVyKClcIlxyXG4gICAgICAgIFt0cmlnZ2VyQWN0aW9uXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb25cIlxyXG4gICAgICAgIFtzdWJBY3Rpb25zXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyFcIlxyXG4gICAgICAgIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCB1aUFjdGlvbk1vZGVsKVwiXHJcbiAgICAgID48L3VpLXRpZXJlZC1tZW51PlxyXG4gICAgfVxyXG4gICAgQGRlZmF1bHQge1xyXG4gICAgICA8dWktdGllcmVkLW1lbnVcclxuICAgICAgICAjbWVudVxyXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoKVwiXHJcbiAgICAgICAgW3RyaWdnZXJBY3Rpb25dPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvblwiXHJcbiAgICAgICAgW3N1YkFjdGlvbnNdPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zIVwiXHJcbiAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcclxuICAgICAgPjwvdWktdGllcmVkLW1lbnU+XHJcbiAgICB9XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -4,4 +4,4 @@ export var ButtonIconPlaceholder;
4
4
  ButtonIconPlaceholder["POST"] = "POST";
5
5
  ButtonIconPlaceholder["BOTH"] = "BOTH";
6
6
  })(ButtonIconPlaceholder || (ButtonIconPlaceholder = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24tcGxhY2Vob2xkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vYnV0dG9uLWljb24tcGxhY2Vob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixvQ0FBVyxDQUFBO0lBQ1gsc0NBQWEsQ0FBQTtJQUNiLHNDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUloQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEJ1dHRvbkljb25QbGFjZWhvbGRlciB7XG4gIFBSRSA9ICdQUkUnLFxuICBQT1NUID0gJ1BPU1QnLFxuICBCT1RIID0gJ0JPVEgnLFxufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24tcGxhY2Vob2xkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vYnV0dG9uLWljb24tcGxhY2Vob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixvQ0FBVyxDQUFBO0lBQ1gsc0NBQWEsQ0FBQTtJQUNiLHNDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUloQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEJ1dHRvbkljb25QbGFjZWhvbGRlciB7XHJcbiAgUFJFID0gJ1BSRScsXHJcbiAgUE9TVCA9ICdQT1NUJyxcclxuICBCT1RIID0gJ0JPVEgnLFxyXG59XHJcbiJdfQ==
@@ -240,11 +240,11 @@ export class UiActionButtonComponent {
240
240
  return 'rgb(from var(--' + this.getColor() + '-color) r g b / 0.8)';
241
241
  }
242
242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionButtonComponent, selector: "ui-action-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: false, transformFunction: null }, viewActivated: { classPropertyName: "viewActivated", publicName: "viewActivated", isSignal: true, isRequired: false, transformFunction: null }, addedCssClass: { classPropertyName: "addedCssClass", publicName: "addedCssClass", isSignal: true, isRequired: false, transformFunction: null }, addBasicClasses: { classPropertyName: "addBasicClasses", publicName: "addBasicClasses", isSignal: true, isRequired: false, transformFunction: null }, iconPlaceholder: { classPropertyName: "iconPlaceholder", publicName: "iconPlaceholder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClick: "actionClick", actionDoubleClick: "actionDoubleClick" }, ngImport: i0, template: "@if (effectiveDescriptor().type === 'SEPARATOR') {\n <div class=\"separator\">\n @if (effectiveDescriptor().title) {\n <span class=\"separator-label\" [style.color]=\"getSeparatorColor()\">\n {{ effectiveDescriptor().title }}\n </span>\n }\n <hr class=\"separator-line\" [style.border-top-color]=\"getSeparatorColor()\" />\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\n}\n\n<ng-template #buttonWithBadge>\n @if (effectiveDescriptor() && effectiveDescriptor().badge) {\n <ui-badge [descriptor]=\"effectiveDescriptor().badge\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n </ui-badge>\n } @else {\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #buttonTemplate>\n @if (compLib === componentLibrary.PRIMENG) {\n <button\n pButton\n pRipple\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\n [disabled]=\"!!disabled()\"\n (click)=\"onActionClicked($event, mainActionModel())\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [autofocus]=\"false\"\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\n [ngClass]=\"getCombinedClasses()\"\n [style.justify-content]=\"getJustifyContent()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\n type=\"button\"\n [attr.data-testid]=\"code() ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n } @else {\n <button\n mat-button\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\n [color]=\"effectiveDescriptor().color\"\n [disabled]=\"!!disabled()\"\n (click)=\"onActionClicked($event, mainActionModel())\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\n [ngClass]=\"getCombinedClasses()\"\n [style.justify-content]=\"getJustifyContent()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\n type=\"button\"\n [attr.data-testid]=\"code() ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n }\n</ng-template>\n\n<ng-template #text>\n @if (renderPre() || renderPlaceholderPre()) {\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n {{ effectiveDescriptor().title }}\n @if (renderPost() || renderPlaceholderPost()) {\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n</ng-template>\n\n<ng-template #buttonIcon>\n @if (renderPlaceholderPre() || renderPlaceholderPost()) {\n <smart-icon></smart-icon>\n } @else if (effectiveDescriptor().iconResource) {\n <smart-icon\n [imageResource]=\"effectiveDescriptor().iconResource\"\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\n ></smart-icon>\n } @else {\n <smart-icon\n [icon]=\"effectiveDescriptor().icon\"\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\n ></smart-icon>\n }\n</ng-template>\n", styles: [":host{--text-color: black}:host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}.separator{display:flex;flex-direction:column;padding:0 .5rem;width:100%}.separator-label{font-size:.7rem;color:#888;padding-bottom:.15rem}.separator-line{border:none;border-top:1px solid #e2e5e9;margin:0}:host ::ng-deep button.sb4-view-activated{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2));border-color:var(--sb4-view-activated-border-color, transparent);font-weight:var(--sb4-view-activated-font-weight, 600)}:host ::ng-deep button.sb4-view-activated,:host ::ng-deep button.sb4-view-activated *{color:var(--sb4-view-activated-color, var(--primary-color-text, #ffffff))!important}:host ::ng-deep button.sb4-view-activated:hover{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2))!important;box-shadow:var( --sb4-view-activated-hover-shadow, 0 2px 4px -1px rgba(0, 0, 0, .2), 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12) )}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiBadgeComponent, selector: "ui-badge", inputs: ["descriptor", "inputValue"] }, { kind: "directive", type: i6.SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }] }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionButtonComponent, selector: "ui-action-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: false, transformFunction: null }, viewActivated: { classPropertyName: "viewActivated", publicName: "viewActivated", isSignal: true, isRequired: false, transformFunction: null }, addedCssClass: { classPropertyName: "addedCssClass", publicName: "addedCssClass", isSignal: true, isRequired: false, transformFunction: null }, addBasicClasses: { classPropertyName: "addBasicClasses", publicName: "addBasicClasses", isSignal: true, isRequired: false, transformFunction: null }, iconPlaceholder: { classPropertyName: "iconPlaceholder", publicName: "iconPlaceholder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClick: "actionClick", actionDoubleClick: "actionDoubleClick" }, ngImport: i0, template: "@if (effectiveDescriptor().type === 'SEPARATOR') {\r\n <div class=\"separator\">\r\n @if (effectiveDescriptor().title) {\r\n <span class=\"separator-label\" [style.color]=\"getSeparatorColor()\">\r\n {{ effectiveDescriptor().title }}\r\n </span>\r\n }\r\n <hr class=\"separator-line\" [style.border-top-color]=\"getSeparatorColor()\" />\r\n </div>\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\r\n}\r\n\r\n<ng-template #buttonWithBadge>\r\n @if (effectiveDescriptor() && effectiveDescriptor().badge) {\r\n <ui-badge [descriptor]=\"effectiveDescriptor().badge\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </ui-badge>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonTemplate>\r\n @if (compLib === componentLibrary.PRIMENG) {\r\n <button\r\n pButton\r\n pRipple\r\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\r\n [disabled]=\"!!disabled()\"\r\n (click)=\"onActionClicked($event, mainActionModel())\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [autofocus]=\"false\"\r\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\r\n [ngClass]=\"getCombinedClasses()\"\r\n [style.justify-content]=\"getJustifyContent()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code() ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n } @else {\r\n <button\r\n mat-button\r\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\r\n [color]=\"effectiveDescriptor().color\"\r\n [disabled]=\"!!disabled()\"\r\n (click)=\"onActionClicked($event, mainActionModel())\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\r\n [ngClass]=\"getCombinedClasses()\"\r\n [style.justify-content]=\"getJustifyContent()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code() ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #text>\r\n @if (renderPre() || renderPlaceholderPre()) {\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n {{ effectiveDescriptor().title }}\r\n @if (renderPost() || renderPlaceholderPost()) {\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonIcon>\r\n @if (renderPlaceholderPre() || renderPlaceholderPost()) {\r\n <smart-icon></smart-icon>\r\n } @else if (effectiveDescriptor().iconResource) {\r\n <smart-icon\r\n [imageResource]=\"effectiveDescriptor().iconResource\"\r\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\r\n ></smart-icon>\r\n } @else {\r\n <smart-icon\r\n [icon]=\"effectiveDescriptor().icon\"\r\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\r\n ></smart-icon>\r\n }\r\n</ng-template>\r\n", styles: [":host{--text-color: black}:host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}.separator{display:flex;flex-direction:column;padding:0 .5rem;width:100%}.separator-label{font-size:.7rem;color:#888;padding-bottom:.15rem}.separator-line{border:none;border-top:1px solid #e2e5e9;margin:0}:host ::ng-deep button.sb4-view-activated{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2));border-color:var(--sb4-view-activated-border-color, transparent);font-weight:var(--sb4-view-activated-font-weight, 600)}:host ::ng-deep button.sb4-view-activated,:host ::ng-deep button.sb4-view-activated *{color:var(--sb4-view-activated-color, var(--primary-color-text, #ffffff))!important}:host ::ng-deep button.sb4-view-activated:hover{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2))!important;box-shadow:var( --sb4-view-activated-hover-shadow, 0 2px 4px -1px rgba(0, 0, 0, .2), 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12) )}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiBadgeComponent, selector: "ui-badge", inputs: ["descriptor", "inputValue"] }, { kind: "directive", type: i6.SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }] }); }
244
244
  }
245
245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionButtonComponent, decorators: [{
246
246
  type: Component,
247
- args: [{ selector: 'ui-action-button', template: "@if (effectiveDescriptor().type === 'SEPARATOR') {\n <div class=\"separator\">\n @if (effectiveDescriptor().title) {\n <span class=\"separator-label\" [style.color]=\"getSeparatorColor()\">\n {{ effectiveDescriptor().title }}\n </span>\n }\n <hr class=\"separator-line\" [style.border-top-color]=\"getSeparatorColor()\" />\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\n}\n\n<ng-template #buttonWithBadge>\n @if (effectiveDescriptor() && effectiveDescriptor().badge) {\n <ui-badge [descriptor]=\"effectiveDescriptor().badge\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n </ui-badge>\n } @else {\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #buttonTemplate>\n @if (compLib === componentLibrary.PRIMENG) {\n <button\n pButton\n pRipple\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\n [disabled]=\"!!disabled()\"\n (click)=\"onActionClicked($event, mainActionModel())\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [autofocus]=\"false\"\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\n [ngClass]=\"getCombinedClasses()\"\n [style.justify-content]=\"getJustifyContent()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\n type=\"button\"\n [attr.data-testid]=\"code() ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n } @else {\n <button\n mat-button\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\n [color]=\"effectiveDescriptor().color\"\n [disabled]=\"!!disabled()\"\n (click)=\"onActionClicked($event, mainActionModel())\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\n [ngClass]=\"getCombinedClasses()\"\n [style.justify-content]=\"getJustifyContent()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\n type=\"button\"\n [attr.data-testid]=\"code() ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n }\n</ng-template>\n\n<ng-template #text>\n @if (renderPre() || renderPlaceholderPre()) {\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n {{ effectiveDescriptor().title }}\n @if (renderPost() || renderPlaceholderPost()) {\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n</ng-template>\n\n<ng-template #buttonIcon>\n @if (renderPlaceholderPre() || renderPlaceholderPost()) {\n <smart-icon></smart-icon>\n } @else if (effectiveDescriptor().iconResource) {\n <smart-icon\n [imageResource]=\"effectiveDescriptor().iconResource\"\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\n ></smart-icon>\n } @else {\n <smart-icon\n [icon]=\"effectiveDescriptor().icon\"\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\n ></smart-icon>\n }\n</ng-template>\n", styles: [":host{--text-color: black}:host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}.separator{display:flex;flex-direction:column;padding:0 .5rem;width:100%}.separator-label{font-size:.7rem;color:#888;padding-bottom:.15rem}.separator-line{border:none;border-top:1px solid #e2e5e9;margin:0}:host ::ng-deep button.sb4-view-activated{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2));border-color:var(--sb4-view-activated-border-color, transparent);font-weight:var(--sb4-view-activated-font-weight, 600)}:host ::ng-deep button.sb4-view-activated,:host ::ng-deep button.sb4-view-activated *{color:var(--sb4-view-activated-color, var(--primary-color-text, #ffffff))!important}:host ::ng-deep button.sb4-view-activated:hover{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2))!important;box-shadow:var( --sb4-view-activated-hover-shadow, 0 2px 4px -1px rgba(0, 0, 0, .2), 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12) )}\n"] }]
247
+ args: [{ selector: 'ui-action-button', template: "@if (effectiveDescriptor().type === 'SEPARATOR') {\r\n <div class=\"separator\">\r\n @if (effectiveDescriptor().title) {\r\n <span class=\"separator-label\" [style.color]=\"getSeparatorColor()\">\r\n {{ effectiveDescriptor().title }}\r\n </span>\r\n }\r\n <hr class=\"separator-line\" [style.border-top-color]=\"getSeparatorColor()\" />\r\n </div>\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\r\n}\r\n\r\n<ng-template #buttonWithBadge>\r\n @if (effectiveDescriptor() && effectiveDescriptor().badge) {\r\n <ui-badge [descriptor]=\"effectiveDescriptor().badge\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </ui-badge>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonTemplate>\r\n @if (compLib === componentLibrary.PRIMENG) {\r\n <button\r\n pButton\r\n pRipple\r\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\r\n [disabled]=\"!!disabled()\"\r\n (click)=\"onActionClicked($event, mainActionModel())\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [autofocus]=\"false\"\r\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\r\n [ngClass]=\"getCombinedClasses()\"\r\n [style.justify-content]=\"getJustifyContent()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code() ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n } @else {\r\n <button\r\n mat-button\r\n [smartTooltip]=\"effectiveDescriptor().tooltip\"\r\n [color]=\"effectiveDescriptor().color\"\r\n [disabled]=\"!!disabled()\"\r\n (click)=\"onActionClicked($event, mainActionModel())\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [ngStyle]=\"calcStyle(effectiveDescriptor().style)\"\r\n [ngClass]=\"getCombinedClasses()\"\r\n [style.justify-content]=\"getJustifyContent()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass() }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code() ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #text>\r\n @if (renderPre() || renderPlaceholderPre()) {\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n {{ effectiveDescriptor().title }}\r\n @if (renderPost() || renderPlaceholderPost()) {\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonIcon>\r\n @if (renderPlaceholderPre() || renderPlaceholderPost()) {\r\n <smart-icon></smart-icon>\r\n } @else if (effectiveDescriptor().iconResource) {\r\n <smart-icon\r\n [imageResource]=\"effectiveDescriptor().iconResource\"\r\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\r\n ></smart-icon>\r\n } @else {\r\n <smart-icon\r\n [icon]=\"effectiveDescriptor().icon\"\r\n [color]=\"effectiveDescriptor().iconColor || effectiveDescriptor().color\"\r\n ></smart-icon>\r\n }\r\n</ng-template>\r\n", styles: [":host{--text-color: black}:host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}.separator{display:flex;flex-direction:column;padding:0 .5rem;width:100%}.separator-label{font-size:.7rem;color:#888;padding-bottom:.15rem}.separator-line{border:none;border-top:1px solid #e2e5e9;margin:0}:host ::ng-deep button.sb4-view-activated{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2));border-color:var(--sb4-view-activated-border-color, transparent);font-weight:var(--sb4-view-activated-font-weight, 600)}:host ::ng-deep button.sb4-view-activated,:host ::ng-deep button.sb4-view-activated *{color:var(--sb4-view-activated-color, var(--primary-color-text, #ffffff))!important}:host ::ng-deep button.sb4-view-activated:hover{background:var(--sb4-view-activated-bg, var(--primary-color, #1976d2))!important;box-shadow:var( --sb4-view-activated-hover-shadow, 0 2px 4px -1px rgba(0, 0, 0, .2), 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12) )}\n"] }]
248
248
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i7.ComponentLibrary, decorators: [{
249
249
  type: Inject,
250
250
  args: [COMPONENT_LIBRARY]
@@ -255,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
255
255
  }], actionDoubleClick: [{
256
256
  type: Output
257
257
  }] } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFPbEUsTUFBTSxPQUFPLHVCQUF1QjtJQTREbEMsWUFDUyxjQUFpQyxFQUNELE9BQTBCO1FBRDFELG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQTVEbEMsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLEVBQVcsQ0FB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QUNuQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUNMLGVBQWUsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJO1lBQzlDLGVBQWUsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLGVBQWUsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxlQUFlLEtBQUsscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEQsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksZUFBZSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQztJQUN0RSxDQUFDOytHQXhSVSx1QkFBdUIsbURBOER4QixpQkFBaUI7bUdBOURoQix1QkFBdUIsNmxDQ3pCcEMsd2dHQXVGQTs7NEZEOURhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQWtFekIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7eUNBbkQ1QixXQUFXO3NCQUFwQixNQUFNO2dCQU1HLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVaUFjdGlvbk1vZGVsIH0gZnJvbSAnLi4vdWktYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcbmltcG9ydCB7IFVpQWN0aW9uQnV0dG9uVHlwZSB9IGZyb20gJy4uLy4uL2FwaS9tb2RlbC91aUFjdGlvbkJ1dHRvblR5cGUnO1xuaW1wb3J0IHsgSWNvblBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vYXBpL21vZGVsL2ljb25Qb3NpdGlvbic7XG5pbXBvcnQgeyBTdHlsZSwgVWlBY3Rpb24sIFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBTbWFydFN0eWxlVXRpbGl0eSB9IGZyb20gJy4uLy4uL3V0aWxpdHkvc21hcnQtc3R5bGUtdXRpbGl0eSc7XG5pbXBvcnQgeyBCdXR0b25JY29uUGxhY2Vob2xkZXIgfSBmcm9tICcuL2J1dHRvbi1pY29uLXBsYWNlaG9sZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktYWN0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3VpLWFjdGlvbi1idXR0b24uY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFVpQWN0aW9uQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgZGVzY3JpcHRvciA9IGlucHV0LnJlcXVpcmVkPFVpQWN0aW9uRGVzY3JpcHRvcj4oKTtcbiAgY29kZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgdmlld0FjdGl2YXRlZCA9IGlucHV0PGJvb2xlYW4gfCBudWxsPigpO1xuICBhZGRlZENzc0NsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICBhZGRCYXNpY0NsYXNzZXMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgaWNvblBsYWNlaG9sZGVyID0gaW5wdXQ8QnV0dG9uSWNvblBsYWNlaG9sZGVyPigpO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGV2ZW50OiBNb3VzZUV2ZW50O1xuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG4gICAgY29kZT86IHN0cmluZztcbiAgICB1aUFjdGlvbj86IFVpQWN0aW9uO1xuICB9PigpO1xuICBAT3V0cHV0KCkgYWN0aW9uRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBldmVudDogYW55O1xuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG4gICAgY29kZT86IHN0cmluZztcbiAgfT4oKTtcblxuICBjb21wb25lbnRMaWJyYXJ5ID0gQ29tcG9uZW50TGlicmFyeTtcbiAgY29tcExpYjogQ29tcG9uZW50TGlicmFyeTtcblxuICBwcmVzc2VkQnV0dG9uQWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcbiAgbWVudU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGVmZmVjdGl2ZURlc2NyaXB0b3IgPSBjb21wdXRlZDxVaUFjdGlvbkRlc2NyaXB0b3I+KCgpID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5kZXNjcmlwdG9yKCk7XG4gICAgY29uc3QgY29kZSA9IHRoaXMuY29kZSgpO1xuXG4gICAgY29uc3QgZGVmYXVsdHM6IFBhcnRpYWw8VWlBY3Rpb25EZXNjcmlwdG9yPiA9IHtcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5kZXNjcmlwdG9yLFxuICAgICAgdGl0bGU6IGRlc2NyaXB0b3I/LnRpdGxlID8/IGRlZmF1bHRzLnRpdGxlLFxuICAgICAgY29sb3I6IGRlc2NyaXB0b3I/LmNvbG9yID8/IGRlZmF1bHRzLmNvbG9yLFxuICAgICAgdHlwZTogZGVzY3JpcHRvcj8udHlwZSA/PyBkZWZhdWx0cy50eXBlLFxuICAgIH0gYXMgVWlBY3Rpb25EZXNjcmlwdG9yO1xuICB9KTtcblxuICBtYWluQWN0aW9uTW9kZWwgPSBjb21wdXRlZDxVaUFjdGlvbk1vZGVsPihcbiAgICAoKSA9PlxuICAgICAgKHtcbiAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCksXG4gICAgICAgIHVpQWN0aW9uOiB7XG4gICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCksXG4gICAgICAgICAgY29kZTogdGhpcy5jb2RlKCksXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQoKSA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pIGFzIFVpQWN0aW9uTW9kZWxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIEBPcHRpb25hbCgpIGNvbXBMaWI/OiBDb21wb25lbnRMaWJyYXJ5XG4gICkge1xuICAgIHRoaXMuY29tcExpYiA9IGNvbXBMaWIgPz8gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBhc3luYyBvbkFjdGlvbkNsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQsIG1vZGVsOiBVaUFjdGlvbk1vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgY29kZTogbW9kZWwudWlBY3Rpb24uY29kZSxcbiAgICAgIGRlc2NyaXB0b3I6IG1vZGVsLmRlc2NyaXB0b3IhLFxuICAgIH0pO1xuICB9XG5cbiAgb25BY3Rpb25Eb3VibGVDbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkRvdWJsZUNsaWNrLmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICBjb2RlOiB0aGlzLmNvZGUoKSxcbiAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpLFxuICAgIH0pO1xuICB9XG5cbiAgaWNvblBvc2l0aW9uKCk6IHR5cGVvZiBJY29uUG9zaXRpb24ge1xuICAgIHJldHVybiBJY29uUG9zaXRpb247XG4gIH1cblxuICBpc09ubHlJY29uKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKT8udHlwZTtcbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLklDT04gfHxcbiAgICAgIHR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQiB8fFxuICAgICAgdHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLkZBQlxuICAgICk7XG4gIH1cblxuICBnZXRidG5DbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5hZGRCYXNpY0NsYXNzZXMoKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCkuY29sb3I7XG4gICAgaWYgKGNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3AtYnV0dG9uLScgKyBjb2xvciArICcgc2I0LScgKyBjb2xvcjtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0VHlwZSgpOiBhbnkge1xuICAgIGlmICghdGhpcy5hZGRCYXNpY0NsYXNzZXMoKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORykge1xuICAgICAgc3dpdGNoICh0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKS50eXBlKSB7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3NiNC1ub3JtYWwnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtZmxhdCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtc3Ryb2tlZCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LW1pbmlmYWInOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkFCOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LWZhYic6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LWljb24nOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3NiNC1iYXNpYyc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKS50eXBlKSB7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtYnV0dG9uIHNiNC1ub3JtYWwnO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GTEFUOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1mbGF0LWJ1dHRvbiBzYjQtZmxhdCc7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtcmFpc2VkLWJ1dHRvbiBzYjQtcmFpc2VkJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtc3Ryb2tlZC1idXR0b24gc2I0LXN0cm9rZWQnO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1pY29uLWJ1dHRvbiBzYjQtaWNvbic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1taW5pLWZhYiBzYjQtbWluaWZhYic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZBQjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmFiIHNiNC1mYWInO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBgbWF0LWJ1dHRvbiBzYjQtYmFzaWNgO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhbGNTdHlsZShzdHlsZT86IFN0eWxlKTogYW55IHtcbiAgICByZXR1cm4gU21hcnRTdHlsZVV0aWxpdHkuZ2V0TmdTdHlsZXMoc3R5bGUpO1xuICB9XG4gIGNhbGNDbGFzc2VzKHN0eWxlPzogU3R5bGUpOiBhbnkge1xuICAgIHJldHVybiBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ0NsYXNzZXMoc3R5bGUpO1xuICB9XG5cbiAgZ2V0Q29tYmluZWRDbGFzc2VzKCk6IGFueSB7XG4gICAgY29uc3QgdHlwZUNsYXNzZXMgPSB0aGlzLmdldFR5cGUoKTtcbiAgICBjb25zdCBzdHlsZUNsYXNzZXMgPSB0aGlzLmNhbGNDbGFzc2VzKHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpLnN0eWxlKTtcblxuICAgIC8vIE5vcm1hbGl6ZSB0eXBlQ2xhc3NlcyB0byBvYmplY3RcbiAgICBjb25zdCB0eXBlT2JqID1cbiAgICAgIHR5cGVvZiB0eXBlQ2xhc3NlcyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB0eXBlQ2xhc3Nlcy5zcGxpdCgnICcpLnJlZHVjZSgoYWNjLCBjbHMpID0+ICh7IC4uLmFjYywgW2Nsc106IHRydWUgfSksIHt9KVxuICAgICAgICA6IHR5cGVDbGFzc2VzO1xuXG4gICAgLy8gVmlldy1hY3RpdmF0aW9uIGNsYXNzZXMsIG9ydGhvZ29uYWwgdG8gdGhlIGRlc2NyaXB0b3IudHlwZSBsb29rIGNsYXNzZXMgYWJvdmUuXG4gICAgY29uc3Qgdmlld0FjdGl2YXRlZCA9IHRoaXMudmlld0FjdGl2YXRlZCgpO1xuICAgIGNvbnN0IGlzT3BlbmVyID0gdmlld0FjdGl2YXRlZCAhPT0gbnVsbCAmJiB2aWV3QWN0aXZhdGVkICE9PSB1bmRlZmluZWQ7XG4gICAgY29uc3QgYWN0aXZhdGlvbkNsYXNzZXMgPSB7XG4gICAgICAnc2I0LXZpZXctb3BlbmVyJzogaXNPcGVuZXIsXG4gICAgICAnc2I0LXZpZXctYWN0aXZhdGVkJzogdmlld0FjdGl2YXRlZCA9PT0gdHJ1ZSxcbiAgICAgICdzYjQtdmlldy1ub3QtYWN0aXZhdGVkJzogdmlld0FjdGl2YXRlZCA9PT0gZmFsc2UsXG4gICAgfTtcblxuICAgIHJldHVybiB7IC4uLnR5cGVPYmosIC4uLnN0eWxlQ2xhc3NlcywgLi4uYWN0aXZhdGlvbkNsYXNzZXMgfTtcbiAgfVxuXG4gIHJlbmRlclByZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBJY29uUG9zaXRpb24uUFJFICYmXG4gICAgICAoZGVzY3JpcHRvci5pY29uICE9IG51bGwgfHwgZGVzY3JpcHRvci5pY29uUmVzb3VyY2UgIT0gbnVsbClcbiAgICApO1xuICB9XG5cbiAgcmVuZGVyUG9zdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBJY29uUG9zaXRpb24uUE9TVCAmJlxuICAgICAgKGRlc2NyaXB0b3IuaWNvbiAhPSBudWxsIHx8IGRlc2NyaXB0b3IuaWNvblJlc291cmNlICE9IG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpPy5jb2xvciB8fCAndGV4dCc7XG4gIH1cblxuICByZW5kZXJQbGFjZWhvbGRlclByZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpY29uUGxhY2Vob2xkZXIgPSB0aGlzLmljb25QbGFjZWhvbGRlcigpO1xuICAgIHJldHVybiAoXG4gICAgICBpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QUkUgfHxcbiAgICAgIGljb25QbGFjZWhvbGRlciA9PT0gQnV0dG9uSWNvblBsYWNlaG9sZGVyLkJPVEhcbiAgICApO1xuICB9XG5cbiAgcmVuZGVyUGxhY2Vob2xkZXJQb3N0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGljb25QbGFjZWhvbGRlciA9IHRoaXMuaWNvblBsYWNlaG9sZGVyKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGljb25QbGFjZWhvbGRlciA9PT0gQnV0dG9uSWNvblBsYWNlaG9sZGVyLlBPU1QgfHxcbiAgICAgIGljb25QbGFjZWhvbGRlciA9PT0gQnV0dG9uSWNvblBsYWNlaG9sZGVyLkJPVEhcbiAgICApO1xuICB9XG5cbiAgZ2V0SnVzdGlmeUNvbnRlbnQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgaWNvblBsYWNlaG9sZGVyID0gdGhpcy5pY29uUGxhY2Vob2xkZXIoKTtcbiAgICBpZiAoIWljb25QbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmIChpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5CT1RIKSB7XG4gICAgICByZXR1cm4gJ2NlbnRlcic7XG4gICAgfVxuICAgIGlmIChpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QUkUpIHtcbiAgICAgIHJldHVybiAnZmxleC1zdGFydCc7XG4gICAgfVxuICAgIGlmIChpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QT1NUKSB7XG4gICAgICByZXR1cm4gJ2ZsZXgtZW5kJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRTZXBhcmF0b3JDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiAncmdiKGZyb20gdmFyKC0tJyArIHRoaXMuZ2V0Q29sb3IoKSArICctY29sb3IpIHIgZyBiIC8gMC44KSc7XG4gIH1cbn1cbiIsIkBpZiAoZWZmZWN0aXZlRGVzY3JpcHRvcigpLnR5cGUgPT09ICdTRVBBUkFUT1InKSB7XG4gIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj5cbiAgICBAaWYgKGVmZmVjdGl2ZURlc2NyaXB0b3IoKS50aXRsZSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3ItbGFiZWxcIiBbc3R5bGUuY29sb3JdPVwiZ2V0U2VwYXJhdG9yQ29sb3IoKVwiPlxuICAgICAgICB7eyBlZmZlY3RpdmVEZXNjcmlwdG9yKCkudGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgPGhyIGNsYXNzPVwic2VwYXJhdG9yLWxpbmVcIiBbc3R5bGUuYm9yZGVyLXRvcC1jb2xvcl09XCJnZXRTZXBhcmF0b3JDb2xvcigpXCIgLz5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbldpdGhCYWRnZVwiPjwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI2J1dHRvbldpdGhCYWRnZT5cbiAgQGlmIChlZmZlY3RpdmVEZXNjcmlwdG9yKCkgJiYgZWZmZWN0aXZlRGVzY3JpcHRvcigpLmJhZGdlKSB7XG4gICAgPHVpLWJhZGdlIFtkZXNjcmlwdG9yXT1cImVmZmVjdGl2ZURlc2NyaXB0b3IoKS5iYWRnZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC91aS1iYWRnZT5cbiAgfSBAZWxzZSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGU+XG4gIEBpZiAoY29tcExpYiA9PT0gY29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgcFJpcHBsZVxuICAgICAgW3NtYXJ0VG9vbHRpcF09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkudG9vbHRpcFwiXG4gICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZCgpXCJcbiAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCBtYWluQWN0aW9uTW9kZWwoKSlcIlxuICAgICAgKGRibGNsaWNrKT1cIm9uQWN0aW9uRG91YmxlQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgIFthdXRvZm9jdXNdPVwiZmFsc2VcIlxuICAgICAgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGVmZmVjdGl2ZURlc2NyaXB0b3IoKS5zdHlsZSlcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0Q29tYmluZWRDbGFzc2VzKClcIlxuICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRKdXN0aWZ5Q29udGVudCgpXCJcbiAgICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzKCkgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJjb2RlKCkgPz8gbnVsbFwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImlzT25seUljb24oKTsgdGhlbiBidXR0b25JY29uOyBlbHNlIHRleHRcIj48L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgfSBAZWxzZSB7XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgW3NtYXJ0VG9vbHRpcF09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkudG9vbHRpcFwiXG4gICAgICBbY29sb3JdPVwiZWZmZWN0aXZlRGVzY3JpcHRvcigpLmNvbG9yXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkKClcIlxuICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIG1haW5BY3Rpb25Nb2RlbCgpKVwiXG4gICAgICAoZGJsY2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudClcIlxuICAgICAgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGVmZmVjdGl2ZURlc2NyaXB0b3IoKS5zdHlsZSlcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0Q29tYmluZWRDbGFzc2VzKClcIlxuICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRKdXN0aWZ5Q29udGVudCgpXCJcbiAgICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzKCkgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJjb2RlKCkgPz8gbnVsbFwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImlzT25seUljb24oKTsgdGhlbiBidXR0b25JY29uOyBlbHNlIHRleHRcIj48L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0ZXh0PlxuICBAaWYgKHJlbmRlclByZSgpIHx8IHJlbmRlclBsYWNlaG9sZGVyUHJlKCkpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uSWNvblwiIC8+XG4gIH1cbiAge3sgZWZmZWN0aXZlRGVzY3JpcHRvcigpLnRpdGxlIH19XG4gIEBpZiAocmVuZGVyUG9zdCgpIHx8IHJlbmRlclBsYWNlaG9sZGVyUG9zdCgpKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbkljb24+XG4gIEBpZiAocmVuZGVyUGxhY2Vob2xkZXJQcmUoKSB8fCByZW5kZXJQbGFjZWhvbGRlclBvc3QoKSkge1xuICAgIDxzbWFydC1pY29uPjwvc21hcnQtaWNvbj5cbiAgfSBAZWxzZSBpZiAoZWZmZWN0aXZlRGVzY3JpcHRvcigpLmljb25SZXNvdXJjZSkge1xuICAgIDxzbWFydC1pY29uXG4gICAgICBbaW1hZ2VSZXNvdXJjZV09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvblJlc291cmNlXCJcbiAgICAgIFtjb2xvcl09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvbkNvbG9yIHx8IGVmZmVjdGl2ZURlc2NyaXB0b3IoKS5jb2xvclwiXG4gICAgPjwvc21hcnQtaWNvbj5cbiAgfSBAZWxzZSB7XG4gICAgPHNtYXJ0LWljb25cbiAgICAgIFtpY29uXT1cImVmZmVjdGl2ZURlc2NyaXB0b3IoKS5pY29uXCJcbiAgICAgIFtjb2xvcl09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvbkNvbG9yIHx8IGVmZmVjdGl2ZURlc2NyaXB0b3IoKS5jb2xvclwiXG4gICAgPjwvc21hcnQtaWNvbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFPbEUsTUFBTSxPQUFPLHVCQUF1QjtJQTREbEMsWUFDUyxjQUFpQyxFQUNELE9BQTBCO1FBRDFELG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQTVEbEMsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLEVBQVcsQ0FB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QUNuQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUNMLGVBQWUsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJO1lBQzlDLGVBQWUsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLGVBQWUsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxlQUFlLEtBQUsscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEQsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksZUFBZSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQztJQUN0RSxDQUFDOytHQXhSVSx1QkFBdUIsbURBOER4QixpQkFBaUI7bUdBOURoQix1QkFBdUIsNmxDQ3pCcEMsc3JHQXVGQTs7NEZEOURhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQWtFekIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUFHLFFBQVE7eUNBbkQ1QixXQUFXO3NCQUFwQixNQUFNO2dCQU1HLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBjb21wdXRlZCxcclxuICBpbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gJy4uL3VpLWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ09NUE9ORU5UX0xJQlJBUlksIENvbXBvbmVudExpYnJhcnkgfSBmcm9tICcuLi8uLi91dGlsaXR5L2NvbXBvbmVudExpYnJhcnknO1xyXG5pbXBvcnQgeyBVaUFjdGlvbkJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWwvdWlBY3Rpb25CdXR0b25UeXBlJztcclxuaW1wb3J0IHsgSWNvblBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vYXBpL21vZGVsL2ljb25Qb3NpdGlvbic7XHJcbmltcG9ydCB7IFN0eWxlLCBVaUFjdGlvbiwgVWlBY3Rpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRTdHlsZVV0aWxpdHkgfSBmcm9tICcuLi8uLi91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xyXG5pbXBvcnQgeyBCdXR0b25JY29uUGxhY2Vob2xkZXIgfSBmcm9tICcuL2J1dHRvbi1pY29uLXBsYWNlaG9sZGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYWN0aW9uLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91aS1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPigpO1xyXG4gIGRlc2NyaXB0b3IgPSBpbnB1dC5yZXF1aXJlZDxVaUFjdGlvbkRlc2NyaXB0b3I+KCk7XHJcbiAgY29kZSA9IGlucHV0PHN0cmluZz4oKTtcclxuICB2aWV3QWN0aXZhdGVkID0gaW5wdXQ8Ym9vbGVhbiB8IG51bGw+KCk7XHJcbiAgYWRkZWRDc3NDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcclxuICBhZGRCYXNpY0NsYXNzZXMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBpY29uUGxhY2Vob2xkZXIgPSBpbnB1dDxCdXR0b25JY29uUGxhY2Vob2xkZXI+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQ7XHJcbiAgICBkZXNjcmlwdG9yPzogVWlBY3Rpb25EZXNjcmlwdG9yO1xyXG4gICAgY29kZT86IHN0cmluZztcclxuICAgIHVpQWN0aW9uPzogVWlBY3Rpb247XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGV2ZW50OiBhbnk7XHJcbiAgICBkZXNjcmlwdG9yPzogVWlBY3Rpb25EZXNjcmlwdG9yO1xyXG4gICAgY29kZT86IHN0cmluZztcclxuICB9PigpO1xyXG5cclxuICBjb21wb25lbnRMaWJyYXJ5ID0gQ29tcG9uZW50TGlicmFyeTtcclxuICBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5O1xyXG5cclxuICBwcmVzc2VkQnV0dG9uQWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBtZW51T3BlbmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGVmZmVjdGl2ZURlc2NyaXB0b3IgPSBjb21wdXRlZDxVaUFjdGlvbkRlc2NyaXB0b3I+KCgpID0+IHtcclxuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcclxuICAgIGNvbnN0IGNvZGUgPSB0aGlzLmNvZGUoKTtcclxuXHJcbiAgICBjb25zdCBkZWZhdWx0czogUGFydGlhbDxVaUFjdGlvbkRlc2NyaXB0b3I+ID0ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXHJcbiAgICAgIHR5cGU6IFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUwsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmRlZmF1bHRzLFxyXG4gICAgICAuLi5kZXNjcmlwdG9yLFxyXG4gICAgICB0aXRsZTogZGVzY3JpcHRvcj8udGl0bGUgPz8gZGVmYXVsdHMudGl0bGUsXHJcbiAgICAgIGNvbG9yOiBkZXNjcmlwdG9yPy5jb2xvciA/PyBkZWZhdWx0cy5jb2xvcixcclxuICAgICAgdHlwZTogZGVzY3JpcHRvcj8udHlwZSA/PyBkZWZhdWx0cy50eXBlLFxyXG4gICAgfSBhcyBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgfSk7XHJcblxyXG4gIG1haW5BY3Rpb25Nb2RlbCA9IGNvbXB1dGVkPFVpQWN0aW9uTW9kZWw+KFxyXG4gICAgKCkgPT5cclxuICAgICAgKHtcclxuICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKSxcclxuICAgICAgICB1aUFjdGlvbjoge1xyXG4gICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCksXHJcbiAgICAgICAgICBjb2RlOiB0aGlzLmNvZGUoKSxcclxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkKCkgPz8gZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSkgYXMgVWlBY3Rpb25Nb2RlbFxyXG4gICk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIEBPcHRpb25hbCgpIGNvbXBMaWI/OiBDb21wb25lbnRMaWJyYXJ5XHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbXBMaWIgPSBjb21wTGliID8/IENvbXBvbmVudExpYnJhcnkuUFJJTUVORztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uQWN0aW9uQ2xpY2tlZChldmVudDogTW91c2VFdmVudCwgbW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7XHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBjb2RlOiBtb2RlbC51aUFjdGlvbi5jb2RlLFxyXG4gICAgICBkZXNjcmlwdG9yOiBtb2RlbC5kZXNjcmlwdG9yISxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25BY3Rpb25Eb3VibGVDbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aW9uRG91YmxlQ2xpY2suZW1pdCh7XHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBjb2RlOiB0aGlzLmNvZGUoKSxcclxuICAgICAgZGVzY3JpcHRvcjogdGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGljb25Qb3NpdGlvbigpOiB0eXBlb2YgSWNvblBvc2l0aW9uIHtcclxuICAgIHJldHVybiBJY29uUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBpc09ubHlJY29uKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpPy50eXBlO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLklDT04gfHxcclxuICAgICAgdHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCIHx8XHJcbiAgICAgIHR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5GQUJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRidG5DbGFzcygpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmFkZEJhc2ljQ2xhc3NlcygpKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpLmNvbG9yO1xyXG4gICAgaWYgKGNvbG9yKSB7XHJcbiAgICAgIHJldHVybiAncC1idXR0b24tJyArIGNvbG9yICsgJyBzYjQtJyArIGNvbG9yO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZSgpOiBhbnkge1xyXG4gICAgaWYgKCF0aGlzLmFkZEJhc2ljQ2xhc3NlcygpKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb21wTGliID09PSBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKS50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1ub3JtYWwnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtZmxhdCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtcmFpc2VkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtc3Ryb2tlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUI6XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAnc2I0LW1pbmlmYWInOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZBQjpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtZmFiJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1pY29uJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1iYXNpYyc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLW91dGxpbmVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5lZmZlY3RpdmVEZXNjcmlwdG9yKCkudHlwZSkge1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1idXR0b24gc2I0LW5vcm1hbCc7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1mbGF0LWJ1dHRvbiBzYjQtZmxhdCc7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VEOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXJhaXNlZC1idXR0b24gc2I0LXJhaXNlZCc7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1zdHJva2VkLWJ1dHRvbiBzYjQtc3Ryb2tlZCc7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTjpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1pY29uLWJ1dHRvbiBzYjQtaWNvbic7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUI6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtbWluaS1mYWIgc2I0LW1pbmlmYWInO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZBQjpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1mYWIgc2I0LWZhYic7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBgbWF0LWJ1dHRvbiBzYjQtYmFzaWNgO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjU3R5bGUoc3R5bGU/OiBTdHlsZSk6IGFueSB7XHJcbiAgICByZXR1cm4gU21hcnRTdHlsZVV0aWxpdHkuZ2V0TmdTdHlsZXMoc3R5bGUpO1xyXG4gIH1cclxuICBjYWxjQ2xhc3NlcyhzdHlsZT86IFN0eWxlKTogYW55IHtcclxuICAgIHJldHVybiBTbWFydFN0eWxlVXRpbGl0eS5nZXROZ0NsYXNzZXMoc3R5bGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tYmluZWRDbGFzc2VzKCk6IGFueSB7XHJcbiAgICBjb25zdCB0eXBlQ2xhc3NlcyA9IHRoaXMuZ2V0VHlwZSgpO1xyXG4gICAgY29uc3Qgc3R5bGVDbGFzc2VzID0gdGhpcy5jYWxjQ2xhc3Nlcyh0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKS5zdHlsZSk7XHJcblxyXG4gICAgLy8gTm9ybWFsaXplIHR5cGVDbGFzc2VzIHRvIG9iamVjdFxyXG4gICAgY29uc3QgdHlwZU9iaiA9XHJcbiAgICAgIHR5cGVvZiB0eXBlQ2xhc3NlcyA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IHR5cGVDbGFzc2VzLnNwbGl0KCcgJykucmVkdWNlKChhY2MsIGNscykgPT4gKHsgLi4uYWNjLCBbY2xzXTogdHJ1ZSB9KSwge30pXHJcbiAgICAgICAgOiB0eXBlQ2xhc3NlcztcclxuXHJcbiAgICAvLyBWaWV3LWFjdGl2YXRpb24gY2xhc3Nlcywgb3J0aG9nb25hbCB0byB0aGUgZGVzY3JpcHRvci50eXBlIGxvb2sgY2xhc3NlcyBhYm92ZS5cclxuICAgIGNvbnN0IHZpZXdBY3RpdmF0ZWQgPSB0aGlzLnZpZXdBY3RpdmF0ZWQoKTtcclxuICAgIGNvbnN0IGlzT3BlbmVyID0gdmlld0FjdGl2YXRlZCAhPT0gbnVsbCAmJiB2aWV3QWN0aXZhdGVkICE9PSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBhY3RpdmF0aW9uQ2xhc3NlcyA9IHtcclxuICAgICAgJ3NiNC12aWV3LW9wZW5lcic6IGlzT3BlbmVyLFxyXG4gICAgICAnc2I0LXZpZXctYWN0aXZhdGVkJzogdmlld0FjdGl2YXRlZCA9PT0gdHJ1ZSxcclxuICAgICAgJ3NiNC12aWV3LW5vdC1hY3RpdmF0ZWQnOiB2aWV3QWN0aXZhdGVkID09PSBmYWxzZSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHsgLi4udHlwZU9iaiwgLi4uc3R5bGVDbGFzc2VzLCAuLi5hY3RpdmF0aW9uQ2xhc3NlcyB9O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyUHJlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGVzY3JpcHRvciA9IHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZGVzY3JpcHRvci5pY29uUG9zaXRpb24gPT09IEljb25Qb3NpdGlvbi5QUkUgJiZcclxuICAgICAgKGRlc2NyaXB0b3IuaWNvbiAhPSBudWxsIHx8IGRlc2NyaXB0b3IuaWNvblJlc291cmNlICE9IG51bGwpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyUG9zdCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmVmZmVjdGl2ZURlc2NyaXB0b3IoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBJY29uUG9zaXRpb24uUE9TVCAmJlxyXG4gICAgICAoZGVzY3JpcHRvci5pY29uICE9IG51bGwgfHwgZGVzY3JpcHRvci5pY29uUmVzb3VyY2UgIT0gbnVsbClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZWZmZWN0aXZlRGVzY3JpcHRvcigpPy5jb2xvciB8fCAndGV4dCc7XHJcbiAgfVxyXG5cclxuICByZW5kZXJQbGFjZWhvbGRlclByZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGljb25QbGFjZWhvbGRlciA9IHRoaXMuaWNvblBsYWNlaG9sZGVyKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QUkUgfHxcclxuICAgICAgaWNvblBsYWNlaG9sZGVyID09PSBCdXR0b25JY29uUGxhY2Vob2xkZXIuQk9USFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbmRlclBsYWNlaG9sZGVyUG9zdCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGljb25QbGFjZWhvbGRlciA9IHRoaXMuaWNvblBsYWNlaG9sZGVyKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QT1NUIHx8XHJcbiAgICAgIGljb25QbGFjZWhvbGRlciA9PT0gQnV0dG9uSWNvblBsYWNlaG9sZGVyLkJPVEhcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRKdXN0aWZ5Q29udGVudCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGljb25QbGFjZWhvbGRlciA9IHRoaXMuaWNvblBsYWNlaG9sZGVyKCk7XHJcbiAgICBpZiAoIWljb25QbGFjZWhvbGRlcikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5CT1RIKSB7XHJcbiAgICAgIHJldHVybiAnY2VudGVyJztcclxuICAgIH1cclxuICAgIGlmIChpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QUkUpIHtcclxuICAgICAgcmV0dXJuICdmbGV4LXN0YXJ0JztcclxuICAgIH1cclxuICAgIGlmIChpY29uUGxhY2Vob2xkZXIgPT09IEJ1dHRvbkljb25QbGFjZWhvbGRlci5QT1NUKSB7XHJcbiAgICAgIHJldHVybiAnZmxleC1lbmQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRTZXBhcmF0b3JDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdyZ2IoZnJvbSB2YXIoLS0nICsgdGhpcy5nZXRDb2xvcigpICsgJy1jb2xvcikgciBnIGIgLyAwLjgpJztcclxuICB9XHJcbn1cclxuIiwiQGlmIChlZmZlY3RpdmVEZXNjcmlwdG9yKCkudHlwZSA9PT0gJ1NFUEFSQVRPUicpIHtcclxuICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCI+XHJcbiAgICBAaWYgKGVmZmVjdGl2ZURlc2NyaXB0b3IoKS50aXRsZSkge1xyXG4gICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvci1sYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJnZXRTZXBhcmF0b3JDb2xvcigpXCI+XHJcbiAgICAgICAge3sgZWZmZWN0aXZlRGVzY3JpcHRvcigpLnRpdGxlIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIH1cclxuICAgIDxociBjbGFzcz1cInNlcGFyYXRvci1saW5lXCIgW3N0eWxlLmJvcmRlci10b3AtY29sb3JdPVwiZ2V0U2VwYXJhdG9yQ29sb3IoKVwiIC8+XHJcbiAgPC9kaXY+XHJcbn0gQGVsc2Uge1xyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25XaXRoQmFkZ2VcIj48L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25XaXRoQmFkZ2U+XHJcbiAgQGlmIChlZmZlY3RpdmVEZXNjcmlwdG9yKCkgJiYgZWZmZWN0aXZlRGVzY3JpcHRvcigpLmJhZGdlKSB7XHJcbiAgICA8dWktYmFkZ2UgW2Rlc2NyaXB0b3JdPVwiZWZmZWN0aXZlRGVzY3JpcHRvcigpLmJhZGdlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC91aS1iYWRnZT5cclxuICB9IEBlbHNlIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGU+XHJcbiAgQGlmIChjb21wTGliID09PSBjb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuICAgIDxidXR0b25cclxuICAgICAgcEJ1dHRvblxyXG4gICAgICBwUmlwcGxlXHJcbiAgICAgIFtzbWFydFRvb2x0aXBdPVwiZWZmZWN0aXZlRGVzY3JpcHRvcigpLnRvb2x0aXBcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZCgpXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIG1haW5BY3Rpb25Nb2RlbCgpKVwiXHJcbiAgICAgIChkYmxjbGljayk9XCJvbkFjdGlvbkRvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgIFthdXRvZm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICBbbmdTdHlsZV09XCJjYWxjU3R5bGUoZWZmZWN0aXZlRGVzY3JpcHRvcigpLnN0eWxlKVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImdldENvbWJpbmVkQ2xhc3NlcygpXCJcclxuICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRKdXN0aWZ5Q29udGVudCgpXCJcclxuICAgICAgY2xhc3M9XCJ7eyBnZXRidG5DbGFzcygpIH19IHt7IGFkZGVkQ3NzQ2xhc3MoKSB9fVwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJjb2RlKCkgPz8gbnVsbFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJpc09ubHlJY29uKCk7IHRoZW4gYnV0dG9uSWNvbjsgZWxzZSB0ZXh0XCI+PC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9IEBlbHNlIHtcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICBbc21hcnRUb29sdGlwXT1cImVmZmVjdGl2ZURlc2NyaXB0b3IoKS50b29sdGlwXCJcclxuICAgICAgW2NvbG9yXT1cImVmZmVjdGl2ZURlc2NyaXB0b3IoKS5jb2xvclwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkKClcIlxyXG4gICAgICAoY2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgbWFpbkFjdGlvbk1vZGVsKCkpXCJcclxuICAgICAgKGRibGNsaWNrKT1cIm9uQWN0aW9uRG91YmxlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGVmZmVjdGl2ZURlc2NyaXB0b3IoKS5zdHlsZSlcIlxyXG4gICAgICBbbmdDbGFzc109XCJnZXRDb21iaW5lZENsYXNzZXMoKVwiXHJcbiAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0SnVzdGlmeUNvbnRlbnQoKVwiXHJcbiAgICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzKCkgfX1cIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiY29kZSgpID8/IG51bGxcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNPbmx5SWNvbigpOyB0aGVuIGJ1dHRvbkljb247IGVsc2UgdGV4dFwiPjwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0ZXh0PlxyXG4gIEBpZiAocmVuZGVyUHJlKCkgfHwgcmVuZGVyUGxhY2Vob2xkZXJQcmUoKSkge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxyXG4gIH1cclxuICB7eyBlZmZlY3RpdmVEZXNjcmlwdG9yKCkudGl0bGUgfX1cclxuICBAaWYgKHJlbmRlclBvc3QoKSB8fCByZW5kZXJQbGFjZWhvbGRlclBvc3QoKSkge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnV0dG9uSWNvbj5cclxuICBAaWYgKHJlbmRlclBsYWNlaG9sZGVyUHJlKCkgfHwgcmVuZGVyUGxhY2Vob2xkZXJQb3N0KCkpIHtcclxuICAgIDxzbWFydC1pY29uPjwvc21hcnQtaWNvbj5cclxuICB9IEBlbHNlIGlmIChlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvblJlc291cmNlKSB7XHJcbiAgICA8c21hcnQtaWNvblxyXG4gICAgICBbaW1hZ2VSZXNvdXJjZV09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvblJlc291cmNlXCJcclxuICAgICAgW2NvbG9yXT1cImVmZmVjdGl2ZURlc2NyaXB0b3IoKS5pY29uQ29sb3IgfHwgZWZmZWN0aXZlRGVzY3JpcHRvcigpLmNvbG9yXCJcclxuICAgID48L3NtYXJ0LWljb24+XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8c21hcnQtaWNvblxyXG4gICAgICBbaWNvbl09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvblwiXHJcbiAgICAgIFtjb2xvcl09XCJlZmZlY3RpdmVEZXNjcmlwdG9yKCkuaWNvbkNvbG9yIHx8IGVmZmVjdGl2ZURlc2NyaXB0b3IoKS5jb2xvclwiXHJcbiAgICA+PC9zbWFydC1pY29uPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19