@tuki-io/tuki-widgets 0.0.219-dev.6 → 0.0.219-dev.60

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 (261) hide show
  1. package/contact-center/cc-import/cc-import.module.d.ts +13 -0
  2. package/contact-center/cc-import/cc-import.service.d.ts +85 -0
  3. package/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.d.ts +56 -0
  4. package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.d.ts +77 -0
  5. package/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.d.ts +3 -0
  6. package/contact-center/cc-import/constants/cc-import.constants.d.ts +37 -0
  7. package/contact-center/cc-import/mock/cc-import.mock.d.ts +4 -0
  8. package/contact-center/cc-import/types/cc-import.d.ts +73 -0
  9. package/contact-center/cc-import/types/uccx.d.ts +109 -0
  10. package/contact-center/cc-readiness/cc-readiness.module.d.ts +3 -3
  11. package/contact-center/public-api.d.ts +8 -0
  12. package/contact-center/shared/api.endpoints.d.ts +25 -0
  13. package/contact-center/shared/api.service.d.ts +3 -1
  14. package/contact-center/shared/components/card/card.component.d.ts +13 -0
  15. package/contact-center/shared/dcp-api.service.d.ts +15 -0
  16. package/contact-center/shared/shared.module.d.ts +11 -5
  17. package/di2mt/api/api.endpoints.d.ts +3 -0
  18. package/esm2020/contact-center/cc-import/cc-import.module.mjs +45 -0
  19. package/esm2020/contact-center/cc-import/cc-import.service.mjs +228 -0
  20. package/esm2020/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.mjs +144 -0
  21. package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.mjs +243 -0
  22. package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.mjs +3 -0
  23. package/esm2020/contact-center/cc-import/constants/cc-import.constants.mjs +62 -0
  24. package/esm2020/contact-center/cc-import/mock/cc-import.mock.mjs +78 -0
  25. package/esm2020/contact-center/cc-import/types/cc-import.mjs +2 -0
  26. package/esm2020/contact-center/cc-import/types/uccx.mjs +24 -0
  27. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +7 -6
  28. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +5 -5
  29. package/esm2020/contact-center/cc-readiness/widgets/summary-grid/summary-grid.component.mjs +2 -2
  30. package/esm2020/contact-center/public-api.mjs +9 -1
  31. package/esm2020/contact-center/shared/api.endpoints.mjs +26 -1
  32. package/esm2020/contact-center/shared/api.service.mjs +8 -3
  33. package/esm2020/contact-center/shared/components/card/card.component.mjs +24 -0
  34. package/esm2020/contact-center/shared/dcp-api.service.mjs +26 -0
  35. package/esm2020/contact-center/shared/shared.module.mjs +15 -5
  36. package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
  37. package/esm2020/locations/public-api.mjs +8 -0
  38. package/esm2020/locations/src/app.constants.mjs +18 -0
  39. package/esm2020/locations/src/location-confirm-dialog/location-confirm-dialog.component.mjs +23 -0
  40. package/esm2020/locations/src/locations.component.mjs +398 -0
  41. package/esm2020/locations/src/locations.module.mjs +42 -0
  42. package/esm2020/locations/src/material.module.mjs +55 -0
  43. package/esm2020/locations/src/services/api.service.mjs +67 -0
  44. package/esm2020/locations/src/services/locations.service.mjs +69 -0
  45. package/esm2020/locations/src/types/location.mjs +2 -0
  46. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
  47. package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
  48. package/esm2020/meetings/public-api.mjs +8 -0
  49. package/esm2020/meetings/src/app.constants.mjs +9 -0
  50. package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
  51. package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
  52. package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
  53. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
  54. package/esm2020/meetings/src/material.module.mjs +76 -0
  55. package/esm2020/meetings/src/meetings.component.mjs +65 -0
  56. package/esm2020/meetings/src/meetings.module.mjs +51 -0
  57. package/esm2020/meetings/src/services/api.service.mjs +67 -0
  58. package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
  59. package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
  60. package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
  61. package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
  62. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
  63. package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
  64. package/esm2020/shared/public-api.mjs +4 -0
  65. package/esm2020/shared/src/ui/material.module.mjs +188 -0
  66. package/esm2020/shared/src/ui/shared.module.mjs +36 -0
  67. package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
  68. package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
  69. package/esm2020/shared/src/ui/ui.module.mjs +37 -0
  70. package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
  71. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
  72. package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
  73. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
  74. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
  75. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
  76. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
  77. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
  78. package/esm2020/user-device-manage/public-api.mjs +4 -1
  79. package/esm2020/user-device-manage/src/app.constants.mjs +9 -3
  80. package/esm2020/user-device-manage/src/associate-lines/associate-lines.component.mjs +311 -0
  81. package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
  82. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  83. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  84. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +2 -2
  85. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +34 -17
  86. package/esm2020/user-device-manage/src/device-settings/device-settings.component.mjs +207 -0
  87. package/esm2020/user-device-manage/src/line-key-config/line-key-config.component.mjs +401 -0
  88. package/esm2020/user-device-manage/src/services/device.service.mjs +32 -2
  89. package/esm2020/user-device-manage/src/services/user.service.mjs +34 -6
  90. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +19 -7
  91. package/esm2020/user-manage/src/app.constants.mjs +8 -1
  92. package/esm2020/user-manage/src/classes/simplified-user.mjs +19 -4
  93. package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
  94. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
  95. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +9 -5
  96. package/esm2020/user-manage/src/material.module.mjs +21 -7
  97. package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
  98. package/esm2020/user-manage/src/services/site-settings.service.mjs +11 -4
  99. package/esm2020/user-manage/src/services/user.service.mjs +94 -19
  100. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
  101. package/esm2020/user-manage/src/user-manage-widget.component.mjs +90 -39
  102. package/esm2020/user-manage/src/user-manage.module.mjs +14 -4
  103. package/esm2020/user-manage/src/user-summary/user-summary.component.mjs +30 -0
  104. package/esm2020/users-list/src/app.constants.mjs +2 -1
  105. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  106. package/esm2020/users-list/src/classes/user-list.mjs +2 -1
  107. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
  108. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
  109. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
  110. package/esm2020/users-list/src/users-list.component.mjs +100 -17
  111. package/esm2020/workspaces/public-api.mjs +8 -0
  112. package/esm2020/workspaces/src/app.constants.mjs +27 -0
  113. package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
  114. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +96 -0
  115. package/esm2020/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.mjs +66 -0
  116. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
  117. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +130 -0
  118. package/esm2020/workspaces/src/material.module.mjs +83 -0
  119. package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
  120. package/esm2020/workspaces/src/services/api.service.mjs +67 -0
  121. package/esm2020/workspaces/src/services/workspace-detail.service.mjs +169 -0
  122. package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
  123. package/esm2020/workspaces/src/services/workspaces.service.mjs +150 -0
  124. package/esm2020/workspaces/src/types/workspace.mjs +4 -0
  125. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
  126. package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
  127. package/esm2020/workspaces/src/utils/workspace-name.mjs +8 -0
  128. package/esm2020/workspaces/src/workspaces.component.mjs +306 -0
  129. package/esm2020/workspaces/src/workspaces.module.mjs +54 -0
  130. package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
  131. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +998 -127
  132. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  133. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  134. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  135. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +679 -0
  136. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  137. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
  138. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  139. package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
  140. package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  141. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
  142. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  143. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +1013 -48
  144. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  145. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +380 -89
  146. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  147. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +121 -22
  148. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  149. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +1275 -0
  150. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  151. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +989 -127
  152. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  153. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  154. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  155. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +672 -0
  156. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  157. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
  158. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  159. package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
  160. package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  161. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
  162. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  163. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +996 -47
  164. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  165. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +366 -82
  166. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  167. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +120 -22
  168. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  169. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +1276 -0
  170. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  171. package/locations/index.d.ts +5 -0
  172. package/locations/public-api.d.ts +2 -0
  173. package/locations/src/app.constants.d.ts +10 -0
  174. package/locations/src/location-confirm-dialog/location-confirm-dialog.component.d.ts +15 -0
  175. package/locations/src/locations.component.d.ts +92 -0
  176. package/locations/src/locations.module.d.ts +13 -0
  177. package/locations/src/material.module.d.ts +12 -0
  178. package/locations/src/services/api.service.d.ts +18 -0
  179. package/locations/src/services/locations.service.d.ts +25 -0
  180. package/locations/src/types/location.d.ts +30 -0
  181. package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
  182. package/meetings/index.d.ts +5 -0
  183. package/meetings/public-api.d.ts +2 -0
  184. package/meetings/src/app.constants.d.ts +8 -0
  185. package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
  186. package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
  187. package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
  188. package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
  189. package/meetings/src/material.module.d.ts +15 -0
  190. package/meetings/src/meetings.component.d.ts +29 -0
  191. package/meetings/src/meetings.module.d.ts +16 -0
  192. package/meetings/src/services/api.service.d.ts +18 -0
  193. package/meetings/src/services/live-meetings.service.d.ts +9 -0
  194. package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
  195. package/meetings/src/types/live-meeting.d.ts +71 -0
  196. package/meetings/src/types/meeting-space.d.ts +52 -0
  197. package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
  198. package/package.json +33 -1
  199. package/shared/index.d.ts +5 -0
  200. package/shared/public-api.d.ts +3 -0
  201. package/shared/src/ui/material.module.d.ts +28 -0
  202. package/shared/src/ui/shared.module.d.ts +10 -0
  203. package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
  204. package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
  205. package/shared/src/ui/ui.module.d.ts +11 -0
  206. package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
  207. package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
  208. package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
  209. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
  210. package/user-device-manage/public-api.d.ts +3 -0
  211. package/user-device-manage/src/app.constants.d.ts +6 -0
  212. package/user-device-manage/src/associate-lines/associate-lines.component.d.ts +95 -0
  213. package/user-device-manage/src/classes/device.d.ts +15 -0
  214. package/user-device-manage/src/classes/deviceProfile.d.ts +5 -0
  215. package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
  216. package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +1 -0
  217. package/user-device-manage/src/device-manage-widget.component.d.ts +6 -1
  218. package/user-device-manage/src/device-settings/device-settings.component.d.ts +53 -0
  219. package/user-device-manage/src/line-key-config/line-key-config.component.d.ts +84 -0
  220. package/user-device-manage/src/services/device.service.d.ts +6 -1
  221. package/user-device-manage/src/services/user.service.d.ts +2 -1
  222. package/user-device-manage/src/user-device-manage.module.d.ts +12 -10
  223. package/user-manage/src/app.constants.d.ts +7 -0
  224. package/user-manage/src/classes/simplified-user.d.ts +17 -1
  225. package/user-manage/src/device-list/device-list.component.d.ts +2 -0
  226. package/user-manage/src/material.module.d.ts +3 -1
  227. package/user-manage/src/services/dcp-api.service.d.ts +21 -0
  228. package/user-manage/src/services/user.service.d.ts +19 -1
  229. package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
  230. package/user-manage/src/user-manage-widget.component.d.ts +14 -2
  231. package/user-manage/src/user-manage.module.d.ts +9 -7
  232. package/user-manage/src/user-summary/user-summary.component.d.ts +10 -0
  233. package/users-list/src/app.constants.d.ts +1 -0
  234. package/users-list/src/classes/simlified-user.d.ts +1 -1
  235. package/users-list/src/classes/user-list.d.ts +4 -0
  236. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
  237. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
  238. package/users-list/src/users-list.component.d.ts +6 -1
  239. package/workspaces/index.d.ts +5 -0
  240. package/workspaces/public-api.d.ts +2 -0
  241. package/workspaces/src/app.constants.d.ts +25 -0
  242. package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
  243. package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +34 -0
  244. package/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.d.ts +25 -0
  245. package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
  246. package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +43 -0
  247. package/workspaces/src/material.module.d.ts +16 -0
  248. package/workspaces/src/services/api-webex.service.d.ts +6 -0
  249. package/workspaces/src/services/api.service.d.ts +18 -0
  250. package/workspaces/src/services/workspace-detail.service.d.ts +22 -0
  251. package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
  252. package/workspaces/src/services/workspaces.service.d.ts +11 -0
  253. package/workspaces/src/types/workspace.d.ts +439 -0
  254. package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
  255. package/workspaces/src/utils/device-icon.d.ts +1 -0
  256. package/workspaces/src/utils/workspace-name.d.ts +1 -0
  257. package/workspaces/src/workspaces.component.d.ts +74 -0
  258. package/workspaces/src/workspaces.module.d.ts +17 -0
  259. package/contact-center/cc-readiness/components/card/card.component.d.ts +0 -6
  260. package/esm2020/contact-center/cc-readiness/components/card/card.component.mjs +0 -13
  261. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
