@tuki-io/tuki-widgets 0.0.219-dev.0 → 0.0.220

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 (1064) hide show
  1. package/README.md +24 -25
  2. package/contact-center/cc-readiness/cc-readiness.module.d.ts +19 -0
  3. package/contact-center/cc-readiness/cc-readiness.service.d.ts +13 -0
  4. package/contact-center/cc-readiness/components/card/card.component.d.ts +6 -0
  5. package/contact-center/cc-readiness/types/cc-readiness.d.ts +16 -0
  6. package/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.d.ts +54 -0
  7. package/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.d.ts +27 -0
  8. package/contact-center/cc-script-editor/cc-script-editor.component.d.ts +53 -0
  9. package/contact-center/cc-script-editor/cc-script-editor.module.d.ts +20 -0
  10. package/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.d.ts +35 -0
  11. package/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.d.ts +38 -0
  12. package/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.d.ts +34 -0
  13. package/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.d.ts +9 -0
  14. package/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.d.ts +27 -0
  15. package/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.d.ts +27 -0
  16. package/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.d.ts +14 -0
  17. package/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.d.ts +11 -0
  18. package/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.d.ts +24 -0
  19. package/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.d.ts +68 -0
  20. package/contact-center/cc-script-editor/constants/cytoscape.config.d.ts +2 -0
  21. package/contact-center/cc-script-editor/constants/wxcc-api.constants.d.ts +15 -0
  22. package/contact-center/cc-script-editor/services/cystoscape-viewport.service.d.ts +21 -0
  23. package/contact-center/cc-script-editor/services/wxcc-activity-creation.service.d.ts +21 -0
  24. package/contact-center/cc-script-editor/services/wxcc-activity-manage.service.d.ts +8 -0
  25. package/contact-center/cc-script-editor/services/wxcc-flow-api.service.d.ts +43 -0
  26. package/contact-center/cc-script-editor/services/wxcc2graph.service.d.ts +42 -0
  27. package/contact-center/cc-script-editor/types/extended-activity.d.ts +47 -0
  28. package/contact-center/cc-script-editor/types/wxcc-activity.d.ts +96 -0
  29. package/contact-center/cc-script-editor/types/wxcc.d.ts +161 -0
  30. package/contact-center/cc-script-editor/utils/node-html-template.d.ts +3 -0
  31. package/contact-center/cc-script-editor/utils/node-mappings.d.ts +54 -0
  32. package/contact-center/index.d.ts +5 -0
  33. package/contact-center/public-api.d.ts +5 -0
  34. package/contact-center/shared/api.endpoints.d.ts +6 -0
  35. package/contact-center/shared/api.service.d.ts +20 -0
  36. package/contact-center/shared/material.module.d.ts +16 -0
  37. package/contact-center/shared/shared.module.d.ts +10 -0
  38. package/di2mt/api/api.endpoints.d.ts +32 -0
  39. package/di2mt/index.d.ts +5 -0
  40. package/di2mt/public-api.d.ts +14 -0
  41. package/di2mt/shared/components/card/card.component.d.ts +6 -0
  42. package/di2mt/shared/components/chart-card/chart-card.component.d.ts +23 -0
  43. package/di2mt/shared/components/stat-card/stat-card.component.d.ts +15 -0
  44. package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +15 -0
  45. package/di2mt/shared/components/summary-card/summary-card.component.d.ts +9 -0
  46. package/di2mt/shared/components/table-filters/table-filters.component.d.ts +14 -0
  47. package/di2mt/shared/constants/app.constants.d.ts +74 -0
  48. package/di2mt/shared/material.module.d.ts +15 -0
  49. package/di2mt/shared/services/api.service.d.ts +20 -0
  50. package/di2mt/shared/shared.module.d.ts +16 -0
  51. package/di2mt/shared/types/constants.d.ts +15 -0
  52. package/di2mt/shared/types/data-table.d.ts +5 -0
  53. package/di2mt/shared/types/table/filter.d.ts +16 -0
  54. package/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.d.ts +11 -0
  55. package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +70 -0
  56. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +15 -0
  57. package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +84 -0
  58. package/di2mt/widgets/site-upgrade/types/user-upgrade.d.ts +26 -0
  59. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +20 -0
  60. package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +20 -0
  61. package/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.d.ts +20 -0
  62. package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +19 -0
  63. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +20 -0
  64. package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +20 -0
  65. package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +16 -0
  66. package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +19 -0
  67. package/di2mt/widgets/upgrade-overview/types/upgrade-overview.d.ts +57 -0
  68. package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +16 -0
  69. package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +18 -0
  70. package/di2mt/widgets/user-upgrade/types/user-upgrade.d.ts +32 -0
  71. package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +80 -0
  72. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +16 -0
  73. package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +41 -0
  74. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +71 -0
  75. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +38 -0
  76. package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +13 -0
  77. package/esm2020/contact-center/cc-readiness/types/cc-readiness.mjs +3 -0
  78. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +194 -0
  79. package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +50 -0
  80. package/esm2020/contact-center/cc-script-editor/cc-script-editor.component.mjs +193 -0
  81. package/esm2020/contact-center/cc-script-editor/cc-script-editor.module.mjs +83 -0
  82. package/esm2020/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.mjs +60 -0
  83. package/esm2020/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.mjs +83 -0
  84. package/esm2020/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.mjs +104 -0
  85. package/esm2020/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.mjs +28 -0
  86. package/esm2020/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.mjs +65 -0
  87. package/esm2020/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.mjs +97 -0
  88. package/esm2020/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.mjs +43 -0
  89. package/esm2020/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.mjs +27 -0
  90. package/esm2020/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.mjs +61 -0
  91. package/esm2020/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.mjs +434 -0
  92. package/esm2020/contact-center/cc-script-editor/constants/cytoscape.config.mjs +72 -0
  93. package/esm2020/contact-center/cc-script-editor/constants/wxcc-api.constants.mjs +14 -0
  94. package/esm2020/contact-center/cc-script-editor/services/cystoscape-viewport.service.mjs +65 -0
  95. package/esm2020/contact-center/cc-script-editor/services/wxcc-activity-creation.service.mjs +82 -0
  96. package/esm2020/contact-center/cc-script-editor/services/wxcc-activity-manage.service.mjs +162 -0
  97. package/esm2020/contact-center/cc-script-editor/services/wxcc-flow-api.service.mjs +79 -0
  98. package/esm2020/contact-center/cc-script-editor/services/wxcc2graph.service.mjs +144 -0
  99. package/esm2020/contact-center/cc-script-editor/types/extended-activity.mjs +4 -0
  100. package/esm2020/contact-center/cc-script-editor/types/wxcc-activity.mjs +2 -0
  101. package/esm2020/contact-center/cc-script-editor/types/wxcc.mjs +6 -0
  102. package/esm2020/contact-center/cc-script-editor/utils/node-html-template.mjs +76 -0
  103. package/esm2020/contact-center/cc-script-editor/utils/node-mappings.mjs +109 -0
  104. package/esm2020/contact-center/public-api.mjs +6 -0
  105. package/esm2020/contact-center/shared/api.endpoints.mjs +7 -0
  106. package/esm2020/contact-center/shared/api.service.mjs +81 -0
  107. package/esm2020/contact-center/shared/material.module.mjs +80 -0
  108. package/esm2020/contact-center/shared/shared.module.mjs +33 -0
  109. package/esm2020/contact-center/tuki-io-tuki-widgets-contact-center.mjs +5 -0
  110. package/esm2020/di2mt/api/api.endpoints.mjs +33 -0
  111. package/esm2020/di2mt/public-api.mjs +25 -0
  112. package/esm2020/di2mt/shared/components/card/card.component.mjs +13 -0
  113. package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +66 -0
  114. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +65 -0
  115. package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +43 -0
  116. package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +36 -0
  117. package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +37 -0
  118. package/esm2020/di2mt/shared/constants/app.constants.mjs +95 -0
  119. package/esm2020/di2mt/shared/material.module.mjs +76 -0
  120. package/esm2020/di2mt/shared/services/api.service.mjs +81 -0
  121. package/esm2020/di2mt/shared/shared.module.mjs +63 -0
  122. package/esm2020/di2mt/shared/types/constants.mjs +20 -0
  123. package/esm2020/di2mt/shared/types/data-table.mjs +2 -0
  124. package/esm2020/di2mt/shared/types/table/filter.mjs +2 -0
  125. package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +5 -0
  126. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +38 -0
  127. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +438 -0
  128. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +53 -0
  129. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +93 -0
  130. package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +3 -0
  131. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +67 -0
  132. package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +71 -0
  133. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +83 -0
  134. package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +86 -0
  135. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +48 -0
  136. package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +48 -0
  137. package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +89 -0
  138. package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +77 -0
  139. package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +2 -0
  140. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +64 -0
  141. package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +93 -0
  142. package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +3 -0
  143. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +379 -0
  144. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +59 -0
  145. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +80 -0
  146. package/esm2020/lib/widgets.component.mjs +22 -0
  147. package/esm2020/lib/widgets.module.mjs +21 -0
  148. package/esm2020/lib/widgets.service.mjs +14 -0
  149. package/esm2020/public-api.mjs +7 -0
  150. package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
  151. package/esm2020/user-creation/public-api.mjs +13 -0
  152. package/esm2020/user-creation/src/app.constants.mjs +30 -0
  153. package/esm2020/user-creation/src/classes/notification.mjs +32 -0
  154. package/esm2020/user-creation/src/classes/site.mjs +53 -0
  155. package/esm2020/user-creation/src/environments/environment.mjs +11 -0
  156. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +199 -0
  157. package/esm2020/user-creation/src/shared/api/api.service.mjs +81 -0
  158. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +38 -0
  159. package/esm2020/user-creation/src/shared/material.module.mjs +104 -0
  160. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +30 -0
  161. package/esm2020/user-creation/src/shared/services/notification.service.mjs +62 -0
  162. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +116 -0
  163. package/esm2020/user-creation/src/shared/services/utils.mjs +19 -0
  164. package/esm2020/user-creation/src/shared/shared.module.mjs +56 -0
  165. package/esm2020/user-creation/src/user-creation.module.mjs +102 -0
  166. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +14 -0
  167. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +147 -0
  168. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +13 -0
  169. package/esm2020/user-creation/src/utils/device-name-validation.mjs +23 -0
  170. package/esm2020/user-creation/src/utils/model.mjs +19 -0
  171. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +26 -0
  172. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +521 -0
  173. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +19 -0
  174. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +176 -0
  175. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +127 -0
  176. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +796 -0
  177. package/esm2020/user-creation/tuki-io-tuki-widgets-user-creation.mjs +5 -0
  178. package/esm2020/user-device-manage/public-api.mjs +9 -0
  179. package/esm2020/user-device-manage/src/app.constants.mjs +98 -0
  180. package/esm2020/user-device-manage/src/classes/device.mjs +85 -0
  181. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +40 -0
  182. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -0
  183. package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -0
  184. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -0
  185. package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -0
  186. package/esm2020/user-device-manage/src/classes/line.mjs +18 -0
  187. package/esm2020/user-device-manage/src/classes/notification.mjs +32 -0
  188. package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -0
  189. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -0
  190. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -0
  191. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -0
  192. package/esm2020/user-device-manage/src/classes/types.mjs +24 -0
  193. package/esm2020/user-device-manage/src/common-functions.mjs +19 -0
  194. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -0
  195. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -0
  196. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -0
  197. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +74 -0
  198. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -0
  199. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +43 -0
  200. package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -0
  201. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +178 -0
  202. package/esm2020/user-device-manage/src/environments/environment.mjs +11 -0
  203. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -0
  204. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
  205. package/esm2020/user-device-manage/src/material.module.mjs +192 -0
  206. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -0
  207. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +26 -0
  208. package/esm2020/user-device-manage/src/services/api.service.mjs +79 -0
  209. package/esm2020/user-device-manage/src/services/device.service.mjs +83 -0
  210. package/esm2020/user-device-manage/src/services/dns.service.mjs +136 -0
  211. package/esm2020/user-device-manage/src/services/line.service.mjs +76 -0
  212. package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -0
  213. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  214. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -0
  215. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -0
  216. package/esm2020/user-device-manage/src/services/user.service.mjs +366 -0
  217. package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -0
  218. package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -0
  219. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +13 -0
  220. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +116 -0
  221. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -0
  222. package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +5 -0
  223. package/esm2020/user-manage/public-api.mjs +7 -0
  224. package/esm2020/user-manage/src/app.constants.mjs +55 -0
  225. package/esm2020/user-manage/src/classes/device.mjs +38 -0
  226. package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -0
  227. package/esm2020/user-manage/src/classes/line-association.mjs +110 -0
  228. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -0
  229. package/esm2020/user-manage/src/classes/line-directory.mjs +28 -0
  230. package/esm2020/user-manage/src/classes/line.mjs +18 -0
  231. package/esm2020/user-manage/src/classes/notification.mjs +32 -0
  232. package/esm2020/user-manage/src/classes/pagination.mjs +8 -0
  233. package/esm2020/user-manage/src/classes/recording-options.mjs +7 -0
  234. package/esm2020/user-manage/src/classes/simplified-user.mjs +115 -0
  235. package/esm2020/user-manage/src/classes/table-data.mjs +2 -0
  236. package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -0
  237. package/esm2020/user-manage/src/classes/user-list.mjs +10 -0
  238. package/esm2020/user-manage/src/common-functions.mjs +19 -0
  239. package/esm2020/user-manage/src/device-list/device-list.component.mjs +26 -0
  240. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +33 -0
  241. package/esm2020/user-manage/src/environments/environment.mjs +11 -0
  242. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -0
  243. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +81 -0
  244. package/esm2020/user-manage/src/material.module.mjs +188 -0
  245. package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -0
  246. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -0
  247. package/esm2020/user-manage/src/services/api.service.mjs +79 -0
  248. package/esm2020/user-manage/src/services/dns.service.mjs +110 -0
  249. package/esm2020/user-manage/src/services/line.service.mjs +34 -0
  250. package/esm2020/user-manage/src/services/notification.service.mjs +62 -0
  251. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -0
  252. package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -0
  253. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -0
  254. package/esm2020/user-manage/src/services/user.service.mjs +257 -0
  255. package/esm2020/user-manage/src/services/users-search.service.mjs +50 -0
  256. package/esm2020/user-manage/src/services/utils.service.mjs +73 -0
  257. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -0
  258. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +87 -0
  259. package/esm2020/user-manage/src/user-info/user-info.component.mjs +32 -0
  260. package/esm2020/user-manage/src/user-manage-widget.component.mjs +226 -0
  261. package/esm2020/user-manage/src/user-manage.module.mjs +102 -0
  262. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -0
  263. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -0
  264. package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +5 -0
  265. package/esm2020/users-list/public-api.mjs +9 -0
  266. package/esm2020/users-list/src/app.constants.mjs +84 -0
  267. package/esm2020/users-list/src/classes/app-location.mjs +32 -0
  268. package/esm2020/users-list/src/classes/device.mjs +7 -0
  269. package/esm2020/users-list/src/classes/line.mjs +18 -0
  270. package/esm2020/users-list/src/classes/move-user.mjs +182 -0
  271. package/esm2020/users-list/src/classes/notification.mjs +31 -0
  272. package/esm2020/users-list/src/classes/pagination.mjs +8 -0
  273. package/esm2020/users-list/src/classes/simlified-user.mjs +50 -0
  274. package/esm2020/users-list/src/classes/table-data.mjs +2 -0
  275. package/esm2020/users-list/src/classes/user-list.mjs +15 -0
  276. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +44 -0
  277. package/esm2020/users-list/src/material.module.mjs +216 -0
  278. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +38 -0
  279. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +23 -0
  280. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +192 -0
  281. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +38 -0
  282. package/esm2020/users-list/src/services/api-webex.service.mjs +18 -0
  283. package/esm2020/users-list/src/services/api.service.mjs +78 -0
  284. package/esm2020/users-list/src/services/dns.service.mjs +120 -0
  285. package/esm2020/users-list/src/services/events-communication.service.mjs +14 -0
  286. package/esm2020/users-list/src/services/move-user.service.mjs +53 -0
  287. package/esm2020/users-list/src/services/notification.service.mjs +62 -0
  288. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -0
  289. package/esm2020/users-list/src/services/site-settings.service.mjs +27 -0
  290. package/esm2020/users-list/src/services/user.service.mjs +174 -0
  291. package/esm2020/users-list/src/services/users-search.service.mjs +168 -0
  292. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -0
  293. package/esm2020/users-list/src/users-list.component.mjs +817 -0
  294. package/esm2020/users-list/src/users-list.module.mjs +98 -0
  295. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -0
  296. package/esm2020/users-list/src/utils/common-functions.mjs +32 -0
  297. package/esm2020/users-list/src/utils/notifications/notification.component.mjs +38 -0
  298. package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -0
  299. package/esm2020/users-list/src/utils/utils.service.mjs +73 -0
  300. package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +5 -0
  301. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +3452 -0
  302. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -0
  303. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +2353 -0
  304. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  305. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +2774 -0
  306. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -0
  307. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3515 -0
  308. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  309. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2268 -0
  310. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  311. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +2726 -0
  312. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  313. package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
  314. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
  315. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +3471 -0
  316. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -0
  317. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +2342 -0
  318. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
  319. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +2733 -0
  320. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -0
  321. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3493 -0
  322. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
  323. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2252 -0
  324. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
  325. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +2699 -0
  326. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
  327. package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
  328. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
  329. package/index.d.ts +5 -0
  330. package/lib/widgets.component.d.ts +8 -0
  331. package/lib/widgets.module.d.ts +7 -0
  332. package/lib/widgets.service.d.ts +6 -0
  333. package/package.json +81 -59
  334. package/public-api.d.ts +3 -0
  335. package/user-creation/index.d.ts +5 -0
  336. package/user-creation/public-api.d.ts +2 -0
  337. package/user-creation/src/app.constants.d.ts +25 -0
  338. package/user-creation/src/classes/notification.d.ts +18 -0
  339. package/user-creation/src/classes/site.d.ts +203 -0
  340. package/user-creation/src/environments/environment.d.ts +9 -0
  341. package/user-creation/src/interfaces/user-creation-wizard.interfaces.d.ts +554 -0
  342. package/user-creation/src/shared/api/api.service.d.ts +20 -0
  343. package/user-creation/src/shared/components/notification/notification.component.d.ts +19 -0
  344. package/user-creation/src/shared/material.module.d.ts +19 -0
  345. package/user-creation/src/shared/pipes/truncate.pipe.d.ts +7 -0
  346. package/user-creation/src/shared/services/notification.service.d.ts +18 -0
  347. package/user-creation/src/shared/services/user-creation-api.service.d.ts +30 -0
  348. package/user-creation/src/shared/services/utils.d.ts +1 -0
  349. package/user-creation/src/shared/shared.module.d.ts +12 -0
  350. package/user-creation/src/user-creation.module.d.ts +24 -0
  351. package/user-creation/src/utils/app-loader/app-loader.d.ts +6 -0
  352. package/user-creation/src/utils/build-savable-end-user.d.ts +23 -0
  353. package/user-creation/src/utils/device-default-prefix.d.ts +5 -0
  354. package/user-creation/src/utils/device-name-validation.d.ts +6 -0
  355. package/user-creation/src/utils/model.d.ts +1 -0
  356. package/user-creation/src/utils/parse-device-name-rule.d.ts +8 -0
  357. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +86 -0
  358. package/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.d.ts +11 -0
  359. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +47 -0
  360. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +37 -0
  361. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +106 -0
  362. package/user-device-manage/index.d.ts +5 -0
  363. package/user-device-manage/public-api.d.ts +8 -0
  364. package/user-device-manage/src/app.constants.d.ts +77 -0
  365. package/user-device-manage/src/classes/device.d.ts +233 -0
  366. package/user-device-manage/src/classes/deviceProfile.d.ts +37 -0
  367. package/user-device-manage/src/classes/line-association-interface.d.ts +45 -0
  368. package/user-device-manage/src/classes/line-association.d.ts +62 -0
  369. package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -0
  370. package/user-device-manage/src/classes/line-directory.d.ts +15 -0
  371. package/user-device-manage/src/classes/line.d.ts +140 -0
  372. package/user-device-manage/src/classes/notification.d.ts +18 -0
  373. package/user-device-manage/src/classes/recording-options.d.ts +5 -0
  374. package/user-device-manage/src/classes/simplified-user.d.ts +52 -0
  375. package/user-device-manage/src/classes/site-defaults.d.ts +146 -0
  376. package/user-device-manage/src/classes/translation-pattern.d.ts +19 -0
  377. package/user-device-manage/src/classes/types.d.ts +19 -0
  378. package/user-device-manage/src/common-functions.d.ts +1 -0
  379. package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -0
  380. package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -0
  381. package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -0
  382. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +28 -0
  383. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -0
  384. package/user-device-manage/src/device-info/device-info.component.d.ts +15 -0
  385. package/user-device-manage/src/device-list/device-list.component.d.ts +11 -0
  386. package/user-device-manage/src/device-manage-widget.component.d.ts +62 -0
  387. package/user-device-manage/src/environments/environment.d.ts +9 -0
  388. package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  389. package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
  390. package/user-device-manage/src/material.module.d.ts +29 -0
  391. package/user-device-manage/src/notifications/notification.component.d.ts +19 -0
  392. package/user-device-manage/src/pipes/mac-address.pipe.d.ts +7 -0
  393. package/user-device-manage/src/services/api.service.d.ts +20 -0
  394. package/user-device-manage/src/services/device.service.d.ts +21 -0
  395. package/user-device-manage/src/services/dns.service.d.ts +18 -0
  396. package/user-device-manage/src/services/line.service.d.ts +33 -0
  397. package/user-device-manage/src/services/notification.service.d.ts +18 -0
  398. package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  399. package/user-device-manage/src/services/site-settings.service.d.ts +25 -0
  400. package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -0
  401. package/user-device-manage/src/services/user.service.d.ts +69 -0
  402. package/user-device-manage/src/services/utils.service.d.ts +10 -0
  403. package/user-device-manage/src/services/validation.service.d.ts +165 -0
  404. package/user-device-manage/src/shared/tk-page-section/page-section.component.d.ts +6 -0
  405. package/user-device-manage/src/user-device-manage.module.d.ts +25 -0
  406. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  407. package/user-manage/index.d.ts +5 -0
  408. package/user-manage/public-api.d.ts +6 -0
  409. package/user-manage/src/app.constants.d.ts +34 -0
  410. package/user-manage/src/classes/device.d.ts +204 -0
  411. package/user-manage/src/classes/line-association-interface.d.ts +41 -0
  412. package/user-manage/src/classes/line-association.d.ts +55 -0
  413. package/user-manage/src/classes/line-call-info-display.d.ts +11 -0
  414. package/user-manage/src/classes/line-directory.d.ts +17 -0
  415. package/user-manage/src/classes/line.d.ts +141 -0
  416. package/user-manage/src/classes/notification.d.ts +18 -0
  417. package/user-manage/src/classes/pagination.d.ts +13 -0
  418. package/user-manage/src/classes/recording-options.d.ts +5 -0
  419. package/user-manage/src/classes/simplified-user.d.ts +53 -0
  420. package/user-manage/src/classes/table-data.d.ts +5 -0
  421. package/user-manage/src/classes/translation-pattern.d.ts +18 -0
  422. package/user-manage/src/classes/user-list.d.ts +34 -0
  423. package/user-manage/src/common-functions.d.ts +1 -0
  424. package/user-manage/src/device-list/device-list.component.d.ts +11 -0
  425. package/user-manage/src/device-list/device-row/device-row.component.d.ts +12 -0
  426. package/user-manage/src/environments/environment.d.ts +9 -0
  427. package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -0
  428. package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +37 -0
  429. package/user-manage/src/material.module.d.ts +28 -0
  430. package/user-manage/src/notifications/notification.component.d.ts +19 -0
  431. package/user-manage/src/removeKynFromIBM.service.d.ts +8 -0
  432. package/user-manage/src/services/api.service.d.ts +21 -0
  433. package/user-manage/src/services/dns.service.d.ts +14 -0
  434. package/user-manage/src/services/line.service.d.ts +17 -0
  435. package/user-manage/src/services/notification.service.d.ts +18 -0
  436. package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
  437. package/user-manage/src/services/site-settings.service.d.ts +9 -0
  438. package/user-manage/src/services/sorting-utils.service.d.ts +26 -0
  439. package/user-manage/src/services/user.service.d.ts +46 -0
  440. package/user-manage/src/services/users-search.service.d.ts +25 -0
  441. package/user-manage/src/services/utils.service.d.ts +9 -0
  442. package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -0
  443. package/user-manage/src/user-calling/user-calling.component.d.ts +33 -0
  444. package/user-manage/src/user-info/user-info.component.d.ts +12 -0
  445. package/user-manage/src/user-manage-widget.component.d.ts +45 -0
  446. package/user-manage/src/user-manage.module.d.ts +22 -0
  447. package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -0
  448. package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -0
  449. package/users-list/index.d.ts +5 -0
  450. package/users-list/public-api.d.ts +8 -0
  451. package/users-list/src/app.constants.d.ts +67 -0
  452. package/users-list/src/classes/app-location.d.ts +17 -0
  453. package/users-list/src/classes/device.d.ts +224 -0
  454. package/users-list/src/classes/line.d.ts +140 -0
  455. package/users-list/src/classes/move-user.d.ts +85 -0
  456. package/users-list/src/classes/notification.d.ts +18 -0
  457. package/users-list/src/classes/pagination.d.ts +13 -0
  458. package/users-list/src/classes/simlified-user.d.ts +25 -0
  459. package/users-list/src/classes/table-data.d.ts +5 -0
  460. package/users-list/src/classes/user-list.d.ts +37 -0
  461. package/users-list/src/components/table-toolbar/table-toolbar.component.d.ts +17 -0
  462. package/users-list/src/material.module.d.ts +32 -0
  463. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +21 -0
  464. package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +12 -0
  465. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +55 -0
  466. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +17 -0
  467. package/users-list/src/services/api-webex.service.d.ts +8 -0
  468. package/users-list/src/services/api.service.d.ts +21 -0
  469. package/users-list/src/services/dns.service.d.ts +18 -0
  470. package/users-list/src/services/events-communication.service.d.ts +8 -0
  471. package/users-list/src/services/move-user.service.d.ts +17 -0
  472. package/users-list/src/services/notification.service.d.ts +18 -0
  473. package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -0
  474. package/users-list/src/services/site-settings.service.d.ts +11 -0
  475. package/users-list/src/services/user.service.d.ts +42 -0
  476. package/users-list/src/services/users-search.service.d.ts +41 -0
  477. package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -0
  478. package/users-list/src/users-list.component.d.ts +97 -0
  479. package/users-list/src/users-list.module.d.ts +20 -0
  480. package/users-list/src/utils/app-loader/app-loader.d.ts +6 -0
  481. package/users-list/src/utils/common-functions.d.ts +2 -0
  482. package/users-list/src/utils/notifications/notification.component.d.ts +19 -0
  483. package/users-list/src/utils/pagination/pagination.component.d.ts +18 -0
  484. package/users-list/src/utils/utils.service.d.ts +9 -0
  485. package/.editorconfig +0 -16
  486. package/.hintrc +0 -14
  487. package/.vscode/extensions.json +0 -4
  488. package/.vscode/launch.json +0 -20
  489. package/.vscode/tasks.json +0 -42
  490. package/angular.json +0 -141
  491. package/projects/tuki/widgets/README.md +0 -24
  492. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.module.ts +0 -44
  493. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.service.spec.ts +0 -16
  494. package/projects/tuki/widgets/contact-center/cc-readiness/cc-readiness.service.ts +0 -37
  495. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.html +0 -11
  496. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.scss +0 -48
  497. package/projects/tuki/widgets/contact-center/cc-readiness/components/card/card.component.ts +0 -10
  498. package/projects/tuki/widgets/contact-center/cc-readiness/types/cc-readiness.ts +0 -30
  499. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.html +0 -75
  500. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.scss +0 -177
  501. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.spec.ts +0 -35
  502. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.ts +0 -243
  503. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.html +0 -19
  504. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.scss +0 -38
  505. package/projects/tuki/widgets/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.ts +0 -59
  506. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.component.html +0 -36
  507. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.component.scss +0 -28
  508. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.component.ts +0 -263
  509. package/projects/tuki/widgets/contact-center/cc-script-editor/cc-script-editor.module.ts +0 -54
  510. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.html +0 -0
  511. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.scss +0 -111
  512. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.ts +0 -78
  513. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.html +0 -0
  514. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.scss +0 -155
  515. package/projects/tuki/widgets/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.ts +0 -105
  516. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.html +0 -13
  517. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.scss +0 -36
  518. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.ts +0 -118
  519. package/projects/tuki/widgets/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.ts +0 -18
  520. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.html +0 -18
  521. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.scss +0 -62
  522. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.ts +0 -72
  523. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.html +0 -130
  524. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.scss +0 -298
  525. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.ts +0 -113
  526. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.html +0 -13
  527. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.scss +0 -57
  528. package/projects/tuki/widgets/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.ts +0 -46
  529. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.html +0 -30
  530. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.scss +0 -9
  531. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.ts +0 -16
  532. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.html +0 -29
  533. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.scss +0 -21
  534. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.ts +0 -58
  535. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.html +0 -83
  536. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.scss +0 -339
  537. package/projects/tuki/widgets/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.ts +0 -551
  538. package/projects/tuki/widgets/contact-center/cc-script-editor/constants/cytoscape.config.ts +0 -73
  539. package/projects/tuki/widgets/contact-center/cc-script-editor/constants/wxcc-activity-templates.constants.ts +0 -1
  540. package/projects/tuki/widgets/contact-center/cc-script-editor/constants/wxcc-api.constants.ts +0 -52
  541. package/projects/tuki/widgets/contact-center/cc-script-editor/mock/data/QWC_wxcc.json +0 -912
  542. package/projects/tuki/widgets/contact-center/cc-script-editor/mock/mock-data.service.ts +0 -0
  543. package/projects/tuki/widgets/contact-center/cc-script-editor/services/cystoscape-viewport.service.ts +0 -77
  544. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc-activity-creation.service.ts +0 -100
  545. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc-activity-manage.service.ts +0 -159
  546. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc-flow-api.service.ts +0 -81
  547. package/projects/tuki/widgets/contact-center/cc-script-editor/services/wxcc2graph.service.ts +0 -172
  548. package/projects/tuki/widgets/contact-center/cc-script-editor/types/cytoscape-node-html-label.d.ts +0 -24
  549. package/projects/tuki/widgets/contact-center/cc-script-editor/types/extended-activity.ts +0 -62
  550. package/projects/tuki/widgets/contact-center/cc-script-editor/types/wxcc-activity.ts +0 -135
  551. package/projects/tuki/widgets/contact-center/cc-script-editor/types/wxcc.ts +0 -220
  552. package/projects/tuki/widgets/contact-center/cc-script-editor/utils/node-html-template.ts +0 -90
  553. package/projects/tuki/widgets/contact-center/cc-script-editor/utils/node-mappings.ts +0 -153
  554. package/projects/tuki/widgets/contact-center/ng-package.json +0 -12
  555. package/projects/tuki/widgets/contact-center/public-api.ts +0 -8
  556. package/projects/tuki/widgets/contact-center/shared/api.endpoints.ts +0 -6
  557. package/projects/tuki/widgets/contact-center/shared/api.service.ts +0 -87
  558. package/projects/tuki/widgets/contact-center/shared/assets/icons/applications.svg +0 -6
  559. package/projects/tuki/widgets/contact-center/shared/assets/icons/audioPrompts.svg +0 -4
  560. package/projects/tuki/widgets/contact-center/shared/assets/icons/contactServiceQueues.svg +0 -3
  561. package/projects/tuki/widgets/contact-center/shared/assets/icons/phonebooks.svg +0 -6
  562. package/projects/tuki/widgets/contact-center/shared/assets/icons/resourceGroups.svg +0 -6
  563. package/projects/tuki/widgets/contact-center/shared/assets/icons/resources.svg +0 -3
  564. package/projects/tuki/widgets/contact-center/shared/assets/icons/scripts.svg +0 -12
  565. package/projects/tuki/widgets/contact-center/shared/assets/icons/skills.svg +0 -3
  566. package/projects/tuki/widgets/contact-center/shared/assets/icons/teams.svg +0 -3
  567. package/projects/tuki/widgets/contact-center/shared/assets/icons/triggers.svg +0 -4
  568. package/projects/tuki/widgets/contact-center/shared/assets/icons/wrapUpCodes.svg +0 -3
  569. package/projects/tuki/widgets/contact-center/shared/assets/icons/xml.svg +0 -6
  570. package/projects/tuki/widgets/contact-center/shared/material.module.ts +0 -38
  571. package/projects/tuki/widgets/contact-center/shared/shared.module.ts +0 -20
  572. package/projects/tuki/widgets/contact-center/shared/styles/tuki-widgets-theme.scss +0 -13
  573. package/projects/tuki/widgets/contact-center/shared/styles/variables.scss +0 -96
  574. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +0 -32
  575. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  576. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  577. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  578. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +0 -3
  579. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  580. package/projects/tuki/widgets/di2mt/assets/icons/icon_play.svg +0 -3
  581. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  582. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  583. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  584. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  585. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  586. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  587. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  588. package/projects/tuki/widgets/di2mt/ng-package.json +0 -7
  589. package/projects/tuki/widgets/di2mt/public-api.ts +0 -28
  590. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +0 -11
  591. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +0 -48
  592. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +0 -10
  593. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +0 -15
  594. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +0 -38
  595. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +0 -76
  596. package/projects/tuki/widgets/di2mt/shared/components/index.ts +0 -6
  597. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +0 -68
  598. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +0 -78
  599. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +0 -59
  600. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +0 -57
  601. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +0 -187
  602. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +0 -41
  603. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +0 -12
  604. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +0 -78
  605. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +0 -27
  606. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +0 -28
  607. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +0 -245
  608. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +0 -28
  609. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +0 -96
  610. package/projects/tuki/widgets/di2mt/shared/material.module.ts +0 -36
  611. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +0 -87
  612. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +0 -39
  613. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +0 -22
  614. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +0 -5
  615. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +0 -14
  616. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +0 -13
  617. package/projects/tuki/widgets/di2mt/styles/variables.scss +0 -94
  618. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +0 -6
  619. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +0 -45
  620. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +0 -27
  621. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -160
  622. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -469
  623. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -511
  624. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -33
  625. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -173
  626. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +0 -27
  627. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -55
  628. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -60
  629. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.ts +0 -72
  630. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -85
  631. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -7
  632. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  633. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -47
  634. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -7
  635. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  636. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -48
  637. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -84
  638. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -73
  639. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts +0 -59
  640. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +0 -45
  641. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +0 -109
  642. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts +0 -35
  643. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +0 -204
  644. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +0 -466
  645. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -441
  646. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -34
  647. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -137
  648. package/projects/tuki/widgets/karma.conf.js +0 -44
  649. package/projects/tuki/widgets/ng-package.json +0 -10
  650. package/projects/tuki/widgets/package.json +0 -13
  651. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +0 -23
  652. package/projects/tuki/widgets/src/lib/widgets.component.ts +0 -20
  653. package/projects/tuki/widgets/src/lib/widgets.module.ts +0 -16
  654. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +0 -16
  655. package/projects/tuki/widgets/src/lib/widgets.service.ts +0 -9
  656. package/projects/tuki/widgets/src/public-api.ts +0 -7
  657. package/projects/tuki/widgets/src/test.ts +0 -27
  658. package/projects/tuki/widgets/styles.scss +0 -558
  659. package/projects/tuki/widgets/tsconfig.lib.json +0 -52
  660. package/projects/tuki/widgets/tsconfig.lib.prod.json +0 -10
  661. package/projects/tuki/widgets/tsconfig.spec.json +0 -17
  662. package/projects/tuki/widgets/user-creation/assets/icons/close_icon_modal.svg +0 -3
  663. package/projects/tuki/widgets/user-creation/assets/icons/user-creation-close-icon.svg +0 -3
  664. package/projects/tuki/widgets/user-creation/ng-package.json +0 -7
  665. package/projects/tuki/widgets/user-creation/public-api.ts +0 -16
  666. package/projects/tuki/widgets/user-creation/src/app.constants.ts +0 -33
  667. package/projects/tuki/widgets/user-creation/src/classes/notification.ts +0 -40
  668. package/projects/tuki/widgets/user-creation/src/classes/site.ts +0 -260
  669. package/projects/tuki/widgets/user-creation/src/classes/user.ts +0 -177
  670. package/projects/tuki/widgets/user-creation/src/environments/environment.prod.ts +0 -9
  671. package/projects/tuki/widgets/user-creation/src/environments/environment.ts +0 -10
  672. package/projects/tuki/widgets/user-creation/src/interfaces/user-creation-wizard.interfaces.ts +0 -788
  673. package/projects/tuki/widgets/user-creation/src/shared/api/api.service.ts +0 -87
  674. package/projects/tuki/widgets/user-creation/src/shared/classes/user-template.ts +0 -77
  675. package/projects/tuki/widgets/user-creation/src/shared/components/notification/notification.component.html +0 -32
  676. package/projects/tuki/widgets/user-creation/src/shared/components/notification/notification.component.scss +0 -80
  677. package/projects/tuki/widgets/user-creation/src/shared/components/notification/notification.component.ts +0 -46
  678. package/projects/tuki/widgets/user-creation/src/shared/material.module.ts +0 -48
  679. package/projects/tuki/widgets/user-creation/src/shared/pipes/truncate.pipe.ts +0 -26
  680. package/projects/tuki/widgets/user-creation/src/shared/services/notification.service.ts +0 -68
  681. package/projects/tuki/widgets/user-creation/src/shared/services/user-creation-api.service.ts +0 -136
  682. package/projects/tuki/widgets/user-creation/src/shared/services/utils.ts +0 -16
  683. package/projects/tuki/widgets/user-creation/src/shared/shared.module.ts +0 -28
  684. package/projects/tuki/widgets/user-creation/src/shared/styles/styles.scss +0 -96
  685. package/projects/tuki/widgets/user-creation/src/user-creation.module.ts +0 -63
  686. package/projects/tuki/widgets/user-creation/src/utils/app-loader/app-loader.component.html +0 -7
  687. package/projects/tuki/widgets/user-creation/src/utils/app-loader/app-loader.component.scss +0 -14
  688. package/projects/tuki/widgets/user-creation/src/utils/app-loader/app-loader.ts +0 -13
  689. package/projects/tuki/widgets/user-creation/src/utils/build-savable-end-user.ts +0 -238
  690. package/projects/tuki/widgets/user-creation/src/utils/device-default-prefix.ts +0 -17
  691. package/projects/tuki/widgets/user-creation/src/utils/device-name-validation.ts +0 -30
  692. package/projects/tuki/widgets/user-creation/src/utils/model.ts +0 -16
  693. package/projects/tuki/widgets/user-creation/src/utils/models.ts +0 -46
  694. package/projects/tuki/widgets/user-creation/src/utils/parse-device-name-rule.ts +0 -29
  695. package/projects/tuki/widgets/user-creation/src/utils/validation.ts +0 -16
  696. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.html +0 -376
  697. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.scss +0 -476
  698. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.ts +0 -657
  699. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.html +0 -107
  700. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.scss +0 -75
  701. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.ts +0 -17
  702. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.html +0 -73
  703. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.scss +0 -127
  704. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.ts +0 -211
  705. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.html +0 -113
  706. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.scss +0 -227
  707. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.spec.ts +0 -41
  708. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.ts +0 -123
  709. package/projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.ts +0 -947
  710. package/projects/tuki/widgets/user-device-manage/ng-package.json +0 -7
  711. package/projects/tuki/widgets/user-device-manage/public-api.ts +0 -8
  712. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +0 -99
  713. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-down-bold.svg +0 -1
  714. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
  715. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right-regular.svg +0 -1
  716. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
  717. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cancel-regular.svg +0 -1
  718. package/projects/tuki/widgets/user-device-manage/src/assets/icons/check-circle-regular.svg +0 -1
  719. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco.svg +0 -8
  720. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_7841.png +0 -0
  721. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_8841.png +0 -0
  722. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_8851.png +0 -0
  723. package/projects/tuki/widgets/user-device-manage/src/assets/icons/cisco_9861.png +0 -0
  724. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
  725. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
  726. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  727. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +0 -1
  728. package/projects/tuki/widgets/user-device-manage/src/assets/icons/info-circle-regular.svg +0 -1
  729. package/projects/tuki/widgets/user-device-manage/src/assets/icons/people-regular.svg +0 -1
  730. package/projects/tuki/widgets/user-device-manage/src/assets/icons/plus-regular.svg +0 -1
  731. package/projects/tuki/widgets/user-device-manage/src/assets/icons/settings-light.svg +0 -1
  732. package/projects/tuki/widgets/user-device-manage/src/assets/icons/settings-regular.svg +0 -1
  733. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  734. package/projects/tuki/widgets/user-device-manage/src/assets/icons/warning-regular.svg +0 -1
  735. package/projects/tuki/widgets/user-device-manage/src/assets/info-circle-bold.svg +0 -1
  736. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +0 -292
  737. package/projects/tuki/widgets/user-device-manage/src/classes/deviceProfile.ts +0 -79
  738. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +0 -50
  739. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +0 -177
  740. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +0 -21
  741. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +0 -41
  742. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +0 -144
  743. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +0 -40
  744. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +0 -6
  745. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +0 -169
  746. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +0 -167
  747. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +0 -50
  748. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +0 -19
  749. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +0 -225
  750. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +0 -8
  751. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +0 -16
  752. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
  753. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
  754. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
  755. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
  756. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
  757. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
  758. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
  759. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
  760. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
  761. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -24
  762. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -11
  763. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -74
  764. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
  765. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
  766. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
  767. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.html +0 -52
  768. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.scss +0 -219
  769. package/projects/tuki/widgets/user-device-manage/src/device-info/device-info.component.ts +0 -38
  770. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +0 -27
  771. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +0 -131
  772. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +0 -25
  773. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +0 -301
  774. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +0 -766
  775. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +0 -190
  776. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +0 -9
  777. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +0 -10
  778. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
  779. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -67
  780. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -98
  781. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  782. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +0 -87
  783. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +0 -33
  784. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +0 -84
  785. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +0 -46
  786. package/projects/tuki/widgets/user-device-manage/src/pipes/mac-address.pipe.ts +0 -24
  787. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
  788. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +0 -87
  789. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +0 -17
  790. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +0 -95
  791. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +0 -146
  792. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +0 -89
  793. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +0 -68
  794. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
  795. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +0 -82
  796. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +0 -203
  797. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +0 -432
  798. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +0 -87
  799. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +0 -829
  800. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.html +0 -13
  801. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.scss +0 -48
  802. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.spec.ts +0 -23
  803. package/projects/tuki/widgets/user-device-manage/src/shared/tk-page-section/page-section.component.ts +0 -10
  804. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +0 -90
  805. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +0 -284
  806. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +0 -33
  807. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +0 -131
  808. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +0 -30
  809. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +0 -79
  810. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -7
  811. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  812. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
  813. package/projects/tuki/widgets/user-manage/ng-package.json +0 -7
  814. package/projects/tuki/widgets/user-manage/public-api.ts +0 -6
  815. package/projects/tuki/widgets/user-manage/src/app.constants.ts +0 -55
  816. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-down-bold.svg +0 -1
  817. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +0 -5
  818. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right-bold.svg +0 -1
  819. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +0 -5
  820. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_7841.png +0 -0
  821. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_8841.png +0 -0
  822. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_8851.png +0 -0
  823. package/projects/tuki/widgets/user-manage/src/assets/icons/cisco_9861.png +0 -0
  824. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +0 -5
  825. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  826. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +0 -1
  827. package/projects/tuki/widgets/user-manage/src/assets/icons/info-circle-bold.svg +0 -1
  828. package/projects/tuki/widgets/user-manage/src/assets/icons/mt.svg +0 -3
  829. package/projects/tuki/widgets/user-manage/src/assets/icons/people-regular.svg +0 -1
  830. package/projects/tuki/widgets/user-manage/src/assets/icons/settings-light.svg +0 -1
  831. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  832. package/projects/tuki/widgets/user-manage/src/assets/icons/webex.svg +0 -7
  833. package/projects/tuki/widgets/user-manage/src/classes/device.ts +0 -234
  834. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +0 -44
  835. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +0 -161
  836. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +0 -21
  837. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +0 -44
  838. package/projects/tuki/widgets/user-manage/src/classes/line.ts +0 -145
  839. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +0 -39
  840. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +0 -18
  841. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +0 -6
  842. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +0 -174
  843. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +0 -6
  844. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +0 -49
  845. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +0 -225
  846. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +0 -42
  847. package/projects/tuki/widgets/user-manage/src/classes/user.ts +0 -8
  848. package/projects/tuki/widgets/user-manage/src/common-functions.ts +0 -16
  849. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +0 -32
  850. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +0 -305
  851. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +0 -26
  852. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.html +0 -14
  853. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.scss +0 -154
  854. package/projects/tuki/widgets/user-manage/src/device-list/device-row/device-row.component.ts +0 -34
  855. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +0 -9
  856. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +0 -10
  857. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +0 -35
  858. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -68
  859. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -125
  860. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -93
  861. package/projects/tuki/widgets/user-manage/src/material.module.ts +0 -85
  862. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +0 -33
  863. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +0 -84
  864. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +0 -46
  865. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +0 -25
  866. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +0 -90
  867. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +0 -116
  868. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +0 -31
  869. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +0 -68
  870. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
  871. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +0 -35
  872. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +0 -203
  873. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +0 -304
  874. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +0 -59
  875. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +0 -71
  876. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +0 -93
  877. package/projects/tuki/widgets/user-manage/src/styles/form.scss +0 -231
  878. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +0 -41
  879. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +0 -128
  880. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +0 -30
  881. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
  882. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -444
  883. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
  884. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +0 -128
  885. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +0 -469
  886. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +0 -105
  887. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +0 -68
  888. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +0 -110
  889. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +0 -121
  890. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +0 -28
  891. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +0 -313
  892. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +0 -638
  893. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +0 -235
  894. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +0 -65
  895. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.html +0 -64
  896. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.scss +0 -17
  897. package/projects/tuki/widgets/user-manage/src/user-summary/user-summary.component.ts +0 -8
  898. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +0 -7
  899. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  900. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +0 -13
  901. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +0 -26
  902. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +0 -41
  903. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +0 -41
  904. package/projects/tuki/widgets/users-list/ng-package.json +0 -7
  905. package/projects/tuki/widgets/users-list/public-api.ts +0 -8
  906. package/projects/tuki/widgets/users-list/src/app.constants.ts +0 -91
  907. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +0 -3
  908. package/projects/tuki/widgets/users-list/src/assets/icons/cogs.svg +0 -8
  909. package/projects/tuki/widgets/users-list/src/assets/icons/copy-regular.svg +0 -1
  910. package/projects/tuki/widgets/users-list/src/assets/icons/di.svg +0 -15
  911. package/projects/tuki/widgets/users-list/src/assets/icons/di_cloud_24.svg +0 -16
  912. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +0 -1
  913. package/projects/tuki/widgets/users-list/src/assets/icons/info-circle-regular.svg +0 -1
  914. package/projects/tuki/widgets/users-list/src/assets/icons/info.svg +0 -5
  915. package/projects/tuki/widgets/users-list/src/assets/icons/local_24.svg +0 -18
  916. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
  917. package/projects/tuki/widgets/users-list/src/assets/icons/mt_old.svg +0 -3
  918. package/projects/tuki/widgets/users-list/src/assets/icons/onprem_ucm.svg +0 -17
  919. package/projects/tuki/widgets/users-list/src/assets/icons/settings-regular.svg +0 -1
  920. package/projects/tuki/widgets/users-list/src/assets/icons/webex.svg +0 -7
  921. package/projects/tuki/widgets/users-list/src/assets/icons/webex_logo_icon.svg +0 -305
  922. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +0 -3
  923. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +0 -36
  924. package/projects/tuki/widgets/users-list/src/classes/device.ts +0 -225
  925. package/projects/tuki/widgets/users-list/src/classes/line.ts +0 -144
  926. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +0 -229
  927. package/projects/tuki/widgets/users-list/src/classes/notification.ts +0 -38
  928. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +0 -18
  929. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +0 -74
  930. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +0 -6
  931. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +0 -225
  932. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +0 -48
  933. package/projects/tuki/widgets/users-list/src/classes/user.ts +0 -8
  934. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.html +0 -167
  935. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.scss +0 -41
  936. package/projects/tuki/widgets/users-list/src/components/table-toolbar/table-toolbar.component.ts +0 -37
  937. package/projects/tuki/widgets/users-list/src/material.module.ts +0 -97
  938. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +0 -37
  939. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +0 -131
  940. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +0 -46
  941. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +0 -31
  942. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +0 -20
  943. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +0 -26
  944. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -222
  945. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -249
  946. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -207
  947. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
  948. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
  949. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
  950. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +0 -14
  951. package/projects/tuki/widgets/users-list/src/services/api.service.ts +0 -90
  952. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +0 -128
  953. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +0 -11
  954. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +0 -59
  955. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +0 -68
  956. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +0 -25
  957. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +0 -26
  958. package/projects/tuki/widgets/users-list/src/services/user.service.ts +0 -207
  959. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +0 -192
  960. package/projects/tuki/widgets/users-list/src/styles/styles.scss +0 -639
  961. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
  962. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
  963. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
  964. package/projects/tuki/widgets/users-list/src/users-list.component.css +0 -4
  965. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +0 -1
  966. package/projects/tuki/widgets/users-list/src/users-list.component.html +0 -306
  967. package/projects/tuki/widgets/users-list/src/users-list.component.scss +0 -751
  968. package/projects/tuki/widgets/users-list/src/users-list.component.ts +0 -1023
  969. package/projects/tuki/widgets/users-list/src/users-list.module.ts +0 -67
  970. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +0 -11
  971. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
  972. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +0 -7
  973. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +0 -17
  974. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +0 -13
  975. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +0 -32
  976. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +0 -47
  977. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +0 -94
  978. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +0 -46
  979. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +0 -45
  980. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +0 -1
  981. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +0 -26
  982. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +0 -41
  983. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +0 -41
  984. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +0 -71
  985. package/projects/widgets-playground/src/app/app.component.html +0 -44
  986. package/projects/widgets-playground/src/app/app.component.scss +0 -26
  987. package/projects/widgets-playground/src/app/app.component.spec.ts +0 -31
  988. package/projects/widgets-playground/src/app/app.component.ts +0 -36
  989. package/projects/widgets-playground/src/app/app.module.ts +0 -49
  990. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  991. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  992. package/projects/widgets-playground/src/assets/icons/applications copy.svg +0 -6
  993. package/projects/widgets-playground/src/assets/icons/applications.svg +0 -6
  994. package/projects/widgets-playground/src/assets/icons/arrow-down-bold.svg +0 -1
  995. package/projects/widgets-playground/src/assets/icons/audio-prompts.svg +0 -4
  996. package/projects/widgets-playground/src/assets/icons/audioPrompts.svg +0 -4
  997. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  998. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  999. package/projects/widgets-playground/src/assets/icons/contactServiceQueues.svg +0 -3
  1000. package/projects/widgets-playground/src/assets/icons/copy-regular.svg +0 -1
  1001. package/projects/widgets-playground/src/assets/icons/csqs.svg +0 -3
  1002. package/projects/widgets-playground/src/assets/icons/di.svg +0 -15
  1003. package/projects/widgets-playground/src/assets/icons/di_cloud_24.svg +0 -16
  1004. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  1005. package/projects/widgets-playground/src/assets/icons/info-circle-regular.svg +0 -1
  1006. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  1007. package/projects/widgets-playground/src/assets/icons/local_24.svg +0 -18
  1008. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  1009. package/projects/widgets-playground/src/assets/icons/mt_old.svg +0 -3
  1010. package/projects/widgets-playground/src/assets/icons/onprem_ucm.svg +0 -17
  1011. package/projects/widgets-playground/src/assets/icons/phone-books.svg +0 -6
  1012. package/projects/widgets-playground/src/assets/icons/phonebooks.svg +0 -6
  1013. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  1014. package/projects/widgets-playground/src/assets/icons/resource-group.svg +0 -6
  1015. package/projects/widgets-playground/src/assets/icons/resource.svg +0 -3
  1016. package/projects/widgets-playground/src/assets/icons/resourceGroups.svg +0 -6
  1017. package/projects/widgets-playground/src/assets/icons/resources.svg +0 -3
  1018. package/projects/widgets-playground/src/assets/icons/scripts copy.svg +0 -12
  1019. package/projects/widgets-playground/src/assets/icons/scripts.svg +0 -12
  1020. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  1021. package/projects/widgets-playground/src/assets/icons/settings-regular.svg +0 -1
  1022. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  1023. package/projects/widgets-playground/src/assets/icons/skills copy.svg +0 -3
  1024. package/projects/widgets-playground/src/assets/icons/skills.svg +0 -3
  1025. package/projects/widgets-playground/src/assets/icons/teams copy.svg +0 -3
  1026. package/projects/widgets-playground/src/assets/icons/teams.svg +0 -3
  1027. package/projects/widgets-playground/src/assets/icons/triggers copy.svg +0 -4
  1028. package/projects/widgets-playground/src/assets/icons/triggers.svg +0 -4
  1029. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  1030. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  1031. package/projects/widgets-playground/src/assets/icons/webex.svg +0 -7
  1032. package/projects/widgets-playground/src/assets/icons/webex_logo_icon.svg +0 -305
  1033. package/projects/widgets-playground/src/assets/icons/wrapUpCodes.svg +0 -3
  1034. package/projects/widgets-playground/src/assets/icons/wrapup-codes.svg +0 -3
  1035. package/projects/widgets-playground/src/assets/icons/xml copy.svg +0 -6
  1036. package/projects/widgets-playground/src/assets/icons/xml.svg +0 -6
  1037. package/projects/widgets-playground/src/assets/wxcc/action-menu.svg +0 -3
  1038. package/projects/widgets-playground/src/assets/wxcc/c1.svg +0 -3
  1039. package/projects/widgets-playground/src/assets/wxcc/c2.svg +0 -3
  1040. package/projects/widgets-playground/src/assets/wxcc/close1.svg +0 -3
  1041. package/projects/widgets-playground/src/assets/wxcc/delay.svg +0 -3
  1042. package/projects/widgets-playground/src/assets/wxcc/if.svg +0 -3
  1043. package/projects/widgets-playground/src/assets/wxcc/m1.svg +0 -3
  1044. package/projects/widgets-playground/src/assets/wxcc/m2.svg +0 -3
  1045. package/projects/widgets-playground/src/assets/wxcc/m3.svg +0 -3
  1046. package/projects/widgets-playground/src/assets/wxcc/p1.svg +0 -3
  1047. package/projects/widgets-playground/src/assets/wxcc/route.svg +0 -5
  1048. package/projects/widgets-playground/src/assets/wxcc/s1.svg +0 -3
  1049. package/projects/widgets-playground/src/assets/wxcc/search.svg +0 -3
  1050. package/projects/widgets-playground/src/assets/wxcc/terminate.svg +0 -3
  1051. package/projects/widgets-playground/src/assets/wxcc/terminate2.svg +0 -3
  1052. package/projects/widgets-playground/src/assets/wxcc/unmapped.svg +0 -3
  1053. package/projects/widgets-playground/src/assets/wxcc/variable.svg +0 -3
  1054. package/projects/widgets-playground/src/environments/environment.ts +0 -5
  1055. package/projects/widgets-playground/src/favicon.ico +0 -0
  1056. package/projects/widgets-playground/src/index.html +0 -13
  1057. package/projects/widgets-playground/src/main.ts +0 -7
  1058. package/projects/widgets-playground/src/styles.scss +0 -33
  1059. package/projects/widgets-playground/tsconfig.app.json +0 -14
  1060. package/projects/widgets-playground/tsconfig.spec.json +0 -14
  1061. package/proxy.conf.js +0 -23
  1062. package/tsconfig.json +0 -52
  1063. /package/{projects/tuki/widgets/di2mt → di2mt}/README.md +0 -0
  1064. /package/{projects/tuki/widgets → esm2020}/contact-center/cc-script-editor/mock/data/QWC_ir.json +0 -0
@@ -0,0 +1,61 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/form-field";
5
+ import * as i3 from "@angular/material/select";
6
+ import * as i4 from "@angular/material/core";
7
+ export class WxCCFileSelectionBarComponent {
8
+ constructor() {
9
+ this.fileNameSelectionChange = new EventEmitter();
10
+ this.hostFileNames = new Map();
11
+ }
12
+ ngOnInit() {
13
+ this.fileNames.forEach(({ fileName, host }) => {
14
+ if (!this.hostFileNames.has(host)) {
15
+ this.hostFileNames.set(host, []);
16
+ }
17
+ this.hostFileNames.get(host)?.push(fileName);
18
+ });
19
+ }
20
+ get fileNamesByHost() {
21
+ return this.hostFileNames.get(this.selectedHost);
22
+ }
23
+ get hosts() {
24
+ if (!this.fileNames.length) {
25
+ return null;
26
+ }
27
+ const hostsSet = new Set(this.fileNames.map((file) => file.host));
28
+ return Array.from(hostsSet).filter(host => host);
29
+ }
30
+ onFileSelectionChange(fileName) {
31
+ this.fileNameSelectionChange.emit({ fileName: fileName, host: this.selectedHost });
32
+ }
33
+ onHostSelectionChange(host) {
34
+ this.selectedHost = host;
35
+ this.fileNameSelectionChange.emit({
36
+ host: host,
37
+ fileName: this.fileNamesByHost[0]
38
+ });
39
+ }
40
+ trackByFileName(_index, fileName) {
41
+ return fileName;
42
+ }
43
+ trackByHost(_index, host) {
44
+ return host;
45
+ }
46
+ }
47
+ WxCCFileSelectionBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCFileSelectionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ WxCCFileSelectionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WxCCFileSelectionBarComponent, selector: "wxcc-file-selection-bar", inputs: { fileNames: "fileNames", selectedFileName: "selectedFileName", selectedHost: "selectedHost" }, outputs: { fileNameSelectionChange: "fileNameSelectionChange" }, ngImport: i0, template: "<div class=\"file-selection-bar\">\r\n <mat-form-field appearance=\"outline\" class=\"host-selection\" *ngIf=\"hosts?.length\">\r\n <!-- <mat-label>Host</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedHost\"\r\n (selectionChange)=\"onHostSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let host of hosts; trackBy: trackByHost\"\r\n title=\"{{ host }}\"\r\n [value]=\"host\">\r\n {{ host }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"file-selection\">\r\n <!-- <mat-label>Script file</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedFileName\"\r\n (selectionChange)=\"onFileSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let name of fileNamesByHost; trackBy: trackByFileName\"\r\n title=\"{{ name }}\"\r\n [value]=\"name\">\r\n {{ name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:.25rem 0 .5rem}:host ::ng-deep .mat-select-trigger{display:block}:host ::ng-deep .mat-select-trigger .mat-select-arrow-wrapper{transform:none}.file-selection-bar{display:flex;gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCFileSelectionBarComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'wxcc-file-selection-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"file-selection-bar\">\r\n <mat-form-field appearance=\"outline\" class=\"host-selection\" *ngIf=\"hosts?.length\">\r\n <!-- <mat-label>Host</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedHost\"\r\n (selectionChange)=\"onHostSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let host of hosts; trackBy: trackByHost\"\r\n title=\"{{ host }}\"\r\n [value]=\"host\">\r\n {{ host }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"file-selection\">\r\n <!-- <mat-label>Script file</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedFileName\"\r\n (selectionChange)=\"onFileSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let name of fileNamesByHost; trackBy: trackByFileName\"\r\n title=\"{{ name }}\"\r\n [value]=\"name\">\r\n {{ name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:.25rem 0 .5rem}:host ::ng-deep .mat-select-trigger{display:block}:host ::ng-deep .mat-select-trigger .mat-select-arrow-wrapper{transform:none}.file-selection-bar{display:flex;gap:1rem}\n"] }]
52
+ }], propDecorators: { fileNames: [{
53
+ type: Input
54
+ }], selectedFileName: [{
55
+ type: Input
56
+ }], selectedHost: [{
57
+ type: Input
58
+ }], fileNameSelectionChange: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3hjYy1maWxlLXNlbGVjdGlvbi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2NvbnRhY3QtY2VudGVyL2NjLXNjcmlwdC1lZGl0b3IvY29tcG9uZW50cy93eGNjLWZpbGUtc2VsZWN0aW9uLWJhci93eGNjLWZpbGUtc2VsZWN0aW9uLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVF4RyxNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBV2MsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQXNDLENBQUM7UUFFbEYsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztLQTBDeEQ7SUF4Q0csUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQWEsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNsQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQVk7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQztZQUM5QixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUNwQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUM1QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzJIQWhEUSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3T0NSMUMsMnBDQTRCTTs0RkRwQk8sNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnd3hjYy1maWxlLXNlbGVjdGlvbi1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV3hDQ0ZpbGVTZWxlY3Rpb25CYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgZmlsZU5hbWVzITogeyBmaWxlTmFtZTogc3RyaW5nOyBob3N0OiBzdHJpbmcgfVtdO1xyXG4gICAgQElucHV0KCkgc2VsZWN0ZWRGaWxlTmFtZSE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkSG9zdCE6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgZmlsZU5hbWVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaG9zdDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nIH0+KCk7XHJcblxyXG4gICAgcmVhZG9ubHkgaG9zdEZpbGVOYW1lcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVOYW1lcy5mb3JFYWNoKCh7IGZpbGVOYW1lLCBob3N0IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmhvc3RGaWxlTmFtZXMuaGFzKGhvc3QpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RGaWxlTmFtZXMuc2V0KGhvc3QsIFtdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhvc3RGaWxlTmFtZXMuZ2V0KGhvc3QpPy5wdXNoKGZpbGVOYW1lKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZmlsZU5hbWVzQnlIb3N0KCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0RmlsZU5hbWVzLmdldCh0aGlzLnNlbGVjdGVkSG9zdCkgYXMgc3RyaW5nW107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGhvc3RzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVOYW1lcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGhvc3RzU2V0ID0gbmV3IFNldCh0aGlzLmZpbGVOYW1lcy5tYXAoKGZpbGUpID0+IGZpbGUuaG9zdCkpO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGhvc3RzU2V0KS5maWx0ZXIoaG9zdCA9PiBob3N0KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZpbGVTZWxlY3Rpb25DaGFuZ2UoZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZU5hbWVTZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IGZpbGVOYW1lOiBmaWxlTmFtZSwgaG9zdDogdGhpcy5zZWxlY3RlZEhvc3QgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ib3N0U2VsZWN0aW9uQ2hhbmdlKGhvc3Q6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3N0ID0gaG9zdDtcclxuICAgICAgICB0aGlzLmZpbGVOYW1lU2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICBob3N0OiBob3N0LFxyXG4gICAgICAgICAgICBmaWxlTmFtZTogdGhpcy5maWxlTmFtZXNCeUhvc3RbMF1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5RmlsZU5hbWUoX2luZGV4OiBudW1iZXIsIGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBmaWxlTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SG9zdChfaW5kZXg6IG51bWJlciwgaG9zdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gaG9zdDtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJmaWxlLXNlbGVjdGlvbi1iYXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiaG9zdC1zZWxlY3Rpb25cIiAqbmdJZj1cImhvc3RzPy5sZW5ndGhcIj5cclxuICAgICAgICA8IS0tIDxtYXQtbGFiZWw+SG9zdDwvbWF0LWxhYmVsPiAtLT5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRIb3N0XCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkhvc3RTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhvc3Qgb2YgaG9zdHM7IHRyYWNrQnk6IHRyYWNrQnlIb3N0XCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgaG9zdCB9fVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaG9zdFwiPlxyXG4gICAgICAgICAgICAgICAge3sgaG9zdCB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZpbGUtc2VsZWN0aW9uXCI+XHJcbiAgICAgICAgPCEtLSA8bWF0LWxhYmVsPlNjcmlwdCBmaWxlPC9tYXQtbGFiZWw+IC0tPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZEZpbGVOYW1lXCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkZpbGVTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5hbWUgb2YgZmlsZU5hbWVzQnlIb3N0OyB0cmFja0J5OiB0cmFja0J5RmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBuYW1lIH19XCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJuYW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBuYW1lIH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,434 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewChild } from "@angular/core";
2
+ import cytoscape from "cytoscape";
3
+ import dagre from "cytoscape-dagre";
4
+ import nodeHtmlLabel from "cytoscape-node-html-label";
5
+ import { StyleConfig } from "../../constants/cytoscape.config";
6
+ import { getNodeHtmlTemplate } from "../../utils/node-html-template";
7
+ import { AddNodeDialogComponent } from "../dialogs/add-node-dialog/add-node-dialog.component";
8
+ import { LinkNodeDialogComponent } from "../dialogs/link-node-dialog/link-node-dialog.component";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../services/wxcc2graph.service";
11
+ import * as i2 from "../../services/cystoscape-viewport.service";
12
+ import * as i3 from "@angular/material/dialog";
13
+ import * as i4 from "../../services/wxcc-activity-creation.service";
14
+ import * as i5 from "@angular/common";
15
+ import * as i6 from "@angular/material/tooltip";
16
+ import * as i7 from "../floating-toolbar/floating-toolbar.component";
17
+ import * as i8 from "../node-details-sidebar/node-details-sidebar.component";
18
+ import * as i9 from "../node-action-toolbar/node-action-toolbar.component";
19
+ import * as i10 from "../node-search-panel/node-search-panel.component";
20
+ cytoscape.use(dagre);
21
+ cytoscape.use(nodeHtmlLabel);
22
+ export class WxCCFlowchartComponent {
23
+ constructor(wxcc2graph, cytoscapeViewportService, dialog, wxccActivityCreationService, cdr) {
24
+ this.wxcc2graph = wxcc2graph;
25
+ this.cytoscapeViewportService = cytoscapeViewportService;
26
+ this.dialog = dialog;
27
+ this.wxccActivityCreationService = wxccActivityCreationService;
28
+ this.cdr = cdr;
29
+ this.viewReady = false;
30
+ this.layoutOptions = {
31
+ name: "dagre",
32
+ rankDir: "LR",
33
+ nodeSep: 180,
34
+ edgeSep: 60,
35
+ rankSep: 150,
36
+ animate: true,
37
+ animationDuration: 500,
38
+ fit: true
39
+ };
40
+ // Sidebar state
41
+ this.isSidebarOpen = false;
42
+ this.selectedNodeData = null;
43
+ // Search panel state
44
+ this.isSearchPanelVisible = false;
45
+ this.searchPanelVisible = false;
46
+ // Node action toolbar state
47
+ this.isNodeToolbarVisible = false;
48
+ this.nodeToolbarPosition = { x: 0, y: 0 };
49
+ // Add node dialog state
50
+ this.availableNodes = [];
51
+ // Link node dialog state
52
+ this.isLinkDialogOpen = false;
53
+ this.selectedEdgeId = null;
54
+ this.selectedEdgeDeleteButtonPosition = null;
55
+ }
56
+ ngAfterViewInit() {
57
+ this.viewReady = true;
58
+ this.tryInit();
59
+ }
60
+ ngOnChanges(changes) {
61
+ if (changes["flowchart"]) {
62
+ this.tryInit();
63
+ }
64
+ }
65
+ ngOnDestroy() {
66
+ this.cy?.destroy();
67
+ this.cy = undefined;
68
+ }
69
+ tryInit() {
70
+ if (!this.viewReady || !this.flowchartContainer || !this.flowchart) {
71
+ return;
72
+ }
73
+ this.init();
74
+ }
75
+ init() {
76
+ const container = this.flowchartContainer.nativeElement;
77
+ this.cy?.destroy();
78
+ this.cy = undefined;
79
+ const elements = [
80
+ ...this.flowchart.nodes,
81
+ ...this.flowchart.edges,
82
+ ];
83
+ this.cy = cytoscape({
84
+ container: container,
85
+ elements: elements,
86
+ style: this.getStylesheet(),
87
+ });
88
+ this.cy.nodeHtmlLabel([
89
+ {
90
+ query: "node",
91
+ halign: "center",
92
+ valign: "center",
93
+ halignBox: "center",
94
+ valignBox: "center",
95
+ tpl: (data) => getNodeHtmlTemplate(data),
96
+ },
97
+ ]);
98
+ const layout = this.cy?.layout({
99
+ ...this.layoutOptions,
100
+ }).run();
101
+ layout.on("layoutstop", () => {
102
+ this.cytoscapeViewportService.resetView(this.cy, this.cy?.elements());
103
+ });
104
+ this.setupEventListeners();
105
+ }
106
+ get activities() { return this.wxcc2graph.getAllActivities(); }
107
+ // Toggle search panel visibility
108
+ toggleSearchPanel() {
109
+ this.isSearchPanelVisible = !this.isSearchPanelVisible;
110
+ this.cdr.markForCheck();
111
+ }
112
+ setupEventListeners() {
113
+ // Single tap on node - show only the toolbar (quick actions)
114
+ this.cy?.on("mouseover", "node", (event) => {
115
+ const node = event.target;
116
+ this.selectedNodeData = node.data();
117
+ // Calculate toolbar position relative to the container
118
+ this.updateToolbarPosition(node);
119
+ this.isNodeToolbarVisible = true;
120
+ this.cdr.detectChanges();
121
+ });
122
+ this.cy?.on("tap", "node", (event) => {
123
+ const node = event.target;
124
+ this.clearSelectedEdge();
125
+ this.selectedNodeData = node.data();
126
+ this.isSidebarOpen = true;
127
+ // Hide toolbar when sidebar opens
128
+ this.isNodeToolbarVisible = false;
129
+ this.cdr.detectChanges();
130
+ });
131
+ this.cy?.on("mousemove", "node", (event) => {
132
+ const node = event.target;
133
+ this.updateToolbarPosition(node);
134
+ this.cdr.detectChanges();
135
+ });
136
+ // Edge tap - select edge for explicit deletion action
137
+ this.cy?.on("tap", "edge", (event) => {
138
+ const edge = event.target;
139
+ this.isSidebarOpen = false;
140
+ this.hideNodeToolbar();
141
+ this.selectedNodeData = null;
142
+ this.selectedEdgeId = edge.id();
143
+ edge.select();
144
+ this.updateSelectedEdgeDeleteButtonPosition();
145
+ this.cdr.detectChanges();
146
+ });
147
+ // Canvas tap - hide toolbar and deselect
148
+ this.cy?.on("tap", (event) => {
149
+ if (event.target === this.cy) {
150
+ this.clearSelectedEdge();
151
+ this.isSidebarOpen = false;
152
+ this.hideNodeToolbar();
153
+ this.selectedNodeData = null;
154
+ }
155
+ });
156
+ // Pan/zoom events - update toolbar position
157
+ this.cy?.on("pan zoom", () => {
158
+ if (this.isNodeToolbarVisible && this.selectedNodeData) {
159
+ const node = this.cy?.getElementById(this.selectedNodeData.id);
160
+ if (node?.length) {
161
+ this.updateToolbarPosition(node);
162
+ }
163
+ }
164
+ if (this.selectedEdgeId) {
165
+ this.updateSelectedEdgeDeleteButtonPosition();
166
+ }
167
+ this.cdr.detectChanges();
168
+ });
169
+ }
170
+ updateToolbarPosition(node) {
171
+ const renderedPosition = node.renderedPosition();
172
+ const renderedWidth = node.renderedWidth();
173
+ const renderedHeight = node.renderedHeight();
174
+ // Position toolbar above the node, centered
175
+ this.nodeToolbarPosition = {
176
+ x: renderedPosition.x - 30,
177
+ y: renderedPosition.y - renderedHeight / 2 - 40, // Above the node
178
+ };
179
+ }
180
+ hideNodeToolbar() {
181
+ this.isNodeToolbarVisible = false;
182
+ this.cdr.detectChanges();
183
+ }
184
+ getStylesheet() {
185
+ return StyleConfig;
186
+ }
187
+ // ==================== Sidebar Events ====================
188
+ onCloseSidebar() {
189
+ this.isSidebarOpen = false;
190
+ this.hideNodeToolbar();
191
+ this.selectedNodeData = null;
192
+ // this.cdr.detectChanges();
193
+ }
194
+ onDescriptionChange(description) {
195
+ if (!this.selectedNodeData || !this.cy)
196
+ return;
197
+ const node = this.cy?.getElementById(this.selectedNodeData.id);
198
+ if (node) {
199
+ const updatedData = {
200
+ ...this.selectedNodeData,
201
+ suggestedProperties: {
202
+ ...this.selectedNodeData.suggestedProperties,
203
+ uccxDescription: description,
204
+ },
205
+ };
206
+ this.wxcc2graph.updateActivityData(updatedData);
207
+ node.data(updatedData);
208
+ this.selectedNodeData = updatedData;
209
+ }
210
+ }
211
+ onActivityTypeChange(activityType) {
212
+ if (!this.selectedNodeData || !this.cy)
213
+ return;
214
+ const node = this.cy?.getElementById(this.selectedNodeData.id);
215
+ if (node) {
216
+ const updatedData = {
217
+ ...this.selectedNodeData,
218
+ wxccActivityName: activityType.activityName,
219
+ wxccGroup: activityType.group,
220
+ iconUrl: activityType.icon
221
+ };
222
+ this.wxcc2graph.updateActivityData(updatedData);
223
+ node.data(updatedData);
224
+ this.selectedNodeData = updatedData;
225
+ }
226
+ }
227
+ // ==================== Node Toolbar Events ====================
228
+ onDeleteNode() {
229
+ if (!this.selectedNodeData || !this.cy)
230
+ return;
231
+ const nodeId = this.selectedNodeData.id;
232
+ // Remove from service and get affected link IDs
233
+ const { removedLinkIds } = this.wxcc2graph.removeActivity(nodeId);
234
+ // Remove edges from cytoscape
235
+ removedLinkIds.forEach((linkId) => {
236
+ this.cy?.getElementById(linkId).remove();
237
+ });
238
+ // Remove node from cytoscape
239
+ this.cy?.getElementById(nodeId).remove();
240
+ // Close sidebar and toolbar
241
+ this.onCloseSidebar();
242
+ // Re-run layout
243
+ this.runLayout();
244
+ }
245
+ onDeleteSelectedEdge() {
246
+ if (!this.selectedEdgeId || !this.cy)
247
+ return;
248
+ const edgeId = this.selectedEdgeId;
249
+ const removed = this.wxcc2graph.removeLink(edgeId);
250
+ if (!removed)
251
+ return;
252
+ this.cy?.getElementById(edgeId).remove();
253
+ this.selectedEdgeId = null;
254
+ this.selectedEdgeDeleteButtonPosition = null;
255
+ this.cdr.detectChanges();
256
+ }
257
+ onLinkNodeRequest() {
258
+ if (!this.selectedNodeData || !this.cy)
259
+ return;
260
+ const sourceNode = this.selectedNodeData;
261
+ if (!this.canCreateOutgoingLink(sourceNode.id)) {
262
+ return;
263
+ }
264
+ // Get the cytoscape node to inspect existing connections
265
+ const cyNode = this.cy?.getElementById(sourceNode.id);
266
+ // Collect IDs of nodes already connected as targets from this source
267
+ const existingTargetIds = new Set(cyNode.outgoers('node').map((n) => n.id()));
268
+ // Build the filtered list of linkable targets:
269
+ // - Never allow the start node (NewPhoneContact) as a target
270
+ // - Exclude the source node itself
271
+ // - Exclude nodes already linked as targets from this source
272
+ this.availableNodes = this.wxcc2graph.getAllActivities().filter(act => act.id !== sourceNode.id &&
273
+ act.wxccActivityName !== 'NewPhoneContact' &&
274
+ !existingTargetIds.has(act.id));
275
+ const dialogRef = this.dialog.open(LinkNodeDialogComponent, {
276
+ panelClass: "no-padding-modal",
277
+ width: "550px",
278
+ data: {
279
+ availableNodes: this.availableNodes,
280
+ sourceNode: this.selectedNodeData,
281
+ },
282
+ });
283
+ dialogRef.afterClosed().subscribe((result) => {
284
+ if (result) {
285
+ this.onLinkNodes(result);
286
+ }
287
+ });
288
+ }
289
+ // ==================== Link Dialog Events ====================
290
+ onLinkNodes(linkData) {
291
+ if (!this.cy)
292
+ return;
293
+ if (!this.canCreateOutgoingLink(linkData.sourceNodeId)) {
294
+ return;
295
+ }
296
+ if (this.wxcc2graph.linkExists(linkData.sourceNodeId, linkData.targetNodeId)) {
297
+ console.warn("Link already exists between these nodes");
298
+ return;
299
+ }
300
+ const edge = this.wxcc2graph.addLink(linkData.sourceNodeId, linkData.targetNodeId, linkData.label);
301
+ this.cy?.add(edge);
302
+ this.runLayout();
303
+ }
304
+ // ==================== Add Node Dialog Events ====================
305
+ openAddNodeDialog() {
306
+ this.availableNodes = this.wxcc2graph.getAllActivities();
307
+ const dialogRef = this.dialog.open(AddNodeDialogComponent, {
308
+ panelClass: "no-padding-modal",
309
+ width: '450px',
310
+ data: {
311
+ availableNodes: this.availableNodes,
312
+ },
313
+ });
314
+ dialogRef.afterClosed().subscribe((result) => {
315
+ if (result) {
316
+ this.addActivity(result);
317
+ }
318
+ });
319
+ }
320
+ addActivity(newNodeData) {
321
+ if (!this.cy)
322
+ return;
323
+ const node = this.wxccActivityCreationService.createAndSync({
324
+ activityTypeName: newNodeData.activityTypeName,
325
+ name: newNodeData.name
326
+ });
327
+ // Add node to cytoscape
328
+ this.cy?.add({
329
+ group: "nodes",
330
+ data: node.data
331
+ });
332
+ // Re-run layout to position the new node
333
+ this.runLayout();
334
+ }
335
+ onNodeSelectChange(id) {
336
+ const node = this.cy?.getElementById(id);
337
+ if (node) {
338
+ this.cy?.center(node);
339
+ // Set highlighted property in node data
340
+ const originalData = node.data();
341
+ node.data({ ...originalData, highlighted: true });
342
+ node.emit('data');
343
+ // Remove highlight after 1s
344
+ setTimeout(() => {
345
+ const currentData = node.data();
346
+ if (currentData.highlighted) {
347
+ // Remove the property completely
348
+ delete currentData.highlighted;
349
+ node.data(currentData);
350
+ node.emit('data');
351
+ }
352
+ }, 1000);
353
+ }
354
+ }
355
+ zoomIn() {
356
+ this.cytoscapeViewportService.zoomIn(this.cy);
357
+ }
358
+ zoomOut() {
359
+ this.cytoscapeViewportService.zoomOut(this.cy);
360
+ }
361
+ resetView() {
362
+ this.cytoscapeViewportService.resetView(this.cy, this.cy?.elements());
363
+ }
364
+ runLayout() {
365
+ if (!this.cy)
366
+ return;
367
+ const layout = this.cy?.layout({
368
+ ...this.layoutOptions,
369
+ }).run();
370
+ layout.on("layoutstop", () => {
371
+ this.cytoscapeViewportService.resetView(this.cy, this.cy?.elements());
372
+ });
373
+ }
374
+ canCreateOutgoingLink(sourceNodeId) {
375
+ if (!this.cy)
376
+ return false;
377
+ const cyNode = this.cy?.getElementById(sourceNodeId);
378
+ if (!cyNode || cyNode.length === 0)
379
+ return false;
380
+ const sourceActivity = cyNode.data().wxccActivityName;
381
+ const outgoingEdgeCount = cyNode.outgoers('edge').length;
382
+ // End-type nodes cannot have outgoing links.
383
+ const END_NODE_TYPES = ['end', 'disconnect-contact', 'blind-transfer'];
384
+ if (END_NODE_TYPES.includes(sourceActivity))
385
+ return false;
386
+ // Start node can only have one output.
387
+ if (sourceActivity === 'NewPhoneContact' && outgoingEdgeCount >= 1)
388
+ return false;
389
+ // Condition node can only have true/false outputs.
390
+ if (sourceActivity === 'condition-activity' && outgoingEdgeCount >= 2)
391
+ return false;
392
+ return true;
393
+ }
394
+ clearSelectedEdge() {
395
+ if (!this.selectedEdgeId || !this.cy)
396
+ return;
397
+ const edge = this.cy?.getElementById(this.selectedEdgeId);
398
+ if (edge && edge.length) {
399
+ edge.unselect();
400
+ }
401
+ this.selectedEdgeId = null;
402
+ this.selectedEdgeDeleteButtonPosition = null;
403
+ this.cdr.detectChanges();
404
+ }
405
+ updateSelectedEdgeDeleteButtonPosition() {
406
+ if (!this.cy || !this.selectedEdgeId) {
407
+ this.selectedEdgeDeleteButtonPosition = null;
408
+ return;
409
+ }
410
+ const edge = this.cy?.getElementById(this.selectedEdgeId);
411
+ if (!edge || edge.length === 0) {
412
+ this.selectedEdgeDeleteButtonPosition = null;
413
+ return;
414
+ }
415
+ const midpoint = edge.renderedMidpoint();
416
+ // Slight offset so the icon does not sit exactly on top of the edge line.
417
+ this.selectedEdgeDeleteButtonPosition = {
418
+ x: midpoint.x + 12,
419
+ y: midpoint.y - 12,
420
+ };
421
+ }
422
+ }
423
+ WxCCFlowchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCFlowchartComponent, deps: [{ token: i1.WxCC2GraphService }, { token: i2.CytoscapeViewportService }, { token: i3.MatDialog }, { token: i4.WxCCActivityCreationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
424
+ WxCCFlowchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WxCCFlowchartComponent, selector: "wxcc-flowchart", inputs: { flowchart: "flowchart" }, viewQueries: [{ propertyName: "flowchartContainer", first: true, predicate: ["flowchartContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"wxcc-flowchart-container\">\r\n <div #flowchartContainer class=\"flowchart-canvas\"></div>\r\n\r\n <!-- Floating toolbar for viewport controls -->\r\n <graph-floating-toolbar\r\n [visibility]=\"{ export: false }\"\r\n (resetViewChange)=\"resetView()\"\r\n (zoomInChange)=\"zoomIn()\"\r\n (zoomOutChange)=\"zoomOut()\">\r\n </graph-floating-toolbar>\r\n\r\n <!-- Graph Acts -->\r\n <div class=\"graph-actions-wrapper\">\r\n <button\r\n class=\"add-node-btn\"\r\n matTooltip=\"Search workflow\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"toggleSearchPanel()\"\r\n >\r\n <img src=\"assets/wxcc/search.svg\" width=\"28\" height=\"28\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"add-node-btn\"\r\n matTooltip=\"Add New Node\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"openAddNodeDialog()\"\r\n >\r\n <svg\r\n width=\"28\"\r\n height=\"28\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n >\r\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line>\r\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"selectedEdgeId && selectedEdgeDeleteButtonPosition\"\r\n class=\"edge-delete-btn\"\r\n matTooltip=\"Delete this edge\"\r\n matTooltipPosition=\"above\"\r\n [style.left.px]=\"selectedEdgeDeleteButtonPosition.x\"\r\n [style.top.px]=\"selectedEdgeDeleteButtonPosition.y\"\r\n (click)=\"onDeleteSelectedEdge()\"\r\n type=\"button\"\r\n aria-label=\"Delete selected edge\"\r\n >\r\n \u00D7\r\n </button>\r\n\r\n <node-search-panel\r\n class=\"fade-in-search-panel\"\r\n [class.visible]=\"isSearchPanelVisible\"\r\n [nodes]=\"activities\"\r\n (selectNodeChange)=\"onNodeSelectChange($event)\"\r\n (searchChange)=\"openAddNodeDialog()\"\r\n >\r\n </node-search-panel>\r\n\r\n <!-- Node action toolbar (floating near selected node) -->\r\n <node-action-toolbar\r\n [isVisible]=\"isNodeToolbarVisible\"\r\n [position]=\"nodeToolbarPosition\"\r\n (deleteNode)=\"onDeleteNode()\"\r\n (linkNode)=\"onLinkNodeRequest()\"\r\n >\r\n </node-action-toolbar>\r\n\r\n <!-- Node details sidebar -->\r\n <node-details-sidebar\r\n [isOpen]=\"isSidebarOpen\"\r\n [nodeData]=\"selectedNodeData\"\r\n (close)=\"onCloseSidebar()\"\r\n (descriptionChange)=\"onDescriptionChange($event)\"\r\n (activityTypeChange)=\"onActivityTypeChange($event)\"\r\n >\r\n </node-details-sidebar>\r\n</div>\r\n", styles: [".fade-in-search-panel{position:absolute;top:0;left:0;right:0;margin:0 auto;z-index:1000;opacity:0;pointer-events:none;transform:translateY(-40px);transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}.fade-in-search-panel.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.close-search-panel{position:absolute;top:10px;right:16px;background:transparent;border:none;font-size:2rem;color:#333;cursor:pointer;z-index:1100}:host ::ng-deep .node-content.highlighted{border-radius:10px;z-index:10}:host ::ng-deep .node-content.highlighted{position:relative;z-index:10}:host ::ng-deep .node-content.highlighted:after{content:\"\";position:absolute;inset:-14px;border:4px solid rgba(110,110,110,.4705882353);border-radius:13px;pointer-events:none;opacity:1}:host ::ng-deep .node-content:not(.highlighted):after{opacity:0}:host{display:block;overflow:hidden;width:100%;height:100%}.wxcc-flowchart-container{display:flex;flex-direction:column;position:relative;background-color:#f8f9fa;border-radius:.5rem;border:1px solid #e1e4e8;box-sizing:border-box;height:100%;min-height:600px}.wxcc-flowchart-container .flowchart-canvas{height:100%;min-height:600px;background:linear-gradient(90deg,rgba(200,200,200,.1) 1px,transparent 1px),linear-gradient(rgba(200,200,200,.1) 1px,transparent 1px);background-size:20px 20px}.wxcc-flowchart-container .add-node-btn{outline:none;border:none;border-radius:.5rem;background-color:#f6f6f6;padding:.5rem;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:all .2s ease}.wxcc-flowchart-container .add-node-btn:hover{background-color:#eefff8;transform:scale(1.05)}.wxcc-flowchart-container .add-node-btn:active{transform:scale(.95)}.edge-delete-btn{position:absolute;z-index:1100;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;border:1px solid #cc3d36;background:#fff;color:#cc3d36;font-size:16px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000002e}.edge-delete-btn:hover{background:#fff1f0;transform:translate(-50%,-50%) scale(1.08)}.edge-delete-btn:active{transform:translate(-50%,-50%) scale(.95)}:host ::ng-deep .node-content{cursor:pointer;display:flex;justify-content:center;flex-direction:column;gap:.5rem;padding:.5rem;background:white;border-radius:6px;border:1px solid #d8d8d8;border-left:4px solid;min-width:200px;transition:all .2s ease}:host ::ng-deep .node-content header{display:flex;align-items:center;gap:.5rem}:host ::ng-deep .node-content img{width:18px;height:18px}:host ::ng-deep .node-content .node-icon{font-size:24px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:.5rem;flex-shrink:0}:host ::ng-deep .node-content .node-info{flex:1;min-width:0}:host ::ng-deep .node-content .node-info .node-label{font-size:16px;letter-spacing:.5px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}:host ::ng-deep .node-content .node-info .node-activity-name{font-size:12px;color:#99a5b1;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}:host ::ng-deep .node-content .node-details{font-size:12px;color:#000;padding:0 .25rem;display:flex;flex-direction:column;gap:.25rem}:host ::ng-deep .node-content .node-details .node-details-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}:host ::ng-deep .node-content .node-details .review-red{background-color:#ffe6e6;border-left-color:#f44336;color:#f44336;padding:.1rem .25rem;border-radius:.25rem;font-size:10px}:host ::ng-deep .node-content .node-details .review-green{background-color:#e6ffe6;border-left-color:#4caf50;color:#4caf50;padding:.1rem .25rem;border-radius:.25rem;font-size:10px}:host ::ng-deep .node-content .node-details .review-yellow{background-color:#fff9e6;border-left-color:#ff9800;color:#ff9800;padding:.1rem .25rem;border-radius:.25rem;font-size:10px}:host ::ng-deep .node-content.node-start{border-left-color:#4caf50}:host ::ng-deep .node-content.node-start .node-icon{background-color:#4caf501a;color:#4caf50}:host ::ng-deep .node-content.node-start .node-label{color:#4caf50}:host ::ng-deep .node-content.node-end{border-left-color:#f44336}:host ::ng-deep .node-content.node-end .node-icon{background-color:#f443361a;color:#f44336}:host ::ng-deep .node-content.node-end .node-label{color:#f44336}:host ::ng-deep .node-content.node-gateway{border-left-color:#ff9800}:host ::ng-deep .node-content.node-gateway .node-icon{background-color:#ff98001a;color:#ff9800}:host ::ng-deep .node-content.node-gateway .node-label{color:#ff9800}:host ::ng-deep .node-content.node-action{border-left-color:#9c27b0}:host ::ng-deep .node-content.node-action .node-icon{background-color:#9c27b01a;color:#9c27b0}:host ::ng-deep .node-content.node-action .node-label{color:#9c27b0}:host ::ng-deep .node-content.node-default{border-left-color:#607d8b}:host ::ng-deep .node-content.node-default .node-icon{background-color:#607d8b1a;color:#607d8b}:host ::ng-deep .node-content.node-default .node-label{color:#607d8b}.graph-actions-wrapper{position:absolute;right:1rem;top:1rem;display:flex;align-items:center;gap:.5rem;box-shadow:2px 4px 15px #0000002d;padding:8px;background-color:#ffffffac;border-radius:1rem;z-index:999}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.FloatingToolBarComponent, selector: "graph-floating-toolbar", inputs: ["visibility"], outputs: ["resetViewChange", "zoomInChange", "zoomOutChange", "exportImageChange"] }, { kind: "component", type: i8.NodeDetailsSidebarComponent, selector: "node-details-sidebar", inputs: ["isOpen", "nodeData"], outputs: ["close", "activityTypeChange", "descriptionChange"] }, { kind: "component", type: i9.NodeActionToolbarComponent, selector: "node-action-toolbar", inputs: ["isVisible", "position"], outputs: ["deleteNode", "linkNode"] }, { kind: "component", type: i10.NodeSearchPanelComponent, selector: "node-search-panel", inputs: ["nodes"], outputs: ["searchChange", "selectNodeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCFlowchartComponent, decorators: [{
426
+ type: Component,
427
+ args: [{ selector: "wxcc-flowchart", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"wxcc-flowchart-container\">\r\n <div #flowchartContainer class=\"flowchart-canvas\"></div>\r\n\r\n <!-- Floating toolbar for viewport controls -->\r\n <graph-floating-toolbar\r\n [visibility]=\"{ export: false }\"\r\n (resetViewChange)=\"resetView()\"\r\n (zoomInChange)=\"zoomIn()\"\r\n (zoomOutChange)=\"zoomOut()\">\r\n </graph-floating-toolbar>\r\n\r\n <!-- Graph Acts -->\r\n <div class=\"graph-actions-wrapper\">\r\n <button\r\n class=\"add-node-btn\"\r\n matTooltip=\"Search workflow\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"toggleSearchPanel()\"\r\n >\r\n <img src=\"assets/wxcc/search.svg\" width=\"28\" height=\"28\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"add-node-btn\"\r\n matTooltip=\"Add New Node\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"openAddNodeDialog()\"\r\n >\r\n <svg\r\n width=\"28\"\r\n height=\"28\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n >\r\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line>\r\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"selectedEdgeId && selectedEdgeDeleteButtonPosition\"\r\n class=\"edge-delete-btn\"\r\n matTooltip=\"Delete this edge\"\r\n matTooltipPosition=\"above\"\r\n [style.left.px]=\"selectedEdgeDeleteButtonPosition.x\"\r\n [style.top.px]=\"selectedEdgeDeleteButtonPosition.y\"\r\n (click)=\"onDeleteSelectedEdge()\"\r\n type=\"button\"\r\n aria-label=\"Delete selected edge\"\r\n >\r\n \u00D7\r\n </button>\r\n\r\n <node-search-panel\r\n class=\"fade-in-search-panel\"\r\n [class.visible]=\"isSearchPanelVisible\"\r\n [nodes]=\"activities\"\r\n (selectNodeChange)=\"onNodeSelectChange($event)\"\r\n (searchChange)=\"openAddNodeDialog()\"\r\n >\r\n </node-search-panel>\r\n\r\n <!-- Node action toolbar (floating near selected node) -->\r\n <node-action-toolbar\r\n [isVisible]=\"isNodeToolbarVisible\"\r\n [position]=\"nodeToolbarPosition\"\r\n (deleteNode)=\"onDeleteNode()\"\r\n (linkNode)=\"onLinkNodeRequest()\"\r\n >\r\n </node-action-toolbar>\r\n\r\n <!-- Node details sidebar -->\r\n <node-details-sidebar\r\n [isOpen]=\"isSidebarOpen\"\r\n [nodeData]=\"selectedNodeData\"\r\n (close)=\"onCloseSidebar()\"\r\n (descriptionChange)=\"onDescriptionChange($event)\"\r\n (activityTypeChange)=\"onActivityTypeChange($event)\"\r\n >\r\n </node-details-sidebar>\r\n</div>\r\n", styles: [".fade-in-search-panel{position:absolute;top:0;left:0;right:0;margin:0 auto;z-index:1000;opacity:0;pointer-events:none;transform:translateY(-40px);transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}.fade-in-search-panel.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.close-search-panel{position:absolute;top:10px;right:16px;background:transparent;border:none;font-size:2rem;color:#333;cursor:pointer;z-index:1100}:host ::ng-deep .node-content.highlighted{border-radius:10px;z-index:10}:host ::ng-deep .node-content.highlighted{position:relative;z-index:10}:host ::ng-deep .node-content.highlighted:after{content:\"\";position:absolute;inset:-14px;border:4px solid rgba(110,110,110,.4705882353);border-radius:13px;pointer-events:none;opacity:1}:host ::ng-deep .node-content:not(.highlighted):after{opacity:0}:host{display:block;overflow:hidden;width:100%;height:100%}.wxcc-flowchart-container{display:flex;flex-direction:column;position:relative;background-color:#f8f9fa;border-radius:.5rem;border:1px solid #e1e4e8;box-sizing:border-box;height:100%;min-height:600px}.wxcc-flowchart-container .flowchart-canvas{height:100%;min-height:600px;background:linear-gradient(90deg,rgba(200,200,200,.1) 1px,transparent 1px),linear-gradient(rgba(200,200,200,.1) 1px,transparent 1px);background-size:20px 20px}.wxcc-flowchart-container .add-node-btn{outline:none;border:none;border-radius:.5rem;background-color:#f6f6f6;padding:.5rem;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:all .2s ease}.wxcc-flowchart-container .add-node-btn:hover{background-color:#eefff8;transform:scale(1.05)}.wxcc-flowchart-container .add-node-btn:active{transform:scale(.95)}.edge-delete-btn{position:absolute;z-index:1100;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;border:1px solid #cc3d36;background:#fff;color:#cc3d36;font-size:16px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000002e}.edge-delete-btn:hover{background:#fff1f0;transform:translate(-50%,-50%) scale(1.08)}.edge-delete-btn:active{transform:translate(-50%,-50%) scale(.95)}:host ::ng-deep .node-content{cursor:pointer;display:flex;justify-content:center;flex-direction:column;gap:.5rem;padding:.5rem;background:white;border-radius:6px;border:1px solid #d8d8d8;border-left:4px solid;min-width:200px;transition:all .2s ease}:host ::ng-deep .node-content header{display:flex;align-items:center;gap:.5rem}:host ::ng-deep .node-content img{width:18px;height:18px}:host ::ng-deep .node-content .node-icon{font-size:24px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:.5rem;flex-shrink:0}:host ::ng-deep .node-content .node-info{flex:1;min-width:0}:host ::ng-deep .node-content .node-info .node-label{font-size:16px;letter-spacing:.5px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}:host ::ng-deep .node-content .node-info .node-activity-name{font-size:12px;color:#99a5b1;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}:host ::ng-deep .node-content .node-details{font-size:12px;color:#000;padding:0 .25rem;display:flex;flex-direction:column;gap:.25rem}:host ::ng-deep .node-content .node-details .node-details-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}:host ::ng-deep .node-content .node-details .review-red{background-color:#ffe6e6;border-left-color:#f44336;color:#f44336;padding:.1rem .25rem;border-radius:.25rem;font-size:10px}:host ::ng-deep .node-content .node-details .review-green{background-color:#e6ffe6;border-left-color:#4caf50;color:#4caf50;padding:.1rem .25rem;border-radius:.25rem;font-size:10px}:host ::ng-deep .node-content .node-details .review-yellow{background-color:#fff9e6;border-left-color:#ff9800;color:#ff9800;padding:.1rem .25rem;border-radius:.25rem;font-size:10px}:host ::ng-deep .node-content.node-start{border-left-color:#4caf50}:host ::ng-deep .node-content.node-start .node-icon{background-color:#4caf501a;color:#4caf50}:host ::ng-deep .node-content.node-start .node-label{color:#4caf50}:host ::ng-deep .node-content.node-end{border-left-color:#f44336}:host ::ng-deep .node-content.node-end .node-icon{background-color:#f443361a;color:#f44336}:host ::ng-deep .node-content.node-end .node-label{color:#f44336}:host ::ng-deep .node-content.node-gateway{border-left-color:#ff9800}:host ::ng-deep .node-content.node-gateway .node-icon{background-color:#ff98001a;color:#ff9800}:host ::ng-deep .node-content.node-gateway .node-label{color:#ff9800}:host ::ng-deep .node-content.node-action{border-left-color:#9c27b0}:host ::ng-deep .node-content.node-action .node-icon{background-color:#9c27b01a;color:#9c27b0}:host ::ng-deep .node-content.node-action .node-label{color:#9c27b0}:host ::ng-deep .node-content.node-default{border-left-color:#607d8b}:host ::ng-deep .node-content.node-default .node-icon{background-color:#607d8b1a;color:#607d8b}:host ::ng-deep .node-content.node-default .node-label{color:#607d8b}.graph-actions-wrapper{position:absolute;right:1rem;top:1rem;display:flex;align-items:center;gap:.5rem;box-shadow:2px 4px 15px #0000002d;padding:8px;background-color:#ffffffac;border-radius:1rem;z-index:999}\n"] }]
428
+ }], ctorParameters: function () { return [{ type: i1.WxCC2GraphService }, { type: i2.CytoscapeViewportService }, { type: i3.MatDialog }, { type: i4.WxCCActivityCreationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { flowchart: [{
429
+ type: Input
430
+ }], flowchartContainer: [{
431
+ type: ViewChild,
432
+ args: ["flowchartContainer"]
433
+ }] } });
434
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3hjYy1mbG93Y2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2NvbnRhY3QtY2VudGVyL2NjLXNjcmlwdC1lZGl0b3IvY29tcG9uZW50cy93eGNjLWZsb3djaGFydC93eGNjLWZsb3djaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL3d4Y2MtZmxvd2NoYXJ0L3d4Y2MtZmxvd2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFJTCxTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxTQUlOLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sYUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlyRSxPQUFPLEVBQ04sc0JBQXNCLEVBRXRCLE1BQU0sc0RBQXNELENBQUM7QUFDOUQsT0FBTyxFQUVOLHVCQUF1QixFQUN2QixNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7Ozs7Ozs7QUFNaEUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLGFBQW9CLENBQUMsQ0FBQztBQVFwQyxNQUFNLE9BQU8sc0JBQXNCO0lBcUNsQyxZQUNrQixVQUE2QixFQUM3Qix3QkFBa0QsRUFDbEQsTUFBaUIsRUFDakIsMkJBQXdELEVBQ2pF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QUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDO1lBQzdDLE9BQU87U0FDUDtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxJQUFJLENBQUM7WUFDN0MsT0FBTztTQUNQO1FBRUQsTUFBTSxRQUFRLEdBQUksSUFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTNELDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsZ0NBQWdDLEdBQUc7WUFDdkMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRTtZQUNsQixDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFO1NBQ2xCLENBQUM7SUFDSCxDQUFDOztvSEF0Zlcsc0JBQXNCO3dHQUF0QixzQkFBc0IseU9DL0NuQywwbEZBbUZBOzRGRHBDYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0MsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07aVBBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQzJCLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uRGVzdHJveSxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFZpZXdDaGlsZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IElXeENDRmxvd2NoYXJ0IH0gZnJvbSBcIi4uLy4uL3R5cGVzL3d4Y2NcIjtcclxuaW1wb3J0IGN5dG9zY2FwZSwge1xyXG5cdEVsZW1lbnREZWZpbml0aW9uLFxyXG5cdEVkZ2VTaW5ndWxhcixcclxuXHROb2RlU2luZ3VsYXJcclxufSBmcm9tIFwiY3l0b3NjYXBlXCI7XHJcbmltcG9ydCBkYWdyZSBmcm9tIFwiY3l0b3NjYXBlLWRhZ3JlXCI7XHJcbmltcG9ydCBub2RlSHRtbExhYmVsIGZyb20gXCJjeXRvc2NhcGUtbm9kZS1odG1sLWxhYmVsXCI7XHJcbmltcG9ydCB7IFN0eWxlQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9jeXRvc2NhcGUuY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldE5vZGVIdG1sVGVtcGxhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbm9kZS1odG1sLXRlbXBsYXRlXCI7XHJcbmltcG9ydCB7IEFjdGl2aXR5RGlzcGxheVR5cGUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbm9kZS1tYXBwaW5nc1wiO1xyXG5pbXBvcnQgeyBXeENDMkdyYXBoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy93eGNjMmdyYXBoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTm9kZVRvb2xiYXJQb3NpdGlvbiB9IGZyb20gXCIuLi9ub2RlLWFjdGlvbi10b29sYmFyL25vZGUtYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcblx0QWRkTm9kZURpYWxvZ0NvbXBvbmVudCxcclxuXHROZXdOb2RlRGF0YVxyXG59IGZyb20gXCIuLi9kaWFsb2dzL2FkZC1ub2RlLWRpYWxvZy9hZGQtbm9kZS1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcblx0TGlua05vZGVEYXRhLFxyXG5cdExpbmtOb2RlRGlhbG9nQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2RpYWxvZ3MvbGluay1ub2RlLWRpYWxvZy9saW5rLW5vZGUtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eSB9IGZyb20gXCIuLi8uLi90eXBlcy9leHRlbmRlZC1hY3Rpdml0eVwiO1xyXG5pbXBvcnQgeyBXeENDQWN0aXZpdHlDcmVhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvd3hjYy1hY3Rpdml0eS1jcmVhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN5dG9zY2FwZVZpZXdwb3J0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jeXN0b3NjYXBlLXZpZXdwb3J0LnNlcnZpY2VcIjtcclxuXHJcbmN5dG9zY2FwZS51c2UoZGFncmUpO1xyXG5jeXRvc2NhcGUudXNlKG5vZGVIdG1sTGFiZWwgYXMgYW55KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInd4Y2MtZmxvd2NoYXJ0XCIsXHJcblx0dGVtcGxhdGVVcmw6IFwiLi93eGNjLWZsb3djaGFydC5jb21wb25lbnQuaHRtbFwiLFxyXG5cdHN0eWxlVXJsczogW1wiLi93eGNjLWZsb3djaGFydC5jb21wb25lbnQuc2Nzc1wiXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFd4Q0NGbG93Y2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblx0QElucHV0KCkgZmxvd2NoYXJ0ITogSVd4Q0NGbG93Y2hhcnQ7XHJcblx0QFZpZXdDaGlsZChcImZsb3djaGFydENvbnRhaW5lclwiKSBmbG93Y2hhcnRDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcblx0cHJpdmF0ZSBjeT86IGN5dG9zY2FwZS5Db3JlO1xyXG5cdHByaXZhdGUgdmlld1JlYWR5ID0gZmFsc2U7XHJcblx0cHJpdmF0ZSByZWFkb25seSBsYXlvdXRPcHRpb25zOiBkYWdyZS5EYWdyZUxheW91dE9wdGlvbnMgPSB7XHJcblx0XHRuYW1lOiBcImRhZ3JlXCIsXHJcblx0XHRyYW5rRGlyOiBcIkxSXCIsXHJcblx0XHRub2RlU2VwOiAxODAsXHJcblx0XHRlZGdlU2VwOiA2MCxcclxuXHRcdHJhbmtTZXA6IDE1MCxcclxuXHRcdGFuaW1hdGU6IHRydWUsXHJcblx0XHRhbmltYXRpb25EdXJhdGlvbjogNTAwLFxyXG5cdFx0Zml0OiB0cnVlXHJcblx0fTtcclxuXHJcblx0Ly8gU2lkZWJhciBzdGF0ZVxyXG5cdGlzU2lkZWJhck9wZW4gPSBmYWxzZTtcclxuXHRzZWxlY3RlZE5vZGVEYXRhOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHkgfCBudWxsID0gbnVsbDtcclxuXHJcblx0Ly8gU2VhcmNoIHBhbmVsIHN0YXRlXHJcblx0aXNTZWFyY2hQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuXHRzZWFyY2hQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuXHJcblx0Ly8gTm9kZSBhY3Rpb24gdG9vbGJhciBzdGF0ZVxyXG5cdGlzTm9kZVRvb2xiYXJWaXNpYmxlID0gZmFsc2U7XHJcblx0bm9kZVRvb2xiYXJQb3NpdGlvbjogTm9kZVRvb2xiYXJQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9O1xyXG5cclxuXHQvLyBBZGQgbm9kZSBkaWFsb2cgc3RhdGVcclxuXHRhdmFpbGFibGVOb2RlczogUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5W10gPSBbXTtcclxuXHJcblx0Ly8gTGluayBub2RlIGRpYWxvZyBzdGF0ZVxyXG5cdGlzTGlua0RpYWxvZ09wZW4gPSBmYWxzZTtcclxuXHRzZWxlY3RlZEVkZ2VJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblx0c2VsZWN0ZWRFZGdlRGVsZXRlQnV0dG9uUG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgd3hjYzJncmFwaDogV3hDQzJHcmFwaFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IGN5dG9zY2FwZVZpZXdwb3J0U2VydmljZTogQ3l0b3NjYXBlVmlld3BvcnRTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgd3hjY0FjdGl2aXR5Q3JlYXRpb25TZXJ2aWNlOiBXeENDQWN0aXZpdHlDcmVhdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0KSB7IH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy52aWV3UmVhZHkgPSB0cnVlO1xyXG5cdFx0dGhpcy50cnlJbml0KCk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlc1tcImZsb3djaGFydFwiXSkge1xyXG5cdFx0XHR0aGlzLnRyeUluaXQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jeT8uZGVzdHJveSgpO1xyXG5cdFx0dGhpcy5jeSA9IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdHJ5SW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy52aWV3UmVhZHkgfHwgIXRoaXMuZmxvd2NoYXJ0Q29udGFpbmVyIHx8ICF0aGlzLmZsb3djaGFydCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5pbml0KCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXQoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjb250YWluZXIgPSB0aGlzLmZsb3djaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG5cclxuXHRcdHRoaXMuY3k/LmRlc3Ryb3koKTtcclxuXHRcdHRoaXMuY3kgPSB1bmRlZmluZWQ7XHJcblxyXG5cdFx0Y29uc3QgZWxlbWVudHM6IEVsZW1lbnREZWZpbml0aW9uW10gPSBbXHJcblx0XHRcdC4uLnRoaXMuZmxvd2NoYXJ0Lm5vZGVzLFxyXG5cdFx0XHQuLi50aGlzLmZsb3djaGFydC5lZGdlcyxcclxuXHRcdF07XHJcblxyXG5cdFx0dGhpcy5jeSA9IGN5dG9zY2FwZSh7XHJcblx0XHRcdGNvbnRhaW5lcjogY29udGFpbmVyLFxyXG5cdFx0XHRlbGVtZW50czogZWxlbWVudHMsXHJcblx0XHRcdHN0eWxlOiB0aGlzLmdldFN0eWxlc2hlZXQoKSxcclxuXHRcdH0pO1xyXG5cclxuXHRcdCh0aGlzLmN5IGFzIGFueSkubm9kZUh0bWxMYWJlbChbXHJcblx0XHRcdHtcclxuXHRcdFx0XHRxdWVyeTogXCJub2RlXCIsXHJcblx0XHRcdFx0aGFsaWduOiBcImNlbnRlclwiLFxyXG5cdFx0XHRcdHZhbGlnbjogXCJjZW50ZXJcIixcclxuXHRcdFx0XHRoYWxpZ25Cb3g6IFwiY2VudGVyXCIsXHJcblx0XHRcdFx0dmFsaWduQm94OiBcImNlbnRlclwiLFxyXG5cdFx0XHRcdHRwbDogKGRhdGE6IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eSkgPT4gZ2V0Tm9kZUh0bWxUZW1wbGF0ZShkYXRhKSxcclxuXHRcdFx0fSxcclxuXHRcdF0pO1xyXG5cclxuXHRcdGNvbnN0IGxheW91dCA9IHRoaXMuY3k/LmxheW91dCh7XHJcblx0XHRcdC4uLnRoaXMubGF5b3V0T3B0aW9ucyxcclxuXHRcdH0pLnJ1bigpO1xyXG5cclxuXHRcdGxheW91dC5vbihcImxheW91dHN0b3BcIiwgKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmN5dG9zY2FwZVZpZXdwb3J0U2VydmljZS5yZXNldFZpZXcodGhpcy5jeSBhcyBhbnksIHRoaXMuY3k/LmVsZW1lbnRzKCkgYXMgYW55KTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGFjdGl2aXRpZXMoKSB7IHJldHVybiB0aGlzLnd4Y2MyZ3JhcGguZ2V0QWxsQWN0aXZpdGllcygpOyB9XHJcblxyXG5cdC8vIFRvZ2dsZSBzZWFyY2ggcGFuZWwgdmlzaWJpbGl0eVxyXG5cdHRvZ2dsZVNlYXJjaFBhbmVsKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSA9ICF0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlO1xyXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldHVwRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XHJcblx0XHQvLyBTaW5nbGUgdGFwIG9uIG5vZGUgLSBzaG93IG9ubHkgdGhlIHRvb2xiYXIgKHF1aWNrIGFjdGlvbnMpXHJcblx0XHR0aGlzLmN5Py5vbihcIm1vdXNlb3ZlclwiLCBcIm5vZGVcIiwgKGV2ZW50KSA9PiB7XHJcblx0XHRcdGNvbnN0IG5vZGUgPSBldmVudC50YXJnZXQgYXMgTm9kZVNpbmd1bGFyO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBub2RlLmRhdGEoKSBhcyBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHk7XHJcblxyXG5cdFx0XHQvLyBDYWxjdWxhdGUgdG9vbGJhciBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgY29udGFpbmVyXHJcblx0XHRcdHRoaXMudXBkYXRlVG9vbGJhclBvc2l0aW9uKG5vZGUpO1xyXG5cdFx0XHR0aGlzLmlzTm9kZVRvb2xiYXJWaXNpYmxlID0gdHJ1ZTtcclxuXHJcblx0XHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY3k/Lm9uKFwidGFwXCIsIFwibm9kZVwiLCAoZXZlbnQpID0+IHtcclxuXHRcdFx0Y29uc3Qgbm9kZSA9IGV2ZW50LnRhcmdldCBhcyBOb2RlU2luZ3VsYXI7XHJcblx0XHRcdHRoaXMuY2xlYXJTZWxlY3RlZEVkZ2UoKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZE5vZGVEYXRhID0gbm9kZS5kYXRhKCkgYXMgUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5O1xyXG5cdFx0XHR0aGlzLmlzU2lkZWJhck9wZW4gPSB0cnVlO1xyXG5cclxuXHRcdFx0Ly8gSGlkZSB0b29sYmFyIHdoZW4gc2lkZWJhciBvcGVuc1xyXG5cdFx0XHR0aGlzLmlzTm9kZVRvb2xiYXJWaXNpYmxlID0gZmFsc2U7XHJcblxyXG5cdFx0XHR0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmN5Py5vbihcIm1vdXNlbW92ZVwiLCBcIm5vZGVcIiwgKGV2ZW50KSA9PiB7XHJcblx0XHRcdGNvbnN0IG5vZGUgPSBldmVudC50YXJnZXQgYXMgTm9kZVNpbmd1bGFyO1xyXG5cdFx0XHR0aGlzLnVwZGF0ZVRvb2xiYXJQb3NpdGlvbihub2RlKTtcclxuXHJcblx0XHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIEVkZ2UgdGFwIC0gc2VsZWN0IGVkZ2UgZm9yIGV4cGxpY2l0IGRlbGV0aW9uIGFjdGlvblxyXG5cdFx0dGhpcy5jeT8ub24oXCJ0YXBcIiwgXCJlZGdlXCIsIChldmVudCkgPT4ge1xyXG5cdFx0XHRjb25zdCBlZGdlID0gZXZlbnQudGFyZ2V0IGFzIEVkZ2VTaW5ndWxhcjtcclxuXHJcblx0XHRcdHRoaXMuaXNTaWRlYmFyT3BlbiA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmhpZGVOb2RlVG9vbGJhcigpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBudWxsO1xyXG5cclxuXHRcdFx0dGhpcy5zZWxlY3RlZEVkZ2VJZCA9IGVkZ2UuaWQoKTtcclxuXHRcdFx0ZWRnZS5zZWxlY3QoKTtcclxuXHRcdFx0dGhpcy51cGRhdGVTZWxlY3RlZEVkZ2VEZWxldGVCdXR0b25Qb3NpdGlvbigpO1xyXG5cdFx0XHR0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyBDYW52YXMgdGFwIC0gaGlkZSB0b29sYmFyIGFuZCBkZXNlbGVjdFxyXG5cdFx0dGhpcy5jeT8ub24oXCJ0YXBcIiwgKGV2ZW50KSA9PiB7XHJcblx0XHRcdGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuY3kpIHtcclxuXHRcdFx0XHR0aGlzLmNsZWFyU2VsZWN0ZWRFZGdlKCk7XHJcblx0XHRcdFx0dGhpcy5pc1NpZGViYXJPcGVuID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5oaWRlTm9kZVRvb2xiYXIoKTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBudWxsO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyBQYW4vem9vbSBldmVudHMgLSB1cGRhdGUgdG9vbGJhciBwb3NpdGlvblxyXG5cdFx0dGhpcy5jeT8ub24oXCJwYW4gem9vbVwiLCAoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmlzTm9kZVRvb2xiYXJWaXNpYmxlICYmIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSkge1xyXG5cdFx0XHRcdGNvbnN0IG5vZGUgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdGVkTm9kZURhdGEuaWQpO1xyXG5cdFx0XHRcdGlmIChub2RlPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdHRoaXMudXBkYXRlVG9vbGJhclBvc2l0aW9uKG5vZGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRFZGdlSWQpIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZVNlbGVjdGVkRWRnZURlbGV0ZUJ1dHRvblBvc2l0aW9uKCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVUb29sYmFyUG9zaXRpb24obm9kZTogTm9kZVNpbmd1bGFyKTogdm9pZCB7XHJcblx0XHRjb25zdCByZW5kZXJlZFBvc2l0aW9uID0gbm9kZS5yZW5kZXJlZFBvc2l0aW9uKCk7XHJcblx0XHRjb25zdCByZW5kZXJlZFdpZHRoID0gbm9kZS5yZW5kZXJlZFdpZHRoKCk7XHJcblx0XHRjb25zdCByZW5kZXJlZEhlaWdodCA9IG5vZGUucmVuZGVyZWRIZWlnaHQoKTtcclxuXHJcblx0XHQvLyBQb3NpdGlvbiB0b29sYmFyIGFib3ZlIHRoZSBub2RlLCBjZW50ZXJlZFxyXG5cdFx0dGhpcy5ub2RlVG9vbGJhclBvc2l0aW9uID0ge1xyXG5cdFx0XHR4OiByZW5kZXJlZFBvc2l0aW9uLnggLSAzMCwgLy8gQ2VudGVyIHRoZSB0b29sYmFyIChhcHByb3ggaGFsZiB0b29sYmFyIHdpZHRoKVxyXG5cdFx0XHR5OiByZW5kZXJlZFBvc2l0aW9uLnkgLSByZW5kZXJlZEhlaWdodCAvIDIgLSA0MCwgLy8gQWJvdmUgdGhlIG5vZGVcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGhpZGVOb2RlVG9vbGJhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMuaXNOb2RlVG9vbGJhclZpc2libGUgPSBmYWxzZTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0U3R5bGVzaGVldCgpOiBjeXRvc2NhcGUuU3R5bGVzaGVldFN0eWxlW10ge1xyXG5cdFx0cmV0dXJuIFN0eWxlQ29uZmlnO1xyXG5cdH1cclxuXHJcblx0Ly8gPT09PT09PT09PT09PT09PT09PT0gU2lkZWJhciBFdmVudHMgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcblx0b25DbG9zZVNpZGViYXIoKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzU2lkZWJhck9wZW4gPSBmYWxzZTtcclxuXHRcdHRoaXMuaGlkZU5vZGVUb29sYmFyKCk7XHJcblx0XHR0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBudWxsO1xyXG5cdFx0Ly8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdH1cclxuXHJcblx0b25EZXNjcmlwdGlvbkNoYW5nZShkZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0ZWROb2RlRGF0YSB8fCAhdGhpcy5jeSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdGVkTm9kZURhdGEuaWQpO1xyXG5cdFx0aWYgKG5vZGUpIHtcclxuXHRcdFx0Y29uc3QgdXBkYXRlZERhdGE6IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eSA9IHtcclxuXHRcdFx0XHQuLi50aGlzLnNlbGVjdGVkTm9kZURhdGEsXHJcblx0XHRcdFx0c3VnZ2VzdGVkUHJvcGVydGllczoge1xyXG5cdFx0XHRcdFx0Li4udGhpcy5zZWxlY3RlZE5vZGVEYXRhLnN1Z2dlc3RlZFByb3BlcnRpZXMsXHJcblx0XHRcdFx0XHR1Y2N4RGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHR0aGlzLnd4Y2MyZ3JhcGgudXBkYXRlQWN0aXZpdHlEYXRhKHVwZGF0ZWREYXRhKTtcclxuXHRcdFx0bm9kZS5kYXRhKHVwZGF0ZWREYXRhKTtcclxuXHJcblx0XHRcdHRoaXMuc2VsZWN0ZWROb2RlRGF0YSA9IHVwZGF0ZWREYXRhO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25BY3Rpdml0eVR5cGVDaGFuZ2UoYWN0aXZpdHlUeXBlOiBBY3Rpdml0eURpc3BsYXlUeXBlKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0ZWROb2RlRGF0YSB8fCAhdGhpcy5jeSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdGVkTm9kZURhdGEuaWQpO1xyXG5cdFx0aWYgKG5vZGUpIHtcclxuXHRcdFx0Y29uc3QgdXBkYXRlZERhdGE6IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eSA9IHtcclxuXHRcdFx0XHQuLi50aGlzLnNlbGVjdGVkTm9kZURhdGEsXHJcblx0XHRcdFx0d3hjY0FjdGl2aXR5TmFtZTogYWN0aXZpdHlUeXBlLmFjdGl2aXR5TmFtZSxcclxuXHRcdFx0XHR3eGNjR3JvdXA6IGFjdGl2aXR5VHlwZS5ncm91cCxcclxuXHRcdFx0XHRpY29uVXJsOiBhY3Rpdml0eVR5cGUuaWNvblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0dGhpcy53eGNjMmdyYXBoLnVwZGF0ZUFjdGl2aXR5RGF0YSh1cGRhdGVkRGF0YSk7XHJcblx0XHRcdG5vZGUuZGF0YSh1cGRhdGVkRGF0YSk7XHJcblxyXG5cdFx0XHR0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSB1cGRhdGVkRGF0YTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vID09PT09PT09PT09PT09PT09PT09IE5vZGUgVG9vbGJhciBFdmVudHMgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcblx0b25EZWxldGVOb2RlKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLnNlbGVjdGVkTm9kZURhdGEgfHwgIXRoaXMuY3kpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBub2RlSWQgPSB0aGlzLnNlbGVjdGVkTm9kZURhdGEuaWQ7XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIGZyb20gc2VydmljZSBhbmQgZ2V0IGFmZmVjdGVkIGxpbmsgSURzXHJcblx0XHRjb25zdCB7IHJlbW92ZWRMaW5rSWRzIH0gPSB0aGlzLnd4Y2MyZ3JhcGgucmVtb3ZlQWN0aXZpdHkobm9kZUlkKTtcclxuXHJcblx0XHQvLyBSZW1vdmUgZWRnZXMgZnJvbSBjeXRvc2NhcGVcclxuXHRcdHJlbW92ZWRMaW5rSWRzLmZvckVhY2goKGxpbmtJZCkgPT4ge1xyXG5cdFx0XHR0aGlzLmN5Py5nZXRFbGVtZW50QnlJZChsaW5rSWQpLnJlbW92ZSgpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIG5vZGUgZnJvbSBjeXRvc2NhcGVcclxuXHRcdHRoaXMuY3k/LmdldEVsZW1lbnRCeUlkKG5vZGVJZCkucmVtb3ZlKCk7XHJcblxyXG5cdFx0Ly8gQ2xvc2Ugc2lkZWJhciBhbmQgdG9vbGJhclxyXG5cdFx0dGhpcy5vbkNsb3NlU2lkZWJhcigpO1xyXG5cclxuXHRcdC8vIFJlLXJ1biBsYXlvdXRcclxuXHRcdHRoaXMucnVuTGF5b3V0KCk7XHJcblx0fVxyXG5cclxuXHRvbkRlbGV0ZVNlbGVjdGVkRWRnZSgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5zZWxlY3RlZEVkZ2VJZCB8fCAhdGhpcy5jeSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGVkZ2VJZCA9IHRoaXMuc2VsZWN0ZWRFZGdlSWQ7XHJcblx0XHRjb25zdCByZW1vdmVkID0gdGhpcy53eGNjMmdyYXBoLnJlbW92ZUxpbmsoZWRnZUlkKTtcclxuXHRcdGlmICghcmVtb3ZlZCkgcmV0dXJuO1xyXG5cclxuXHRcdHRoaXMuY3k/LmdldEVsZW1lbnRCeUlkKGVkZ2VJZCkucmVtb3ZlKCk7XHJcblx0XHR0aGlzLnNlbGVjdGVkRWRnZUlkID0gbnVsbDtcclxuXHRcdHRoaXMuc2VsZWN0ZWRFZGdlRGVsZXRlQnV0dG9uUG9zaXRpb24gPSBudWxsO1xyXG5cdFx0dGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdH1cclxuXHJcblx0b25MaW5rTm9kZVJlcXVlc3QoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0ZWROb2RlRGF0YSB8fCAhdGhpcy5jeSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHNvdXJjZU5vZGUgPSB0aGlzLnNlbGVjdGVkTm9kZURhdGE7XHJcblxyXG5cdFx0aWYgKCF0aGlzLmNhbkNyZWF0ZU91dGdvaW5nTGluayhzb3VyY2VOb2RlLmlkKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gR2V0IHRoZSBjeXRvc2NhcGUgbm9kZSB0byBpbnNwZWN0IGV4aXN0aW5nIGNvbm5lY3Rpb25zXHJcblx0XHRjb25zdCBjeU5vZGUgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZChzb3VyY2VOb2RlLmlkKTtcclxuXHJcblx0XHQvLyBDb2xsZWN0IElEcyBvZiBub2RlcyBhbHJlYWR5IGNvbm5lY3RlZCBhcyB0YXJnZXRzIGZyb20gdGhpcyBzb3VyY2VcclxuXHRcdGNvbnN0IGV4aXN0aW5nVGFyZ2V0SWRzID0gbmV3IFNldDxzdHJpbmc+KFxyXG5cdFx0XHRjeU5vZGUub3V0Z29lcnMoJ25vZGUnKS5tYXAoKG46IE5vZGVTaW5ndWxhcikgPT4gbi5pZCgpKVxyXG5cdFx0KTtcclxuXHJcblx0XHQvLyBCdWlsZCB0aGUgZmlsdGVyZWQgbGlzdCBvZiBsaW5rYWJsZSB0YXJnZXRzOlxyXG5cdFx0Ly8gIC0gTmV2ZXIgYWxsb3cgdGhlIHN0YXJ0IG5vZGUgKE5ld1Bob25lQ29udGFjdCkgYXMgYSB0YXJnZXRcclxuXHRcdC8vICAtIEV4Y2x1ZGUgdGhlIHNvdXJjZSBub2RlIGl0c2VsZlxyXG5cdFx0Ly8gIC0gRXhjbHVkZSBub2RlcyBhbHJlYWR5IGxpbmtlZCBhcyB0YXJnZXRzIGZyb20gdGhpcyBzb3VyY2VcclxuXHRcdHRoaXMuYXZhaWxhYmxlTm9kZXMgPSB0aGlzLnd4Y2MyZ3JhcGguZ2V0QWxsQWN0aXZpdGllcygpLmZpbHRlcihhY3QgPT5cclxuXHRcdFx0YWN0LmlkICE9PSBzb3VyY2VOb2RlLmlkICYmXHJcblx0XHRcdGFjdC53eGNjQWN0aXZpdHlOYW1lICE9PSAnTmV3UGhvbmVDb250YWN0JyAmJlxyXG5cdFx0XHQhZXhpc3RpbmdUYXJnZXRJZHMuaGFzKGFjdC5pZClcclxuXHRcdCk7XHJcblxyXG5cdFx0Y29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihMaW5rTm9kZURpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiBcIm5vLXBhZGRpbmctbW9kYWxcIixcclxuXHRcdFx0d2lkdGg6IFwiNTUwcHhcIixcclxuXHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdGF2YWlsYWJsZU5vZGVzOiB0aGlzLmF2YWlsYWJsZU5vZGVzLFxyXG5cdFx0XHRcdHNvdXJjZU5vZGU6IHRoaXMuc2VsZWN0ZWROb2RlRGF0YSxcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cclxuXHRcdGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHJlc3VsdCkge1xyXG5cdFx0XHRcdHRoaXMub25MaW5rTm9kZXMocmVzdWx0KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyA9PT09PT09PT09PT09PT09PT09PSBMaW5rIERpYWxvZyBFdmVudHMgPT09PT09PT09PT09PT09PT09PT1cclxuXHJcblx0b25MaW5rTm9kZXMobGlua0RhdGE6IExpbmtOb2RlRGF0YSk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmN5KSByZXR1cm47XHJcblxyXG5cdFx0aWYgKCF0aGlzLmNhbkNyZWF0ZU91dGdvaW5nTGluayhsaW5rRGF0YS5zb3VyY2VOb2RlSWQpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy53eGNjMmdyYXBoLmxpbmtFeGlzdHMobGlua0RhdGEuc291cmNlTm9kZUlkLCBsaW5rRGF0YS50YXJnZXROb2RlSWQpKSB7XHJcblx0XHRcdGNvbnNvbGUud2FybihcIkxpbmsgYWxyZWFkeSBleGlzdHMgYmV0d2VlbiB0aGVzZSBub2Rlc1wiKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGVkZ2UgPSB0aGlzLnd4Y2MyZ3JhcGguYWRkTGluayhcclxuXHRcdFx0bGlua0RhdGEuc291cmNlTm9kZUlkLFxyXG5cdFx0XHRsaW5rRGF0YS50YXJnZXROb2RlSWQsXHJcblx0XHRcdGxpbmtEYXRhLmxhYmVsLFxyXG5cdFx0KTtcclxuXHJcblx0XHR0aGlzLmN5Py5hZGQoZWRnZSk7XHJcblx0XHR0aGlzLnJ1bkxheW91dCgpO1xyXG5cdH1cclxuXHJcblx0Ly8gPT09PT09PT09PT09PT09PT09PT0gQWRkIE5vZGUgRGlhbG9nIEV2ZW50cyA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHRvcGVuQWRkTm9kZURpYWxvZygpOiB2b2lkIHtcclxuXHRcdHRoaXMuYXZhaWxhYmxlTm9kZXMgPSB0aGlzLnd4Y2MyZ3JhcGguZ2V0QWxsQWN0aXZpdGllcygpO1xyXG5cclxuXHRcdGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkTm9kZURpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiBcIm5vLXBhZGRpbmctbW9kYWxcIixcclxuXHRcdFx0d2lkdGg6ICc0NTBweCcsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRhdmFpbGFibGVOb2RlczogdGhpcy5hdmFpbGFibGVOb2RlcyxcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cclxuXHRcdGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHJlc3VsdCkge1xyXG5cdFx0XHRcdHRoaXMuYWRkQWN0aXZpdHkocmVzdWx0KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhZGRBY3Rpdml0eShuZXdOb2RlRGF0YTogTmV3Tm9kZURhdGEpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5jeSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLnd4Y2NBY3Rpdml0eUNyZWF0aW9uU2VydmljZS5jcmVhdGVBbmRTeW5jKHtcclxuXHRcdFx0YWN0aXZpdHlUeXBlTmFtZTogbmV3Tm9kZURhdGEuYWN0aXZpdHlUeXBlTmFtZSxcclxuXHRcdFx0bmFtZTogbmV3Tm9kZURhdGEubmFtZVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gQWRkIG5vZGUgdG8gY3l0b3NjYXBlXHJcblx0XHR0aGlzLmN5Py5hZGQoe1xyXG5cdFx0XHRncm91cDogXCJub2Rlc1wiLFxyXG5cdFx0XHRkYXRhOiBub2RlLmRhdGFcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIFJlLXJ1biBsYXlvdXQgdG8gcG9zaXRpb24gdGhlIG5ldyBub2RlXHJcblx0XHR0aGlzLnJ1bkxheW91dCgpO1xyXG5cdH1cclxuXHJcblx0b25Ob2RlU2VsZWN0Q2hhbmdlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZChpZCkgYXMgTm9kZVNpbmd1bGFyO1xyXG5cdFx0aWYgKG5vZGUpIHtcclxuXHRcdFx0dGhpcy5jeT8uY2VudGVyKG5vZGUpO1xyXG5cclxuXHRcdFx0Ly8gU2V0IGhpZ2hsaWdodGVkIHByb3BlcnR5IGluIG5vZGUgZGF0YVxyXG5cdFx0XHRjb25zdCBvcmlnaW5hbERhdGEgPSBub2RlLmRhdGEoKTtcclxuXHRcdFx0bm9kZS5kYXRhKHsgLi4ub3JpZ2luYWxEYXRhLCBoaWdobGlnaHRlZDogdHJ1ZSB9KTtcclxuXHRcdFx0bm9kZS5lbWl0KCdkYXRhJyk7XHJcblxyXG5cdFx0XHQvLyBSZW1vdmUgaGlnaGxpZ2h0IGFmdGVyIDFzXHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGN1cnJlbnREYXRhID0gbm9kZS5kYXRhKCk7XHJcblx0XHRcdFx0aWYgKGN1cnJlbnREYXRhLmhpZ2hsaWdodGVkKSB7XHJcblx0XHRcdFx0XHQvLyBSZW1vdmUgdGhlIHByb3BlcnR5IGNvbXBsZXRlbHlcclxuXHRcdFx0XHRcdGRlbGV0ZSBjdXJyZW50RGF0YS5oaWdobGlnaHRlZDtcclxuXHRcdFx0XHRcdG5vZGUuZGF0YShjdXJyZW50RGF0YSk7XHJcblx0XHRcdFx0XHRub2RlLmVtaXQoJ2RhdGEnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0em9vbUluKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jeXRvc2NhcGVWaWV3cG9ydFNlcnZpY2Uuem9vbUluKHRoaXMuY3kgYXMgYW55KTtcclxuXHR9XHJcblxyXG5cdHpvb21PdXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmN5dG9zY2FwZVZpZXdwb3J0U2VydmljZS56b29tT3V0KHRoaXMuY3kgYXMgYW55KTtcclxuXHR9XHJcblxyXG5cdHJlc2V0VmlldygpOiB2b2lkIHtcclxuXHRcdHRoaXMuY3l0b3NjYXBlVmlld3BvcnRTZXJ2aWNlLnJlc2V0Vmlldyh0aGlzLmN5IGFzIGFueSwgdGhpcy5jeT8uZWxlbWVudHMoKSBhcyBhbnkpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBydW5MYXlvdXQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuY3kpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmN5Py5sYXlvdXQoe1xyXG5cdFx0XHQuLi50aGlzLmxheW91dE9wdGlvbnMsXHJcblx0XHR9KS5ydW4oKTtcclxuXHJcblx0XHRsYXlvdXQub24oXCJsYXlvdXRzdG9wXCIsICgpID0+IHtcclxuXHRcdFx0dGhpcy5jeXRvc2NhcGVWaWV3cG9ydFNlcnZpY2UucmVzZXRWaWV3KHRoaXMuY3kgYXMgYW55LCB0aGlzLmN5Py5lbGVtZW50cygpIGFzIGFueSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2FuQ3JlYXRlT3V0Z29pbmdMaW5rKHNvdXJjZU5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXRoaXMuY3kpIHJldHVybiBmYWxzZTtcclxuXHJcblx0XHRjb25zdCBjeU5vZGUgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZChzb3VyY2VOb2RlSWQpO1xyXG5cdFx0aWYgKCFjeU5vZGUgfHwgY3lOb2RlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuXHRcdGNvbnN0IHNvdXJjZUFjdGl2aXR5ID0gKGN5Tm9kZS5kYXRhKCkgYXMgUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5KS53eGNjQWN0aXZpdHlOYW1lO1xyXG5cdFx0Y29uc3Qgb3V0Z29pbmdFZGdlQ291bnQgPSBjeU5vZGUub3V0Z29lcnMoJ2VkZ2UnKS5sZW5ndGg7XHJcblxyXG5cdFx0Ly8gRW5kLXR5cGUgbm9kZXMgY2Fubm90IGhhdmUgb3V0Z29pbmcgbGlua3MuXHJcblx0XHRjb25zdCBFTkRfTk9ERV9UWVBFUzogc3RyaW5nW10gPSBbJ2VuZCcsICdkaXNjb25uZWN0LWNvbnRhY3QnLCAnYmxpbmQtdHJhbnNmZXInXTtcclxuXHRcdGlmIChFTkRfTk9ERV9UWVBFUy5pbmNsdWRlcyhzb3VyY2VBY3Rpdml0eSBhcyBzdHJpbmcpKSByZXR1cm4gZmFsc2U7XHJcblxyXG5cdFx0Ly8gU3RhcnQgbm9kZSBjYW4gb25seSBoYXZlIG9uZSBvdXRwdXQuXHJcblx0XHRpZiAoc291cmNlQWN0aXZpdHkgPT09ICdOZXdQaG9uZUNvbnRhY3QnICYmIG91dGdvaW5nRWRnZUNvdW50ID49IDEpIHJldHVybiBmYWxzZTtcclxuXHJcblx0XHQvLyBDb25kaXRpb24gbm9kZSBjYW4gb25seSBoYXZlIHRydWUvZmFsc2Ugb3V0cHV0cy5cclxuXHRcdGlmIChzb3VyY2VBY3Rpdml0eSA9PT0gJ2NvbmRpdGlvbi1hY3Rpdml0eScgJiYgb3V0Z29pbmdFZGdlQ291bnQgPj0gMikgcmV0dXJuIGZhbHNlO1xyXG5cclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjbGVhclNlbGVjdGVkRWRnZSgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5zZWxlY3RlZEVkZ2VJZCB8fCAhdGhpcy5jeSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGVkZ2UgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdGVkRWRnZUlkKTtcclxuXHRcdGlmIChlZGdlICYmIGVkZ2UubGVuZ3RoKSB7XHJcblx0XHRcdGVkZ2UudW5zZWxlY3QoKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkRWRnZUlkID0gbnVsbDtcclxuXHRcdHRoaXMuc2VsZWN0ZWRFZGdlRGVsZXRlQnV0dG9uUG9zaXRpb24gPSBudWxsO1xyXG5cdFx0dGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVTZWxlY3RlZEVkZ2VEZWxldGVCdXR0b25Qb3NpdGlvbigpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5jeSB8fCAhdGhpcy5zZWxlY3RlZEVkZ2VJZCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRWRnZURlbGV0ZUJ1dHRvblBvc2l0aW9uID0gbnVsbDtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGVkZ2UgPSB0aGlzLmN5Py5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdGVkRWRnZUlkKTtcclxuXHRcdGlmICghZWRnZSB8fCBlZGdlLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRWRnZURlbGV0ZUJ1dHRvblBvc2l0aW9uID0gbnVsbDtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IG1pZHBvaW50ID0gKGVkZ2UgYXMgRWRnZVNpbmd1bGFyKS5yZW5kZXJlZE1pZHBvaW50KCk7XHJcblxyXG5cdFx0Ly8gU2xpZ2h0IG9mZnNldCBzbyB0aGUgaWNvbiBkb2VzIG5vdCBzaXQgZXhhY3RseSBvbiB0b3Agb2YgdGhlIGVkZ2UgbGluZS5cclxuXHRcdHRoaXMuc2VsZWN0ZWRFZGdlRGVsZXRlQnV0dG9uUG9zaXRpb24gPSB7XHJcblx0XHRcdHg6IG1pZHBvaW50LnggKyAxMixcclxuXHRcdFx0eTogbWlkcG9pbnQueSAtIDEyLFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInd4Y2MtZmxvd2NoYXJ0LWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgI2Zsb3djaGFydENvbnRhaW5lciBjbGFzcz1cImZsb3djaGFydC1jYW52YXNcIj48L2Rpdj5cclxuXHJcbiAgPCEtLSBGbG9hdGluZyB0b29sYmFyIGZvciB2aWV3cG9ydCBjb250cm9scyAtLT5cclxuICA8Z3JhcGgtZmxvYXRpbmctdG9vbGJhclxyXG4gICAgW3Zpc2liaWxpdHldPVwieyBleHBvcnQ6IGZhbHNlIH1cIlxyXG4gICAgKHJlc2V0Vmlld0NoYW5nZSk9XCJyZXNldFZpZXcoKVwiXHJcbiAgICAoem9vbUluQ2hhbmdlKT1cInpvb21JbigpXCJcclxuICAgICh6b29tT3V0Q2hhbmdlKT1cInpvb21PdXQoKVwiPlxyXG4gIDwvZ3JhcGgtZmxvYXRpbmctdG9vbGJhcj5cclxuXHJcbiAgPCEtLSBHcmFwaCBBY3RzIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJncmFwaC1hY3Rpb25zLXdyYXBwZXJcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJhZGQtbm9kZS1idG5cIlxyXG4gICAgICBtYXRUb29sdGlwPVwiU2VhcmNoIHdvcmtmbG93XCJcclxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlU2VhcmNoUGFuZWwoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL3d4Y2Mvc2VhcmNoLnN2Z1wiIHdpZHRoPVwiMjhcIiBoZWlnaHQ9XCIyOFwiIGFsdD1cIlwiIC8+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJhZGQtbm9kZS1idG5cIlxyXG4gICAgICBtYXRUb29sdGlwPVwiQWRkIE5ldyBOb2RlXCJcclxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkFkZE5vZGVEaWFsb2coKVwiXHJcbiAgICA+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICB3aWR0aD1cIjI4XCJcclxuICAgICAgICBoZWlnaHQ9XCIyOFwiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgID5cclxuICAgICAgICA8bGluZSB4MT1cIjEyXCIgeTE9XCI1XCIgeDI9XCIxMlwiIHkyPVwiMTlcIj48L2xpbmU+XHJcbiAgICAgICAgPGxpbmUgeDE9XCI1XCIgeTE9XCIxMlwiIHgyPVwiMTlcIiB5Mj1cIjEyXCI+PC9saW5lPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YnV0dG9uXHJcbiAgICAqbmdJZj1cInNlbGVjdGVkRWRnZUlkICYmIHNlbGVjdGVkRWRnZURlbGV0ZUJ1dHRvblBvc2l0aW9uXCJcclxuICAgIGNsYXNzPVwiZWRnZS1kZWxldGUtYnRuXCJcclxuICAgIG1hdFRvb2x0aXA9XCJEZWxldGUgdGhpcyBlZGdlXCJcclxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNlbGVjdGVkRWRnZURlbGV0ZUJ1dHRvblBvc2l0aW9uLnhcIlxyXG4gICAgW3N0eWxlLnRvcC5weF09XCJzZWxlY3RlZEVkZ2VEZWxldGVCdXR0b25Qb3NpdGlvbi55XCJcclxuICAgIChjbGljayk9XCJvbkRlbGV0ZVNlbGVjdGVkRWRnZSgpXCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgYXJpYS1sYWJlbD1cIkRlbGV0ZSBzZWxlY3RlZCBlZGdlXCJcclxuICA+XHJcbiAgICDDl1xyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8bm9kZS1zZWFyY2gtcGFuZWxcclxuICAgIGNsYXNzPVwiZmFkZS1pbi1zZWFyY2gtcGFuZWxcIlxyXG4gICAgW2NsYXNzLnZpc2libGVdPVwiaXNTZWFyY2hQYW5lbFZpc2libGVcIlxyXG4gICAgW25vZGVzXT1cImFjdGl2aXRpZXNcIlxyXG4gICAgKHNlbGVjdE5vZGVDaGFuZ2UpPVwib25Ob2RlU2VsZWN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKHNlYXJjaENoYW5nZSk9XCJvcGVuQWRkTm9kZURpYWxvZygpXCJcclxuICA+XHJcbiAgPC9ub2RlLXNlYXJjaC1wYW5lbD5cclxuXHJcbiAgPCEtLSBOb2RlIGFjdGlvbiB0b29sYmFyIChmbG9hdGluZyBuZWFyIHNlbGVjdGVkIG5vZGUpIC0tPlxyXG4gIDxub2RlLWFjdGlvbi10b29sYmFyXHJcbiAgICBbaXNWaXNpYmxlXT1cImlzTm9kZVRvb2xiYXJWaXNpYmxlXCJcclxuICAgIFtwb3NpdGlvbl09XCJub2RlVG9vbGJhclBvc2l0aW9uXCJcclxuICAgIChkZWxldGVOb2RlKT1cIm9uRGVsZXRlTm9kZSgpXCJcclxuICAgIChsaW5rTm9kZSk9XCJvbkxpbmtOb2RlUmVxdWVzdCgpXCJcclxuICA+XHJcbiAgPC9ub2RlLWFjdGlvbi10b29sYmFyPlxyXG5cclxuICA8IS0tIE5vZGUgZGV0YWlscyBzaWRlYmFyIC0tPlxyXG4gIDxub2RlLWRldGFpbHMtc2lkZWJhclxyXG4gICAgW2lzT3Blbl09XCJpc1NpZGViYXJPcGVuXCJcclxuICAgIFtub2RlRGF0YV09XCJzZWxlY3RlZE5vZGVEYXRhXCJcclxuICAgIChjbG9zZSk9XCJvbkNsb3NlU2lkZWJhcigpXCJcclxuICAgIChkZXNjcmlwdGlvbkNoYW5nZSk9XCJvbkRlc2NyaXB0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKGFjdGl2aXR5VHlwZUNoYW5nZSk9XCJvbkFjdGl2aXR5VHlwZUNoYW5nZSgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9ub2RlLWRldGFpbHMtc2lkZWJhcj5cclxuPC9kaXY+XHJcbiJdfQ==