@@ -0,0 +1,66 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { getDeviceIcon } from '../../utils/device-icon';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/material/menu";
8
+ import * as i5 from "@angular/material/tooltip";
9
+ import * as i6 from "../../utils/app-loader/app-loader";
10
+ export class WorkspaceDeviceDetailComponent {
11
+ constructor() {
12
+ this.device = null;
13
+ this.details = null;
14
+ this.isLoading = false;
15
+ this.back = new EventEmitter();
16
+ this.tags = [];
17
+ this.isAddingTag = false;
18
+ this.newTag = '';
19
+ this.hotelingEnabled = false;
20
+ this.guestHoursLimit = 0;
21
+ this.hotelingTimeHours = Array.from({ length: 24 }, (_, index) => index);
22
+ }
23
+ get deviceLabel() {
24
+ return this.details?.model || this.device?.label || 'Device';
25
+ }
26
+ get deviceIcon() {
27
+ return getDeviceIcon(this.details?.model || this.device?.model);
28
+ }
29
+ get isRegistered() {
30
+ return (this.details?.registrationStatus || '').toLowerCase() === 'registered';
31
+ }
32
+ onBack() {
33
+ this.back.emit();
34
+ }
35
+ showTagInput() {
36
+ this.isAddingTag = true;
37
+ }
38
+ onTagInputBlur() {
39
+ const value = this.newTag.trim();
40
+ if (value) {
41
+ this.tags.push(value);
42
+ }
43
+ this.newTag = '';
44
+ this.isAddingTag = false;
45
+ }
46
+ removeTag(index) {
47
+ this.tags.splice(index, 1);
48
+ }
49
+ }
50
+ WorkspaceDeviceDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDeviceDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ WorkspaceDeviceDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspaceDeviceDetailComponent, selector: "tk-workspace-device-detail", inputs: { workspace: "workspace", device: "device", details: "details", isLoading: "isLoading" }, outputs: { back: "back" }, ngImport: i0, template: "<button type=\"button\" class=\"tk-workspace-device-detail__breadcrumb\" (click)=\"onBack()\">\r\n <img style=\"width: 16px; height: 16px;\" src=\"assets/icons/arrow-left-bold.svg\" alt=\"Back\" />\r\n Devices\r\n</button>\r\n\r\n<app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <div class=\"tk-workspace-device-detail__header\">\r\n <img class=\"tk-workspace-device-detail__icon\" [src]=\"deviceIcon\" [alt]=\"deviceLabel\" />\r\n <div class=\"tk-workspace-device-detail__title-block\">\r\n <h1 class=\"tk-workspace-device-detail__name\">{{ deviceLabel }}</h1>\r\n <div class=\"tk-workspace-device-detail__meta\">\r\n <span class=\"tk-workspace-device-detail__meta-pill\">\r\n <span class=\"tk-workspace-device-detail__status-dot\" [class.tk-workspace-device-detail__status-dot--active]=\"isRegistered\"></span>\r\n {{ details?.registrationStatus || 'Not Registered' }}\r\n </span>\r\n <span class=\"tk-workspace-device-detail__meta-sep\"></span>\r\n <span>Phones</span>\r\n </div>\r\n </div>\r\n <button type=\"button\" class=\"tk-workspace-device-detail__actions-button\" [matMenuTriggerFor]=\"actionsMenu\">\r\n Actions\r\n <img style=\"width: 16px; height: 16px;\" src=\"assets/icons/arrow-down-regular.svg\" alt=\"Expand\" />\r\n </button>\r\n <mat-menu #actionsMenu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item disabled>More actions coming soon</button>\r\n </mat-menu>\r\n <a href=\"javascript:void(0)\" class=\"tk-workspace-device-detail__workspace-link\">{{ workspace.displayName }}</a>\r\n </div>\r\n\r\n <div class=\"tk-workspace-device-detail__grid\">\r\n <div class=\"tk-workspace-device-detail__col\">\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Details</h2>\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.lineCount ?? 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Lines</span>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.mac || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">MAC address</span>\r\n </div>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.hostIpAddress || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Host IP address</span>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.remoteIpAddress || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Remote IP address</span>\r\n </div>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.managedBy || 'Cisco' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Managed By</span>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <div class=\"tk-workspace-device-detail__card-header\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Software</h2>\r\n <div class=\"tk-workspace-device-detail__settings-icon-wrapper\">\r\n <img class=\"tk-workspace-device-detail__meta-icon\" src=\"assets/icons/settings-regular.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.softwareChannel || 'Unknown' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Software Channel</span>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.softwareVersion || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Software version</span>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Tags</h2>\r\n <div class=\"tk-workspace-device-detail__tags\">\r\n <div *ngFor=\"let tag of tags; let i = index\" class=\"tk-workspace-device-detail__tag\">\r\n <span>{{ tag }}</span>\r\n <mat-icon class=\"tk-workspace-device-detail__tag-remove\" (click)=\"removeTag(i)\">close</mat-icon>\r\n </div>\r\n <button type=\"button\" class=\"tk-workspace-device-detail__tag tk-workspace-device-detail__tag--add\" (click)=\"showTagInput()\">\r\n <mat-icon class=\"tk-workspace-device-detail__tag-add-icon\">add</mat-icon>\r\n Add tag\r\n </button>\r\n <input\r\n *ngIf=\"isAddingTag\"\r\n class=\"tk-workspace-device-detail__tag-input\"\r\n type=\"text\"\r\n placeholder=\"Enter tag...\"\r\n [(ngModel)]=\"newTag\"\r\n (blur)=\"onTagInputBlur()\" />\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"tk-workspace-device-detail__col\">\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Issues &amp; Information</h2>\r\n <div class=\"tk-workspace-device-detail__no-issues\">\r\n <mat-icon class=\"tk-workspace-device-detail__no-issues-icon\">check_circle</mat-icon>\r\n No reported issues at this time\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Hoteling</h2>\r\n <p class=\"tk-workspace-device-detail__hint\">Allow this device to be used as a Hoteling Host by visiting guests.</p>\r\n <div class=\"tk-workspace-device-detail__hoteling-toggle-row\">\r\n <label class=\"tk-workspace-device-detail__toggle\">\r\n <input type=\"checkbox\" [(ngModel)]=\"hotelingEnabled\" />\r\n <span class=\"tk-workspace-device-detail__toggle-slider\"></span>\r\n </label>\r\n <img\r\n class=\"tk-workspace-device-detail__meta-icon\"\r\n src=\"assets/icons/info-circle-regular.svg\"\r\n alt=\"\"\r\n matTooltip=\"Enabling this device for Hoteling means that a guest can log into this host and use this phone as if it were their own.\" />\r\n </div>\r\n <p class=\"tk-workspace-device-detail__hint\">Limit the time a guest can use this phone to</p>\r\n <select class=\"tk-workspace-device-detail__select\" [(ngModel)]=\"guestHoursLimit\">\r\n <option *ngFor=\"let hour of hotelingTimeHours\" [value]=\"hour\">{{ hour }}</option>\r\n </select>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Device Management</h2>\r\n <p class=\"tk-workspace-device-detail__hint\">The users and workspaces that appear on this device are displayed below in the order of appearance.</p>\r\n <p class=\"tk-workspace-device-detail__hint\">\r\n To add and remove users and workspaces, select <b>Configure Lines</b>.<br />\r\n To customize the programmable Line Keys, select <b>Configure Layout</b>.<br />\r\n To set up the display settings and dialing options, select <b>Device Settings</b>.\r\n </p>\r\n <div class=\"tk-workspace-device-detail__table-wrapper\">\r\n <table class=\"tk-workspace-device-detail__table\">\r\n <thead>\r\n <tr>\r\n <th>Index #</th>\r\n <th>Name</th>\r\n <th>Number/Extension</th>\r\n <th>Registered</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let line of details?.lines; let i = index\">\r\n <td>{{ i + 1 }}</td>\r\n <td>{{ line.name || 'NA' }}</td>\r\n <td>{{ line.number }}</td>\r\n <td>\r\n <span *ngIf=\"line.registered; else notRegistered\" class=\"tk-workspace-device-detail__registered\">Registered</span>\r\n <ng-template #notRegistered>\r\n <mat-icon class=\"tk-workspace-device-detail__warning-icon\" matTooltip=\"Unregistered\">warning</mat-icon>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"!details?.lines?.length\">\r\n <td colspan=\"4\" class=\"tk-workspace-device-detail__table-empty\">No lines configured.</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__configure-lines\">\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Configure Lines</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Configure Layout</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Device Settings</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Support</h2>\r\n <div class=\"tk-workspace-device-detail__configure-lines\">\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Meetings &amp; Calls</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Go to troubleshooting</span>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Device Logs</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspace-device-detail__breadcrumb{display:inline-flex;align-items:center;gap:.5rem;padding:0;margin-bottom:1rem;background:none;border:none;font-family:inherit;font-size:.875rem;font-weight:500;color:#0009;cursor:pointer}.tk-workspace-device-detail__breadcrumb:hover{color:#000000f2}.tk-workspace-device-detail__header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.5rem;position:relative}.tk-workspace-device-detail__icon{width:3rem;height:3rem;flex-shrink:0}.tk-workspace-device-detail__title-block{flex:1;min-width:0}.tk-workspace-device-detail__name{margin:0 0 .375rem;font-size:1.25rem;font-weight:600}.tk-workspace-device-detail__meta{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#0009}.tk-workspace-device-detail__meta-sep{display:inline-flex;align-items:center}.tk-workspace-device-detail__meta-sep:before{content:\"\";inline-size:.25rem;block-size:.25rem;border-radius:50%;background-color:#00000073}.tk-workspace-device-detail__meta-pill{display:inline-flex;align-items:center;gap:.35rem}.tk-workspace-device-detail__meta-icon{height:1rem;width:1rem}.tk-workspace-device-detail__status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#707070}.tk-workspace-device-detail__status-dot--active{background:#1d805f}.tk-workspace-device-detail__actions-button{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:#000;color:#fff;border:none;border-radius:6.25rem;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;flex-shrink:0}.tk-workspace-device-detail__actions-button:hover{background:#2b2b2b}.tk-workspace-device-detail__workspace-link{position:absolute;top:0;right:0;color:#0353a8;text-decoration:none;font-size:.875rem;font-weight:500;align-self:center;margin-top:3rem}.tk-workspace-device-detail__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:start}@media (max-width: 900px){.tk-workspace-device-detail__grid{grid-template-columns:1fr}}.tk-workspace-device-detail__col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.tk-workspace-device-detail__card{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:.5rem;padding:1rem 1.5rem;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}.tk-workspace-device-detail__card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.tk-workspace-device-detail__card-title{margin:0 0 1rem;font-size:1rem;font-weight:500}.tk-workspace-device-detail__card-header .tk-workspace-device-detail__card-title{margin-bottom:0}.tk-workspace-device-detail__settings-icon-wrapper{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.5019607843);cursor:pointer}.tk-workspace-device-detail__divider{border:none;border-top:1px solid rgba(0,0,0,.2);margin:.75rem 0}.tk-workspace-device-detail__row{display:flex;gap:1.5rem}.tk-workspace-device-detail__row-half{flex:1;display:flex;flex-direction:column;gap:.25rem}.tk-workspace-device-detail__value{font-size:.875rem;font-weight:500;color:#000000f2}.tk-workspace-device-detail__label{font-size:.75rem;color:#0009}.tk-workspace-device-detail__hint{font-size:.8125rem;color:#0009;margin:0 0 .75rem}.tk-workspace-device-detail__tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tk-workspace-device-detail__tag{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border:1px solid rgba(0,0,0,.12);border-radius:6.25rem;font-size:.8125rem;background:#f5f5f5}.tk-workspace-device-detail__tag mat-icon{font-size:1rem;height:1rem;width:1rem;cursor:pointer}.tk-workspace-device-detail__tag--add{background:none;border-style:dashed;cursor:pointer;font-family:inherit;color:#000000f2}.tk-workspace-device-detail__tag-input{border:1px solid rgba(0,0,0,.12);border-radius:.25rem;padding:.25rem .5rem;font-size:.8125rem;font-family:inherit}.tk-workspace-device-detail__no-issues{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.tk-workspace-device-detail__no-issues-icon{color:#1d805f;font-size:1.125rem;height:1.125rem;width:1.125rem}.tk-workspace-device-detail__hoteling-toggle-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.tk-workspace-device-detail__toggle{position:relative;display:inline-block;width:2.25rem;height:1.25rem}.tk-workspace-device-detail__toggle input{opacity:0;width:0;height:0}.tk-workspace-device-detail__toggle input:checked+.tk-workspace-device-detail__toggle-slider{background-color:#0353a8}.tk-workspace-device-detail__toggle input:checked+.tk-workspace-device-detail__toggle-slider:before{transform:translate(1rem)}.tk-workspace-device-detail__toggle-slider{position:absolute;inset:0;background-color:#b3b3b3;border-radius:1.25rem;cursor:pointer;transition:background-color .15s ease}.tk-workspace-device-detail__toggle-slider:before{content:\"\";position:absolute;height:1rem;width:1rem;left:.125rem;top:.125rem;background-color:#fff;border-radius:50%;transition:transform .15s ease}.tk-workspace-device-detail__select{font-family:inherit;font-size:.875rem;padding:.375rem .5rem;border-radius:.25rem;border:1px solid rgba(0,0,0,.12);max-width:8rem}.tk-workspace-device-detail__table-wrapper{overflow-x:auto;margin-bottom:.75rem}.tk-workspace-device-detail__table{width:100%;border-collapse:collapse;font-size:.8125rem}.tk-workspace-device-detail__table th{text-align:left;font-weight:400;color:#0009;padding:.5rem .75rem;background:#ededed;border-bottom:1px solid #e8e8e8}.tk-workspace-device-detail__table td{padding:.5rem .75rem;border-bottom:1px solid #e8e8e8;vertical-align:middle}.tk-workspace-device-detail__table-empty{color:#0009;text-align:center}.tk-workspace-device-detail__registered{color:#1d805f;font-weight:500}.tk-workspace-device-detail__warning-icon{color:#b54708;font-size:1.125rem;height:1.125rem;width:1.125rem}.tk-workspace-device-detail__configure-lines{opacity:.4;pointer-events:none}.tk-workspace-device-detail__configure-line{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;font-size:.875rem}.tk-workspace-device-detail__configure-manage{font-weight:500;cursor:pointer}\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: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.AppLoaderComponent, selector: "app-loader" }] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDeviceDetailComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'tk-workspace-device-detail', template: "<button type=\"button\" class=\"tk-workspace-device-detail__breadcrumb\" (click)=\"onBack()\">\r\n <img style=\"width: 16px; height: 16px;\" src=\"assets/icons/arrow-left-bold.svg\" alt=\"Back\" />\r\n Devices\r\n</button>\r\n\r\n<app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <div class=\"tk-workspace-device-detail__header\">\r\n <img class=\"tk-workspace-device-detail__icon\" [src]=\"deviceIcon\" [alt]=\"deviceLabel\" />\r\n <div class=\"tk-workspace-device-detail__title-block\">\r\n <h1 class=\"tk-workspace-device-detail__name\">{{ deviceLabel }}</h1>\r\n <div class=\"tk-workspace-device-detail__meta\">\r\n <span class=\"tk-workspace-device-detail__meta-pill\">\r\n <span class=\"tk-workspace-device-detail__status-dot\" [class.tk-workspace-device-detail__status-dot--active]=\"isRegistered\"></span>\r\n {{ details?.registrationStatus || 'Not Registered' }}\r\n </span>\r\n <span class=\"tk-workspace-device-detail__meta-sep\"></span>\r\n <span>Phones</span>\r\n </div>\r\n </div>\r\n <button type=\"button\" class=\"tk-workspace-device-detail__actions-button\" [matMenuTriggerFor]=\"actionsMenu\">\r\n Actions\r\n <img style=\"width: 16px; height: 16px;\" src=\"assets/icons/arrow-down-regular.svg\" alt=\"Expand\" />\r\n </button>\r\n <mat-menu #actionsMenu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item disabled>More actions coming soon</button>\r\n </mat-menu>\r\n <a href=\"javascript:void(0)\" class=\"tk-workspace-device-detail__workspace-link\">{{ workspace.displayName }}</a>\r\n </div>\r\n\r\n <div class=\"tk-workspace-device-detail__grid\">\r\n <div class=\"tk-workspace-device-detail__col\">\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Details</h2>\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.lineCount ?? 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Lines</span>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.mac || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">MAC address</span>\r\n </div>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.hostIpAddress || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Host IP address</span>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.remoteIpAddress || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Remote IP address</span>\r\n </div>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.managedBy || 'Cisco' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Managed By</span>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <div class=\"tk-workspace-device-detail__card-header\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Software</h2>\r\n <div class=\"tk-workspace-device-detail__settings-icon-wrapper\">\r\n <img class=\"tk-workspace-device-detail__meta-icon\" src=\"assets/icons/settings-regular.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row\">\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.softwareChannel || 'Unknown' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Software Channel</span>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__row-half\">\r\n <span class=\"tk-workspace-device-detail__value\">{{ details?.softwareVersion || 'N/A' }}</span>\r\n <span class=\"tk-workspace-device-detail__label\">Software version</span>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Tags</h2>\r\n <div class=\"tk-workspace-device-detail__tags\">\r\n <div *ngFor=\"let tag of tags; let i = index\" class=\"tk-workspace-device-detail__tag\">\r\n <span>{{ tag }}</span>\r\n <mat-icon class=\"tk-workspace-device-detail__tag-remove\" (click)=\"removeTag(i)\">close</mat-icon>\r\n </div>\r\n <button type=\"button\" class=\"tk-workspace-device-detail__tag tk-workspace-device-detail__tag--add\" (click)=\"showTagInput()\">\r\n <mat-icon class=\"tk-workspace-device-detail__tag-add-icon\">add</mat-icon>\r\n Add tag\r\n </button>\r\n <input\r\n *ngIf=\"isAddingTag\"\r\n class=\"tk-workspace-device-detail__tag-input\"\r\n type=\"text\"\r\n placeholder=\"Enter tag...\"\r\n [(ngModel)]=\"newTag\"\r\n (blur)=\"onTagInputBlur()\" />\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"tk-workspace-device-detail__col\">\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Issues &amp; Information</h2>\r\n <div class=\"tk-workspace-device-detail__no-issues\">\r\n <mat-icon class=\"tk-workspace-device-detail__no-issues-icon\">check_circle</mat-icon>\r\n No reported issues at this time\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Hoteling</h2>\r\n <p class=\"tk-workspace-device-detail__hint\">Allow this device to be used as a Hoteling Host by visiting guests.</p>\r\n <div class=\"tk-workspace-device-detail__hoteling-toggle-row\">\r\n <label class=\"tk-workspace-device-detail__toggle\">\r\n <input type=\"checkbox\" [(ngModel)]=\"hotelingEnabled\" />\r\n <span class=\"tk-workspace-device-detail__toggle-slider\"></span>\r\n </label>\r\n <img\r\n class=\"tk-workspace-device-detail__meta-icon\"\r\n src=\"assets/icons/info-circle-regular.svg\"\r\n alt=\"\"\r\n matTooltip=\"Enabling this device for Hoteling means that a guest can log into this host and use this phone as if it were their own.\" />\r\n </div>\r\n <p class=\"tk-workspace-device-detail__hint\">Limit the time a guest can use this phone to</p>\r\n <select class=\"tk-workspace-device-detail__select\" [(ngModel)]=\"guestHoursLimit\">\r\n <option *ngFor=\"let hour of hotelingTimeHours\" [value]=\"hour\">{{ hour }}</option>\r\n </select>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Device Management</h2>\r\n <p class=\"tk-workspace-device-detail__hint\">The users and workspaces that appear on this device are displayed below in the order of appearance.</p>\r\n <p class=\"tk-workspace-device-detail__hint\">\r\n To add and remove users and workspaces, select <b>Configure Lines</b>.<br />\r\n To customize the programmable Line Keys, select <b>Configure Layout</b>.<br />\r\n To set up the display settings and dialing options, select <b>Device Settings</b>.\r\n </p>\r\n <div class=\"tk-workspace-device-detail__table-wrapper\">\r\n <table class=\"tk-workspace-device-detail__table\">\r\n <thead>\r\n <tr>\r\n <th>Index #</th>\r\n <th>Name</th>\r\n <th>Number/Extension</th>\r\n <th>Registered</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let line of details?.lines; let i = index\">\r\n <td>{{ i + 1 }}</td>\r\n <td>{{ line.name || 'NA' }}</td>\r\n <td>{{ line.number }}</td>\r\n <td>\r\n <span *ngIf=\"line.registered; else notRegistered\" class=\"tk-workspace-device-detail__registered\">Registered</span>\r\n <ng-template #notRegistered>\r\n <mat-icon class=\"tk-workspace-device-detail__warning-icon\" matTooltip=\"Unregistered\">warning</mat-icon>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"!details?.lines?.length\">\r\n <td colspan=\"4\" class=\"tk-workspace-device-detail__table-empty\">No lines configured.</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"tk-workspace-device-detail__configure-lines\">\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Configure Lines</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Configure Layout</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Device Settings</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"tk-workspace-device-detail__card\">\r\n <h2 class=\"tk-workspace-device-detail__card-title\">Support</h2>\r\n <div class=\"tk-workspace-device-detail__configure-lines\">\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Meetings &amp; Calls</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Go to troubleshooting</span>\r\n </div>\r\n <hr class=\"tk-workspace-device-detail__divider\" />\r\n <div class=\"tk-workspace-device-detail__configure-line\">\r\n <span>Device Logs</span>\r\n <span class=\"tk-workspace-device-detail__configure-manage\">Manage</span>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspace-device-detail__breadcrumb{display:inline-flex;align-items:center;gap:.5rem;padding:0;margin-bottom:1rem;background:none;border:none;font-family:inherit;font-size:.875rem;font-weight:500;color:#0009;cursor:pointer}.tk-workspace-device-detail__breadcrumb:hover{color:#000000f2}.tk-workspace-device-detail__header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.5rem;position:relative}.tk-workspace-device-detail__icon{width:3rem;height:3rem;flex-shrink:0}.tk-workspace-device-detail__title-block{flex:1;min-width:0}.tk-workspace-device-detail__name{margin:0 0 .375rem;font-size:1.25rem;font-weight:600}.tk-workspace-device-detail__meta{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#0009}.tk-workspace-device-detail__meta-sep{display:inline-flex;align-items:center}.tk-workspace-device-detail__meta-sep:before{content:\"\";inline-size:.25rem;block-size:.25rem;border-radius:50%;background-color:#00000073}.tk-workspace-device-detail__meta-pill{display:inline-flex;align-items:center;gap:.35rem}.tk-workspace-device-detail__meta-icon{height:1rem;width:1rem}.tk-workspace-device-detail__status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#707070}.tk-workspace-device-detail__status-dot--active{background:#1d805f}.tk-workspace-device-detail__actions-button{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:#000;color:#fff;border:none;border-radius:6.25rem;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;flex-shrink:0}.tk-workspace-device-detail__actions-button:hover{background:#2b2b2b}.tk-workspace-device-detail__workspace-link{position:absolute;top:0;right:0;color:#0353a8;text-decoration:none;font-size:.875rem;font-weight:500;align-self:center;margin-top:3rem}.tk-workspace-device-detail__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:start}@media (max-width: 900px){.tk-workspace-device-detail__grid{grid-template-columns:1fr}}.tk-workspace-device-detail__col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.tk-workspace-device-detail__card{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:.5rem;padding:1rem 1.5rem;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}.tk-workspace-device-detail__card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.tk-workspace-device-detail__card-title{margin:0 0 1rem;font-size:1rem;font-weight:500}.tk-workspace-device-detail__card-header .tk-workspace-device-detail__card-title{margin-bottom:0}.tk-workspace-device-detail__settings-icon-wrapper{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.5019607843);cursor:pointer}.tk-workspace-device-detail__divider{border:none;border-top:1px solid rgba(0,0,0,.2);margin:.75rem 0}.tk-workspace-device-detail__row{display:flex;gap:1.5rem}.tk-workspace-device-detail__row-half{flex:1;display:flex;flex-direction:column;gap:.25rem}.tk-workspace-device-detail__value{font-size:.875rem;font-weight:500;color:#000000f2}.tk-workspace-device-detail__label{font-size:.75rem;color:#0009}.tk-workspace-device-detail__hint{font-size:.8125rem;color:#0009;margin:0 0 .75rem}.tk-workspace-device-detail__tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tk-workspace-device-detail__tag{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border:1px solid rgba(0,0,0,.12);border-radius:6.25rem;font-size:.8125rem;background:#f5f5f5}.tk-workspace-device-detail__tag mat-icon{font-size:1rem;height:1rem;width:1rem;cursor:pointer}.tk-workspace-device-detail__tag--add{background:none;border-style:dashed;cursor:pointer;font-family:inherit;color:#000000f2}.tk-workspace-device-detail__tag-input{border:1px solid rgba(0,0,0,.12);border-radius:.25rem;padding:.25rem .5rem;font-size:.8125rem;font-family:inherit}.tk-workspace-device-detail__no-issues{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.tk-workspace-device-detail__no-issues-icon{color:#1d805f;font-size:1.125rem;height:1.125rem;width:1.125rem}.tk-workspace-device-detail__hoteling-toggle-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.tk-workspace-device-detail__toggle{position:relative;display:inline-block;width:2.25rem;height:1.25rem}.tk-workspace-device-detail__toggle input{opacity:0;width:0;height:0}.tk-workspace-device-detail__toggle input:checked+.tk-workspace-device-detail__toggle-slider{background-color:#0353a8}.tk-workspace-device-detail__toggle input:checked+.tk-workspace-device-detail__toggle-slider:before{transform:translate(1rem)}.tk-workspace-device-detail__toggle-slider{position:absolute;inset:0;background-color:#b3b3b3;border-radius:1.25rem;cursor:pointer;transition:background-color .15s ease}.tk-workspace-device-detail__toggle-slider:before{content:\"\";position:absolute;height:1rem;width:1rem;left:.125rem;top:.125rem;background-color:#fff;border-radius:50%;transition:transform .15s ease}.tk-workspace-device-detail__select{font-family:inherit;font-size:.875rem;padding:.375rem .5rem;border-radius:.25rem;border:1px solid rgba(0,0,0,.12);max-width:8rem}.tk-workspace-device-detail__table-wrapper{overflow-x:auto;margin-bottom:.75rem}.tk-workspace-device-detail__table{width:100%;border-collapse:collapse;font-size:.8125rem}.tk-workspace-device-detail__table th{text-align:left;font-weight:400;color:#0009;padding:.5rem .75rem;background:#ededed;border-bottom:1px solid #e8e8e8}.tk-workspace-device-detail__table td{padding:.5rem .75rem;border-bottom:1px solid #e8e8e8;vertical-align:middle}.tk-workspace-device-detail__table-empty{color:#0009;text-align:center}.tk-workspace-device-detail__registered{color:#1d805f;font-weight:500}.tk-workspace-device-detail__warning-icon{color:#b54708;font-size:1.125rem;height:1.125rem;width:1.125rem}.tk-workspace-device-detail__configure-lines{opacity:.4;pointer-events:none}.tk-workspace-device-detail__configure-line{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;font-size:.875rem}.tk-workspace-device-detail__configure-manage{font-weight:500;cursor:pointer}\n"] }]
55
+ }], propDecorators: { workspace: [{
56
+ type: Input
57
+ }], device: [{
58
+ type: Input
59
+ }], details: [{
60
+ type: Input
61
+ }], isLoading: [{
62
+ type: Input
63
+ }], back: [{
64
+ type: Output
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWRldmljZS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL2NvbXBvbmVudHMvd29ya3NwYWNlLWRldmljZS1kZXRhaWwvd29ya3NwYWNlLWRldmljZS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL2NvbXBvbmVudHMvd29ya3NwYWNlLWRldmljZS1kZXRhaWwvd29ya3NwYWNlLWRldmljZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBT3hELE1BQU0sT0FBTyw4QkFBOEI7SUFMM0M7UUFPVyxXQUFNLEdBQTJCLElBQUksQ0FBQztRQUN0QyxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUM5QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFDLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsc0JBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBa0M5RTtJQWhDQyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssWUFBWSxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzs0SEE5Q1UsOEJBQThCO2dIQUE5Qiw4QkFBOEIsK0xDVDNDLDRsV0E4TUE7NEZEck1hLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw0QkFBNEI7OEJBSzdCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZSwgV29ya3NwYWNlRGV2aWNlLCBXb3Jrc3BhY2VEZXZpY2VEZXRhaWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvd29ya3NwYWNlJztcclxuaW1wb3J0IHsgZ2V0RGV2aWNlSWNvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS1pY29uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGstd29ya3NwYWNlLWRldmljZS1kZXRhaWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3Jrc3BhY2UtZGV2aWNlLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya3NwYWNlLWRldmljZS1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZURldmljZURldGFpbENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgd29ya3NwYWNlITogV29ya3NwYWNlO1xyXG4gIEBJbnB1dCgpIGRldmljZTogV29ya3NwYWNlRGV2aWNlIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZGV0YWlsczogV29ya3NwYWNlRGV2aWNlRGV0YWlscyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgdGFnczogc3RyaW5nW10gPSBbXTtcclxuICBpc0FkZGluZ1RhZyA9IGZhbHNlO1xyXG4gIG5ld1RhZyA9ICcnO1xyXG4gIGhvdGVsaW5nRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGd1ZXN0SG91cnNMaW1pdCA9IDA7XHJcbiAgcmVhZG9ubHkgaG90ZWxpbmdUaW1lSG91cnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9LCAoXywgaW5kZXgpID0+IGluZGV4KTtcclxuXHJcbiAgZ2V0IGRldmljZUxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxzPy5tb2RlbCB8fCB0aGlzLmRldmljZT8ubGFiZWwgfHwgJ0RldmljZSc7XHJcbiAgfVxyXG5cclxuICBnZXQgZGV2aWNlSWNvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGdldERldmljZUljb24odGhpcy5kZXRhaWxzPy5tb2RlbCB8fCB0aGlzLmRldmljZT8ubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUmVnaXN0ZXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy5kZXRhaWxzPy5yZWdpc3RyYXRpb25TdGF0dXMgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdyZWdpc3RlcmVkJztcclxuICB9XHJcblxyXG4gIG9uQmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuYmFjay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzaG93VGFnSW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQWRkaW5nVGFnID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uVGFnSW5wdXRCbHVyKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm5ld1RhZy50cmltKCk7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy50YWdzLnB1c2godmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uZXdUYWcgPSAnJztcclxuICAgIHRoaXMuaXNBZGRpbmdUYWcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVRhZyhpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhZ3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fYnJlYWRjcnVtYlwiIChjbGljayk9XCJvbkJhY2soKVwiPlxyXG4gIDxpbWcgc3R5bGU9XCJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4O1wiIHNyYz1cImFzc2V0cy9pY29ucy9hcnJvdy1sZWZ0LWJvbGQuc3ZnXCIgYWx0PVwiQmFja1wiIC8+XHJcbiAgRGV2aWNlc1xyXG48L2J1dHRvbj5cclxuXHJcbjxhcHAtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cclxuICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2hlYWRlclwiPlxyXG4gICAgPGltZyBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19pY29uXCIgW3NyY109XCJkZXZpY2VJY29uXCIgW2FsdF09XCJkZXZpY2VMYWJlbFwiIC8+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3RpdGxlLWJsb2NrXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19uYW1lXCI+e3sgZGV2aWNlTGFiZWwgfX08L2gxPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX21ldGFcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19tZXRhLXBpbGxcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3N0YXR1cy1kb3RcIiBbY2xhc3MudGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3N0YXR1cy1kb3QtLWFjdGl2ZV09XCJpc1JlZ2lzdGVyZWRcIj48L3NwYW4+XHJcbiAgICAgICAgICB7eyBkZXRhaWxzPy5yZWdpc3RyYXRpb25TdGF0dXMgfHwgJ05vdCBSZWdpc3RlcmVkJyB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19tZXRhLXNlcFwiPjwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj5QaG9uZXM8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19hY3Rpb25zLWJ1dHRvblwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25zTWVudVwiPlxyXG4gICAgICBBY3Rpb25zXHJcbiAgICAgIDxpbWcgc3R5bGU9XCJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4O1wiIHNyYz1cImFzc2V0cy9pY29ucy9hcnJvdy1kb3duLXJlZ3VsYXIuc3ZnXCIgYWx0PVwiRXhwYW5kXCIgLz5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPG1hdC1tZW51ICNhY3Rpb25zTWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LW1lbnUtaXRlbSBkaXNhYmxlZD5Nb3JlIGFjdGlvbnMgY29taW5nIHNvb248L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fd29ya3NwYWNlLWxpbmtcIj57eyB3b3Jrc3BhY2UuZGlzcGxheU5hbWUgfX08L2E+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fZ3JpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jb2xcIj5cclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jYXJkLXRpdGxlXCI+RGV0YWlsczwvaDI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fcm93LWhhbGZcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdmFsdWVcIj57eyBkZXRhaWxzPy5saW5lQ291bnQgPz8gJ04vQScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2xhYmVsXCI+TGluZXM8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fcm93LWhhbGZcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdmFsdWVcIj57eyBkZXRhaWxzPy5tYWMgfHwgJ04vQScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2xhYmVsXCI+TUFDIGFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aHIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fZGl2aWRlclwiIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fcm93LWhhbGZcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdmFsdWVcIj57eyBkZXRhaWxzPy5ob3N0SXBBZGRyZXNzIHx8ICdOL0EnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19sYWJlbFwiPkhvc3QgSVAgYWRkcmVzczwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19yb3ctaGFsZlwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX192YWx1ZVwiPnt7IGRldGFpbHM/LnJlbW90ZUlwQWRkcmVzcyB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fbGFiZWxcIj5SZW1vdGUgSVAgYWRkcmVzczwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxociBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19kaXZpZGVyXCIgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3Jvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19yb3ctaGFsZlwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX192YWx1ZVwiPnt7IGRldGFpbHM/Lm1hbmFnZWRCeSB8fCAnQ2lzY28nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19sYWJlbFwiPk1hbmFnZWQgQnk8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jYXJkLXRpdGxlXCI+U29mdHdhcmU8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19zZXR0aW5ncy1pY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19tZXRhLWljb25cIiBzcmM9XCJhc3NldHMvaWNvbnMvc2V0dGluZ3MtcmVndWxhci5zdmdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fcm93LWhhbGZcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdmFsdWVcIj57eyBkZXRhaWxzPy5zb2Z0d2FyZUNoYW5uZWwgfHwgJ1Vua25vd24nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19sYWJlbFwiPlNvZnR3YXJlIENoYW5uZWw8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fcm93LWhhbGZcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdmFsdWVcIj57eyBkZXRhaWxzPy5zb2Z0d2FyZVZlcnNpb24gfHwgJ04vQScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2xhYmVsXCI+U29mdHdhcmUgdmVyc2lvbjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jYXJkXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NhcmQtdGl0bGVcIj5UYWdzPC9oMj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3RhZ3NcIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdGFnXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHRhZyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3RhZy1yZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlVGFnKGkpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX190YWcgdGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3RhZy0tYWRkXCIgKGNsaWNrKT1cInNob3dUYWdJbnB1dCgpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX190YWctYWRkLWljb25cIj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICBBZGQgdGFnXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAqbmdJZj1cImlzQWRkaW5nVGFnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdGFnLWlucHV0XCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHRhZy4uLlwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3VGFnXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25UYWdJbnB1dEJsdXIoKVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY29sXCI+XHJcbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NhcmRcIj5cclxuICAgICAgICA8aDIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZC10aXRsZVwiPklzc3VlcyAmYW1wOyBJbmZvcm1hdGlvbjwvaDI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19uby1pc3N1ZXNcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19uby1pc3N1ZXMtaWNvblwiPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XHJcbiAgICAgICAgICBObyByZXBvcnRlZCBpc3N1ZXMgYXQgdGhpcyB0aW1lXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NhcmRcIj5cclxuICAgICAgICA8aDIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZC10aXRsZVwiPkhvdGVsaW5nPC9oMj5cclxuICAgICAgICA8cCBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19oaW50XCI+QWxsb3cgdGhpcyBkZXZpY2UgdG8gYmUgdXNlZCBhcyBhIEhvdGVsaW5nIEhvc3QgYnkgdmlzaXRpbmcgZ3Vlc3RzLjwvcD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2hvdGVsaW5nLXRvZ2dsZS1yb3dcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX190b2dnbGVcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiaG90ZWxpbmdFbmFibGVkXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdG9nZ2xlLXNsaWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX21ldGEtaWNvblwiXHJcbiAgICAgICAgICAgIHNyYz1cImFzc2V0cy9pY29ucy9pbmZvLWNpcmNsZS1yZWd1bGFyLnN2Z1wiXHJcbiAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFbmFibGluZyB0aGlzIGRldmljZSBmb3IgSG90ZWxpbmcgbWVhbnMgdGhhdCBhIGd1ZXN0IGNhbiBsb2cgaW50byB0aGlzIGhvc3QgYW5kIHVzZSB0aGlzIHBob25lIGFzIGlmIGl0IHdlcmUgdGhlaXIgb3duLlwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9faGludFwiPkxpbWl0IHRoZSB0aW1lIGEgZ3Vlc3QgY2FuIHVzZSB0aGlzIHBob25lIHRvPC9wPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fc2VsZWN0XCIgWyhuZ01vZGVsKV09XCJndWVzdEhvdXJzTGltaXRcIj5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGhvdXIgb2YgaG90ZWxpbmdUaW1lSG91cnNcIiBbdmFsdWVdPVwiaG91clwiPnt7IGhvdXIgfX08L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jYXJkLXRpdGxlXCI+RGV2aWNlIE1hbmFnZW1lbnQ8L2gyPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2hpbnRcIj5UaGUgdXNlcnMgYW5kIHdvcmtzcGFjZXMgdGhhdCBhcHBlYXIgb24gdGhpcyBkZXZpY2UgYXJlIGRpc3BsYXllZCBiZWxvdyBpbiB0aGUgb3JkZXIgb2YgYXBwZWFyYW5jZS48L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9faGludFwiPlxyXG4gICAgICAgICAgVG8gYWRkIGFuZCByZW1vdmUgdXNlcnMgYW5kIHdvcmtzcGFjZXMsIHNlbGVjdCA8Yj5Db25maWd1cmUgTGluZXM8L2I+LjxiciAvPlxyXG4gICAgICAgICAgVG8gY3VzdG9taXplIHRoZSBwcm9ncmFtbWFibGUgTGluZSBLZXlzLCBzZWxlY3QgPGI+Q29uZmlndXJlIExheW91dDwvYj4uPGJyIC8+XHJcbiAgICAgICAgICBUbyBzZXQgdXAgdGhlIGRpc3BsYXkgc2V0dGluZ3MgYW5kIGRpYWxpbmcgb3B0aW9ucywgc2VsZWN0IDxiPkRldmljZSBTZXR0aW5nczwvYj4uXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fdGFibGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX3RhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8dGg+SW5kZXggIzwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+TnVtYmVyL0V4dGVuc2lvbjwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+UmVnaXN0ZXJlZDwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgbGluZSBvZiBkZXRhaWxzPy5saW5lczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGkgKyAxIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBsaW5lLm5hbWUgfHwgJ05BJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgbGluZS5udW1iZXIgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImxpbmUucmVnaXN0ZXJlZDsgZWxzZSBub3RSZWdpc3RlcmVkXCIgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fcmVnaXN0ZXJlZFwiPlJlZ2lzdGVyZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90UmVnaXN0ZXJlZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fd2FybmluZy1pY29uXCIgbWF0VG9vbHRpcD1cIlVucmVnaXN0ZXJlZFwiPndhcm5pbmc8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cIiFkZXRhaWxzPy5saW5lcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX190YWJsZS1lbXB0eVwiPk5vIGxpbmVzIGNvbmZpZ3VyZWQuPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NvbmZpZ3VyZS1saW5lc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jb25maWd1cmUtbGluZVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5Db25maWd1cmUgTGluZXM8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NvbmZpZ3VyZS1tYW5hZ2VcIj5NYW5hZ2U8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxociBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19kaXZpZGVyXCIgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY29uZmlndXJlLWxpbmVcIj5cclxuICAgICAgICAgICAgPHNwYW4+Q29uZmlndXJlIExheW91dDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY29uZmlndXJlLW1hbmFnZVwiPk1hbmFnZTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGhyIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2RpdmlkZXJcIiAvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jb25maWd1cmUtbGluZVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5EZXZpY2UgU2V0dGluZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NvbmZpZ3VyZS1tYW5hZ2VcIj5NYW5hZ2U8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY2FyZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jYXJkLXRpdGxlXCI+U3VwcG9ydDwvaDI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19jb25maWd1cmUtbGluZXNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY29uZmlndXJlLWxpbmVcIj5cclxuICAgICAgICAgICAgPHNwYW4+TWVldGluZ3MgJmFtcDsgQ2FsbHM8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NvbmZpZ3VyZS1tYW5hZ2VcIj5HbyB0byB0cm91Ymxlc2hvb3Rpbmc8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxociBjbGFzcz1cInRrLXdvcmtzcGFjZS1kZXZpY2UtZGV0YWlsX19kaXZpZGVyXCIgLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2UtZGV2aWNlLWRldGFpbF9fY29uZmlndXJlLWxpbmVcIj5cclxuICAgICAgICAgICAgPHNwYW4+RGV2aWNlIExvZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlLWRldmljZS1kZXRhaWxfX2NvbmZpZ3VyZS1tYW5hZ2VcIj5NYW5hZ2U8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { 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/forms";
5
+ import * as i3 from "@angular/material/icon";
6
+ import * as i4 from "@angular/material/menu";
7
+ export class WorkspacesFiltersComponent {
8
+ constructor() {
9
+ this.resultCount = 0;
10
+ this.typeOptions = [];
11
+ this.locationOptions = [];
12
+ this.searchChange = new EventEmitter();
13
+ this.typeChange = new EventEmitter();
14
+ this.locationChange = new EventEmitter();
15
+ this.addWorkspace = new EventEmitter();
16
+ this.searchTerm = '';
17
+ this.selectedType = '';
18
+ this.selectedLocation = '';
19
+ }
20
+ onSearchInputChange(event) {
21
+ this.searchTerm = event.target.value;
22
+ this.searchChange.emit(this.searchTerm);
23
+ }
24
+ onTypeChange(value) {
25
+ this.selectedType = value;
26
+ this.typeChange.emit(value);
27
+ }
28
+ onLocationChange(value) {
29
+ this.selectedLocation = value;
30
+ this.locationChange.emit(value);
31
+ }
32
+ onAddWorkspace() {
33
+ this.addWorkspace.emit();
34
+ }
35
+ }
36
+ WorkspacesFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ WorkspacesFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspacesFiltersComponent, selector: "tk-workspaces-filters", inputs: { resultCount: "resultCount", typeOptions: "typeOptions", locationOptions: "locationOptions" }, outputs: { searchChange: "searchChange", typeChange: "typeChange", locationChange: "locationChange", addWorkspace: "addWorkspace" }, ngImport: i0, template: "<div class=\"tk-workspaces-filters\">\r\n <div class=\"tk-workspaces-filters__search\">\r\n <input\r\n class=\"tk-workspaces-filters__search-input blue-input\"\r\n type=\"text\"\r\n placeholder=\"Search\"\r\n [value]=\"searchTerm\"\r\n (input)=\"onSearchInputChange($event)\"\r\n />\r\n <mat-icon class=\"tk-workspaces-filters__search-icon\">search</mat-icon>\r\n </div>\r\n\r\n <div class=\"tk-workspaces-filters__filters\">\r\n <span class=\"tk-workspaces-filters__filters-label\">Filters:</span>\r\n\r\n <div class=\"tk-workspaces-filters__select-wrap\">\r\n <select\r\n class=\"tk-workspaces-filters__select\"\r\n [ngModel]=\"selectedType\"\r\n (ngModelChange)=\"onTypeChange($event)\">\r\n <option value=\"\">General</option>\r\n <option *ngFor=\"let type of typeOptions\" [value]=\"type\">{{ type }}</option>\r\n </select>\r\n <mat-icon class=\"tk-workspaces-filters__select-icon\">expand_more</mat-icon>\r\n </div>\r\n\r\n <div class=\"tk-workspaces-filters__select-wrap\">\r\n <select\r\n class=\"tk-workspaces-filters__select\"\r\n [ngModel]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationChange($event)\">\r\n <option value=\"\">Location</option>\r\n <option *ngFor=\"let location of locationOptions\" [value]=\"location\">{{ location }}</option>\r\n </select>\r\n <mat-icon class=\"tk-workspaces-filters__select-icon\">expand_more</mat-icon>\r\n </div>\r\n </div>\r\n\r\n <span class=\"tk-workspaces-filters__count\">{{ resultCount }} workspace{{ resultCount === 1 ? '' : 's' }} in total</span>\r\n\r\n <button type=\"button\" class=\"tk-workspaces-filters__add-button\" [matMenuTriggerFor]=\"addMenu\">\r\n Add workspace\r\n <mat-icon class=\"tk-workspaces-filters__add-icon\">expand_more</mat-icon>\r\n </button>\r\n\r\n <mat-menu #addMenu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item (click)=\"onAddWorkspace()\">Add workspace</button>\r\n <button type=\"button\" mat-menu-item disabled>Import workspaces</button>\r\n </mat-menu>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2}.tk-workspaces-filters{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;font-size:.875rem;font-weight:400;color:#000000f2}.tk-workspaces-filters__search{position:relative;min-width:14rem}.tk-workspaces-filters__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.tk-workspaces-filters__search-input{width:100%;height:34px;padding:6px 12px 6px 44px;border-radius:.5rem;outline:none;box-sizing:border-box;font-family:inherit;font-size:1rem;color:#000000f2;background:#fff}.tk-workspaces-filters__search-input::placeholder{color:#0006}.tk-workspaces-filters__filters{display:flex;align-items:center;gap:.5rem}.tk-workspaces-filters__filters-label{font-size:.875rem;color:#000000f2;white-space:nowrap}.tk-workspaces-filters__select-wrap{position:relative;display:flex;align-items:center}.tk-workspaces-filters__select{appearance:none;height:34px;padding:6px 32px 6px 12px;background:#fff;border:1px solid rgba(0,0,0,.5019607843);border-radius:.5rem;font-family:inherit;font-size:1rem;color:#222;cursor:pointer;box-sizing:border-box}.tk-workspaces-filters__select:focus{outline:none;border-color:#0006}.tk-workspaces-filters__select-icon{position:absolute;right:.375rem;font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.tk-workspaces-filters__count{margin-left:auto;font-size:.875rem;color:#0009;white-space:nowrap;font-weight:400;flex:1}.tk-workspaces-filters__add-button{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:#000;color:#fff;border:none;border-radius:6.25rem;font-family:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;white-space:nowrap}.tk-workspaces-filters__add-button:hover{background:#222}.tk-workspaces-filters__add-icon{font-size:1.125rem;height:1.125rem;width:1.125rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesFiltersComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'tk-workspaces-filters', template: "<div class=\"tk-workspaces-filters\">\r\n <div class=\"tk-workspaces-filters__search\">\r\n <input\r\n class=\"tk-workspaces-filters__search-input blue-input\"\r\n type=\"text\"\r\n placeholder=\"Search\"\r\n [value]=\"searchTerm\"\r\n (input)=\"onSearchInputChange($event)\"\r\n />\r\n <mat-icon class=\"tk-workspaces-filters__search-icon\">search</mat-icon>\r\n </div>\r\n\r\n <div class=\"tk-workspaces-filters__filters\">\r\n <span class=\"tk-workspaces-filters__filters-label\">Filters:</span>\r\n\r\n <div class=\"tk-workspaces-filters__select-wrap\">\r\n <select\r\n class=\"tk-workspaces-filters__select\"\r\n [ngModel]=\"selectedType\"\r\n (ngModelChange)=\"onTypeChange($event)\">\r\n <option value=\"\">General</option>\r\n <option *ngFor=\"let type of typeOptions\" [value]=\"type\">{{ type }}</option>\r\n </select>\r\n <mat-icon class=\"tk-workspaces-filters__select-icon\">expand_more</mat-icon>\r\n </div>\r\n\r\n <div class=\"tk-workspaces-filters__select-wrap\">\r\n <select\r\n class=\"tk-workspaces-filters__select\"\r\n [ngModel]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationChange($event)\">\r\n <option value=\"\">Location</option>\r\n <option *ngFor=\"let location of locationOptions\" [value]=\"location\">{{ location }}</option>\r\n </select>\r\n <mat-icon class=\"tk-workspaces-filters__select-icon\">expand_more</mat-icon>\r\n </div>\r\n </div>\r\n\r\n <span class=\"tk-workspaces-filters__count\">{{ resultCount }} workspace{{ resultCount === 1 ? '' : 's' }} in total</span>\r\n\r\n <button type=\"button\" class=\"tk-workspaces-filters__add-button\" [matMenuTriggerFor]=\"addMenu\">\r\n Add workspace\r\n <mat-icon class=\"tk-workspaces-filters__add-icon\">expand_more</mat-icon>\r\n </button>\r\n\r\n <mat-menu #addMenu=\"matMenu\">\r\n <button type=\"button\" mat-menu-item (click)=\"onAddWorkspace()\">Add workspace</button>\r\n <button type=\"button\" mat-menu-item disabled>Import workspaces</button>\r\n </mat-menu>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2}.tk-workspaces-filters{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;font-size:.875rem;font-weight:400;color:#000000f2}.tk-workspaces-filters__search{position:relative;min-width:14rem}.tk-workspaces-filters__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.tk-workspaces-filters__search-input{width:100%;height:34px;padding:6px 12px 6px 44px;border-radius:.5rem;outline:none;box-sizing:border-box;font-family:inherit;font-size:1rem;color:#000000f2;background:#fff}.tk-workspaces-filters__search-input::placeholder{color:#0006}.tk-workspaces-filters__filters{display:flex;align-items:center;gap:.5rem}.tk-workspaces-filters__filters-label{font-size:.875rem;color:#000000f2;white-space:nowrap}.tk-workspaces-filters__select-wrap{position:relative;display:flex;align-items:center}.tk-workspaces-filters__select{appearance:none;height:34px;padding:6px 32px 6px 12px;background:#fff;border:1px solid rgba(0,0,0,.5019607843);border-radius:.5rem;font-family:inherit;font-size:1rem;color:#222;cursor:pointer;box-sizing:border-box}.tk-workspaces-filters__select:focus{outline:none;border-color:#0006}.tk-workspaces-filters__select-icon{position:absolute;right:.375rem;font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.tk-workspaces-filters__count{margin-left:auto;font-size:.875rem;color:#0009;white-space:nowrap;font-weight:400;flex:1}.tk-workspaces-filters__add-button{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:#000;color:#fff;border:none;border-radius:6.25rem;font-family:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;white-space:nowrap}.tk-workspaces-filters__add-button:hover{background:#222}.tk-workspaces-filters__add-icon{font-size:1.125rem;height:1.125rem;width:1.125rem}\n"] }]
41
+ }], propDecorators: { resultCount: [{
42
+ type: Input
43
+ }], typeOptions: [{
44
+ type: Input
45
+ }], locationOptions: [{
46
+ type: Input
47
+ }], searchChange: [{
48
+ type: Output
49
+ }], typeChange: [{
50
+ type: Output
51
+ }], locationChange: [{
52
+ type: Output
53
+ }], addWorkspace: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy93b3Jrc3BhY2VzL3NyYy9jb21wb25lbnRzL3dvcmtzcGFjZXMtZmlsdGVycy93b3Jrc3BhY2VzLWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL2NvbXBvbmVudHMvd29ya3NwYWNlcy1maWx0ZXJzL3dvcmtzcGFjZXMtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPdkUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1XLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzNCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBRTlCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxELGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO0tBb0J2QjtJQWxCQyxtQkFBbUIsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7d0hBL0JVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLDBTQ1B2QyxpbUVBa0RBOzRGRDNDYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQUt4QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGstd29ya3NwYWNlcy1maWx0ZXJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlcy1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3Jrc3BhY2VzLWZpbHRlcnMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZXNGaWx0ZXJzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSByZXN1bHRDb3VudCA9IDA7XHJcbiAgQElucHV0KCkgdHlwZU9wdGlvbnM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgbG9jYXRpb25PcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KCkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgbG9jYXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYWRkV29ya3NwYWNlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBzZWFyY2hUZXJtID0gJyc7XHJcbiAgc2VsZWN0ZWRUeXBlID0gJyc7XHJcbiAgc2VsZWN0ZWRMb2NhdGlvbiA9ICcnO1xyXG5cclxuICBvblNlYXJjaElucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQodGhpcy5zZWFyY2hUZXJtKTtcclxuICB9XHJcblxyXG4gIG9uVHlwZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy50eXBlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25Mb2NhdGlvbkNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMubG9jYXRpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkFkZFdvcmtzcGFjZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkV29ya3NwYWNlLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtZmlsdGVyc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLWZpbHRlcnNfX3NlYXJjaFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlcy1maWx0ZXJzX19zZWFyY2gtaW5wdXQgYmx1ZS1pbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxyXG4gICAgICBbdmFsdWVdPVwic2VhcmNoVGVybVwiXHJcbiAgICAgIChpbnB1dCk9XCJvblNlYXJjaElucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgLz5cclxuICAgIDxtYXQtaWNvbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtZmlsdGVyc19fc2VhcmNoLWljb25cIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlcy1maWx0ZXJzX19maWx0ZXJzXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtZmlsdGVyc19fZmlsdGVycy1sYWJlbFwiPkZpbHRlcnM6PC9zcGFuPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLWZpbHRlcnNfX3NlbGVjdC13cmFwXCI+XHJcbiAgICAgIDxzZWxlY3RcclxuICAgICAgICBjbGFzcz1cInRrLXdvcmtzcGFjZXMtZmlsdGVyc19fc2VsZWN0XCJcclxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFR5cGVcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPkdlbmVyYWw8L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIHR5cGVPcHRpb25zXCIgW3ZhbHVlXT1cInR5cGVcIj57eyB0eXBlIH19PC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLWZpbHRlcnNfX3NlbGVjdC1pY29uXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtZmlsdGVyc19fc2VsZWN0LXdyYXBcIj5cclxuICAgICAgPHNlbGVjdFxyXG4gICAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlcy1maWx0ZXJzX19zZWxlY3RcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkTG9jYXRpb25cIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTG9jYXRpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5Mb2NhdGlvbjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGxvY2F0aW9uT3B0aW9uc1wiIFt2YWx1ZV09XCJsb2NhdGlvblwiPnt7IGxvY2F0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLWZpbHRlcnNfX3NlbGVjdC1pY29uXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy1maWx0ZXJzX19jb3VudFwiPnt7IHJlc3VsdENvdW50IH19IHdvcmtzcGFjZXt7IHJlc3VsdENvdW50ID09PSAxID8gJycgOiAncycgfX0gaW4gdG90YWw8L3NwYW4+XHJcblxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidGstd29ya3NwYWNlcy1maWx0ZXJzX19hZGQtYnV0dG9uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFkZE1lbnVcIj5cclxuICAgIEFkZCB3b3Jrc3BhY2VcclxuICAgIDxtYXQtaWNvbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtZmlsdGVyc19fYWRkLWljb25cIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxtYXQtbWVudSAjYWRkTWVudT1cIm1hdE1lbnVcIj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uQWRkV29ya3NwYWNlKClcIj5BZGQgd29ya3NwYWNlPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtbWVudS1pdGVtIGRpc2FibGVkPkltcG9ydCB3b3Jrc3BhY2VzPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbiJdfQ==